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路径下的可执行文件)。

 

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值