<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        relocation failed: value out of range or illegal

        作者:未知   來源:Levi之家的空間   點擊數:  更新時間:2014年08月16日   【字體:

        最近在搞LPC43xx系列的雙核芯片,用的是IAR的編譯環境。

        在給cortex-m0核添加匯編啟動代碼,以及在源文件中添加M0_M4CORE_IRQHandler服務程序的時候遇到一個錯誤。Error[Lp002]: relocation failded: value out of range or illegal:0xfffff5a0
                      Kind: R_ARM_THM_JUMP11[0x66]
                      Location: 0x10001514
                           Module:
                           Section: 16(.text)
                           Offset: 0x0
                   Target: 0x10000ab9
                            "M0_M4CORE_IRQHandler"
                             Module:
                             Section: 8(.text)
                             Offset: 0xc1
        剛開始一頭霧水,也不明白為什么會出現這樣的錯誤。google了好久,最后在一個俄文網站上找到了些靈感,哈哈,俄文網站當然是通過瀏覽器自帶的翻譯功能翻譯過來之后的。
         
        是由于Location和Target的距離太遠引起的,當時并不明白為什么cortex-m4上并不會出現。查看cortex-m0的手冊,發現cortex-m0的指令是thumb指令是16位的。也許在B跳轉指令的時候,并不能夠跳轉到那么遠。
         
        這個是明白了,可是怎么修改呢。查了半天IAR的函數定位和變量定位,也沒什么收獲。
        其實我的這個工程都是從keil上移植過來的,后來想起在移植的時候,匯編程序中有些中斷并沒有完全給其分配空間,如圖
        所以在IAR中也將一些中斷向量表中的中斷不分配空間,就可以編譯成功了。
         
        但是還是不明白為什么會有Location和Target兩個地址呢?難道在啟動匯編代碼中的地址需要重映設?
        以上講的不對的地方還望大家指出以及指點啊~~~
        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