6927|23

85

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

两星期了,唤醒死机Flash初始化不正确??高分悬赏 [复制链接]

我系统唤醒后不能正常使用,到最后慢慢死机,论坛上目前也不少朋友碰到了这个问题。
我参考了网上的很多资料,很多朋友说是Flash初始化有问题。
我觉得我也是flash初始化那块有错误了,BSP包里唤醒的时候是这样进行Flash初始化的:

// Initialize nand controller for MLC with support 2CE
VOID InitNAND()
{
#if (BSP_TYPE == BSP_SMDK2443)
        volatile S3C2450_NAND_REG * pNANDFConReg = (volatile S3C2450_NAND_REG *)0xB1400000;                        // 0x4E000000
        volatile S3C2450_MATRIX_REG * pMatrixConReg = (volatile S3C2450_MATRIX_REG *)0xB1500000;       
#elif (BSP_TYPE ==BSP_SMDK2450)
        volatile S3C2450_NAND_REG * pNANDFConReg = (volatile S3C2450_NAND_REG *)0xB1500000;                        // 0x4E000000
        volatile S3C2450_MATRIX_REG * pMatrixConReg = (volatile S3C2450_MATRIX_REG *)0xB1600000;                        // 0x4E800000
#endif
        volatile S3C2450_DMA_REG *pDMAConReg = (volatile S3C2450_DMA_REG *)0xB0E00000;                                // 0x4B000000

        pNANDFConReg->NFCONF = NF_4BIT_ECC | NF_TACLS(DEFAULT_TACLS) | NF_TWRPH0(DEFAULT_TWRPH0) | NF_TWRPH1(DEFAULT_TWRPH1);
        pNANDFConReg->NFCONT = NF_MAIN_ECC_LOCK | NF_SPARE_ECC_LOCK | NF_INIT_MECC | NF_INIT_SECC | NF_NFCE1 | NF_NFCE0 | NF_NFCON_EN;
        pNANDFConReg->NFSTAT = NF_RNB_READY;        // Clear RnB Transition Detect Bit       

        // Initialize EBICON for 2nd nCE pin (nFCE1)
#ifdef        USE_2CE_NAND
        pMatrixConReg->EBICON |= (0x1<<8);        // Bank1_Cfg -> NAND
#endif

}

没有像刚上电开机那样运行一大串的代码,这样就算是Flash初始化了吗??
如果说Flash初始化有问题导致唤醒后不正常,那说的是哪里出了问题呢??
搞了两个星期没有进展,十分烦恼,望高手帮忙解决,谢谢

最新回复

顶了。。结贴吧  详情 回复 发表于 2009-11-29 21:08
点赞 关注

回复
举报

82

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
是要的,你的flash初始化代码只要把bootloader的flash初始化代码搬过来就可以了,我当时就是这样做了。
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
沙发!帮你顶下!涉及到睡眠唤醒的问题很复杂!建议把你调试信息贴出来!你这样估计没人能知道你是怎么死机的??
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

4
 
我之前发的另外一贴,还没结贴,
http://topic.eeworld.net/u/20090918/21/d2a7022f-1b77-426d-a3d1-ce0cbcc94294.html

也是同样的唤醒死机问题。

我现在系统唤醒后,即使什么都不干让它闲着,过1分钟左右它就会自动出错,出现:
Prefetch Abort: Thread=83b85cec Proc=81206760 'explorer.exe'
AKY=00000011 PC=00000000(???+0x00000000) RA=00000000(???+0x00000000) BVA=00000000 FSR=00000005

此时鼠标能动,但想正常浏览文件夹发现系统已经死了。


另外,我看见网上有篇帖子说到“回环测试”,就是在WINCE的OAL层的startup.s里的睡眠命令前跳到Awake_address处。也就是说按睡眠键,都最后要睡眠时直接又开始了唤醒。

别人试验了一下,回环一圈后,系统能正常工作。因此我也屏蔽掉       
str   r5, [r4]; Power Off !!
b .
下面两句,让系统来个“回环”。
结果打印信息显示,运行完BSPPowerOn()后,就一直不停出现下面的错误:
[FIL:ERR] Decoding_SpareECC() : Uncorrectable Error
[FIL:ERR] Read_Spare() : ECC Uncorrectable Error in Spare of Page 55563 1st Time : 0x2
[FIL:ERR] Read_Spare() : Try ECC Decoding again with SECC bit change
[FIL:ERR] Decoding_SpareECC() : Uncorrectable Error
[FIL:ERR] Read_Spare() : ECC Uncorrectable Error in Spare of Page 55563 1st Time : 0x2
[FIL:ERR] Read_Spare() : Try ECC Decoding again with 2nd SECC copy
[FIL:ERR] Decoding_SpareECC() : Uncorrectable Error
[FIL:ERR] Read_Spare() : ECC Uncorrectable Error in Spare of Page 55563
[FIL:ERR] Decoding_SpareECC() : Uncorrectable Error
[FIL:ERR] Read_Spare() : ECC Uncorrectable Error in Spare of Page 55818 1st Time : 0x2
[FIL:ERR] Read_Spare() : Try ECC Decoding again with SECC bit change
[FIL:ERR] Decoding_SpareECC() : Uncorrectable Error
[FIL:ERR] Read_Spare() : ECC Uncorrectable Error in Spare of Page 55818 1st Time : 0x2
[FIL:ERR] Read_Spare() : Try ECC Decoding again with 2nd SECC copy
[FIL:ERR] Decoding_SpareECC() : Uncorrectable Error
…………………………………………………………………………………………………………

