会员登录 - 用户注册 - 设为首页 - 加入收藏 - 网站地图 恩智浦共享Zephyr调试技巧!

恩智浦共享Zephyr调试技巧

时间:2025-05-21 07:10:12 来源:锐评时讯 作者:生活 阅读:465次

前面几期中,咱们侧重给咱们介绍了怎样建立Zephyr开发环境,以及怎样增加自己的运用代码。今日让咱们开端一个新的篇章:Zephyr调试技巧以及介绍Ozone进行Zephyr的调试共享。

Zephyr调试技巧。

printk调试法。:经过运用prink来打印一些辅佐调试信息,操作简略,适合于根底的profiling,可是可能会导致时序问题,尤其是针对在中止上下文的处理中。还有针对于logging体系,zephyr供给了不同的装备选项,用户可以根据需要进行装备。

https://docs.zephyrproject.org/la‍。te。st/services/logging/index.html。

“IO” Toggle。: 经过调用Zephyr的G。PI。O API,经过调查引脚的翻转状况进行调试。

源码级Debug。:虽然Zephyr自身没有调试IDE的支撑,但因为Zephyr构建体系终究会生成elf格局的文件,咱们就可以现有调试东西进行调试。

运转虚拟环境。:因为Zephyr对POSIX API的支撑,使得Zephyr源码其实可以运转在例如PC端,那么就可以让咱们直接在PC端进行运用的开发,无需下载到方针板上。

测验封闭优化。:因为编译器优化,往往源代码次序会被从头排序,导致单步调试的困难,咱们可以经过封闭优化来处理:

CONFIG_NO_OP。TI。MIZATIONS=y。

不过,有时咱们会发现封闭优化后,某些可以运转的程序会忽然呈现hardfault。最大问题可能是因为封闭了优化选项,导致某些代码的栈运用量增加触发栈溢出反常。一般来说,咱们可以经过增加体系栈或是中止栈的巨细来处理:

CONFIG_MAIN_ST。AC。K_SIZE=8192CONFIG_SYSTEM_WORKQUEUE_STACK_SIZE=8192CONFIG_ISR_STACK_SIZE=2048。

经过打印。ram。或是。rom。占用状况对代码进行剖析。

west build -t ram_reportwest build -t rom_report。

源码调试东西引荐:

a)原生支撑:

b)。 MCU。XPresso VS Code插件:

https://github.com/。nxp。-mcuxpresso/vscode-for-mcux/wiki/Debug。

c) Cortex-Debug插件:

https://marketplace.visualstudio.com/items?itemName=marus25.cortex-debug。

d) 其他,例如Segger Ozone等。

运用Ozone进行Zephyr调试。

Ozone是个啥?先来个简略的毛遂自荐吧:

Ozone是一款由SEGGER公司开发的专业。嵌入式。运用程序调试和功用剖析东西,Ozone是一个独立的图形调试器,支撑多种。单片机。架构,包含。Arm。Cortex-M、Rene。sas。RX、NXP。 LPC。等。Ozone可以与任何为其输出生成Elf/Dwarf调试信息的东西链一同运用,例如GCC、Clang、ARM、IAR等编译器。

Ozone供给了丰厚的调试功用,如程序下载、单步履行、变量更新窗口、。汇编。指令调试、芯片寄存器检查、断点设置等。

1. 源码级调试:Ozone支撑C/。C++。源码级的调试和汇编指令的调试,用户可以在调试过程中直接检查和修正源代码。

2. 多文件格局支撑:Ozone支撑ELF或兼容文件(*.elf, .out, .axf)、Motorola S-record文件(.srec, .mot)、。Intel。hex文件(.hex)以及二进制数据文件(.bin)。

3. 实时终端和Flash Breakpoints:Ozone可以直接运用J-Link内置的实时终端和无限Flash断点功用。

4. 脚本化项目文件:Ozone供给脚本化的项目文件,答应用户经过脚本主动装备和履行调试使命。

5. 自定义界面:Ozone的用户界面彻底可定制,用户可以根据需要调整布局和功用。

6. 体系变量修正器:Ozone供给了一个体系变量修正器,便利用户修正和调试体系等级的变量。

7. 高档内存窗口:Ozone的内存窗口支撑保存、加载和填充操作,用户可以便利地检查和修正内存内容。

开发环境:

Ozone适用于多种开发环境,可以在Windows、。Linux。、macOS等平台上运转。

集成东西:Ozone一般与J-Link调试器合作运用,但也可以与其他支撑SWD和JTAG调试的硬件调试器一同运用。

总的来说,Ozone是一款功用强大且灵敏的嵌入式运用程序调试和功用剖析东西,适用于各种杂乱的调试场景。虽然在某些方面存在一些缺乏,但其丰厚的功用和高度的可定制性使其成为。嵌入式开发。者的重要东西之一。

接下来让咱们看看怎样新建一个Ozone调试工程,并增加咱们的Zephyr.elf,详见下面小。视频。

为了可以更好的支撑Zephyr OS的调试,咱们还需要在工程装备文件中增加Zephyr调试插件,翻开.jdebug尾缀的Ozone工程文件,增加如下内容到OnProjectLo。ad。函数中:Project.SetOSPlugin("ZephyrPlugin");

至此,咱们就完成了Ozone的悉数装备作业,信任咱们有了Ozone之后,都能称心如意!

NXP。

恩智浦致力于打造安全的衔接和根底设施处理方案,为才智日子保驾护航。

内容来源:https://havascm.com/app-1/ettoday,http://chatbotjud.saude.mg.gov.br/app-1/chatroulette.

(责任编辑:最新热点)

    系统发生错误

    系统发生错误

    您可以选择 [ 重试 ] [ 返回 ] 或者 [ 回到首页 ]

    [ 错误信息 ]

    页面发生异常错误,系统设置开启调试模式后,刷新本页查看具体错误!