那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Fixup error信息是什么意思

麥辣雞腿堡 ? 來(lái)源:Microchip微芯 ? 作者:Microchip微芯 ? 2023-01-22 16:21 ? 次閱讀

問(wèn):我得到一個(gè)信息"Fixup error referencing ...";或者是"Fixup error in expression ..."

這究竟是什么意思,我該怎么做?

答:簡(jiǎn)單地說(shuō),這意味著鏈接器指示你要去調(diào)整(fixup)對(duì)一個(gè)存儲(chǔ)位置的引用,因?yàn)橛?jì)算出的地址是和可用的空間是不匹配的,例如:對(duì)一個(gè)字節(jié)(8位)的引用,卻要求放入一個(gè)大于0xFF的值。

在使用PICC編譯器時(shí),這種問(wèn)題比較多地發(fā)生在指針沒(méi)有被正確地聲明的情況下,例如:

bank2 char ch;

char *ptr;

ptr = &ch; //這里就會(huì)出現(xiàn)fixup error

這是一個(gè)fixup error,因?yàn)?ptr"是默認(rèn)指向bank0數(shù)據(jù)的指針(這里ptr只有8位,而&ch是一個(gè)大于8位的一個(gè)地址)——要改正它需要讓指針也指向bank2,如下:

bank2 char *ptr;

要定位發(fā)生fixup error的原因,可以查看完整的錯(cuò)誤信息。這里有一個(gè)例子:

gmain6.obj:113:Fixup overflow referencing psect rbss_1 (loc 0x8C8 (0x8C2+6), size 1, value 0xA8)

這個(gè)錯(cuò)誤信息是來(lái)自PICC編譯器。這里的"size"告訴我們這是對(duì)一個(gè)字節(jié)的引用——實(shí)際上這是一個(gè)7位數(shù)據(jù)的引用,因?yàn)檫@個(gè)數(shù)值0xA8太大了,和7位的數(shù)據(jù)引用是不匹配的。

從信息里可知,在這里是引用了rbss_1,也就是bank1的地址,它建議了一個(gè)將對(duì)bank1的引用卻沒(méi)有截?cái)嗤暾刂芬赃m合指令的7位地址。

注意這個(gè)位置——0x8C8。這是一個(gè)出錯(cuò)指令的絕對(duì)地址;請(qǐng)確保你已經(jīng)產(chǎn)生了匯編列表文件,請(qǐng)打開(kāi)編輯它。這個(gè)提供的地址是一個(gè)字節(jié)地址,因?yàn)镻IC的程序空間是14位寬的,所以計(jì)算字地址時(shí)要用該地址除以2——0x8C8/2 = 0x464。

在list文件里,可以很簡(jiǎn)單地定位到0x464:

993 0464 00A8 movwf _TempChar ;#

^^^^ location

