大家好、
我正致力于在79d 器件上使用自定义引导加载程序、其中涉及将获取的应用程序映像连接到片上闪存。
阅读 spru513p 指南后、我采用 Intel 格式作为要解析并传输到79d 的十六进制文件、启动固件将把派生的字节写入或写入闪存。
当从十六进制格式映像数据填充字节以写入闪存时、就会出现问题。 十六进制的某些行未满填充128位、最后部分行未归档。 根据2837xD 器件上 FlashAPI 指南 spnu629a、该指南指出:
Fapi_AutoEccGeneration – This mode will program the supplied data in Flash along with automatically generated ECC. The ECC is calculated for every 64-bit data aligned on a 64-bit memory boundary. Hence, when using this mode, all the 64 bits of the data should be programmed at the same time for a given 64-bit aligned memory address. Data not supplied is treated as all 1s (0xFFFF).
因此,我的解释是,如果十六进制数据中有未填充的字节,我应该填充全1 (例如 FF )。 以下是我从应用十六进制文件获取的一些示例行:
示例1 :140BA800003301000254880A10F0540A910A0000A80A000072
因此、根据 Intel 十六进制格式定义、不包括前8个十六进制数字(字节数、地址、类型)和后2个十六进制(CRC)、此行具有14即20字节、写入闪存的字节是 (以每128位(即8 * 16位十六进制)对下方的表示形式进行标记)
"0033 0100 0254 880A 10F0 540A 910A"
"0000 A80A 0000 FFFF FFFF FFFFFFFFF"
示例2 :1F0B8800061F22C029681A4AA8A5A4CDA6034A5A0622052EC4021A0625002500010606AF
该行具有1F、即31字节、因此我的解释是
"061F 22C0 2968 1A4A A8A5 A4CD A603 4A5A"
"0622 052E C402 1A06 2500 2500 0106 06FF"
带有背景颜色的 FF 是应该写入闪存的内容。
请不要麻烦详细的数字,我对 FF 填充部件的解释是否正确?
提前感谢您的建议。
此致、
魏