目前我写boot是刷写hex文件,但是此hex文件,刷写长度
for(i=0, u32Index = Bzero_Sector6_start;
(u32Index < (Bzero_Sector6_start + WORDS_IN_FLASH_BUFFER));
i+= 8, u32Index+= 8)
{
oReturnCheck = Fapi_issueProgrammingCommand((uint32 *)u32Index,Buffer+i,
8, 0, 0, Fapi_AutoEccGeneration);
此函数很奇怪,必须从起始地址开始以最小单位8个字节偏移,刷写长度WORDS_IN_FLASH_BUFFER必须也是8的倍数。
但是生成的hex文件,就不规整了
:2052D20076484F47000676228F05D22E1AC40002761A0006FE041E44A8427625FF69FE84ED
:1C52E2000006FE029641F4410CE1FE82000676256F0076256F009A010006000670
:2052F000000100C700000000000100200033009052C400080010FFF0528C00084CB90008E2
其中1C52E2,因为长度刷的不是8的倍数。补全后,下面一行2052F0,就刷不进去了,因为起始位置不是8的倍数。而且连续地址为什么一行补不满的,还不连续
真不知道hex文件怎么刷写?
而且对其方式必须是ALIGN(4),那么生成的hex文件的每行的起始地址都不对(即:内存是2字节形式)。
不知怎么解决?感觉dsp还是不好用
Susan Yang:
请问您现在是何种boot模式?是否有查看过TRM:www.ti.com/…/spruii0b.pdf
的 5.8.1 Boot Data Stream Structure?
user6365229:
回复 Susan Yang:
目前已搞定了