正在使用的是28346,我想请教一下,如果我已经把程序烧到FLASH当中,并且去掉仿真器之后能够运行。但是我怎么能确定我的程序是完全调到 RAM中之后再运行的,还是直接在FLASH中运行呢?
Young Hu:
需要设置.cmd文件,然后在程序中有代码搬移的操作。
正在使用的是28346,我想请教一下,如果我已经把程序烧到FLASH当中,并且去掉仿真器之后能够运行。但是我怎么能确定我的程序是完全调到 RAM中之后再运行的,还是直接在FLASH中运行呢?
ruyi long:
回复 Young Hu:
你好,谢谢你的回答。因为我是初学者,能具体一点吗。cmd文件是类似下面这种修改吗?
.text : LOAD = FLASHA, PAGE = 0 /* can be ROM */ RUN = RAM_L0L1L2L3, PAGE = 0 /* must be CSM secured RAM */ LOAD_START(_text_loadstart), RUN_START(_text_runstart), SIZE(_text_size)
还有你说程序里要有代码搬移操作,是用户程序里吗?这个操作是什么语句呢
正在使用的是28346,我想请教一下,如果我已经把程序烧到FLASH当中,并且去掉仿真器之后能够运行。但是我怎么能确定我的程序是完全调到 RAM中之后再运行的,还是直接在FLASH中运行呢?
Chen Jones:
回复 ruyi long:
就是类似这种的搬移。
这是在CMD文件中的设置,在程序中要加上以下语句:
extern Uint16 secureRamFuncs_loadstart, secureRamFuncs_loadend, secureRamFuncs_runstart;
memcpy(&secureRamFuncs_runstart, &secureRamFuncs_loadstart, &secureRamFuncs_loadend – &secureRamFuncs_loadstart);
正在使用的是28346,我想请教一下,如果我已经把程序烧到FLASH当中,并且去掉仿真器之后能够运行。但是我怎么能确定我的程序是完全调到 RAM中之后再运行的,还是直接在FLASH中运行呢?
ruyi long:
回复 Chen Jones:
谢谢回答。关于这个我还是有点问题。
1.您之前说的这种方法是全部copy到ram中,还是只是一部分?我之前看28335的时候,全部copy似乎不需要在程序中加这些语句,只修改cmd。还是我没看仔细?
2.28346用的是片外flash,您这个方法我之前看手册的时候,说的是片内flash。这两者有区别吗?
3.我请教过其他的人,有的说对于28346只要烧到flash,上电之后就是全部copy到ram中运行的。我现在有点糊涂,到底有没有必要再修改cmd和程序?但是我的目的是一定要确保 上电之后程序是先全部copy到ram中再运行的。