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

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

3天内不再提示

【老法师】多核异构处理器中M核程序的启动、编写和仿真

飞凌嵌入式 ? 2025-08-13 09:05 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

引言

有很多研究单片机的小伙伴在面对多核异构处理器时,可能会对多核的启动流程感到困惑——因为不熟悉GCC编程和GDB调试,所以也无法确定多核异构处理器的程序是否能像单片机那样方便地编写和仿真。本篇文章,小编就将飞凌嵌入式的OKMX8MP-C开发板为例,为大家介绍多核异构处理器M核程序的启动配置、程序编写和实时仿真的过程

wKgZPGib4pGAHG3OABWCJAq3EMY642.png

飞凌嵌入式OKMX8MP-C开发板所搭载的NXP i.MX8M Plus处理器具备强悍的性能,集成4个主频最高可达1.8GHz(工业级主频为1.6GHz)Arm Cortex-A53多任务核和1个Cortex-M7实时核,不管是对数据的高速吞吐、处理,还是复杂的人机交互界面处理,都能从容应对。

一、M核程序启动

NXP i.MX8M Plus处理器的M核是无法单独启动的,必须由A核uboot加载,因此飞凌嵌入式基于这款处理器打造的OKMX8MP-C开发板也是默认不开启M核的,需要修改uboot下的环境变量,配置M核自启动。这样每次A核启动后,uboot会加载/run/media/mmcblk2p1/目录下的forlinx_m7_tcm_firmware.bin文件,M核启动后会完成内核初始化,并由资源域0变为资源域1,再将时钟、外设、内存等资源初始化,就可以完成程序的轮转运行了。

1. uboot环境变量加载M核

(1)重启OKMX8MP-C开发板,按空格键进入uboot命令行控制台。

wKgZPGib4tKAPsTwAAUooi_0Q6k126.png

(2)输入”1”进入uboot控制台。并按顺序依次输入以下命令,修改uboot环境变量,使其能加载M核程序。

wKgZO2ib4umAQaYEAAIjZ3zw55Y854.png

2. 下载M核程序

(1)我们可以使用IAR软件对飞凌M核软件开发包的程序进行编译,在工程目录/IAR/debug目录下将生成*.bin文件,将文件名称改为:forlinx_m7_tcm_firmware.bin ;

wKgZPGib4xCAL5WNAAPBb3-ewXo609.png

(2)使用串口Xmodem,网络FTP,SCP,U盘,TF卡等多种方式,都可以将forlinx_m7_tcm_firmware.bin 从电脑拷贝至核心板/run/media/mmcblk2p1/目录下,在Linux调试串口输入 sync 命令同步 ;

(3)给OKMX8MP-C开发板重新上电,A核uboot会加载M核程序,通过M核串口即可看到程序的打印信息。

二、M核程序编写

许多使用单片机的用户习惯通过Keil这类IDE工具对程序进行编写;由于此类软件易用性较差,因此很多时候我们都会再使用VScode等编辑器进行代码的编辑开发;但此类编辑器对程序编译、烧写和仿真时又相当不方便,大家在选择工具时可能会很头痛。

VScode

VScode是微软推出的一款跨平台的编辑器,能够在windows、Linux、iOS等平台上运行,通过安装插件可以让这个编辑器变成一个编译器。软件打开后在菜单栏单击文件--打开文件夹,选择SDK下对应的例程,即可完成代码的编写和修改工作。

三、M核程序仿真

飞凌嵌入式OKMX8MP-C开发板支持JTAG对M核的硬件仿真功能,用户可实时查看和修改各变量,全速运行或单步运行程序等功能,提高程序排查错误时的效率。

1. 安装JTAG

(1)在Segger官网下载J-LINK驱动,并在电脑上安装程序;

(2)由于i.MX8M Plus是推出时间相对较短的芯片,因此需要更换Segger目录下8mp的J-LINK驱动;

(3)如果使用的NXP官方的 SDK还需要更换启动文件。

2. 硬件链接

飞凌嵌入式OKMX8MP-C开发板JTAG接口采用标准线序,用户可通过20pin 2.54间距转10pin 1.27间距的JTAG转接板和10pin1.27 间距的连接线与J-LINK连接,注意J-LINK 1脚要和开发板JTAG 1 脚对应。

wKgZO2ib44eAT7QdAAdqJd_EOws081.png

3. 硬件仿真

(1)用户将程序编译完成后,将执行程序放入

核心板/run/media/mmcblk2p1/目录下,因为硬件仿真是将SDK包的程序加载到内存执行,所以要仿真的程序和核心板中的forlinx_m7_tcm_firmware.bin可不是同一个;

(2)点击仿真按钮或快捷键Ctrl+D,进入仿真界面,可正常设置断点、监测变量、单步和全速执行、复位等操作;

(3)如果需要查看freeRTOS任务调度情况,在工程处右击,选择OptionS菜单,Debugger-Plugins界面中勾选FreeRTOS and OpenROTS。

wKgZPGib48yAWOFjAARsq0GLO5w674.png

4. 串口打印

飞凌嵌入式OKMX8MP-C开发板除了支持JLink硬件仿真外,应用程序中还可通过PRINTF函数向M核串口输出打印信息,了解程序运行过程。

wKgZPGib49-AUxccAAJtGMvs0MA084.png

好啦,以上就是小编为大家带来的基于OKMX8MP-C开发板的M核程序的使用方法,是不是感觉和单片机的开发一样简单又方便呢?

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

    关注

    5161

    文章

    19783

    浏览量

    319614
  • NXP
    NXP
    +关注

    关注

    61

    文章

    1357

    浏览量

    190223
  • MPU
    MPU
    +关注

    关注

    0

    文章

    423

    浏览量

    50113
  • 多核异构
    +关注

    关注

    0

    文章

    21

    浏览量

    5548
  • NPU
    NPU
    +关注

    关注

    2

    文章

    335

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    多核异构AM通信过程

    目前域控项目有的采用S32G这类多核异构的芯片,转载一篇分析下多核异构A
    的头像 发表于 10-31 11:09 ?1962次阅读
    <b class='flag-5'>多核</b><b class='flag-5'>异构</b><b class='flag-5'>中</b>A<b class='flag-5'>核</b>与<b class='flag-5'>M</b><b class='flag-5'>核</b>通信过程

    多核处理器设计九大要素

    和性能。怎样继承和发展传统处理器的成果,直接影响多核的性能和实现周期。同时,根据Amdahl定理,程序的加速比决定于串行部分的性能,所以,从理论上来看似乎异构
    发表于 04-13 09:48

    多核处理器的优点

    多内核是指在一枚处理器中集成两个或多个完整的计算引擎(内核),多核处理器是单枚芯片(也称为“硅”),能够直接插入单一的处理器插槽
    发表于 06-20 06:47

    创龙带您解密TI、Xilinx异构多核SoC处理器间通讯

    负责使数据可用于设备。设备由一个或多个计算单元组成。比如,在TI AM5728异构多核SoC处理器,每个C66x DSP都是一个计算单元。?OpenCL运行时,一般包含如下两个组件:
    发表于 09-08 09:39

    多核处理器启动的基本原理是什么?如何实现呢

    看出,信箱寄存机制需要处理器轮询,所以通信效率不高,在休眠/唤醒这类不频繁的操作还可以,如果是比较频繁的间通信就不适用了,要采取中断机制。以上是
    发表于 06-07 16:41

    看看一个多核处理器系统是如何启动

    看出,信箱寄存机制需要处理器轮询,所以通信效率不高,在休眠/唤醒这类不频繁的操作还可以,如果是比较频繁的间通信就不适用了,要采取中断机制。以上是
    发表于 07-19 15:00

    MPU进化,多核异构处理器有多强?

    秒即可传输完成,数据传输效率提升数十倍!同时还避免了串行总线易受EMC干扰的问题,提高了数据传输稳定性,简化了应用编程,可满足用户快速开发的需求。以上就是关于多核异构处理器A
    发表于 11-21 09:45

    【玩转多核异构处理器对共享外设和资源的调配方法

    多核异构CPU,多个内核就如同多个大脑,而外设和内存等资源就如同手足,那么多个大脑该如何控制手足才能保证它们正常有序地运行呢?以NXP i.MX8M Plus
    发表于 02-07 15:46

    基于OKMX8MP-C板的多核异构处理器对外设和内存资源的使用方法

    多核异构CPU,多个内核就如同多个大脑,而外设和内存等资源就如同手足,那么多个大脑该如何控制手足才能保证它们正常有序地运行呢?以NXP i.MX8M Plus
    发表于 02-21 15:05

    多核异构-M程序启动编写仿真

    文章,小编就将以飞凌嵌入式的OKMX8MP-C开发板为例,为大家介绍多核异构处理器M程序
    发表于 02-21 16:08

    多核异构处理器对共享外设和资源的调配方法

    多核异构CPU,多个内核就如同多个大脑,而外设和内存等资源就如同手足,那么多个大脑该如何控制手足才能保证它们正常有序地运行呢?以NXP i.MX8M Plus
    发表于 03-10 11:54

    探究一种新的可配置处理器异构多核线程级动态调度模型

    本文针对基于可配置处理器异构多核结构,提出一种新的线程级动态调度模型。此类异构多核系统每个
    的头像 发表于 04-27 18:20 ?2417次阅读

    MPU进化,多核异构处理器有多强?AM通信过程解析

    数据传输效率低,这将严重影响产品的性能;而如果采用高速并口,则占用管脚多,硬件成本将会增加。为解决这一痛点,各大芯片公司陆续推出了兼具AM多核
    的头像 发表于 11-21 14:42 ?1497次阅读
    MPU进化,<b class='flag-5'>多核</b><b class='flag-5'>异构</b><b class='flag-5'>处理器</b>有多强?A<b class='flag-5'>核</b>与<b class='flag-5'>M</b><b class='flag-5'>核</b>通信过程解析

    【玩转多核异构M程序启动编写仿真——飞凌嵌入式

    基于OKMX8MP-C开发板的M程序启动编写仿真的使用方法
    的头像 发表于 02-10 17:54 ?1292次阅读
    【玩转<b class='flag-5'>多核</b><b class='flag-5'>异构</b>】<b class='flag-5'>M</b><b class='flag-5'>核</b><b class='flag-5'>程序</b>的<b class='flag-5'>启动</b>、<b class='flag-5'>编写</b>和<b class='flag-5'>仿真</b>——飞凌嵌入式

    【玩转多核异构】飞凌嵌入式AM6254核心板M程序启动编写仿真

    通过飞凌嵌入式FET6254-C核心板来详细介绍AM6254处理器M程序启动配置、程序
    的头像 发表于 03-31 14:27 ?2524次阅读
    【玩转<b class='flag-5'>多核</b><b class='flag-5'>异构</b>】飞凌嵌入式AM6254核心板<b class='flag-5'>M</b><b class='flag-5'>核</b><b class='flag-5'>程序</b>的<b class='flag-5'>启动</b>、<b class='flag-5'>编写</b>和<b class='flag-5'>仿真</b>