全志芯片的魔术头是一段特殊的二进制数据,它放在启动代码的开头,用于告诉芯片如何加载和执行代码。魔术头的格式由全志的内部固化程序(BROM)定义,不同的芯片型号可能有不同的魔术头格式。魔术头一般包含以下信息:
-
魔术字(Magic Word):一个固定的值,用于标识魔术头的存在,例如
eGON
。 -
校验和(Checksum):一个32位的值,用于校验魔术头和启动代码的完整性。
-
跳转地址(Jump Address):一个32位的值,用于指定启动代码的执行入口。
-
长度(Length):一个32位的值,用于指定启动代码的长度。
-
保留(Reserved):一些保留的字节,用于存放一些额外的信息,例如芯片型号、启动模式等。
魔术头的作用是让芯片能够从不同的存储设备(如SPI Flash,SD卡,USB等)启动,而不需要修改启动代码本身。魔术头的生成和添加可以通过全志提供的工具或者第三方的工具来完成.