-
兄弟的bootloader做的咋样了,按现在急需寻求参考啊呵呵,能否提供些代码或资料,多谢了
-
hlx3012 兄弟和版主,你好,现在自己写的SCI boot 出现了点问题,因为上位机不是我做的,我参照TI的bootloader来做的,在SCI boot()有这样一条语句:
if (SCIA_GetWordData() != 0x08AA) return FLASH_ENTRY_POINT;
那是不是意味着上位机在适当的时候必须发送0x08AA下来呢?
后来与编写上位机软件的人确认后,该工程师说上位机不发送0x08AA。
那我就纳闷了,为什么之前通过跳线来调用固化好的bootloader可以成功烧录,而我自己写的却成功不了,找不到问题的原因,还望你们指点一些需要特别注意的地方。
现在的问题是可以连接成功,但是出现解密失败的问题,上位机有发专门的程序下来解密的,诶,定位不了问题啊,纠结
-
谢谢二位的回复。现在自己写了一个SCI load,希望问题能尽快解决
-
首先,再次感谢hlx3012的不吝赐教。
我现在的做法是在主循环中定时一定时间后或者一个外表时间触发后直接跳转到地址0x3FFF63处执行SCI_Boot()函数,而不是直接调用SCI_Boot()函数,因为我不知道该如何调用。这样的话个人感觉从原理上将就可以不用跳线来选择串口烧录模式,就可以实现串口烧录了。
但是试验后发现串口烧录不成功,问题的原因可能在于0xFFF63并不是SCI_Boot()的地址,这个地址是我在TI的boot rom源码的.map文件中看到的。
还望hlx3012指点迷津。接下来我就照你说的先看看FLASH_API呵呵。之前接触的都是32位的freescale平台,对dsp不太熟。
再次感谢!
-
谢谢hlx3012兄弟,现在的问题是我不知道从何着手来写这个程序,比如像你说的上电后就运行1分钟的bootload,具体如何实现呢,有没有相关的例程或文档?是不是在我的用户程序中调用BootRoom里面的InitBoot()函数呢,就像上电复位后自动调用一样?如果是的话,程序该怎么写,是不是要更改cmd文件什么的,我好迷茫啊。还望你赐教,感激不尽!
-
相当不错,谢谢了
-
:) 好好看看