• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 在晶心平臺實作ROM patch技術分享

    在晶心平臺實作ROM patch技術分享

    作者: 時間:2012-10-16 來源:網絡 收藏

    當gdb debug時,載入 的symbol.以下節錄gdb指令。

    core0(gdb) file mainprog.adx

    core0(gdb) add-symbol-file .adx 0x500000 -s FUNC_TABLE 0x510000 -s FUNC_PATCH 0x510020

    core0(gdb) set $pc=0x500000

    core0(gdb) b main

    Breakpoint 1 at 0x50010c: file /main.c, line 20.

    core0(gdb) c

    Breakpoint 1, main () at /main.c:20

    20 printf(func1(30)=%dn,jump_table.func_a(30));

    core0(gdb) s

    func1 (x=30) at /main.c:28

    28 return x*num1;

    core0(gdb) n

    29 }

    core0(gdb) s

    main () at /main.c:21

    21 printf(func2(30)=%dn,jump_table.func_b(30));

    core0(gdb) s

    func2 (x=30) at /prog.c:24

    24 return x*num2*100;

    core0(gdb)

    上面過程中,先加載main的symbol,再加載patch的symbol及debug information.add-symbol-file patch.adx 0x500000 -s FUNC_TABLE 0x510000 -s FUNC_PATCH 0x510020是將patch section的symbol及debug information也載入gdb以debug.讀者可以在gdb里,打help add-symbol-file查閱add-symbol-file的用法。

    3.1 主程序patch后的執行結果

    func1(30)=30

    func2(30)=6000

    func3(30)=90

    4. 結語

    目前晶心科技使用GNU的toolchain,其功能非常強大。讀者可多動手試試不同的linker script寫法,使得開發firmware更有彈性及效率。


    上一頁 1 2 下一頁

    關鍵詞: 分享 技術 patch ROM 平臺

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 乐平市| 谢通门县| 灌云县| 金川县| 连平县| 黄龙县| 肃宁县| 阳信县| 西和县| 榆树市| 五常市| 黄梅县| 洪湖市| 宜城市| 河东区| 商城县| 平乡县| 小金县| 达拉特旗| 仲巴县| 道真| 孝义市| 呼玛县| 响水县| 象山县| 夏津县| 曲沃县| 民勤县| 榕江县| 沈丘县| 瓮安县| 固镇县| 大竹县| 元朗区| 胶南市| 长沙市| 新邵县| 唐河县| 日照市| 宜黄县| 苏尼特右旗|