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

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

3天内不再提示

IAR开发环境下双核工程联调的三种方法

恩智浦MCU加油站 来源:恩智浦MCU加油站 作者:恩智浦MCU加油站 2022-06-16 09:13 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前段时间写过一篇《双核i.MX RT1170之单独在线调试从核工程的方法》,那篇文章介绍了如何单独在线调试从核工程的方法。 当我们把主核工程和从核工程分别调稳定之后,接着便开始需要双核联调,验证双核通信交互相关功能。今天就给大家介绍下 IAR 开发环境下双核工程联调的三种方法:

一、测试准备

首先需要准备好测试环境,包含必要的软件和硬件,痞子衡的环境如下:

集成开发环境:IAR EW for Arm v9.10.2,点此下载

软件开发包:SDK_2.11.0_MIMXRT1170-EVK(Toolchain要包含IAR),点此下载

软件驱动:J-Link driver v7.56b,点此下载

硬件工具:J-Link Plus调试器

硬件开发板:MIMXRT1170-EVK (Rev.C),含板载 DAP-Link 调试器

我们知道 i.MX RT1170其实主从核是在Fuse里可配的,我们就以默认配置(Cortex-M7 为主,Cortex-M4 为从)为例来介绍。

二、在IAR下调试

2.1 通用办法:双核工程无关联,调试器分别加载第一种方法就是单纯借助外部调试器来做加载,主核工程和从核工程之间无依赖关系。我们选择 SDK 包里如下两个 hello_world 普通工程来做测试:

主核工程:SDK_2.11.0_MIMXRT1170-EVKoardsevkmimxrt1170demo_appshello_worldcm7iar

从核工程:SDK_2.11.0_MIMXRT1170-EVKoardsevkmimxrt1170demo_appshello_worldcm4iar

首先将hello_world_demo_cm7 工程(选择 flexspi_nor_debug build)调试起来(菜单栏 Download and Debug 按钮),断点停在 main 即可。然后继续将 hello_world_demo_cm4 工程(选择 debug build)也调试起来(菜单栏 Download and Debug 按钮),过程很顺利,接下来在两个工程下可以分别单步或者设断点进行调试。

Note1: 调试顺序不一定非要主核工程在先,从核工程在后,调换顺序一样可以,但是后调试的工程复位类型必须选 Core 复位(建议两个工程均选择这种复位)。

Note2: 调试从核工程 hello_world_demo_cm4 需借助《双核i.MX RT1170之单独在线调试从核工程的方法》 一文里的脚本激活从核,并且脚本里不要挂起主核。

Note3: 对于J-Link调试器,双核工程分别调试没有问题;但是对于DAP-Link调试器,当第一个工程正在调试时,第二个工程无法直接调试(会提示找不到可用的 DAP-Link 调试器)。

8d856024-ed0f-11ec-ba43-dac502259ad0.png

下面将两个hello world 工程主函数稍稍修改了一下,打印出不同内容,并且增加了一些延时,从结果来看,两个核都在正常跑。 不过这里要提醒一句,i.MX RT1170内部大部分外设对于两个核都是共享的,建议合理分配资源,尽量不要像本次测试这样,两个核都通过同一个UART来打印信息(除非代码里刻意做了资源共享设计)。

8da095ba-ed0f-11ec-ba43-dac502259ad0.png

2.2 专用方法:双核工程无关联,IAR多核组件加载

第二种方法依然是借助外部调试器来做加载,主核工程和从核工程之间还是无需依赖关系。

不过这一次我们要借助IAR软件里自带的多核组件,具体设置在工程选项 Debugger/Multicore 里面,在这里填上另外一个核工程(也叫 Partner 工程)文件(.eww)路径以及 build 即可,然后点击菜单栏 Download and Debug 按钮,IAR 会自动完成全部加载工作并返回给用户两个工程的调试界面:

Note1: 多核组件的设置既可以在主核工程里,也可以在从核工程里。我们既可以从主核工程开始调试,也可以从从核工程开始调试。

Note2: 多核组件仅仅是自动去打开 Partner 工程完成下载调试,并不包含从核激活功能,因此从核工程还是需要保留从核激活脚本。