在出錯(cuò)信息里給出的值(0xA8)就是TempChar的地址——你還可以檢查map或者symbol文件來(lái)查找對(duì)應(yīng)這個(gè)地址的符號(hào)(通常使用list文件是比較好的方法)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7145

    瀏覽量

    89582
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1642

    瀏覽量

    49287
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    An Introduction to Error Locat

    technology development.  Innovations like oscilloscopes, logicanalyzers and bit error ratio testers have enabled new, faster and more
    發(fā)表于 07-14 10:48 ?14次下載

    Calculating the Error Budget i

    Calculating the Error Budget in Precision Digital-to-Analog Converter (DAC) Applications Abstract
    發(fā)表于 01-06 13:44 ?953次閱讀
    Calculating the <b class='flag-5'>Error</b> Budget i

    電腦錯(cuò)誤信息的中文解讀

    電腦各種錯(cuò)誤信息的中文意思 一、BIOS中的提示信息 提示信息 說(shuō)明 Drive A error 驅(qū)動(dòng)器A錯(cuò)誤 System halt 系統(tǒng)掛起 Keyboard controller
    發(fā)表于 02-11 17:32 ?762次下載

    hard error什么意思及解決辦法

    在使用電腦中有時(shí)候會(huì)遇到unknown hard error,很多人不知道unknown hard error什么意思。電腦出現(xiàn)hard error是因?yàn)槭裁矗瑄nknown hard err
    發(fā)表于 12-13 11:23 ?0次下載

    What’s Wrong with % Error in Junction Temperature"

    publications in technical journals and conferences, use has been made of the concept of % error in Tj.
    發(fā)表于 04-11 10:04 ?3次下載

    Keil編譯錯(cuò)誤improper fixup應(yīng)該如何解決

    本文檔的有內(nèi)容詳細(xì)介紹的是Keil編譯錯(cuò)誤improper fixup應(yīng)該如何解決。
    發(fā)表于 07-31 17:35 ?1次下載
    Keil編譯錯(cuò)誤improper <b class='flag-5'>fixup</b>應(yīng)該如何解決

    RTD Configurator and Error Budget Calculator

    RTD Configurator and Error Budget Calculator
    發(fā)表于 01-27 18:36 ?17次下載
    RTD Configurator and <b class='flag-5'>Error</b> Budget Calculator

    Error: Unable to reset MCU!

    出現(xiàn)Error: Unable to reset MCU!的解決方法
    發(fā)表于 10-25 21:06 ?14次下載
    <b class='flag-5'>Error</b>: Unable to reset MCU!

    單片機(jī)開(kāi)發(fā),報(bào)錯(cuò) error: #40: expected an identifier

    錯(cuò)誤信息error: #40: expected an identifier原因1:是命名重疊了, 比如在stm32f10x.h中有如下定義typedef enum {ERROR = 0
    發(fā)表于 11-13 13:21 ?9次下載
    單片機(jī)開(kāi)發(fā),報(bào)錯(cuò) <b class='flag-5'>error</b>: #40: expected an identifier

    KEIL ERROR L104

    Keil LX51 Error L104Error L104處理Error L104處理8051系列單片機(jī)總體來(lái)說(shuō)內(nèi)存空間小, 在需要數(shù)據(jù)轉(zhuǎn)發(fā)的編程中為了更容易掌控內(nèi)存分配和重用, 通常多用全局變量
    發(fā)表于 11-29 13:21 ?8次下載
    KEIL <b class='flag-5'>ERROR</b> L104

    "STM32-MDK: Error: L6915E: Library reports error: __use_no_semihosting was requested,"

    在編譯程序是報(bào)錯(cuò):…\OBJ\test_program.axf: Error: L6915E: Library reports error: __use_no_semihosting was requested but a semihosting fputc was li
    發(fā)表于 12-03 09:51 ?9次下載
    "STM32-MDK: <b class='flag-5'>Error</b>: L6915E: Library reports <b class='flag-5'>error</b>: __use_no_semihosting was requested,"

    STM32CubeIDE安裝-NSIS Error問(wèn)題

    STM32CubeIDE安裝-NSIS Error問(wèn)題
    發(fā)表于 12-03 21:06 ?18次下載
    STM32CubeIDE安裝-NSIS <b class='flag-5'>Error</b>問(wèn)題

    【GCC編譯運(yùn)行報(bào)錯(cuò)】error while loading

    【GCC編譯】運(yùn)行編譯后的程序報(bào)錯(cuò) error while loading shared libraries: lib*.so: cannot open shared object file
    的頭像 發(fā)表于 08-26 13:14 ?7521次閱讀
    【GCC編譯運(yùn)行報(bào)錯(cuò)】<b class='flag-5'>error</b> while loading

    MPLAB XC8編譯器出現(xiàn)“fixup”錯(cuò)誤怎么辦

    問(wèn):怎么來(lái)改正“fixup”錯(cuò)誤? 答:這里假定你已經(jīng)知道如何來(lái)定位導(dǎo)致fixup錯(cuò)誤的代碼位置。如果不清楚,請(qǐng)參看前面的問(wèn)答“怎么來(lái)定位"Fixup error"
    的頭像 發(fā)表于 01-22 15:03 ?1281次閱讀

    ABB高級(jí)編程Error Handler

    ?當(dāng)程序發(fā)生故障時(shí),正常情況下采用人為干預(yù),不可避免會(huì)影響生產(chǎn)效率,機(jī)器人編程時(shí),可以通過(guò)Error Handler 這項(xiàng)功能來(lái)自動(dòng)處理一些故障,提高生產(chǎn)效率。
    的頭像 發(fā)表于 05-26 09:23 ?950次閱讀
    ABB高級(jí)編程<b class='flag-5'>Error</b> Handler
    德州扑克软件| 澳门博彩有限公司| 免费百家乐官网统计工具| 现金网系统出租| 现金百家乐代理| 顶尖百家乐官网的玩法技巧和规则 | 在线百家乐平台| 24山坐向| 吴忠市| 大发888-大发娱乐城下载| 百家乐打劫法| 如何赢百家乐官网的玩法技巧和规则| 顶级赌场手机版| 百家乐代理新闻| 百家乐官网怎么看门路| 全讯网即时线路| 娱乐城百家乐打不开| 先锋百家乐官网的玩法技巧和规则 | 金龙娱乐城开户送彩金| 百家乐黏土筹码| 网上百家乐官网解密| 长沙百家乐官网的玩法技巧和规则 | 大发888开户注册哪家好| 八大胜百家乐的玩法技巧和规则| 电投百家乐网站| 百家乐娱乐求指点呀| 真人百家乐官网分析软件是骗局| 牛牛现金棋牌| 百家乐平注法规则| 澳门百家乐破解方法| 24山的财位| 风水24山那个排第一| 百家乐官网最新分析仪| 盈得利百家乐官网娱乐城| 保单百家乐官网游戏机| sz全讯网新2xb112| 百家乐赢钱公式论| 免费百家乐的玩法技巧和规则| 百家乐技巧阅读| 百家乐路纸发表区| 百家乐游戏玩法技巧|