TI中文支持网
TI专业的中文技术问题搜集分享网站

28335中将程序烧写进FLASH的问题

论坛的高人们好,我最近尝试不同方法将程序烧写进FLASH均失败了,希望知晓的同行指点一下。下面是具体的问题:

方法一:将“28335_Flash_lnk.cmd”文件link进入工程中,再写入代码:“

memCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart);//始化Flash代码复制到RAM 
InitFlash();//初始化Flash

虽然这样build之后没有报错,但是感觉只是在擦除flash,因为我build之后再load program,点击run按钮观察到的epwm的值全部为0,根本不是我自己写的程序。说明没有烧写成功。

方法二:1、将“F28335.cmd文件link进入工程中(如下图)

2、再写入代码:“

memCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart);//始化Flash代码复制到RAMInitFlash();//初始化Flash

3、build时候报错,如下图。

Seven Han:

请问是基于自己的工程中修改的吗?

问题2中看到有两个cmd文件,需要删掉ram的。

是否有参考例程flash_f28335。

论坛的高人们好,我最近尝试不同方法将程序烧写进FLASH均失败了,希望知晓的同行指点一下。下面是具体的问题:

方法一:将“28335_Flash_lnk.cmd”文件link进入工程中,再写入代码:“

memCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart);//始化Flash代码复制到RAM 
InitFlash();//初始化Flash

虽然这样build之后没有报错,但是感觉只是在擦除flash,因为我build之后再load program,点击run按钮观察到的epwm的值全部为0,根本不是我自己写的程序。说明没有烧写成功。

方法二:1、将“F28335.cmd文件link进入工程中(如下图)

2、再写入代码:“

memCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart);//始化Flash代码复制到RAMInitFlash();//初始化Flash

3、build时候报错,如下图。

Doris Dong:

回复 Seven Han:

我是直接excluded from build,相当于删掉了那个RAM的cmd文件。它报错的意思好像是说:RamfuncsRunStart的空间问题??

论坛的高人们好,我最近尝试不同方法将程序烧写进FLASH均失败了,希望知晓的同行指点一下。下面是具体的问题:

方法一:将“28335_Flash_lnk.cmd”文件link进入工程中,再写入代码:“

memCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart);//始化Flash代码复制到RAM 
InitFlash();//初始化Flash

虽然这样build之后没有报错,但是感觉只是在擦除flash,因为我build之后再load program,点击run按钮观察到的epwm的值全部为0,根本不是我自己写的程序。说明没有烧写成功。

方法二:1、将“F28335.cmd文件link进入工程中(如下图)

2、再写入代码:“

memCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart);//始化Flash代码复制到RAMInitFlash();//初始化Flash

3、build时候报错,如下图。

Seven Han:

回复 Doris Dong:

应该是RAML4在page=1;

论坛的高人们好,我最近尝试不同方法将程序烧写进FLASH均失败了,希望知晓的同行指点一下。下面是具体的问题:

方法一:将“28335_Flash_lnk.cmd”文件link进入工程中,再写入代码:“

memCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart);//始化Flash代码复制到RAM 
InitFlash();//初始化Flash

虽然这样build之后没有报错,但是感觉只是在擦除flash,因为我build之后再load program,点击run按钮观察到的epwm的值全部为0,根本不是我自己写的程序。说明没有烧写成功。

方法二:1、将“F28335.cmd文件link进入工程中(如下图)

2、再写入代码:“

memCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart);//始化Flash代码复制到RAMInitFlash();//初始化Flash

3、build时候报错,如下图。

Doris Dong:

回复 Seven Han:

谢谢你啦,build成功了,但是请问这个PAGE是什么作用呀

论坛的高人们好,我最近尝试不同方法将程序烧写进FLASH均失败了,希望知晓的同行指点一下。下面是具体的问题:

方法一:将“28335_Flash_lnk.cmd”文件link进入工程中,再写入代码:“

memCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart);//始化Flash代码复制到RAM 
InitFlash();//初始化Flash

虽然这样build之后没有报错,但是感觉只是在擦除flash,因为我build之后再load program,点击run按钮观察到的epwm的值全部为0,根本不是我自己写的程序。说明没有烧写成功。

方法二:1、将“F28335.cmd文件link进入工程中(如下图)

2、再写入代码:“

memCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart);//始化Flash代码复制到RAMInitFlash();//初始化Flash

3、build时候报错,如下图。

Seven Han:

回复 Doris Dong:

不客气!

关于page的使用:

PAGE 0 or PAGE 1

PAGE 0 is typically used for program sections. For example .text or other named sections that contain code.

PAGE 1 is used for data sections. For example .stack.

In some legacy Flash programming tools, such as SDFlash, only sections on "PAGE 0" would be programmed into the flash. Consider the .const section which is data. If .const was allocated to PAGE 1, the SDFlash flash programmer will ignore it and not program the data into flash. Since this is initialized data that is constant you really want it programmed into flash. In some of our examples you will find .const allocated to PAGE 0 for this reason. Memory blocks on C28x are unified so it does not cause an issue.

http://processors.wiki.ti.com/index.php/C28x_Compiler_-_Understanding_Linking

论坛的高人们好,我最近尝试不同方法将程序烧写进FLASH均失败了,希望知晓的同行指点一下。下面是具体的问题:

方法一:将“28335_Flash_lnk.cmd”文件link进入工程中,再写入代码:“

memCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart);//始化Flash代码复制到RAM 
InitFlash();//初始化Flash

虽然这样build之后没有报错,但是感觉只是在擦除flash,因为我build之后再load program,点击run按钮观察到的epwm的值全部为0,根本不是我自己写的程序。说明没有烧写成功。

方法二:1、将“F28335.cmd文件link进入工程中(如下图)

2、再写入代码:“

memCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart);//始化Flash代码复制到RAMInitFlash();//初始化Flash

3、build时候报错,如下图。

Doris Dong:

回复 Seven Han:

您好!我按照您的回复,将PAGE改成1,然后build成功,但是load program之后,点击run按钮,epwm值全都是0,感觉依然没有烧写成功。

并且单步执行发现,它一直在DSP2833x_DefaultIsr.c文件的一个for循环里面。

请问这样应该如何解决呀?

论坛的高人们好,我最近尝试不同方法将程序烧写进FLASH均失败了,希望知晓的同行指点一下。下面是具体的问题:

方法一:将“28335_Flash_lnk.cmd”文件link进入工程中,再写入代码:“

memCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart);//始化Flash代码复制到RAM 
InitFlash();//初始化Flash

虽然这样build之后没有报错,但是感觉只是在擦除flash,因为我build之后再load program,点击run按钮观察到的epwm的值全部为0,根本不是我自己写的程序。说明没有烧写成功。

方法二:1、将“F28335.cmd文件link进入工程中(如下图)

2、再写入代码:“

memCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart);//始化Flash代码复制到RAMInitFlash();//初始化Flash

3、build时候报错,如下图。

Seven Han:

回复 Doris Dong:

debug时直接点击小虫子即可,看这样应该是程序进入了非法中断,可参考帖子:

http://www.deyisupport.com/question_answer/microcontrollers/c2000/f/56/t/9221.aspx

赞(0)
未经允许不得转载:TI中文支持网 » 28335中将程序烧写进FLASH的问题
分享到: 更多 (0)