这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » uCLinux下写flash的问题

共14条 1/2 1 2 跳转至

uCLinux下写flash的问题

菜鸟
2005-09-15 23:11:31     打赏

s3c4510b+uclinux+am29lv160db

bootloader将flash重映射到0x1000000,并load image到0x8000后启动uC.

现在的情况是uC正常,在uC下读flash正常,但是无法写或删除flash数据

一旦执行unlock: *(volatile unsigned short *)(FM_START_ADDR + 0x555)=0xaaaa系统就崩溃了。更谈不上删除或写操作。

请问这是什么原因?uC采用blkmem类型的block dev 驱动。




关键词: uCLinux     下写     flash     问题    

菜鸟
2005-09-15 23:42:00     打赏
2楼
FM_START_ADDR是多少呢

菜鸟
2005-09-15 23:45:00     打赏
3楼
就是flash重映射后的基地址0x1000000

菜鸟
2005-09-15 23:53:00     打赏
4楼
uC运行的时候哪一部份用到了flash? 有Flash文件系统吗

菜鸟
2005-09-15 23:56:00     打赏
5楼

用 *(volatile unsigned short *)(FM_START_ADDR + addr)读flash可以正确执行。

所以应该不会是地址错误,会不会是uC的限制?


菜鸟
2005-09-15 23:58:00     打赏
6楼

romfs.

我是自己写了一个程序想修改flash某几个sector的数据。


菜鸟
2005-09-16 00:00:00     打赏
7楼

这是错误信息,自己分析得不是很清楚

/> ipcset -m
Internal error: unknown data abort code: e1c310b0
CPU: 0
pc : [<00000001>] lr : [<007fa060>] Not tainted
sp : 00000060 ip : 00177ea8 fp : 00177ea8
r10: fffffeff r9 : fff7ffff r8 : ffffffff
r7 : ffffffff r6 : ffffffff r5 : fffffaff r4 : ffffffff
r3 : ffffffff r2 : ffffffff r1 : 80000010 r0 : 007904d0
Flags: nzcv IRQs on FIQs on Mode FIQ_26 Segment kernel
Control: 0
Process ipcset (pid: 16, stackpage=007f9000)
Stack:
Backtrace: frame pointer underflow
Function entered at [<007fa010>] from [<001f6000>]
Function entered at [<00177e88>] from [<00000000>]


菜鸟
2005-09-16 01:58:00     打赏
8楼
romfs是在flash里,还是和uC一起load到0x8000?

菜鸟
2005-09-16 03:14:00     打赏
9楼

是的

在bootloader里用memomove()把整个uC映像都copy到ram里去了.


菜鸟
2005-09-16 06:31:00     打赏
10楼
我对错误信息的理解也很模糊:
1.肯定是产生硬件异常了,这个异常应该是Data abort("unknown data abort "),从traps.c可以找到依据。但是Mode却是FIQ_26,而不是ABT_xx,这个...还没弄懂;

2. 为什么会产生这个异常? 按照我的想法,运行在SDRAM中的uC没有读写flash操作,所以应用程序删除或写flash不会冲突;

3. 产生数据中止( dataabort)异常意味着对存储器的数据访问失败,造成这个失败的原因是理解这个问题的关键,可惜我现在还不明白。

共14条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]