• 190查看
  • 0回复

[芯片硬件] 单片机启动分析(下)多核单片机的启动

[复制链接]


该用户从未签到

发表于 25-4-2024 20:05:26 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


在前边我们讲解了单核单片机的启动,其实多核单片机的启动也很类似,只是在启动时先由主核(默认CORE0)启动,进而带动其他内核启动,下边我们以TC397为例来具体分析启动过程。TC397单片机上电后会先运行BootROM中的SSW(Startup Software)做一些初始化并根据用户配置(UCB)来选择启动方式,具体如下图所示。
单片机启动分析(下)多核单片机的启动w1.jpg

上图各个模块的基本作用如下:
Flash ramp-up:使能Flash,让Flash处于可以被操作(擦除/读/写)的状态;

ChipConfiguration:初始化平台寄存器;

RAM Initialization:根据UCB的配置(UCB16, PROCONPF)来决定初始化的内容,可选项如下所示:

单片机启动分析(下)多核单片机的启动w2.jpg

Select andexecute Startup Modes:会执行和校验UCB的BMHD的一些配置选项(错误的设置可能导致变砖!!!)。BMHD包含了是否使能锁步核监控(LSENAx)、使能LBIST(LBISTENA)和启动模式(HWCFG)及启动地址(STAD)等,具体如下:

单片机启动分析(下)多核单片机的启动w3.jpg

看到HWCFG -Start-up mode selection这个选项是不是有点熟悉?假如有STM32或者兆易GD32F4xx系列微控制器开发经验的同学应该知道,这个系列的微控制器可以通过BOOT0和BOOT1引荐来选择启动源,GD32的设置说明如下所示。
单片机启动分析(下)多核单片机的启动w4.jpg

当主FLASH存储器被选择作为引导源,从0x0800 0000开始的存储空间会被映射到引导存储空间。而TC397也可以由外部硬件配置(HWCFG)来选择启动方式,如下图所示。
单片机启动分析(下)多核单片机的启动w5.jpg

通常我们配置为11b(Interna start from Flash),此时启动的地址就是PFlash0_begin,即PFlash0的首地址!
LBIST execution:逻辑电路检测;

Lockstep configuration:根据用户配置选项是否打开锁步核监测;

ESR0 pin handling:释放ESR0 pin。ESR0 pin作为输出时可以向外提供一个复位的指示,告知外部MCU复位了。

Ending the SSW and Starting the User Code:跳转到用户代码。
由此可见,当我们HWCFG配置为11b时,从内部Flash启动,且启动地址为PFlash0(0xA0000000H(不带cache)或者0x80000000(带cache)),因此我们可以把用户启动函数放在这个位置。链接文件的配置如下(tasking编译器)。
单片机启动分析(下)多核单片机的启动w6.jpg

单片机启动分析(下)多核单片机的启动w7.jpg

启动函数只需要定义在.start段即可,因此启动函数的定义如下所示。
单片机启动分析(下)多核单片机的启动w8.jpg

至此,我们知道了从BootRom中的SSW执行完成后,首先运行了主核的启动函数(__StartUpSoftware).随后的启动流程如下图所示。
单片机启动分析(下)多核单片机的启动w9.jpg

快速发帖

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

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 27-12-2024 11:35 , Processed in 0.242799 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.