why 為什么要搭建此開發(fā)環(huán)境?
- 在linux環(huán)境下開發(fā)可以利用shell命令實(shí)現(xiàn)對(duì)文件的批處理
- 偉大的程序員應(yīng)該都用類unix系統(tǒng)!
- 可以實(shí)現(xiàn)對(duì)底層編譯技術(shù)的了解,以便于更好的掌握嵌入式技術(shù)
- 通用性,采用開源工具,從底層開發(fā)項(xiàng)目,可以不受制于特定廠商的ide工具.可以實(shí)現(xiàn)通用架構(gòu)!
what 開發(fā)環(huán)境長(zhǎng)啥樣?
在linux下進(jìn)行嵌入式技術(shù)開發(fā)的意思是采用通用,開源的編譯工具,實(shí)現(xiàn)對(duì)項(xiàng)目的開發(fā).
主要用的工具鏈為:
- 編程平臺(tái)為ubuntu 22.04(VSCODE)
- 編譯工具 arm-none-eabi-gcc/cl2000(TI C2000的編譯器)
- 調(diào)試工具 openocd以及rm-none-eabi-gdb(尚不支持Ti Tms320x)
需要使用到的技術(shù)有:
- arm-none-eabi-gcc的編譯指令,x86平臺(tái)的gcc指令差別不大
- makefile技術(shù),用于一鍵編譯,生成hex/bin文件
- openocd命令,用于鏈接實(shí)物開發(fā)板,可以做簡(jiǎn)單的調(diào)試工作.而且可以在不擦除代碼的情況下,進(jìn)行代碼調(diào)試(比廠商給的ide強(qiáng)的多).但是只能做匯編語(yǔ)言的操作,打斷點(diǎn)很麻煩.
- rm-none-eabi-gdb可以基于openocd的基礎(chǔ)上進(jìn)行c代碼的調(diào)試,操作空間比較大.
how 如何安裝軟件?
- 由于編譯環(huán)節(jié)涉及較多arm-gcc命令,因此尚未采用手寫makefile的形式進(jìn)行編譯,而是采用stm公司的stm32cubeMX自動(dòng)生成的makefile.后期可以嘗試手寫試試.
- 安裝openocd可以參見(jiàn)此文章進(jìn)行搭建,基本可以復(fù)現(xiàn)使用.linux下開發(fā)stm32一 ,linux下開發(fā)stm32二 .
- 安裝好openocd后,使用一下命令可能會(huì)報(bào)錯(cuò).
rm-none-eabi-gdb test.elf
error message:libncurses.so.5 is not on apt-get anymore.
此時(shí)需要使用下列命令安裝組件
sudo add-apt-repository universe
sudo apt-get install libncurses5 libncurses5:i386
- 采用此文章辦法可以進(jìn)行基本運(yùn)行使用GDB調(diào)試你的工程
(gdb)target remote localhost:3333
(gdb)monitor reset
(gdb)monitor halt
(gdb)load #此命令必須使得當(dāng)前工作空間為.elf的目錄下
- 參加此篇文章也可以了解更多arm gdb指令
- 按住減號(hào)鍵'-'可以在命令行中顯示斷點(diǎn)執(zhí)行情況