新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 在VIM中的嵌入式軟件調試

        在VIM中的嵌入式軟件調試

        作者: 時間:2013-02-25 來源:網絡 收藏

          ③ 安裝vimgdb的runtime文件,運行下面的命令:

          cd ~/down/vimgdb

          tar zxfv vimgdb_runtime.tgz C /usr/share/vim/vimfiles

          2.3 建立交叉調試嵌入式軟件的gdb組件

          ① 編譯嵌入式gdb調試器服務端gdbserver,運行如下的命令:

          cd ~/down/gdb6.8/gdb/gdbserver

          ./configurehost=armlinux target=armlinux

          CC=armlinuxgcc make

          將當前目錄下的gdbserver拷貝到目標板文件系統的/bin目錄下,以備交叉調試用。

          ② 編譯安裝交叉調試器gdb,運行如下命令:

          cd ~/down/gdb6.8

          ./configure target=armlinux prefix=/home/popeye/buildtools/armlinux/

          注意,這里的prefix的值必須填寫絕對路徑,而不能用“ ~”來替代用戶路徑/home/popeye,否則會提示prefix路徑賦值錯誤。然后運行:

          make

          這個過程中,可能會出現圖2所示的錯誤。

          出現這種情況的原因是,編譯規則中選擇了警告選項“Werror”。它會將所有的警告轉變為錯誤,而且出現的有關“getwd”函數的提示信息表明,這里編譯器檢測到的應該是一個“警告”,而不是真正的語法錯誤。所以,需改正編譯選項:

          cd~/down/gdb6.8/gdb

          gedit Makefile

          注意,此處的Makefile是在執行完上述的make命令后才產生的,在最初的代碼包里不含有這個文件。對文件的145行進行修改,去掉WERROR_CFLAGS的賦值,即將“145 WERROR_CFLAGS = Werror”修改成“145 WERROR_CFLAGS =”。然后:

          cd ~/down/gdb6.8

          make

          make install


          圖2 make過程中的錯誤提示

          最后進入~/buildtools/armlinux/bin中,發現交叉調試器armlinuxgdb已經存在了。

          2.4 在中實現對嵌入式前的準備

          在嵌入式軟件開發過程中的習慣做法是: 首先,在PC機上編譯調試程序,如果在PC機上運行正常,再進行交叉編譯。然后,將軟件移植到目標板上,如果在目標板上出現bug,再用交叉調試器armlinuxgdb進行調試。

          簡而言之,對嵌入式軟件的調試過程包含兩個部分:PC機上調試部分和嵌入式平臺上的調試部分。在這個過程中,可能既用到PC機上的調試器gdb,又用到交叉調試器armlinuxgdb,而對應的是同一個源代碼程序和運行在不同平臺上的兩個可執行程序。同時涉及兩個調試器轉換的問題,但vimgdb只能對字符串為“gdb”的系統命令進行調用。

          下面,將這個比較困難的問題簡單化:

          ① 編輯適用的Makefile,控制生成對應不同平臺的可執行程序:

          cd ~/test

          其中,test.c為實驗代碼,Makefile為編譯規則,我們簡單編寫Makefile的內容為:

          testpc: test.c

          gcc g Wall o testpc test.c

          testem: test.c

          armlinuxgcc g Wall o testem test.C

          當執行“make testpc”命令時,就會生成可運行在PC機上的可執行程序;執行“make testem”則生成可運行在嵌入式目標板上的可執行程序。

          ② 修改vimgdb的快捷鍵映射腳本,在中實現PC調試器與交叉調試器的輕松切換。

          首先,針對vimgdb只能對字符串為“gdb”的系統命令進行調用,做如下的工作:

          mv /usr/bin/gdb /usr/bin/gdbpc

          cd ~/buildtools/armlinux/bin

          ln s /usr/bin/gdbpc gdb

          由于已經將~/buildtools/armlinux/bin添加到了系統路徑里面,所以執行完上述操作后,在任何時候,運行“gdb”命令時,真正運行的調試器取決于這里gdb所連接的調試器。



        關鍵詞: VIM 軟件調試 S3C2440

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 江油市| 特克斯县| 伊金霍洛旗| 沁水县| 西藏| 安岳县| 鸡西市| 谷城县| 武山县| 平乐县| 茂名市| 凤山县| 正安县| 罗甸县| 湟源县| 若尔盖县| 丘北县| 施秉县| 黄冈市| 凤阳县| 买车| 开平市| 柳河县| 班戈县| 金华市| 岳普湖县| 灵山县| 滦南县| 三台县| 天津市| 长沙市| 聂荣县| 沧州市| 德阳市| 吐鲁番市| 鄂托克旗| 永嘉县| 南昌县| 茶陵县| 荔浦县| 南澳县|