1、boot的功能
与STM32的常规芯片的boot有所区别,该芯片的boot可以选择是从LINFlex启动或者FlexCAN启动,并不能从RAM启动。对应关系如下图:
在设计的时候,PA[9]默认为弱下拉,默认从Flash启动。上电检测的流程图也很详细,如下,
SPC560有5个boot区域,占用的内存不同,可以任意使用一个,另外一个当作备用。如下图
如果想使用boot功能,首先需要在相应寄存器中写入正确的数据,如下图。实际使用是不用关心寄存器地址,在发送程序时首先发送的数据就会被放置到这些位置。如果硬件设置为了从LIN或者CAN启动,但是并没有设置BOOT_ID,系统会进入static模式,即系统程序不会正常运行。但是我有一个疑问,如果进入static模式,内核应该会运行,那可以重新烧写程序吗?
设备可以设置5个boot区域,因此允许使用备用boot,启动时查找顺序为从前到后。系统多一个冗余,一旦某一个boot崩溃程序可以运行另外的显示程序。
芯片有程序保护功能,可以使用公用密码和私人密码。如果密码对应不上,就不允许访问和重新烧写程序。私人密码存放在NVPWD0 and NVPWD1寄存器中,而公用密码存放在NVSCC0 and NVSCC1寄存器中。如果被锁定以后,只有两种方式可以访问程序和烧写程序——JATG和串行boot的方式。