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指令
- 按住减号键'-'可以在命令行中显示断点执行情况