nuttx实战项目:多路串口合并功能之二编译以及烧录代码

在 STM32F407VET6 上移植 NuttX 并成功运行

版本确认

由于我们手上的主板是 STM32F407VET6,首先需要确认 NuttX 是否已有对应的支持。于是尝试搜索:

kelland@HP-Desktop-PC:~/nuttx_workspace/nuttx$ grep "STM32F407VE" -r ./
./arch/arm/include/stm32/chip.h:#elif defined(CONFIG_ARCH_CHIP_STM32F407VE)  /* LQFP-100 512Kb FLASH 192Kb SRAM */
./arch/arm/src/stm32/Kconfig:config ARCH_CHIP_STM32F407VE
./arch/arm/src/stm32/Kconfig:    bool "STM32F407VE"
./arch/arm/src/stm32/Kconfig:       If the STM32F407VE is chosen, the Flash configuration would be

结果发现并没有对应的板级配置。于是退而求其次,搜索更宽泛的关键字:

kelland@HP-Desktop-PC:~/nuttx_workspace/nuttx$ grep "STM32F407V" -r ./

发现以下板子使用了 STM32F407V 系列芯片:

  • stm32f4discovery
  • omnibusf4
  • stm3240g-eval
  • olimex-stm32-p407
  • mikroe-stm32f4
  • clicker2-stm32

通过对比芯片手册可以知道:

stm32f407ve vs vg

结论:选择 STM32F407VG 的工程,烧录到 STM32F407VE 板子上是可行的,只要镜像不超过 512KB 就不会有问题(后续需要修改存储相关配置,这里先埋个坑)。

根据经验,选择 stm32f4discovery 作为参考板更合适 —— 它是 ST 官方开发板,用户群体大,社区也比较主流。


版本编译

配置工程:

kelland@HP-Desktop-PC:~/nuttx_workspace/nuttx$ ./tools/configure.sh stm32f4discovery:nsh

配置完成后,执行编译:

kelland@HP-Desktop-PC:~/nuttx_workspace/nuttx$ make -j8

编译过程会生成 nuttx.binnuttx.hex 等镜像文件。


烧录固件

使用 OpenOCD + ST-LINK 烧录:

sudo openocd -f interface/stlink.cfg -f target/stm32f4x.cfg \
    -c "program nuttx.bin 0x08000000 verify reset exit"

输出结果(关键部分):

** Programming Started **
Info : device id = 0x0009a413
Info : flash size = 1024 kbytes
** Programming Finished **
** Verify Started **
** Verified OK **
** Resetting Target **
shutdown command invoked

说明烧录成功 ✅


验证运行

defconfig 文件确认控制台串口:

路径:boards/arm/stm32/stm32f4discovery/configs/nsh/defconfig

CONFIG_USART2_SERIAL_CONSOLE=y

对应引脚定义在 board.h

/* USART2: 
 * STM32F4 Discovery 没有板载串口,但将 Console 映射到 PA2 (TX) 和 PA3 (RX)
 */
#define GPIO_USART2_RX  GPIO_USART2_RX_1   /* PA3 */
#define GPIO_USART2_TX  GPIO_USART2_TX_1   /* PA2 */

因此 PA2 → TXPA3 → RX,接到 USB-TTL 模块即可。

连接串口工具(例如 picocom):

picocom -b 115200 /dev/ttyUSB0

得到输出:

NuttShell (NSH) NuttX-12.11.0-RC0
nsh> 
nsh> ls
/: 
 dev/
 proc/
nsh> 

至此,成功在 STM32F407VET6 上运行了 NuttX 🎉


小结

  1. STM32F407VE 没有直接对应的 BSP,但可以使用 STM32F407VG 工程。
  2. 使用 stm32f4discovery 作为参考板是最佳选择。
  3. 烧录成功后,串口 Console(USART2,PA2/PA3)可以进入 NSH Shell。

下一步可以继续探索驱动移植、存储配置修改以及应用开发。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值