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启动的时候,如果需要将部分或者全部代码copy到RAM中来运行。
一般都是初始化时钟等之后,再进行copy,然后InitFlash。这里有几个疑问:
1、初始化(时钟等)代码指令,是不是在flash里面执行的?
2、在InitFlash之前,有执行初始化指令,也有copy功能,不是已经可以对flash操作了吗?那么这里的InitFlash的作用是什么?
谢谢!
谢谢大家的解答!
我可以这样理解不:
1、DSP上电之后,在跳转到main之前,其实已经可以对Flash操作了;
2、初始化时钟之后,再来初始化Flash,只是匹配时钟,提高速度;
3、InitFlash在完成时钟初始化之后就可以执行了,可以放在copy函数之前。
前面两点理解没问题,第三点有点不对。
放在copy函数之前,InitFlash函数就无法被copy到RAM上运行,实际上也就相当于不能执行,因为初始化自己的代码不能在本身运行,所以需要先执行copy函数,然后调用需要被copy到RAM上运行的函数。
InitFlash 执行后,对Flash 进行了一系列等待时间的配置;
这样运行速度更快了,那这个快是不是体现在将Flash 里面的代码Copy 到RAM 的过程?
那么:如果代码都已经Copy 在Ram 中了,是不是就跟这个配置没有什么关系了?
反正代码都是在RAM 中运行,除非要访问一些放置在Flash 的变量;