打印

28035烧写flash

[复制链接]
6823|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
dirtwillfly| | 2013-7-27 10:30 | 只看该作者
TMS320X28035是TI公司2009年新推出的60M控制芯片,其烧写过程如下:
1.使用TI官方CMD文件F28035.CMD,和烧写有关的语句为:
RAML0 : origin = 0x008000, length = 0x000800
FLASHD : origin = 0x3F0000, length = 0x002000
ramfuncs : LOAD = FLASHD,
RUN = RAML0,
LOAD_START(_RamfuncsLoadStart),
LOAD_END(_RamfuncsLoadEnd),
RUN_START(_RamfuncsRunStart),
PAGE = 0
2.在工程中添加DSP2803x_MemCopy.c文件,内容如下:
#include "DSP2803x_Device.h"
void MemCopy(Uint16 *SourceAddr, Uint16* SourceEndAddr, Uint16* DestAddr)
{
while(SourceAddr < SourceEndAddr)
{
*DestAddr++ = *SourceAddr++;
}
return;
}
3.在DSP2803x_SysCtrl.c文件中添加如下语句:
#pragma CODE_SECTION(InitFlash, "ramfuncs");
void InitFlash(void)
{
EALLOW;
//Enable Flash Pipeline mode to improve performance
//of code executed from Flash.
FlashRegs.FOPT.bit.ENPIPE = 1;
// CAUTION
//Minimum waitstates required for the flash operating
//at a given CPU rate must be characterized by TI.
//Refer to the datasheet for the latest information.
//Set the Paged Waitstate for the Flash
FlashRegs.FBANKWAIT.bit.PAGEWAIT = 2;
//Set the Random Waitstate for the Flash
FlashRegs.FBANKWAIT.bit.RANDWAIT = 2;
//Set the Waitstate for the OTP
FlashRegs.FOTPWAIT.bit.OTPWAIT = 2;
// CAUTION
//ONLY THE DEFAULT VALUE FOR THESE 2 REGISTERS SHOULD BE USED
FlashRegs.FSTDBYWAIT.bit.STDBYWAIT = 0x01FF;
FlashRegs.FACTIVEWAIT.bit.ACTIVEWAIT = 0x01FF;
EDIS;
//Force a pipeline flush to ensure that the write to
//the last register configured occurs before returning.
asm(" RPT #7 || NOP");
}
4.在main()函数之前定义三个变量:
extern Uint16 RamfuncsLoadStart;
extern Uint16 RamfuncsLoadEnd;
extern Uint16 RamfuncsRunStart;
5.在main()函数初始化系统以后增加如下语句:
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
InitFlash();
6.在CCS中点Tools>F28xx on-Chip Flash Programmer>Execute Pperation 完成烧写

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
blueskycyh + 1 ffgfgf
板凳
blueskycyh|  楼主 | 2013-7-28 22:51 | 只看该作者
dirtwillfly 发表于 2013-7-27 10:30
TMS320X28035是TI公司2009年新推出的60M控制芯片,其烧写过程如下:
1.使用TI官方CMD文件F28035.CMD,和烧 ...

版主好,前边的5步都做了,但cs5.3没有“ Tools>F28xx on-Chip Flash Programmer>Execute Pperation” 这个菜单哦,



DAGB1W@I_)KKSGB4O{67W15.jpg (124.13 KB )

DAGB1W@I_)KKSGB4O{67W15.jpg

使用特权

评论回复
地板
dirtwillfly| | 2013-7-29 15:01 | 只看该作者
blueskycyh 发表于 2013-7-28 22:51
版主好,前边的5步都做了,但cs5.3没有“ Tools>F28xx on-Chip Flash Programmer>Execute Pperation” 这 ...

在CCS debug perspective中可以找到tools工具选项。

使用特权

评论回复
5
dontium| | 2013-7-30 11:36 | 只看该作者
把你产生的MAP文件帖上来看看

使用特权

评论回复
6
blueskycyh|  楼主 | 2013-7-31 23:39 | 只看该作者
dontium 发表于 2013-7-30 11:36
把你产生的MAP文件帖上来看看

map文件在附件中

BLDC_Sensored_F2803x.zip

4.47 KB

map文件

使用特权

评论回复
7
dontium| | 2013-8-1 15:52 | 只看该作者
blueskycyh 发表于 2013-7-31 23:39
map文件在附件中

从你的MAP文件上看,没有发现错误。

或者某些设置不正常吧。
可以在属性-->> DEBUG -- >> FLASH SETTING那里看看,或者仿真器拨掉后再看看能不能运行 。

我写有个帖子《在FLASH里运行》(不在二姨家),你可以参考一下。

使用特权

评论回复
8
blueskycyh|  楼主 | 2013-8-13 21:43 | 只看该作者
本帖最后由 blueskycyh 于 2013-8-13 21:46 编辑
dontium 发表于 2013-8-1 15:52
从你的MAP文件上看,没有发现错误。

或者某些设置不正常吧。


试了还是不行。点DEBUG后,能看到在操作flash,

应该是烧进去了。但只能点启动按钮才能运行


掉电之后重新上电,程序不会运行。

使用特权

评论回复
9
blueskycyh|  楼主 | 2013-8-31 23:17 | 只看该作者
在TI的技术在线找到了答案,原来是工程中缺少了一个DSP2803x_CodeStartBranch.asm ,这个文件是boot to flash需要的文件。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
dirtwillfly + 1 赞一个!
10
blueskycyh|  楼主 | 2013-9-1 11:10 | 只看该作者
为啥结贴提示

_[)AXIBV8EYJ)O}JVLEH314.jpg (12.14 KB )

_[)AXIBV8EYJ)O}JVLEH314.jpg

使用特权

评论回复
11
海獭小静| | 2017-7-7 11:00 | 只看该作者
我的下载了  我单步调试到MemCopy就会有错误提示,程序完全不运行,但是编译又没有任何错误

使用特权

评论回复
12
iamaiqiyi| | 2017-7-7 23:29 | 只看该作者
现在有很多的开发板可以抄写。

使用特权

评论回复
13
iamaiqiyi| | 2017-7-7 23:32 | 只看该作者
参考别人的 硬件电路实现以下。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

24

帖子

1

粉丝