打印

我学DM642不久,问问我的程序应该怎么放在flash里?

[复制链接]
3203|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
redgalaxy|  楼主 | 2010-1-1 09:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
redgalaxy|  楼主 | 2010-1-5 19:53 | 只看该作者
请各位给解释一下

使用特权

评论回复
板凳
aresc| | 2010-1-6 14:55 | 只看该作者
你问题中“第一步试验将灯点亮的程序烧写好....”,这个烧写是什么意思?你把这个程序烧到哪里了?应该是FLASH里吧。

使用特权

评论回复
地板
redgalaxy|  楼主 | 2010-1-6 16:38 | 只看该作者
是啊,应该是烧写到flash里了,但是怪就怪在我在我的主程序里并没有写flash的程序啊。不知为甚麽灯点亮程序还能正常运行。既然我的程序里没flash程序,那是怎么烧写到flash里的呢?

使用特权

评论回复
5
碧血黄花| | 2010-1-6 17:19 | 只看该作者
RAM里运行和烧进去是不一样的
以前由于CMD文件问题,会导致烧进去后不正常

使用特权

评论回复
6
aresc| | 2010-1-6 17:26 | 只看该作者
你要是没写,那就是你的开发工具自己写进去了,好像在有个帖子里有人发现有段写FLASH的汇编程序,具体那个DSP记不清,找了半天也没找到是哪个帖子。

问一下做你用的开发工具的公司,或者自己好好研究一下用户手册啥的。

使用特权

评论回复
7
redgalaxy|  楼主 | 2010-1-9 19:13 | 只看该作者
如果我要放在flash中,是不是得这样,先在cmd文件中声明一个flash空间 section name
然后在我的程序里添加上
#pragma CODE_SECTON(code1,"section name");
然后再在程序中声明代码长度的空间来存放我的代码
int code1[code_MAX];
不知我以上的想法对吗?还请各位给指点一下!

使用特权

评论回复
8
wowow| | 2010-1-9 21:59 | 只看该作者
应该是开发板带的开发环境里集成了烧写flash的功能。
你这个思路不对,那个也很有用,但不是用在你想要弄明白的清。
三言两语真不好说清楚。我不知道seed怎么做的,你要自己弄的话要弄清几个要点:
你程序在哪运行?烧写在哪?这对应着cmd文件里的load、run的地址。调试的时候一般小程序load地址和run地址都在内部ram里,比较简单,直接load program就可以跑了。程序固化的时候程序保存在外部flash中,而运行地址还是在ram里,这就有个bootloader的问题。bootloader负责把应用程序从flash搬移到内部ram然后跳过去运行。bootloader放在flash的低1k字节,reset后会自动把这段代码复制到内部ram中运行(参见datasheet的2.4 Bootmode)。bootloader如何写,以及程序在flash中怎么放有很多种方法,你先搜搜看吧。

使用特权

评论回复
9
lslrf| | 2010-1-10 11:32 | 只看该作者
DM642是片外FLASH。要自己编程或借住一些他方工具烧写才能进FLASH。你首先要搞清楚是load进RAM里了还是烧进FLASH了。

使用特权

评论回复
10
redgalaxy|  楼主 | 2010-1-10 15:56 | 只看该作者
对,wowow和lslrf说的有道理,我现在就是不清楚程序在flash中应该怎么放,先查下资料再向你们请教

使用特权

评论回复
11
lslrf| | 2010-1-10 20:44 | 只看该作者
你看下DM642的boot方式吧。

使用特权

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

本版积分规则

25

主题

48

帖子

0

粉丝