为了能够让更多的工程师朋友了解多核异构处理器,飞凌嵌入式特别推出了【玩转多核异构】专题,帮助大家解决在多核异构处理器的开发过程中遇到的问题。点击进入文章上方的“合集”即可阅读往期全部内容,【玩转多核异构】专题持续更新中,立即订阅关注吧。
引言
有很多研究单片机的小伙伴在面对多核异构处理器时,可能会对多核的启动流程感到困惑——因为不熟悉GCC编程和GDB调试,所以也无法确定多核异构处理器的程序是否能像单片机那样方便地编写和仿真。本篇文章,小编就将以飞凌嵌入式的OKMX8MP-C开发板为例,为大家介绍多核异构处理器M核程序的启动配置、程序编写和实时仿真的过程。
飞凌嵌入式OKMX8MP-C开发板所搭载的NXP i.MX8M Plus处理器具备强悍的性能,集成4个主频最高可达1.8GHz (工业级主频为1.6GHz)的Arm Cortex-A53多任务核和1个Cortex-M7实时核,不管是对数据的高速吞吐、处理,还是复杂的人机交互界面处理,都能从容应对。
01
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)重启OKMX8MP-C开发板,按空格键进入uboot命令行控制台。
(2)输入”1”进入uboot控制台。并按顺序依次输入以下命令,修改uboot环境变量,使其能加载M核程序。
(1)我们可以使用IAR软件对飞凌M核软件开发包的程序进行编译,在工程目录/IAR/debug目录下将生成*.bin文件,将文件名称改为:forlinx_m7_tcm_firmware.bin ;
(2)使用串口Xmodem,网络FTP,SCP,U盘,TF卡等多种方式,都可以将forlinx_m7_tcm_firmware.bin 从电脑拷贝至核心板/run/media/mmcblk2p1/目录下,在Linux调试串口输入 sync 命令同步 ;
(3)给OKMX8MP-C开发板重新上电,A核uboot会加载M核程序,通过M核串口即可看到程序的打印信息。
02
M核程序编写
许多使用单片机的用户习惯通过Keil或IAR这类IDE工具对程序进行编写;由于此类软件易用性较差,因此很多时候我们都会再使用VScode等编辑器进行代码的编辑开发;但此类编辑器对程序编译、烧写和仿真时又相当不方便,大家在选择工具时可能会很头痛。
这里小编推荐使用VScode对代码编写和修改,使用IAR对程序编译、下载、仿真。
软件打开后在菜单栏单击文件--打开文件夹,选择SDK下对应的例程,即可完成代码的编写和修改工作。
03
M核程序仿真
飞凌嵌入式OKMX8MP-C开发板支持JTAG对M核的硬件仿真功能,用户可在IAR中通过JTAG设置断点,实时查看和修改各变量,全速运行或单步运行程序等功能,提高程序排查错误时的效率。
(1)在Segger官网下载J-LINK驱动,并在电脑上安装程序,IDE工具选择IAR;
(2)由于i.MX8M Plus是推出时间相对较短的芯片,因此需要更换Segger目录下8mp的J-LINK驱动;
(3)如果使用的NXP官方的 SDK还需要更换启动文件。
文章评论(0条评论)
登录后参与讨论