这个可以说明是Flash初始化的问题吗????
 
 
 

回复

96

帖子

0

TA的资源

一粒金砂(初级)

5
 
还有就是唤醒以后,来一个外部中断(按键),系统就认为我一直有这个中断发生,不停的响应该中断,
关键是:
1,我从示波器上看该中断管脚,一直高电平,没有任何中断触发信号。
2,我每次退出ISR的时候都InterruptDone了,所以怀疑中断请求没清除好像也说不过去。

以上,还有2楼的状态,就是我唤醒后系统的症状了。
不知道Flash初始化不正确是否会影响到中断这部分。
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 1 楼 gooogleman 的回复:
是要的,你的flash初始化代码只要把bootloader的flash初始化代码搬过来就可以了,我当时就是这样做了。


我把bootloader的一大串代码搬了过来,结果唤醒的时候出现这样的错误了:
RaiseException: Thread=83b6f640 Proc=81206580 'device.exe'
AKY=0000001d PC=80388740(NK.EXE+0x00188740) RA=80381ac8(NK.EXE+0x00181ac8) BVA=00000001 FSR=00000001
Prefetch Abort: Thread=83b6f640 Proc=81206580 'device.exe'
AKY=0000001d PC=80381ac8(NK.EXE+0x00181ac8) RA=80381ac8(NK.EXE+0x00181ac8) BVA=80381ac8 FSR=00000055
ERROR: Power Handler function yield to low priority thread.
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

7
 
一年前碰到过类似的问题,只是仅仅靠现有的信息还无法断定是不是同一原因引起。
你先在ondisk.c中的dsk_powerdown里面加入一个kerneliocontorl的调用(具体调用什么无所谓),我先看一下结果再说
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

8
 
引用 5 楼 larryk 的回复:
引用 1 楼 gooogleman 的回复:
是要的,你的flash初始化代码只要把bootloader的flash初始化代码搬过来就可以了,我当时就是这样做了。


我把bootloader的一大串代码搬了过来,结果唤醒的时候出现这样的错误了:
RaiseException: Thread=83b6f640 Proc=81206580 'device.exe'
AKY=0000001d PC=80388740(NK.EXE+0x00188740) RA=80381ac8(NK.EXE+0x00181ac8) BVA=00000001 FSR=00000001
Prefetch Abort: Thread=83b6f640 Proc=81206580 'device.exe'
AKY=0000001d PC=80381ac8(NK.EXE+0x00181ac8) RA=80381ac8(NK.EXE+0x00181ac8) BVA=80381ac8 FSR=00000055
ERROR: Power Handler function yield to low priority thread.


我通过这个操作后,虽然唤醒后死机了(触摸屏不能用,鼠标不能用,但按键有反应),但是外部中断无休止的问题没有了。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

9
 
顶………………期待中
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

10
 
想知道为什么。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

11
 
顶~~~~~~~~~~~~~~~~·
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

12
 
有些问题不好搞,  楼主 顶起
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

13
 
楼主问题解决了吗?我现在遇到了一摸一样的问题,也是2440+wince 5.0的平台。
如果已经解决,能否回应分享下,谢谢了!
 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

14
 
一直拖了很久,还没解决,可能是各个开发板生产厂商按照自己的需求把三星的BSP做了修改,把某些东西改乱了。

用三星原版的BSP应该没有问题。我猜的。
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

15
 
我使用的就是09年7月7日三星的2440 wince5.0的版本,没有使用其他厂商的开发板,自己做的板子。
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

16
 
顶起来。
高手要帮忙啊!
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

17
 
今天的贴子不错,顶!
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

18
 
顶起,不知道LZ搞定没,我的还是唤醒后死机
 
 
 

回复

90

帖子

0

TA的资源

一粒金砂(初级)

19
 
引用 17 楼 y2dg4lf 的回复:
顶起,不知道LZ搞定没,我的还是唤醒后死机
55
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

20
 
还没有解决呀
帮顶了
期待有经验的人来解决
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表