查看: 1138|回复: 1

[原创] RT1170 双核启动机制

[复制链接]

该用户从未签到

656

主题

6312

帖子

0

超级版主

Rank: 8Rank: 8

积分
20167
最后登录
2024-5-7
发表于 2021-7-27 11:36:45 | 显示全部楼层 |阅读模式
RT1170 双核启动机制

大话双核i.MXRT1170之Cortex-M7与Cortex-M4互相激活之道中,介绍了i.MX RT1170中的Cortex-M7作为主核如何激活从核Cortex-M4的步骤(如下图所示),具体可分解为以下3个步骤。

1) Cortex-M7(主核)加载从核App到CM4 ITCM里;

2) Cortex-M7(主核)激活Cortex-M4(从核);

3) Cortex-M4(从核)开始运行App代码;

2021-07-27_11-04-56.png

图 1

其中加载从核App方式分为两种:

  • 显式加载: 使用memcpy()函数;

  • 隐式加载: 类似于在RAM中初始化变量,如MCUXpresso IDE初始化中介绍的Data_section,BSS_Section


在SDK library中,对于不同的IDE/工具链,SDK通过宏CORE1_IMAGE_COPY_TO_RAM控制,采用不同的加载方式。MCUXpresso IDE使用的是隐式方式,而IAR、KEIL和GCC则采用显式方式, 即大话双核i.MXRT1170之Cortex-M7与Cortex-M4互相激活之道中所介绍的方法,那么隐式加载是如何实现的呢?

隐式加载方式

MCUXpresso IDE初始化中,小编介绍了MCUXpresso IDE的ResetISR()中断函数根据__data_section_table、__data_section_table_end、__bss_section_table、__bss_section_table_end以彼此相邻的三个变量(4个byte)为一组来分别提取数据拷贝源地址、数据拷贝目的地址及拷贝数据的字节量,从而实现Data_section,BSS_Section初始化,当然,使用同样的方式,Cortex-M7(主核)工程中的ResetISR()中断函数也可将从核App拷贝到指定目的地址,只要从核App的拷贝信息如图2所示排列。

4b2050a1-def0-409f-9fe8-5c9298cd8928.png

图 2

查看Map 文件

以SDK library中的evkmimxrt1170_freertos_message_buffers_cm7工程为例,打开其对应的Map文件,可发现从核App的拷贝信息其实是嵌在Data_section中,所以在ResetISR()中断函数内(具体代码如下所示)会像拷贝Data_section到指定RAM区域一样,将从核App拷贝到指定目的地址。

2021-07-26_18-30-03.png

图 3

  1. ~~~~~
  2.     // Copy the data sections from flash to SRAM.
  3.     while (SectionTableAddr < &__data_section_table_end) {
  4.         LoadAddr = *SectionTableAddr++;
  5.         ExeAddr = *SectionTableAddr++;
  6.         SectionLen = *SectionTableAddr++;
  7.         data_init(LoadAddr, ExeAddr, SectionLen);
  8.     }
  9. ~~~~~
复制代码

欢迎留言和我分享你的疑惑和见解 ,也欢迎收藏或转发


回复

使用道具 举报

  • TA的每日心情

    2021-7-12 10:20
  • 签到天数: 2 天

    [LV.1]初来乍到

    0

    主题

    4

    帖子

    0

    新手上路

    Rank: 1

    积分
    27
    最后登录
    2021-8-5
    发表于 2021-7-30 16:12:22 | 显示全部楼层
    666 最近正在用这个板子,楼主多出一点 双核协作的文章吧
    雨好大
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-5-8 08:51 , Processed in 0.124179 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表