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