来源:飞凌嵌入式官网
在多核异构cpu中,多个内核就如同多个大脑,而外设和内存等资源就如同手足,那么多个大脑该如何控制手足才能保证它们正常有序地运行呢?
以nxp i.mx8m plus处理器的a核和m核为例,其实只有少部分外设被指定了属于哪个核,而大部分的外设都能被a核和m核同时使用。如下图所示:
这里我们通过飞凌嵌入式okmx8mp-c开发板上的uart3进行演示,同时编写a核和m核程序控制uart3打印信息,通过uart3将开发板与电脑链接,在电脑串口调试界面可以看到a核和m核同时输出了信息。
a核和m核同时输出信息
那么在实际应用中,当某个外设需要被指定的内核独占或被多核同时使用时,该如何合理安排时序才能避免外设输出异常呢?接下来,小编就以飞凌嵌入式okmx8mp-c开发板为例,将多核异构处理器对共享外设和资源的调配方法介绍给大家。
飞凌嵌入式okmx8mp-c开发板所搭载的nxp i.mx8m plus处理器具备强悍的性能, 集成4个主频最高可达1.8ghz(工业级主频为1.6ghz)的arm cortex-a53多任务核和1个cortex-m7实时核,不管是对数据的高速吞吐、处理,还是复杂的人机交互界面处理,都能从容应对。
1、a核独占外设这种情况比较简单,在设备树中定义设备节点,编译新的设备树,将生成的ok8mp-c.dtb和image拷贝至以下目录:
开发板/run/media/mmcblk2p1/
重启开发板,同时m核程序中不初始化uart3即可。以uart3为例:
2、m核独占外设对于nxp i.mx8m plus处理器而言,由于a核和m核对内存和外设的访问都是共享且平等的,为了确保不产生资源冲突会通过资源域(resource domains)控制器从硬件层面来对指定内存和外设的访问权限进行保护。
i.mx8m plus处理器允许定义最多4个资源域并将不同的内存和外设资源指定到这些资源域中。默认情况下,a核和相关外设被指定于域0;当m核程序运行后,m核以及相关外设最初也是域0,但马上被重新指定于域1。
因此若一个外设需要被m7内核单独使用,首先要修改a核设备树,删除外设节点;其次在m核程序中将域0改为域1;最后再将外设初始化,这样就可以单独控制了。域转换代码如下:
3、多核共享外设如果多核想共享某个外设,但在某段时间又需要独占,后续再释放;或者多核的开发人员不是同一人,为了避免出错,在自己的程序中强制独占某个核,是否可以实现呢?
答案是肯定的——使用rdc功能即可。rdc全程为resource domain controller,即资源域控制器,可以通过寄存器和信号量两种方式实现某个域对外设的独占和释放。
(1)寄存器rdc_pdapn
由于i.mx8m plus处理器最多支持4个域,因此对寄存器后8比特位写入不同数值,将允许相应的域对某个管脚和内存的读写使能,如禁止a核域0读写某个管脚,则设置寄存器为0xfc即可,后两个比特位为0,表示禁止域0读写此外设;其他六个比特位为1,表示允许从域1到域3读写此外设。
每个共享外设在rdc资源表中均有一个序号,用于区别其他外设,如uart3在rdc中定义如下:
krdc_periph_uart3 = 104u, /**< uart3 rdc peripheral */
在m核程序中可如下修改程序,实现m核独占uart3的目的。
修改程序验证,此时只有m核控制uart3打印信息。
仅m核输出信息
注意:因为在设备树中没有删除uart3,所以在a核启动内核解析设备树生成设备文件时,需对uart3操作。因m核程序中禁止a核的访问uart3,此时内核将无法正常启动。可以加10秒延时等待内核启动完成,也可在a核启动后,通过双核通信告知m核启动rdc外设独占。
(1)信号量rdcsema42rdc sema42是一个专门配合rdc功能的信号量,当某个域获取某个外设的sema42锁后,其他的域将无法访问此外设,只能等待域释放该外设锁,才能再访问。
rdc sema42数据锁的开启配置如下:
m核对uart3上锁,获取管脚的使用权:
m核释放uart3的rdc sema42锁,放弃管脚的使用权:
修改程序后验证,发现和rdc寄存器一样,m核上锁后获取uart3使用权,仅可独自发送,a核访问uart3会出错。释放sema42锁后,a核和m核就均能访问uart3了。
以上就是小编基于okmx8mp-c开发板为大家带来的多核异构处理器对外设和内存资源的使用方法,各位工程师小伙伴可以根据自己的需求灵活设置策略,以满足不同场景的需要。
EASYV1.00的基本原理
人工智能创作成果保护问题该如何解决
华为MDC智能驾驶平台过认证 有志成为汽车界新的供应商
CS5216方案 DP转HDMI1080P转接线的方案
认识电动车用镍氢动力电池
【玩转多核异构】处理器对共享外设和资源的调配方法-飞凌嵌入式
全球首个AI合成新闻主播亮相 运用了最新的人工智能技术
全自动电力变压器消磁机的用途及特点
一套手术机器人系统主要由哪些部分组成?
银川机场的航班全流程可视是如何做到的
移动电源之九条选购技巧
RS485总线防雷保护方案
锂电池充放电电路图
光纤照明技术应用新进展及前景分析
单片机短按、长按实现方法
加密货币将成为国家法币的避难所
Arm宣布推出拥有全新自动化引擎的物联网连接管理系统
晶科首席运营官离职,其股价反而逆势上涨
市场需求将推动我国服务机器人产业快速发展
安装中央空调前 还需要考虑这些问题