MPC5746C双核启动配置分析

      MPC5746C内部集成了一个BAF(Boot Assist Flash)小工具(代码)(这个有点像Bootloader),BAF主要用于管理多核CPU的启动,其原理是寻找特定地址的启动头,查看并根据启动头的配置信息来启动CPU内核。

启动头的地址如下所示:

 

启动头的配置结构如下所示:

 

启动头配置字节如下所示:

 

CPU编号与MPC5746C内核的对应关系如下所示:

 

 

 

 

 

 

项目实践:

       本工程主要分析AUTOSAR\MPC574XG_MCAL4_3_RTM_HF3_1_0_0 集成框架IntegrationFramework的启动配置。在其autosar_flash.ld文件中,定义了配置头的起始地址,如下所示:

在Vector_vle_core.s中,定义了启动头配置字节

这里虽然配置了CPU2(Z2)和CPU0(Z4)的复位向量,但RCW配置为只启动CPU0(Z4),如果要同时启动这两个CPU核,则要建立2个代码工程,其中CPU2(Z2)的工程不能有启动头的配置信息。调试代码时需要先烧写CPU2(Z2)的代码,然后再烧录CPU0(Z4)的代码。

       这里的CPU0(Z4)复位向量_start为Startup_vle.c中的StartupCode函数。

     在编译代码时,需要将MCAL的所有插件放置在同一个文件夹下包括IntegrationFramework_TS_T2D35M10I0R0),然后启动Windows命令窗口,cd进入到……plugins\IntegrationFramework_TS_T2D35M10I0R0\auxiliary\build中,用文本打开launch.bat,修改TRESOS_DIR、MAKE_DIR、GHS_DIR、PLUGINS_DIR、TRESOS_WORKSPACE_DIR的值来适配EB、Make和Demo路径,然后输入如下命令:launch.bat TOOLCHAIN=ghs MODE=SUPR CORE=0 DERIV=5746C来编译demo,在./bin/文件夹下将生成IntegrationFramework.elf文件(有条件记得用最新版本的编译器来调试,笔者曾经被旧版本的GHS给坑了,生成的elf加载到芯片中运行时有奇怪的现象发生,比如一直卡在if(…)判断语句中)。如果读者想要生成S19文件,可以使用 gsrec.exe ***.elf –o ***.S19 (其中gsrec.exe为ghs路径下的可执行文件)。

 

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 19
    评论
MPC5746是一款双核微控制器,可以同时使用两个核心来完成不同的任务。在配置双核启动时,需要做以下几个步骤: 1. 配置双核启动模式:在MPC5746中,双核启动模式可以通过MRCR寄存器的设置来配置。通过设置MRCR寄存器的BIT0,可以选择双核启动模式。如果BIT0等于0,则为单核启动模式,如果BIT0等于1,则为双核启动模式。 2. 配置启动程序:在双核启动模式下,需要配置两个核心的启动程序。在MPC5746中,启动程序可以通过IVPR(Interrupt Vector Prefix Register)和IVOR(Interrupt Vector Offset Register)来配置。IVPR寄存器指定了启动程序的起始地址,而IVOR寄存器指定了启动程序在启动向量表中的偏移量。需要配置两个IVPR和IVOR寄存器,分别对应两个核心的启动程序。 3. 配置启动向量表:在双核启动模式下,需要配置两个启动向量表。在MPC5746中,启动向量表可以通过IVPR寄存器来指定。需要配置两个IVPR寄存器,分别对应两个启动向量表。 4. 配置中断控制器:在双核启动模式下,需要配置两个中断控制器。在MPC5746中,中断控制器可以通过IVPR和IVOR寄存器来配置。需要配置两个IVPR和IVOR寄存器,分别对应两个中断控制器。 总的来说,配置双核启动需要对MRCR、IVPR、IVOR和中断控制器进行配置配置完成后,可以使用两个核心来完成不同的任务,提高系统的性能和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值