Other Parts Discussed in Thread: C2000WARE
我将程序下载到Flash中,我希望程序在运行的情况下,可以对程序数据所在的Flash区域进行擦除和重写,完成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.
我将程序下载到Flash中,我希望程序在运行的情况下,可以对程序数据所在的Flash区域进行擦除和重写,完成Flash中程序数据的替换,并能成功运行替换的程序数据。请问一下这是可能实现的吗?
你好,可以实现,就是会比单独的擦除扇区麻烦很多,要调用flashAPI函数。具体的你可以看一下flash API的使用指南以及例程:
C:\ti\c2000\C2000Ware_4_01_00_00\libraries\flash_api\f2833x\28335
我尝试过,程序在运行过程中,对程序所在的Flash区域进行擦除,程序会直接终止,开发板停止运行,怎样能够保持程序数据被擦出后还能够正常运行了?
奥,不好意思没看仔细。你是要在程序运行的情况下擦除程序所在的flash扇区的话我确实没有这样操作的经验,因为flashAPI函数是搬移到ram运行的,我不确定搬移到ram后是否还需要保留flash中的程序才能运行。
这个问题我会咨询一下其他工程师后回复你。
你好,这边确认,因为FlashAPI本身是必须要从flash搬移到ram中运行的,所以运行期间是可以擦除整个flash的。