This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
TI工程师们,你们好!
最近在做F2810的CAN引导的Bootloader,我想问一下如果我把bootloader放入A扇区,应用程序想放入D扇区,请问应用程序的cmd文件应该怎么修改呢?
因为在cmd文件中CSM_RSVD、BEGIN 、CSM_PWL这三个储存空间总是连续的,并且BEGIN总是夹在另外两个中间,cmd还要求空间必须连续,要改BEGIN必须会改另外两个区间,而另外两个的空间又必须在FLASHA中,也就是说BEGIN也必须在FLASHA中,。这样就矛盾了,该怎么改呢?
谢谢!
首先,BEGIN只是两个单元的跳转地址,是固定不变的。我觉得跟CSM没什么关系,不用去管他们。
做bootloader的时候,我的做法是用两个工程,bootloader自己的工程,main, cmd, 初始化等,同理应用程序。区别就是bootloader把所有的代码都放到A扇区。
那问题就在入口地址分配给谁,而相应的另一个的入口又是如何?
芯片的上电入口地址是0x3F7FF6,如果你希望上电的时候,先进去bootloader, 那在bootloader的cmd中,则把BEGIN设为0x3F7FF6。那应用程序的BEGIN要设多少呢?假如是D扇区,那我建议可以直接设为
BEGIN : origin = 0x3EC000, length = 0x000002
FLASHD : origin = 0x3EC002, length = 0x003FFE
这样,如果bootloader要跳转到应用程序,则直接跳转到0x3EC000这个地址就可以了,用软件跳转你的方式。
反之亦然。
ERIC
CSM_RSVD : origin = 0x3F7F80, length = 0x000076 /* Part of FLASHA. Program with all 0x0000 when CSM is in use. */
BEGIN : origin = 0x3F7FF6, length = 0x000002 /* Part of FLASHA. Used for "boot to Flash" bootloader mode. */
CSM_PWL : origin = 0x3F7FF8, length = 0x000008 /* Pa
不要动他们,你只改BEGIN。
ERIC