吴忠躺衫网络科技有限公司

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
    筹码百家乐的玩法技巧和规则| 百家乐官网最新的投注方法| 百家乐技巧看| 皇室百家乐官网的玩法技巧和规则| 大发888网络赌博害人| 顶尖百家乐对单| 澳门百家乐官网搏牌规则| 大发888赌城| 百家乐电脑赌博| 粤港澳百家乐官网娱乐场| 大世界娱乐| 百家乐乐百家娱乐场| 送现金百家乐官网的玩法技巧和规则 | 皇城百家乐娱乐城| 百家乐2号干扰| 百家乐官网翻天粤语下载| bet365足球| 百家乐大赌场娱乐网规则 | 南汇区| 大发888现金存款| 百家乐赌博分析网| 捷豹百家乐官网娱乐城| 百家乐官网怎样投注好| 哪个棋牌游戏平台好| 百家乐技巧辅助软件| 做生意的门市风水| 银泰百家乐官网龙虎斗| 狮威娱乐城| 筹码百家乐的玩法技巧和规则| 百家乐赌假的工具| 百家乐官网平点| 真人百家乐官网开户须知| 威尼斯人娱乐城返水| 做百家乐网上投注| 百家乐官网荷| 百家乐官网赌场在线娱乐| 百家乐官网玩法窍门| tt线上娱乐| 大发888更名网址| 黄金城百家乐免费下载| 澳门百家乐什么规则|