完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
安装编译器
如果还没安装编译器的,先安装: sudo apt install gcc-arm-none-eabi sudo apt install gdb-arm-none-eabi sudo apt install binutils-arm-none-eabi 安装 cmake 和 libu*** CMake(版本大于 v2.8.7) Libu*** 1.0(版本大于 v1.0.9) cd stlink/ make make install 安装 stlink 下载开源的 STLink 驱动代码 git clone https://github.com/texane/stlink.git 编译、安装 cd stlink/makemake install 默认安装路径为 /usr/local/,可以根据需要指定安装路径,例如 make install DESTDIR=$HOME 安装成功后,系统增加了如下几个工具: 连接测试 刚好我手上有一块 STM32 NUCLEO-F411R,下面我们将利用它来做个简单的实验。 使用 USB 线连接开发板和电脑,执行 lsu*** 可以看到已经识别到 ST-LINK/v2.1 设备。 执行 st-info --probe 查看 STLink 设备信息。 编译 bsp 工程 前面我们已经下载好的 rt-thread-4.0.1 源码,进入 stm32f411-st-nucleo 的 BSP 目录,直接编译一下看看。 cd /bsp/stm32/stm32f411-st-nucleo/source ~/.env/env.shscons 编译不了,原因是交叉编译工具没有配置好。打开 rtconfig.py 文件,找到对应编译器选项中的 EXEC_PATH 变量,将其修改为本地编译器所在的目录,我这里是 /usr/bin。 执行 scons 构建工程,出现如下错误: 。..。.. /home/rudy/workspace_hd/Draft/RTTB/rt-thread-4.0.1/bsp/stm32/libraries/HAL_Drivers/drv_usart.c: In function ‘rt_hw_usart_init’: /home/rudy/workspace_hd/Draft/RTTB/rt-thread-4.0.1/bsp/stm32/libraries/HAL_Drivers/drv_usart.c:662:5: error: ‘for’ loop initial declarations are only allowed in C99 or C11 mode for (int i = 0; i 《 obj_num; i++) ^ /home/rudy/workspace_hd/Draft/RTTB/rt-thread-4.0.1/bsp/stm32/libraries/HAL_Drivers/drv_usart.c:662:5: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code scons: *** [/home/rudy/workspace_hd/Draft/RTTB/rt-thread-4.0.1/bsp/stm32/libraries/HAL_Drivers/drv_usart.o] Error 1 scons: building terminated because of errors. 很明显,因为代码中变量定义的风格是 C99 以上标准才支持的,所以需要为编译器指定 C99 或 C11 模式。打开 rtconfig.py 文件,在对应编译器选项中的 CFLAGS 变量末尾添加 -std=c99 参数。 重新执行 scons 命令,稍等片刻出现 scons: done building targets. 提示,表示编译成功。可以看到当前目录下多了 rtthread.elf 和 rtthread.bin 两个二进制文件。 下载测试 打开 applications/main.c 文件,在 main 函数中添加一行打印: int main(void) { int count = 1; /* set LED0 pin mode to output */ rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT); rt_kprintf(“nI am running RT-Thread in STM32 NUCLEO-F411RE.nn”); while (count++) { rt_pin_write(LED0_PIN, PIN_HIGH); rt_thread_mdelay(500); rt_pin_write(LED0_PIN, PIN_LOW); rt_thread_mdelay(500); } return RT_EOK; } 重新构建工程 接下来执行 sudo st-flash write rtthread.bin 0x8000000,将 rtthread.bin 文件烧写到板子的 0x8000000 地址。 看来烧写成功了! minicom 连接虚拟串口 我们还需要连接 STLink 虚拟串口,看看有没有打印出我们想要的信息。首先要确定设备节点,这里是 /dev/ttyACM0,然后执行如下命令进行设置: sudo minicom -s 选择 “Serial port setup”,设置串口设备为 /dev/ttyACM0,波特率 115200。 选择 “Save setup as…” 将配置命名为 stlink,该配置文件保存在 /etc/minicom/minirc.stlink。 退出,重新输入 minicom stlink 命令,即可打开 ST-LINK 虚拟调试串口。 看到我们想要的信息啦!这也表明我们在 Linux 下搭建的 STM32 开发环境 OK 了! |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1874 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1658 浏览 1 评论
1143 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
759 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1720 浏览 2 评论
1963浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
789浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
612浏览 3评论
628浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
590浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-11 20:29 , Processed in 0.845385 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号