Note3: 多核组件功能仅在 DAP-Link 调试器(或者 I-Jet)下有效,在 J-Link 调试器下不适用。

8dc8e54c-ed0f-11ec-ba43-dac502259ad0.png

2.3 通用方法:双核工程有关联,主核加载从核

前两种方法本质上都是借助调试器完成从核工程加载的,其实除了调试器,我们也可以利用主核工程里的代码来加载从核,步骤都在《双核i.MX RT1170之Cortex-M7与Cortex-M4互相激活之道》 一文里,我们以 SDK 包里如下两个 hello_world 多核例程来做测试:

主核工程:SDK_2.11.0_MIMXRT1170-EVKoardsevkmimxrt1170multicore_exampleshello_worldcm7iar 从核工程:SDK_2.11.0_MIMXRT1170-EVKoardsevkmimxrt1170multicore_exampleshello_worldcm4iar

在多核示例里,从核工程选项 Output Converter / Output 里会指定生成 hello_world_cm4.bin,然后主核工程选项 Linker /Input 里会输入hello_world_cm4.bin 的路径,这样主核工程直接把从核可执行机器码当作源文件数组,用于后续复制加载从核程序(具体代码在主核工程 hello_world_core0.c 文件里)。

8df0fcd0-ed0f-11ec-ba43-dac502259ad0.png

多核示例主要是为了展示双核通信交互,而本文主要介绍双核调试,因此我们可以将原始工程里关于 MCMGR 相关代码全部去掉(主核工程代码里要添加从核激活语句),主核工程里多核组件的设置也去掉。

Note1: 此方法不依赖从核工程的激活脚本,因为激活工作在主核工程代码里做掉了。

Note2: 此方法适用 J-Link 调试器,不适用 DAP-Link 调试器,原因与 2.1 节 Note 3 类似。

两个工程修改完之后,先调试主核工程(菜单栏 Download and Debug 按钮),跑到从核激活语句全部执行完毕,然后再调试从核工程(菜单栏 Attach to Running Target 按钮),至此也可以愉快地进行双核调试。

审核编辑 :李倩

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

    关注

    5

    文章

    415

    浏览量

    38675
  • 调试器
    +关注

    关注

    1

    文章

    329

    浏览量

    25211

原文标题:双核i.MX RT1170之在线联合调试双核工程的三种方法(IAR篇)

