在调试motorware的lab时发现都是默认在RAM中运行的!一般proj_labxx.c中都有下面这段代码:
#ifdef FLASH
// Used for running BackGround in flash, and ISR in RAM
extern uint16_t *RamfuncsLoadStart, *RamfuncsLoadEnd, *RamfuncsRunStart;
#endif
于是我就自己在main.h中定义个一个FALSH
#define FLASH
但是编译会出错,怎么回事?难道还需要修改.cmd文件吗?
Immortal King:
错误截图如下:
在调试motorware的lab时发现都是默认在RAM中运行的!一般proj_labxx.c中都有下面这段代码:
#ifdef FLASH
// Used for running BackGround in flash, and ISR in RAM
extern uint16_t *RamfuncsLoadStart, *RamfuncsLoadEnd, *RamfuncsRunStart;
#endif
于是我就自己在main.h中定义个一个FALSH
#define FLASH
但是编译会出错,怎么回事?难道还需要修改.cmd文件吗?
Immortal King:
回复 Immortal King:
顶上去一下,期待答案……
在调试motorware的lab时发现都是默认在RAM中运行的!一般proj_labxx.c中都有下面这段代码:
#ifdef FLASH
// Used for running BackGround in flash, and ISR in RAM
extern uint16_t *RamfuncsLoadStart, *RamfuncsLoadEnd, *RamfuncsRunStart;
#endif
于是我就自己在main.h中定义个一个FALSH
#define FLASH
但是编译会出错,怎么回事?难道还需要修改.cmd文件吗?
Eric Fu:
回复 Immortal King:
Immortal King, 你好
正如你所说,想要在FLASH中运行需要修改CMD文件,但是不用担心,controlsuite中已经为各种型号的器件做好了,你只要在编译和连接的时候在CCS中选择一下即可。
在调试motorware的lab时发现都是默认在RAM中运行的!一般proj_labxx.c中都有下面这段代码:
#ifdef FLASH
// Used for running BackGround in flash, and ISR in RAM
extern uint16_t *RamfuncsLoadStart, *RamfuncsLoadEnd, *RamfuncsRunStart;
#endif
于是我就自己在main.h中定义个一个FALSH
#define FLASH
但是编译会出错,怎么回事?难道还需要修改.cmd文件吗?
Immortal King:
回复 Eric Fu:
Hi Eric Fu!在motorware的lab中都已经包含了F28069F_ram_lnk.cmd(我用的MCU是28069F)文件,你说的“但是不用担心,controlsuite中已经为各种型号的器件做好了,你只要在编译和连接的时候在CCS中选择一下即可。”该怎么操作呢!?谢啦!期待你的回答!
在调试motorware的lab时发现都是默认在RAM中运行的!一般proj_labxx.c中都有下面这段代码:
#ifdef FLASH
// Used for running BackGround in flash, and ISR in RAM
extern uint16_t *RamfuncsLoadStart, *RamfuncsLoadEnd, *RamfuncsRunStart;
#endif
于是我就自己在main.h中定义个一个FALSH
#define FLASH
但是编译会出错,怎么回事?难道还需要修改.cmd文件吗?
Immortal King:
回复 Eric Fu:
找遍了motorware的User's Guide有讲到代码可在FLASH中运行但是就是没有讲如何修改代码让代码下载到FLASH中运行的!还有看到drv.c文件中有个DRV_setupFlash函数不知道是不是类似于controlSUITE中F28069的example中Flashinit()函数,初始化FLASH的函数。
在调试motorware的lab时发现都是默认在RAM中运行的!一般proj_labxx.c中都有下面这段代码:
#ifdef FLASH
// Used for running BackGround in flash, and ISR in RAM
extern uint16_t *RamfuncsLoadStart, *RamfuncsLoadEnd, *RamfuncsRunStart;
#endif
于是我就自己在main.h中定义个一个FALSH
#define FLASH
但是编译会出错,怎么回事?难道还需要修改.cmd文件吗?
Martin Yu:
回复 Immortal King:
这个错误主要是CMD文件中没有定义_RamfuncsLoadStart等,更改请参照controlsuite中的F28069.cmd中进行添加
ramfuncs : LOAD = FLASHD, RUN = RAML0, LOAD_START(_RamfuncsLoadStart), LOAD_END(_RamfuncsLoadEnd), RUN_START(_RamfuncsRunStart), LOAD_SIZE(_RamfuncsLoadSize), PAGE = 0
还有记得将.text 段定位到Flash中,如: .text : > FLASHA, PAGE = 0