ubuntu20.04 stm32开发笔记---之开发环境搭建
在Ubuntu 20.04上进行STM32微控制器的开发,首先需要搭建一个适合的开发环境。这里不依赖于任何集成开发环境(IDE),而是采用命令行工具,这通常给开发者提供更大的灵活性和控制权。以下是详细的步骤: 1. **安装GNU Arm编译器**: 从ARM官方网站下载适用于Linux的GNU Arm工具链,例如`gcc-arm-10.3-2021.07-x86_64-arm-none-eabi.tar.xz`。解压缩文件后,将其复制到一个适当的目录,如`/opt/`。然后,通过编辑`~/.bashrc`文件,将编译器的路径添加到系统路径中,例如`export PATH=$PATH:/opt/gcc-arm-10.3-2021.07-x86_64-arm-none-eabi/bin`。这使得你可以通过命令行访问该工具链。 2. **安装ST-Link工具**: ST-Link是用于STM32芯片编程和调试的工具。下载`stlink-1.7.0`源代码,解压并进入源代码目录。执行`make release`和`make debug`构建项目,然后使用`sudo make install`进行安装。确保在 `/etc/udev/rules.d/` 目录下有正确的udev规则,并用`sudo udevadm control --reload-rules`和`sudo udevadm trigger`更新规则。如果遇到`libstlink.so.1`找不到的错误,使用`sudo ln -s /usr/local/lib/libstlink.so.1.7.0 /usr/lib/libstlink.so.1`创建软链接来解决。 3. **生成目标文件**: 编译源代码后,使用`arm-none-eabi-objcopy`工具将`.elf`文件转换为`.bin`或`.hex`文件。例如,`arm-none-eabi-objcopy -O binary miniblink.elf miniblink.bin`将生成`.bin`文件,`arm-none-eabi-objcopy -O ihex basics.elf basics.hex`则生成`.hex`文件。 4. **烧录固件**: 使用`st-flash`工具将`.bin`文件烧录到开发板的指定地址,例如`st-flash write miniblink.bin 0x8000000`。 5. **解决GDB问题**: 如果在运行`arm-none-eabi-gdb`时遇到`libncursesw.so.5`或`libpython2.7`找不到的问题,可以通过运行`sudo apt-get install libncursesw5`和`sudo apt-get install libpython2.7`来安装缺失的库,确保GDB可以正常工作。 这个过程建立了一个基本的STM32开发环境,包括了编译、链接、生成目标文件、烧录固件以及调试所需的所有组件。通过这样的配置,开发者可以直接在命令行中编写、编译、调试和烧录STM32项目,实现了高度自定义的开发流程。不过,对于初学者或更复杂的项目,使用像STM32CubeIDE这样的集成开发环境可能更方便。