新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM連接器錯誤一則

        ARM連接器錯誤一則

        作者: 時間:2016-11-22 來源:網絡 收藏
        在用RVCT3.1工作編寫ARM程序的時候,出現了一個連接錯誤:Error: L6915E: Library reports error: scatter-load file declares no heap or stack regions and __user_initial_stackheap is not defined.在網上找了一些資料,原因是使用了自定了的scat文件后,編譯器沒有沒有定義Image
        ZI
        Limit,默認提供的__user_initial_stackheap()函數會用到這個值,此時有兩個解決辦法:

        本文引用地址:http://www.104case.com/article/201611/319971.htm

        1.改寫scat文件,定義ZI段,并將*(+ZI)數據放入該段.

        2.覆蓋系統默認提供 的__user_initial_stackheap()函數,比如可以這樣做:

        [plain]view plaincopy
        print?
        1. /*
        2. *默認提供的__user_initial_stackheap()函數會用到Image
          ZI
          Limit這個值,
        3. *因為在使用Scat時這個值在默認情況下不被定義,所以要覆蓋同名的庫函數
        4. */
        5. __value_in_regsstruct__initial_stackheap__user_initial_stackheap(unsignedi0,unsignedi1,unsignedi2,unsignedi3)
        6. {
        7. struct__initial_stackheapconfig;
        8. config.heap_base=i1;
        9. config.heap_limit=i1;
        10. config.stack_base=i1;
        11. config.stack_limit=0;
        12. returnconfig;
        13. }
        此外,還要加上#include ,連接的時候加上--keep __user_initial_stackheap否則還會提示該函數沒有定義.


        關鍵詞: ARM連接器錯誤一

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 沧州市| 日喀则市| 青阳县| 新野县| 平和县| 西贡区| 胶州市| 达日县| 克东县| 融水| 阿瓦提县| 宝丰县| 景东| 宜良县| 安康市| 贵港市| 孟津县| 上饶县| SHOW| 盐亭县| 宜阳县| 尼勒克县| 大姚县| 重庆市| 枣阳市| 拜城县| 曲麻莱县| 渝中区| 务川| 神农架林区| 武平县| 盐亭县| 长武县| 六安市| 泗水县| 金溪县| 固镇县| 连江县| 丹东市| 濉溪县| 哈尔滨市|