1,dsp的片内flash最小擦除单位是一个扇区4k吗,能再小点吗?
2.现在做在线升级,原本做法是在程序中末尾添加一个固定的标记,随程序一起烧录进去,标示程序升级完成。现在有人建议说让我在程序校验并写入完成后,单独在flash中写一个升级完成的标记,每次上电boot去查询这个标记然后决定是否跳转。这种方式存在一个缺陷,就是烧录器烧录的程序都跑不起来,因为烧录器烧录时flash中升级完成的标记会被清除掉。必须在线升级一次才能正常运行。针对这个问题是否有好的解决办法。
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.
1,dsp的片内flash最小擦除单位是一个扇区4k吗,能再小点吗?
2.现在做在线升级,原本做法是在程序中末尾添加一个固定的标记,随程序一起烧录进去,标示程序升级完成。现在有人建议说让我在程序校验并写入完成后,单独在flash中写一个升级完成的标记,每次上电boot去查询这个标记然后决定是否跳转。这种方式存在一个缺陷,就是烧录器烧录的程序都跑不起来,因为烧录器烧录时flash中升级完成的标记会被清除掉。必须在线升级一次才能正常运行。针对这个问题是否有好的解决办法。
换个思路:所谓的升级成功标志本身就是你代码的一部分,存在在特定flash地址的特定数据,不需要你在升级完成后或在升级过程中再去设置。
检测到这些数据正常就执行正常的程序,检测到不正常就等待程序升级。
”方法2的话在调试器场景中,程序加载不会更新标记,但是可以创建一个代码,在你加载完程序后为你更新标记。不知道这点你能否完成?“我现在的困难就是不知道如何创建这个代码。可以提供一些资料吗?
你说的这种方法我认为是行不通的的。烧录器烧完程序后,并不运行,而是要断电重新上电,然后程序先进入boot检查升级成功的标志位以后再跳到APP区运行。也就是说,现在必须是BOOT区程序确实在线升级成功后再去更新升级成功的标志。而烧录器烧完后如何自动更新那个升级标志才是关键。