阅读:1276回复:7
2440 nboot程序中分配内存遇到的问题
在2440的nboot程序中我想分配一段32字节的地址空间(这段空间必须在steppingstone的空间内,也就是说物理地址在0x0000 0000~0x0000 0fff范围内),我使用了DCD指令如下:
WAKE_SLEEP_TIMER DATA DCD 0 DCD 0 DCD 0 DCD 0 DCD 0 DCD 0 DCD 0 DCD 0 但是我发现这些内存空间的数据在系统从睡眠态唤醒后都变成0;这不是我希望的,我希望他们在唤醒复位后保持原先的值;我该如何是好呢?唤醒后变为0可能是因为DCD的初始值为0。 我想使用MAP指令和FIELD指令来实现,但是从很多资料看到说“map,field指令仅仅是定义数据结构,他们并不实际分配内存单元”,也就说使用他们不能像DCD那样得到内存罗? 我该怎么办呢? |
|
沙发#
发布于:2007-03-22 18:41
唤醒后,steppingstone中的内容会从nand中重新加载吧。你把要保存的东西,放到RAM中试试
|
|
板凳#
发布于:2007-03-22 18:47
“唤醒后,steppingstone中的内容会从nand中重新加载吧。”
确定是这样吗? 我不能放到ram中,因为从睡眠唤醒到启动ram有一段时间,我需要唤醒后立即判断某个条件,条件如果不满足则立即再次进入睡眠。 |
|
地板#
发布于:2007-03-22 19:09
The internal reset signal will be asserted if one of the wake-up sources is issued. It’s exactly same with the case of the assertion of the external nRESET pin.
从上面datasheet中的描述好像确实是这样的。难道必须使用 sdram吗? 麻烦大了... |
|
地下室#
发布于:2007-03-22 19:09
还有好招吗?
|
|
5楼#
发布于:2007-03-22 22:31
一般使用GSTATUS3和GSTATUS4来保存信息,这两个寄存器的值在休眠时是不会丢失的
|
|
6楼#
发布于:2007-03-23 08:28
可惜空间太少了,不够用啊!?
|
|
7楼#
发布于:2007-03-23 09:02
判断个条件要这多空间吗?把GSTATUS4中每个bit位作为条件判断使用如何?这样可以有32条件了。
|
|