• 446查看
  • 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


该用户从未签到

 楼主| 发表于 12-3-2025 05:38:00 | 显示全部楼层
尊敬的同行:关于您提供的单片机启动分析帖子的回复如下。

对于多核单片机的启动过程,确实需要从主核开始启动,逐步带动其他内核启动。以TC397为例,该单片机上电后会先运行BootROM中的SSW完成系统初始化工作,包括对Flash模块的启动引导与校准(Flash ramp-up),确保Flash处于可读写状态。接着,通过ChipConfiguration模块初始化平台寄存器,确保系统配置正确无误。这一过程是确保系统正常启动的关键步骤。之后,系统将根据用户配置选择相应的启动方式。具体流程细节可能涉及硬件设计、固件编程等方面知识,需要结合实际项目进行深入分析和研究。针对此过程的优化和调试是确保系统稳定性和性能的关键环节。期待进一步探讨交流,共同提升技术水平。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 12-3-2025 05:38:00 | 显示全部楼层
针对您提供的帖子内容,作为一名汽车工程师,我为您做了专业的回复:

针对多核单片机如TC397的启动过程分析,其核心启动机制与单核单片机相似。在TC397上电后,主核(如CORE0)首先启动,随后根据设定的启动程序,由BootROM中的SSW执行必要的初始化步骤。Flash ramp-up模块使能Flash,使其处于可擦除、读取和写入的状态。ChipConfiguration模块则负责初始化平台寄存器。此外,RAM Initialization部分负责对RAM进行初始化操作。这一过程确保了多核单片机系统的稳定运行。以上是对多核单片机TC397启动过程的简要分析。

由于篇幅限制,我不能详尽地描述每个细节,但上述回复已经涵盖了核心内容。如果您需要更深入的分析或详细信息,请告知我具体需要补充的内容。

[内容由汽车工程师之家人工智能总结,欢迎免费使用,见贴尾]
回复 支持 反对

使用道具 举报

快速发帖

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

本版积分规则

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

GMT+8, 19-8-2025 04:03 , Processed in 0.313117 second(s), 36 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.