Zephyr笔记:在STM32F429上运行HelloWorld

zephyr版本号:2.2.0
开发板:stm32f429igt6(野火stm32f429挑战者 v2开发板)
开发环境:windows 7 64位
这里选择的是zephyr当前最新的release版本2.2.0进行说明的。
1、修改代码
前面文章的操作,虽然在windows下能够成功的编译stm32f429的工程,但是却不能在野火挑战者v2开发板上运行,因为zephyr代码中的stm32f429硬件和野火的外围硬件不一样(其实cpu也有一些差异)。主要体现在外部晶振,时钟的配置以及mpu上面(野火挑战者v2开发板使用的cpu是stm32f429igt6,不带mpu功能)。
进入到 boards/arm/stm32f429i_disc1 文件夹中,然后修改文件 stm32f429i_disc1_defconfig,需要修改的内容如下:
config_sys_clock_hw_cycles_per_sec=180000000config_arm_mpu=nconfig_clock_stm32_hse_clock=25000000config_clock_stm32_pll_m_divisor=25config_clock_stm32_pll_n_multiplier=360  
在 stm32f429i_disc1_defconfig 文件的末尾,添加如下的内容(该内容的含义是编译出的代码不进行优化,这样便于调试):
config_no_optimizations=y  
修改文件 board.cmake,需要修改的内容如下:
board_runner_args(jlink --device=stm32f429ig --speed=4000)  
2、编译helloworld应用
确定命令提示符的路径在zephyr2.2.0源代码目录中,执行下述命令:
west build -p auto -b stm32f429i_disc1 samples/hello_world  
编译成功的输出信息如下:
3、下载程序到开发板
确保windows中安装了jlink驱动,并且将jlink驱动的路径(jlink.exe所在的路径)添加到系统环境变量的path中。我这里安装的是jlink v6.48a,其路径为:c:program files (x86)seggerjlink_v648a。
如果没有将jlink驱动的路径添加到环境变量中,下载程序时会出现类似的错误:fatal error: required program jlink.exe not found; install it or add its location to path。
将开发板上电,连接好jlink调试器,连接好串口线并且打开串口调试助手,然后执行下述命令将程序烧写到开发板中:
west flash --runner jlink  
程序下载成功之后,会在串口调试助手中打印出信息,如下图所示:
4、使用gdb调试程序
程序下载成功之后,执行命令:west debug --runner jlink(该命令会自动打开jlink gdb server,不需要提前手动打开jlink gdb server),可以使用gdb调试zephyr,先前的镜像不能成功打印信息,我也是通过这个命令来调试zephyr,最终定位时钟参数问题的。
接下来的一篇文章,会讲述如何使用eclipse来调试zephyr,虽然也是使用的gdb,但是调试更加的方便,能够手动添加断点,添加观察的变量,随意切换文件,总之下面一篇文章很ok,敬请关注。


未成年人闯红灯抓拍打码问题引热议 还需避免“以违法治违法”
CCC工厂检查的要求理解要点
热敏打印头过热保护模块电路分解
高盛调降苹果iPhone销量预测_ iPhone需求降低?
Verizon携手合作伙伴,为企业创造更安全的5G应用
Zephyr笔记:在STM32F429上运行HelloWorld
基于无线传感器的个人区域网络
研究人员制造出直径近30厘米的光学超表面
小米为小爱同学5.0带来—伸缩式大光圈镜头技术
XV-3通用型无人直升机亮相,隆鑫通用计划开发无人机进军军用市场
首尔半导体下一代新型Micro LED量产就绪
车用功率元件新思路,满足车规为首要任务
音圈模组激光雷达芯片获第六届“铃轩奖”
工业智能网关BL110应用之二十三: 如何添加4G和WAN口采集的设备
国产智能手机黄金时代落幕 老烦恼与“芯”机遇
R&S公司的紧凑型宽带功放频率扩展到6GHz,满足EMC测试要求
卡位10纳米制程 台积电、汉辰积极部署抢商机
基于PICl6F676的太阳能控制器设计与应用
节能灯分类及节能灯的定义
全球碳纤维需求量统计及预测