打印

菜鸟请教片外flash数据如何写入

[复制链接]
6325|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huangbingg|  楼主 | 2008-3-4 21:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人菜鸟,刚学ARM不久,想做个图象识别东东,即将某图象的几个特征数据先存入flash,第二次便拿它来和新提取的图象数据比对....问:我开发板上只有片外flash,则么实现既将代码烧入,又可存入少量数据啊?要分扇区吗?扇区则么分?

           谢谢高人指教,蛮急的!!!万分感激!!!

相关帖子

沙发
huangbingg|  楼主 | 2008-3-5 10:53 | 只看该作者

谢绝广告

本人谢绝广告   期望真心赐教者!!!

使用特权

评论回复
板凳
dld2| | 2008-3-5 10:56 | 只看该作者

找常用芯片的datasheet,找例子程序

比如SST39VF160

使用特权

评论回复
地板
阿南| | 2008-3-5 11:48 | 只看该作者

正常来讲是程序不能即在flash运行又对Flash操作的

楼主需要将代码写入到Flash,然后程序能够将Flash的代码复制到RAM里去运行,再在空佘的Flash里保存图象

使用特权

评论回复
5
huangbingg|  楼主 | 2008-3-5 12:32 | 只看该作者

哈哈,终于引出了板主

谢楼上两位,确定下:
也就是说我将代码写入到Flash,跑起来后,如果不复制到RAM里运行,就不能存数据进flash了是吗?
(开发板上没片内flash,是片外的SST39VF160)
新手刚学,若要复制到RAM里运行是不是只能通过ADS里分散加载文件实现?

使用特权

评论回复
6
dld2| | 2008-3-5 12:47 | 只看该作者

Re

如果希望整个程序在RAM上运行,一般只需要在linker设置中把RO和RW定位在RAM就可以了。
如果仅仅是想把访问flash的代码放在RAM中,那么要用分散加载文件。
对于没有片内FLASH的arm,一般都是通过boot程序将可执行代码整个从FLASH拷贝到RAM,然后去执行的。

怀疑你的开发板是44B0的。随开发板应该有资料吧。

使用特权

评论回复
7
huangbingg|  楼主 | 2008-3-5 13:22 | 只看该作者

谢楼上指点

我是easyARM2200开发板,刚学,它是LPC2210芯片.

不过高手你只回答了我后半个问题,前半个问题呢?"也就是说我将代码写入到Flash,跑起来后,如果不复制到RAM里运行,就不能存数据进flash了是吗?


顺带也给我讲解下啊,新手,望细讲!~~!!先扣谢各位高人!!!

使用特权

评论回复
8
dld2| | 2008-3-5 13:26 | 只看该作者

4楼不是回答了?

使用特权

评论回复
9
huangbingg|  楼主 | 2008-3-5 13:49 | 只看该作者

我只是确定下

谢了  好象片内flash就可以即在flash里运行程序又对Flash操作的(比如存些数据)吧?

使用特权

评论回复
10
dld2| | 2008-3-5 14:00 | 只看该作者

不是

那些程序在片内FLASH执行,并支持IAP的,在向FLASH写数据时,已经跑到别的地方(比如ROM或RAM)去执行了。
一般是在ROM固化访问片内FLASH的代码。

使用特权

评论回复
11
huangbingg|  楼主 | 2008-3-5 14:15 | 只看该作者

ROM不就是FLASH吗???

首先,ROM不就是FLASH吗???
其次,也就是若有片内FLASH的芯片,在出厂时IAP指令已固化在FLASH里某个位置,并在芯片手册上注明IAP其操作函数,而片外没的,只能自几想办法编程FLASH,对不?

使用特权

评论回复
12
huangbingg|  楼主 | 2008-3-5 14:37 | 只看该作者

哈咯?

自几先顶下!~

使用特权

评论回复
13
xwj| | 2008-3-5 14:45 | 只看该作者

仔细读DataSheet,搞清楚数据块写时会不会影响程序块得正常

就明白了

使用特权

评论回复
14
huangbingg|  楼主 | 2008-3-5 15:17 | 只看该作者

楼上貌似答非所问..

13楼您好!我的问题在11楼,本人新手,很服浅的,看书自不会少,但总想找个高手确定下我的理解...我想这也是南哥开此板块的目的吧!
另外,至于13楼你所说的,我手头的一些SST39VF160芯片资料还真没说"数据块写时会不会影响程序块得正常读",这应该算是经验或常识问题吧?

重审,本人新手,万分感谢真心点拨我的贵人!!!

使用特权

评论回复
15
dld2| | 2008-3-5 15:31 | 只看该作者

引用LPC213X手册上的一句话

“Flash存储器在写或擦除操作过程中不可被访问”。

下面是我的理解:
如果是两片FLASH,则可以在一个FLASH上执行代码来“写和擦除”另一个FLASH。
LPC2000的IAP适用于这种情况。

使用特权

评论回复
16
huangbingg|  楼主 | 2008-3-5 15:34 | 只看该作者

感触...

其实,任何一个来这里提问的新手,其中绝大部分都是很好学很专的,肯定在拼命的啃书本,实在搞不明白才来坛子里找高手解惑的,真正的高手确实会给我们很耐心的解答,但那些来摆摆高手架子,叫嚷着让我们回去看书的就不必发言了,当然不是指13楼,别误会!!

~~~~~纯萃一个新手的感悟,说的不妥请大家见谅!!!谢谢大家!!

使用特权

评论回复
17
huangbingg|  楼主 | 2008-3-5 15:45 | 只看该作者

难实现啊..

谢楼上,那干脆一片FLASH上执行用户代码,另一片FLASH存我的图象数据,乞不是更方便,不过这种事也只能在开发板上玩玩,理想化了...

15楼意思我没明白,我开发板上LPC2210没片内FLASH,片外FLASH也就没IAP了啊??

使用特权

评论回复
18
armecos| | 2008-3-5 16:50 | 只看该作者

EASYARM上有现成的免费redboot测试代码,

    你用JTAG烧写到片外flash里就可以了。redboot可以自动管理内核、数据,你在同一片flash上就可以同时烧录程序和数据。redboot负责自动分配存储空间,并组织成文件目录格式。一试便知。
    www.armecos.com免费下载中心。“RedBoot for EASYARM2200”

使用特权

评论回复
19
huangbingg|  楼主 | 2008-3-5 18:10 | 只看该作者

新手迷惑..

刚知道“Flash存储器在写或擦除操作过程中不可被访问”...

马上又有人来告诉我这种违背"真理"的事啊??  慌!~

使用特权

评论回复
20
后学| | 2008-3-6 13:14 | 只看该作者

re

1、支持4楼;
2、写Flash需要时间,这段时间内,不能读取里面的数据;
3、用操作系统,都有现成的bootloader,不需要你自己去实现;

使用特权

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

本版积分规则

58

主题

270

帖子

0

粉丝