Part Number:TMS320F28377SOther Parts Discussed in Thread:UNIFLASH
你好,我写了bootloader程序和app程序,生成了两个hex文件。想将其合并成一个hex文件,通过uniflash直接进行烧录。需要对这两个hex文件如何处理?
我知道uniflash烧录时可以同时烧写两个hex文件,但是交给车间烧录时最好能合并成一个。
网上搜到资料说需要将第一个hex的最后一行:00000001FF删掉再复制第二个hex文件,但是我试了一下直接将两个hex文件复制到一起是可以进行烧录的,不知道这样操作是否会存在问题?
希望能得到回答。
另外在测试时发现,我自己瞎写了一个hex,在同一个地址0x80000写不同的数据,uniflash居然也能烧录成功。如下图所示,请问是什么原因?
Yale Li:
user5188513 说:00000001FF
这个是hex文件的结束标志;不删除能烧录的话,应该是烧录工具起的作用。建议你将两个文件都转换成bin格式,然后从烧录过的器件中将代码读取出来,比较一下,就可以排除是否存在问题。
user5188513 说:另外在测试时发现,我自己瞎写了一个hex,在同一个地址0x80000写不同的数据,uniflash居然也能烧录成功。
烧写完之后读0x80000的结果是什么?
,
user5188513:
1.我直接将两个hex文件复制到一起,通过uniflash烧录完成后。再在uniflash中重新添加bootloader的hex和app的hex,通过verify image校验出来没有问题。是否能确认复制起来的hex是正确的?
2.读0x80000的结果是第二行的数据。
这个是否和ECC功能有关?我关闭了uniflash里的Auto ECC Generation后烧录就报错,然后里面的数据就是第一行的数据了。
,
Yale Li:
1.不能。verify image是将uniflash选中的image文件和烧录到器件中的内容进行比较;而现在的问题是通过你所述的方式合成的image文件是不是我们想要的烧录文件。
2.ECC的用处不在这里。
我还是建议你比较一下bin
,
user5188513:
1.好的,我到时候对比一下bin文件
2.关于第二个问题,不知道到底是什么原因?
,
Yale Li:
1.好的;
2.我并不清楚uniflash内部是如何工作的,尤其是针对这种有冲突的非正常情况。这个问题大概率也不会得到答案。我们尽量避免这种情况的发生,对于解决这个问题来说,是比较经济高效的方式。
,
user5188513:
你好,我还想问一下。我在unfilash中关闭了Auto ECC Generation,然后烧写正常的程序,为什么程序会跑不起来?不知道能否提供ECC的相关中文文档。
,
Yale Li:
user5188513 说:不知道能否提供ECC的相关中文文档。
没有