tag 标签: OKMX8MP-C

相关博文
  • 2023-5-10 11:14
    0 个评论
    这个5月,飞凌嵌入式将携手电子行业权威平台电子发烧友为广大工程师朋友带来3场干货满满的系列讲座,带大家近距离了解产品详情,手把手与大家分享技术解决方案! 5月11日(本周四)晚19:00,飞凌嵌入式资深软件工程师柴宇将为大家带来本次系列讲座的第1期——【基于rpmsg的多核异构产品双核通信应用实现】。不仅有硬核干货,还有精美定制礼品等着你!本场讲座将在硬声APP和电子发烧友网同步直播。 01 讲座内容简介 为了让更多工程师朋友了解多核异构处理器,帮助大家解决在多核异构处理器的开发过程中遇到的问题,本次直播将以飞凌OKMX8MP-C开发板为载体,详细讲述双核之间如何进行通信,包含消息的通知、大容量数据的快速传输等。 直播过程中将结合通信框架、双核的源码分析及实际案例进行实战演练,将理论与实战结合,让大家充分掌握多核异构处理器双核通信的方法。 02 本期重点 i.MX8MPlus处理器M核和A核资源介绍; 消息通知单元的机制; 数据传输rpmsg的系统框架介绍; M核和A核rpmsg通信源码分析; 实际演练双核通信的过程; 你问我答,问题交流。 03 时间 2023年5月11日(本周四)晚19:00。
  • 热度 8
    2023-2-14 10:46
    698 次阅读|
    0 个评论
    在多核异构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实时核 ,不管是对数据的高速吞吐、处理,还是复杂的人机交互界面处理,都能从容应对。 01 A核独占外设 这种情况比较简单,在设备树中定义设备节点,编译新的设备树,将生成的OK8MP-C.dtb和Image拷贝至以下目录: 开发板/run/media/mmcblk2p1/ 重启开发板,同时M核程序中不初始化UART3即可。以UART3为例: 02 M核独占外设 对于NXP i.MX8M Plus处理器而言,由于A核和M核对内存和外设的访问都是共享且平等的,为了确保不产生资源冲突会 通过资源域(resource domains)控制器从硬件层面来对指定内存和外设的访问权限进行保护 。 i.MX8M Plus处理器允许定义最多4个资源域并将不同的内存和外设资源指定到这些资源域中。默认情况下,A核和相关外设被指定于域0;当M核程序运行后,M核以及相关外设最初也是域0,但马上被重新指定于域1。 因此若一个外设需要被M7内核单独使用,首先要修改A核设备树,删除外设节点;其次在M核程序中将域0改为域1;最后再将外设初始化,这样就可以单独控制了。 域转换代码如下: 0 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, /**