首页 > 其他 > 详细

zephyr移植到正点原子STM32F407探索者

时间:2020-06-07 10:21:10      阅读:248      评论:0      收藏:0      [点我收藏+]

zephyr现在支持的板子越来越多,但都是官方出的demo板,国内很多人可能都是用的正点原子或野火的,手里也有一块F407探索者,所以就将zephyr移植到alientek探索者上来。说是移植,其实只是增加一下板型,zephyr支持STM32F4 discovery板,所以zephyr对F4的各种底层HAL驱动和操作系统层的driver的衔接都已经做好了,直接拿来用就好了,现在的工作只是在$(zephyr_base)/boards/arm/下添加alientek explorer的文件夹罢了,并根据板子外设(按键、LED灯、nor flash等)添加相应的dts文件就可以工作了。

 

在使用ninja flash向alientek stm32f407下载代码时,总是出现错误:

    Info : Stlink adapter speed set to 950 kHz
    adapter speed: 950 kHz
    Error: timed out while waiting for target halted
    TARGET: STM32F103CBTx.cpu - Not halted

按道理说不应该呀,因为用的另一块nucleo_f030r8就可以正常下载,并在eclipse上面调试。两块板子都是用的stlink-v2,唯一的区别就是nucleo-f030r8的stlink只有SWD口,而stm32f407 explorer的stlink还支持jtag,而在KEIL下,选择了stlink,默认是使用jtag的。难道是这个原因吗?找来4根杜邦线,按照SWD的引脚接线,再次下载发现还是报相同错误,看来不是这个问题。

经过网上多方查找,才找到最终的解决方式,如下:

我在$(zephyr_base)/boards/arm/下新建的stm32f407_Alientek_explorer文件夹是直接复制的stm32f4_disco中的内容,并将板型做了相应修改,并添加了按键和led灯等的dts,编译也并无错误,在stm32f407_Alientek_explorer/support目录下是对调试工具设置的文件openocd.cfg,打开该文件,发现该文件引用了board/st_nucleo_f4.cfg,同样都是f4系列,用st_nucleo_f4.cfg还是st_discovery_f4.cfg不会有什么影响,然后找到安装的openocd的目录,定位到board/st_nucleo_f4.cfg文件,打开该文件,将该文件的最后一行reset-config srsr_only修改为reset_config none,然后重新使用ninja flash下载,发现一切正常。该问题应该是openocd对stm32 f4系列的支持有问题导致的

source [find interface/stlink.cfg]

transport select hla_swd

source [find target/stm32f7x.cfg]

#reset_config srst_only
#将上面一行修改为如下一行,然后保存退出,重新下载即可
reset-config none

 

zephyr移植到正点原子STM32F407探索者

原文:https://www.cnblogs.com/dwj411024/p/13058333.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!