一个项目程序, 有很多文件组成, 如:
fun1.c
fun2.c
fun3.c
fun4.c
main.c
其中经常修改的也就是一个fun1.c, 调试时如果在RAM中调试, RAM不够大, 无法把程序全部LOAD到RAM中,那么只能每次烧录FLASH.烧录时间太长不方便.
有没有什么办法,把程序分块处理, 不改动的部分永久烧录在FLASH, 调试时只LOAD某个.C文件到RAM. 调试完毕后再把所有的程序再烧录一遍到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.
一个项目程序, 有很多文件组成, 如:
fun1.c
fun2.c
fun3.c
fun4.c
main.c
其中经常修改的也就是一个fun1.c, 调试时如果在RAM中调试, RAM不够大, 无法把程序全部LOAD到RAM中,那么只能每次烧录FLASH.烧录时间太长不方便.
有没有什么办法,把程序分块处理, 不改动的部分永久烧录在FLASH, 调试时只LOAD某个.C文件到RAM. 调试完毕后再把所有的程序再烧录一遍到FLASH?
据我所知应该不行,至少不太行。
因为用户程序都是烧写在flash上的,而flash的擦写只能按区来擦写。
但是由由于擦写是按分区来擦写的,所以我不知道有没有可能将不修改的部分写在一个分区,修改的一部分程序写在另一个分区,由此通过API函数来擦写需要修改的部分。
这点由于我对分区执行程序没这么深入了解过,所以我也不太清楚能否做到。。。
刚看了一下,你的问题是要在调试的时候只load部分.c程序。
这个说实话没有接触过,不能下定论说能否实现。但是个人感觉上即使能实现,也会很费劲。比如仿真都是在ram运行的,你要调用flash上的程序就需要修改程序执行的入口地址。
另外,仿真只能使用.out文件来烧写,但.out好像只能整个工程一起生成。。。
抱歉经验有限,我这边没办法给出什么可行的方案。建议你可以去英文论坛咨询一下,那边有更多工程师,看是否有工程师给出更好的建议: