Hello,
我已在 OTA Image File中增加 Header,
但我發現使用Test Tool 編譯出來的.bleota檔案的結尾會有多出一段代碼
編譯前
S21003F6E010100A0301020401FFFFFFFFE5
編譯後
1010 0a03 0102 0401 00f0 2000 0000 e0ff
ffff ffff ffff ffff ffff ffff ffff ffff
ffff ffff ffff ffff ffff ffff ff1f 00f1
0200 0000 c11d
從0401後的代碼 不曉得是從何而來的
感謝
是有什麼地方我沒有注意到嗎? 謝謝!
Solved! Go to Solution.
1 ff可能是填充字节,S210的10是后面数据占16字节,从image转换到srec时候,剩下的最后的数据可能不够16字节,就用0xff凑,再转成带有otap头尾的image时候就不需要了
2 尾部数据是TLV格式,T占2字节,L占4字节,bitmap大小就是2+4+32=38,crc大小就是2+4+2=8,合起来是46字节
3 crc是校验除了自己以外(最后8字节之前)的所有数据
用test tool的时候,下面有个override sector bit map这个也会写入image的,还有校验值,这个遵循TLV(type-length-value),以crc为例子,f100是type说明下面是校验,后面是4个字节的length指定crc值长度,就是2,最后2个字节是校验值
你好,
在上次留言中的圖1
S21003F6E010100A0301020401FFFFFFFFE5
在01020401後的 "FF FF FF FF" 並沒有被編譯在圖二中得原因為何呢?而是直接 + Bitmap 的 "00 F0"
另外文件中的 Sector Bitmap Sub-element 敘述為32Bytes, Image File CRC Sub-element 2Bytes,
但在 "01020401" 後方 增加了46Bytes 的原因為何呢?
最後CRC的
00f1 0200 0000 c11d
"0200 0000 c11d" 是如何計算的?
CRC (C11D)的計算範圍 為 Header(第0Byte) 到哪個地方結尾呢?
謝謝~
1 ff可能是填充字节,S210的10是后面数据占16字节,从image转换到srec时候,剩下的最后的数据可能不够16字节,就用0xff凑,再转成带有otap头尾的image时候就不需要了
2 尾部数据是TLV格式,T占2字节,L占4字节,bitmap大小就是2+4+32=38,crc大小就是2+4+2=8,合起来是46字节
3 crc是校验除了自己以外(最后8字节之前)的所有数据