文章出处:【微信号:NXP_SMART_HARDWARE,微信公众号:恩智浦MCU加油站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    容辉物天启 TQN2 开发板|无网通信快速上手指南

    +接线 开发板:供电7-18V,对外接口有一路RS232接口和+3.3V TTL串口 数传:供电9-36V,对外接口为RS232/RS485 注意:电源需要输出能力强,保证设备稳定运行。软件模式:三种任选
    发表于 03-25 15:33

    在MCUXpresso for VS Code中调用JLINK Script的三种方法

      对于MCU开发者来说,VS Code凭借轻量、跨平台、高可扩展等优势,已经成为日常编码的神器。然而长期以来,很多人只能把VS Code当“编辑器”使用,真正编译、下载、调试MCU代码时,仍不得不切回到Keil、IAR等传统IDE。
    的头像 发表于 03-02 09:27 3200次阅读
    在MCUXpresso for VS Code中调用JLINK Script的<b class='flag-5'>三种方法</b>

    瑞萨RL78/F22 MCU基于IAR开发环境创建触摸应用样例工程

    创建触摸样例工程 使用QE for Capacitive Touch开发触摸应用 触摸和LED闪烁演示 本文基于以下开发环境 软件运行环境
    的头像 发表于 01-19 09:33 6828次阅读
    瑞萨RL78/F22 MCU基于<b class='flag-5'>IAR</b><b class='flag-5'>开发</b><b class='flag-5'>环境</b>创建触摸应用样例<b class='flag-5'>工程</b>

    嵌入式中的浮点型数据转换为字节类型的三种方法

    什么是浮点数 浮点数是指一既包含小数又包含整数的数据类型。 浮点型变量分类 浮点型分为单精度(float型)和精度(double型)。浮点型变量使用定义。如下: float a; // 声明
    发表于 01-07 06:28

    瑞萨RL78/F25 MCU基于IAR开发环境创建触摸应用样例工程

    瑞萨RL78/F25 MCU基于IAR开发环境创建触摸应用样例工程
    的头像 发表于 01-05 14:59 9113次阅读
    瑞萨RL78/F25 MCU基于<b class='flag-5'>IAR</b><b class='flag-5'>开发</b><b class='flag-5'>环境</b>创建触摸应用样例<b class='flag-5'>工程</b>

    请问CW32芯片的三种工作模式是什么?

    CW32芯片的三种工作模式是什么?
    发表于 12-26 06:48

    【乾芯QXS320F开发板试用】乾芯QXS320F280049开发板试用报告(一):开发环境搭建与工程创建

    QX-IDE的工具链(编译器、链接器)配置正确,工程路径设置无误。 五、 总结与下一步计划 本次试用成果: 成功安装并熟悉了乾芯QX-IDE的开发环境。 正确创建了针对QXS320F280049芯片的
    发表于 12-15 15:02

    瑞萨RL78F2x系列MCU在三种开发环境的选项字节与安全ID设置方法

    不同的开发环境,设置方法也各不相同。本文将手把手教你如何在主流的CS+for CC、e2studio和IAR Embedded Workbench中完成这两项重要配置。
    的头像 发表于 12-11 16:33 4910次阅读
    瑞萨RL78F2x系列MCU在<b class='flag-5'>三种</b><b class='flag-5'>开发</b><b class='flag-5'>环境</b><b class='flag-5'>下</b>的选项字节与安全ID设置<b class='flag-5'>方法</b>

    如何在 IAR Embedded Workbench for ARM 开发环境中启用可配置数据闪存并设置大小?

    如何在 IAR Embedded Workbench for ARM 开发环境中启用可配置数据闪存并设置大小?
    发表于 08-26 07:49

    在 Keil / IAR 开发环境的 Debug 模式,用户是否可以在空闲 ru 期间立即添加新的断点?

    在 Keil / IAR 开发环境的 Debug 模式,用户是否可以在空闲 ru 期间立即添加新的断点
    发表于 08-21 07:56

    MEMS中的三种测温方式

    在集成MEMS芯片的环境温度测量领域,热阻、热电堆和PN结原理是三种主流技术。热阻是利用热敏电阻,如金属铂或注入硅的温度电阻系数恒定,即电阻随温度线性变化的特性测温,电阻变化直接对应绝对温度,需恒流源供电。
    的头像 发表于 07-16 13:58 1899次阅读
    MEMS中的<b class='flag-5'>三种</b>测温方式

    六相永磁同步电机串联系统控制的两种方法分析研究

    /simulink环境,分别用这两种方法对两台电机串联系统的运行特性进行仿真研究。当其中一台电机转速、负载变化时,分析两种方法另外一台电
    发表于 06-10 13:09

    介绍三种常见的MySQL高可用方案

    在生产环境中,为了确保数据库系统的连续可用性、降低故障恢复时间以及实现业务的无缝切换,高可用(High Availability, HA)方案至关重要。本文将详细介绍三种常见的 MySQL 高可用
    的头像 发表于 05-28 17:16 1439次阅读

    从Keil MDK到IAR EWARM:通过工程迁移实现项目资产的更好管理

    对于需要统一开发环境或涉及多核架构(如Cortex-A/R)的项目,越来越多的用户选择从Keil MDK迁移到IAR EWARM。这就会面临着需要将之前的Keil MDK工程迁移到
    的头像 发表于 05-08 09:03 1480次阅读
    从Keil MDK到<b class='flag-5'>IAR</b> EWARM:通过<b class='flag-5'>工程</b>迁移实现项目资产的更好管理

    精选好文!噪声系数测量的三种方法

    本文介绍了测量噪声系数的三种方法:增益法、Y系数法和噪声系数测试仪法。这三种方法的比较以表格的形式给出。 在无线通信系统中,噪声系数(NF)或者相对应的噪声因数(F)定义了噪声性能和对接
    发表于 05-07 10:18