打印
[NXP ARM]

我用LPC2210,外部有NOR FLASH,运行中可以再向此FLASH写数据吗?

[复制链接]
3208|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
无冕之王|  楼主 | 2010-1-22 11:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
华荣汇FAE1| | 2010-1-22 16:37 | 只看该作者
自己试试呀

使用特权

评论回复
板凳
dfsa| | 2010-1-22 21:01 | 只看该作者
程序运行过程中应该是不可以,楼主为什么要这样做呢

使用特权

评论回复
地板
xsgy123| | 2010-1-24 15:01 | 只看该作者
为什么不能进行写操作

使用特权

评论回复
5
火箭球迷| | 2010-1-24 16:08 | 只看该作者
肯定不行的了运行的时候flash相当于ROM了,怎么能写数据进去,只有在下载代码的时候,适合的编程时序才能更新flash的数据,一般读数据都是读到RAM上了,对于2210内部有,外设也可以自己扩展啊。

使用特权

评论回复
6
arm86| | 2010-1-25 23:37 | 只看该作者
5楼有点武断了。
没问题的,写吧,注意别覆盖自个的程序区就可以了。
你的外部Nor,应该有2MB吧?程序用剩下的空间,你做个文件系统都成。

使用特权

评论回复
7
wlq_9| | 2010-1-26 14:15 | 只看该作者
6L:
肯定是不行,不是说有没用的空间就可以写.程序运行的时候,是从NOR里面读数据的,而你又要同时写数据到NOR,你让NOR自己怎么办?

要想实现这样的功能,唯一的办法是把程序复制到RAM里运行.这时候写NOR就没有问题了.

使用特权

评论回复
8
arm86| | 2010-1-26 15:47 | 只看该作者
6L:
要想实现这样的功能,唯一的办法是把程序复制到RAM里运行.这时候写NOR就没有问题了. ...
wlq_9 发表于 2010-1-26 14:15

就如你所言,这不就成了吗?
不都是软件的事情而已嘛,怎么就成了"肯定不行"了呢?

使用特权

评论回复
9
火箭球迷| | 2010-1-27 16:25 | 只看该作者
肯定不行

使用特权

评论回复
10
wlq_9| | 2010-1-28 09:34 | 只看该作者
就如你所言,这不就成了吗?
不都是软件的事情而已嘛,怎么就成了"肯定不行"了呢?
那是对6L的兄弟说的.

copy到RAM执行后,覆盖自个的程序区也是可以的,比方说自动升级程序或者固件.注意更新的时候别掉电就行.

使用特权

评论回复
11
zwll| | 2010-2-10 23:32 | 只看该作者
想保存一些不挥发的数据,就要另加一FLASH吗?

使用特权

评论回复
12
zwll| | 2010-2-10 23:32 | 只看该作者
比较疑惑啊

使用特权

评论回复
13
司徒老鹰| | 2010-2-11 23:21 | 只看该作者
肯定不行的了运行的时候flash相当于ROM了,怎么能写数据进去,只有在下载代码的时候,适合的编程时序才能更新flash的数据,一般读数据都是读到RAM上了,对于2210内部有,外设也可以自己扩展啊。

使用特权

评论回复
14
有意思| | 2010-3-8 21:44 | 只看该作者
#define fucmax        0x400//flash处理函数编译后的尺寸,可以利用编译器得出

typedef void(*FUC)(uint32 x,uint16 y);
void WordProInRAM(uint32 addr,uint16 data)
{
    FUC handle_flash;
    uint16  dest[fucmax];
    uint16 *sour = (uint16*)WordProgram;
   
    disable_IRQ();
    memcpy(dest,sour,fucmax);
    handle_flash = (FUC)dest;
    handle_flash(addr,data);
    enable_IRQ();

}

使用特权

评论回复
15
司徒老鹰| | 2010-3-8 22:21 | 只看该作者
楼上的……

使用特权

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

本版积分规则

个人签名:喜欢远行

160

主题

3331

帖子

0

粉丝