zoukankan      html  css  js  c++  java
  • zephyr移植到正点原子STM32F407探索者

    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
  • 相关阅读:
    nginx.conf文件
    本地apache 可以正常访问,lnmp服务器访问404错误
    PHP网站从Apache转移到Nginx后产生404错误的原因和解决办法
    CGI,FAST-CGI,PHP-FPM的区别
    Lnmp修改php.ini配置
    APACHE服务器出现No input file specified.的完美解决方案
    EXCEL常用函数详解
    chrome extensions
    C++使用OLE高速读写EXCEL的源码
    C++读写EXCEL文件OLE,java读写excel文件POI 对比
  • 原文地址:https://www.cnblogs.com/dwj411024/p/13058333.html
Copyright © 2011-2022 走看看