Part Number:TMS320F28379D
没有在这个例程的工程里面找到FLASH的宏定义声明,在predefine symbol里面也没看见。
1、灰色的这段代码的主要功能是什么?
2、程序中还有其他类似的ifdef语句,在predefine symbol中添加相应的定义,是可以的吗?
Green Deng:
1、这段代码用于工程在flash运行时候将部分代码搬移至ram运行以提高运行速度,也就是通过memcpy函数。
2、程序中用ifdef是为了区别ram运行和flash运行的情况,ram运行(在线仿真)情况下不需要_FLASH的预定义,所以用了ifdef。
,
Jiyang Lin:
谢谢
,
Jiyang Lin:
还有几个问题
1、可以去掉这个#ifdef _FLASH(line.75)与#endif(line.90)这两行,直接调用memcpy与Flash_initModule这两个函数吗
2、我现在程序可以在ram里面在线仿真运行,但是无法烧写进flash中,可以通过问题1、里面的这个操作做到烧写到flash里面。吗?
3、 device.c中的SysCtl_deviceCal()函数是什么作用可以介绍一下吗?
,
Green Deng:
1、正如之前所说,memcpy是用于工程在flash运行时候将部分代码搬移至ram运行以提高运行速度的。所以,如果工程是要flash运行,那么去掉#ifdef _FLASH也无所谓,例程中加了这句只不过是为了兼顾ram运行和flash运行。
2、不可以,无法烧写flash跟cmd文件选择,硬件问题等等相关,可以通过无法烧写的时候CCS的报错查看可能的原因。但是跟#ifdef _FLASH无关。
3、所实话没研究过这个函数,大概就是说Sysctl_deviceCal 是 Device_Cal 的封装函数,可以使用 SysCtl_deviceCal() 来执行调用 Device_cal() 函数的校准。