3250|5

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

三星2440BSP唤醒后系统立刻跑飞花屏 [复制链接]

最近在做2440的项目,拿开发板厂商提供的BSP修改,现在CPU可以正常睡眠,唤醒的时候可以进入系统,进入后大概1秒左右系统就飞了,屏幕花掉,但是在花屏前那段时间是可以执行操作的,触屏,程序都正常
Config.bib里面保留内存地址为:
        SLEEP                         8c024000  00002000  RESERVED
FW.s里面:
        SLEEPDATA_BASE_VIRTUAL          EQU        0xAC024000                ; keep in sync w/ config.bib
        SLEEPDATA_BASE_PHYSICAL         EQU        0x30024000
由于一开始睡眠的时候无法关闭LCD,所以我在power.c的ConfigStopGPIO函数里面把rGPGCON 的配置改为下面的:
        s2440IOP->rGPGCON = 0x0 |(1<<8)|(1<<9);
        s2440IOP->rGPGUP        = 0x0 |(1<<4);
唤醒时,发现在OEMPowerOff中有如下语句:
        NANDInit();

        OEMInitDebugSerial();
        RETAILMSG(1,(TEXT("-- Exit  OEMPOWER.\r\n")));
        RETAILMSG(1,(TEXT("s2440INT->rSRCPND = 0x%x \r\n"), s2440INT->rSRCPND));
        RETAILMSG(1,(TEXT("s2440INT->rINTPND = 0x%x \r\n"), s2440INT->rINTPND));
        RETAILMSG(1,(TEXT("s2440INT->rINTMOD = 0x%x \r\n"), s2440INT->rINTMOD));   //<----------到这一句输出不完全
        RETAILMSG(1,(TEXT("s2440INT->rINTMSK = 0x%x \r\n"), s2440INT->rINTMSK));
        CPUClearCS8900();       
唤醒后调试串口输出信息为:
        s2440INT->rSRCPND = 0x1
        s2440INT->rINTPND = 0x1
        s2440INT->rINTMOD
而且如果在power.c中将RETAILMSG()函数注释掉,系统无法进入睡眠状态,这个问题相当怪异,实在想不明白为什么
还有就是CPUClearCS8900()这个函数不知道起的是什么作用,似乎系统运行到这里的时候屏幕也会黑掉,然后就没反应了
不知道有没有人能帮忙解答,谢谢

最新回复

搞定了... 很古怪的问题 问题出在这里 SLEEPDATA_BASE_VIRTUAL          EQU 0xAC024000 ; keep in sync w/ config.bib SLEEPDATA_BASE_PHYSICAL        EQU 0x30024000 改成 SLEEPDATA_BASE_VIRTUAL          EQU 0xA0024000 ; keep in sync w/ config.bib SLEEPDATA_BASE_PHYSICAL        EQU 0x30024000 就可以了 很不解Config.bib和ma.a里面定义的地址都是8Cxxxxxx,为什么这里又是A0xxxxxx 太奇怪了... 结贴  详情 回复 发表于 2009-8-13 15:45
点赞 关注

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
s2440INT->rINTMOD这种语句是一个函数吗?它里面是有操作的吧。所以你将它注释掉会有问题。sleep回来出现花屏现象应该是你的LCD的时序的问题,你看看回来是你的LCD的时序跟你的DATASHEET有什么出入。。。
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
感谢楼上...
s2440INT->rINTMOD是2440的一个寄存器来的
LCD时序问题会导致系统跑飞吗?
我去看一下LCD的DATASHEET
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

4
 
还有能是其他地方的问题吗?
我觉得可能是MMU那边保存和恢复不正常...
第一次做WINCE,很多东西完全不了解的
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

5
 
当然,花屏也可能是CPU发过来的数据有问题。查一查吧,我以前遇到的就是时序问题
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

6
 
搞定了...
很古怪的问题
问题出在这里
SLEEPDATA_BASE_VIRTUAL          EQU 0xAC024000 ; keep in sync w/ config.bib
SLEEPDATA_BASE_PHYSICAL        EQU 0x30024000
改成
SLEEPDATA_BASE_VIRTUAL          EQU 0xA0024000 ; keep in sync w/ config.bib
SLEEPDATA_BASE_PHYSICAL        EQU 0x30024000
就可以了
很不解Config.bib和ma.a里面定义的地址都是8Cxxxxxx,为什么这里又是A0xxxxxx
太奇怪了...
结贴
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表