0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Zephyr笔记:在STM32F429上运行HelloWorld

嵌入式那些事 来源:嵌入式那些事 2023-04-06 11:42 次阅读

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=180000000
CONFIG_ARM_MPU=n
CONFIG_CLOCK_STM32_HSE_CLOCK=25000000
CONFIG_CLOCK_STM32_PLL_M_DIVISOR=25
CONFIG_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源代码目录中,执行下述命令:

westbuild-pauto-bstm32f429i_disc1samples/hello_world

编译成功的输出信息如下:

62dd597a-d054-11ed-bfe3-dac502259ad0.png

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调试器,连接好串口线并且打开串口调试助手,然后执行下述命令将程序烧写到开发板中:

westflash--runnerjlink

程序下载成功之后,会在串口调试助手中打印出信息,如下图所示:

6303caa6-d054-11ed-bfe3-dac502259ad0.png

4、使用GDB调试程序

程序下载成功之后,执行命令:west debug --runner jlink(该命令会自动打开JLink GDB Server,不需要提前手动打开JLink GDB Server),可以使用GDB调试Zephyr,先前的镜像不能成功打印信息,我也是通过这个命令来调试Zephyr,最终定位时钟参数问题的。

631e8cf6-d054-11ed-bfe3-dac502259ad0.png

接下来的一篇文章,会讲述如何使用Eclipse来调试Zephyr,虽然也是使用的GDB,但是调试更加的方便,能够手动添加断点,添加观察的变量,随意切换文件,总之下面一篇文章很OK,敬请关注。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10442

    浏览量

    206557
  • WINDOWS
    +关注

    关注

    3

    文章

    3440

    浏览量

    87144
  • 编译
    +关注

    关注

    0

    文章

    615

    浏览量

    32392
  • STM32F429
    +关注

    关注

    0

    文章

    40

    浏览量

    10322
  • Zephyr
    +关注

    关注

    0

    文章

    15

    浏览量

    5889

原文标题:4、使用GDB调试程序

文章出处:【微信号:嵌入式那些事,微信公众号:嵌入式那些事】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32F429/STM32F439线提供了Cortex-M4内核

    STM32F429/STM32F439线提供了Cortex-M4内核(带浮点单元)180MHz下运行的性能,同时与STM32F405/
    发表于 08-04 07:01

    如何去调试STM32F429 + USB3300

    调试 STM32F429 + USB3300调试 STM32F429 + USB3300 工作HS模式调试 STM32F429 + USB3300 工作
    发表于 08-04 07:20

    STM32F429移植FreeRTOS

    STM32F429移植FreeRTOS一、环境Win10、Keil uVision5、STM32CubeMX、STM32F429IGT6二、准备工作2.1创建基于HAL库的STM32F429
    发表于 08-05 07:47

    STM32F429 学习GPIO

    STM32F429 学习GPIO,朋友们,今天又开始新的学习了,哈哈。让我们怀着激动地心,颤抖的手,继续看视频奋斗,记录,学习吧!好了,直接进入主题,拿干货!GPIO口用软件控制GPIO口是1还是0
    发表于 08-09 09:11

    STM32F429怎样去运行HelloWorld

    STM32F429IGT6(野火STM32F429挑战者 V2开发板)开发环境:Windows 7 64位这里选择的是Zephyr当前最新的Release版本2
    发表于 08-10 06:40

    把SQLite移植到STM32F429

    不知道自己是哪根筋搭错了还是怎么回事,一时心血来潮,突发奇想,决定把SQLite移植到STM32F429。在此记录一下过程,也确认一下此事可行。先说一下结果:移植后的SQLite可运行,可操作
    发表于 08-20 07:44

    stm32f429的轻量级算法运行时所用的内存空间要怎么得到呢?

    stm32f429跑了几个轻量级算法,相比较一下他们的性能,所以向研究下算法运行时占据的内存空间,这个内存空间要怎么得到呢
    发表于 03-14 10:38

    STM32F429使用外扩SDRAM运行程序的方法

    STM32F429使用外扩SDRAM运行程序的方法
    发表于 11-25 14:48 0次下载

    STM32F429中文手册

    STM32F429中文手册
    发表于 03-10 17:38 718次下载

    STM32F429开发板用户手册】第13章 STM32F429启动过程详解

    STM32F429开发板用户手册】第13章 STM32F429启动过程详解
    发表于 11-23 18:06 39次下载
    【<b class='flag-5'>STM32F429</b>开发板用户手册】第13章     <b class='flag-5'>STM32F429</b>启动过程详解

    STM32F429开发板用户手册】第1章 初学STM32F429的准备工作

    STM32F429开发板用户手册】第1章 初学STM32F429的准备工作
    发表于 12-04 13:51 20次下载
    【<b class='flag-5'>STM32F429</b>开发板用户手册】第1章 初学<b class='flag-5'>STM32F429</b>的准备工作

    STM32F429开发板用户手册】第8章 STM32F429的终极调试组件Event Recorder

    STM32F429开发板用户手册】第8章 STM32F429的终极调试组件Event Recorder
    发表于 12-04 14:06 16次下载
    【<b class='flag-5'>STM32F429</b>开发板用户手册】第8章 <b class='flag-5'>STM32F429</b>的终极调试组件Event Recorder

    STM32F429开发板用户手册】第19章 STM32F429的GPIO应用之按键FIFO

    STM32F429开发板用户手册】第19章 STM32F429的GPIO应用之按键FIFO
    发表于 12-05 15:21 14次下载
    【<b class='flag-5'>STM32F429</b>开发板用户手册】第19章 <b class='flag-5'>STM32F429</b>的GPIO应用之按键FIFO

    STM32F429开发板用户手册】第14章 STM32F429的电源,复位和时钟系统

    STM32F429开发板用户手册】第14章 STM32F429的电源,复位和时钟系统
    发表于 12-08 15:51 13次下载
    【<b class='flag-5'>STM32F429</b>开发板用户手册】第14章 <b class='flag-5'>STM32F429</b>的电源,复位和时钟系统

    STM32F429参考手册中文版

    STM32F429参考手册中文版
    发表于 01-26 13:48 0次下载