搜索
bottom↓
回复: 8

求救LPC1788 emwin 移植 为什么 运行到 GUI_Init(); 卡死

[复制链接]

出0入0汤圆

发表于 2014-1-21 13:35:15 | 显示全部楼层 |阅读模式
本帖最后由 stm8s 于 2014-1-22 13:02 编辑

网上找了一个现成的貌似英蓓特  LPC1788  emwin 无OS 代码   仿真时 为什么 运行到 GUI_Init(); 就卡死

先谢   

194莫元 已是全部家当

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2014-1-24 18:14:23 | 显示全部楼层
估计是你的SDRAM配置不对,导致GUI内存管理出问题了,你看看你的SDRAM配置,你板上的SDRAM是32bit的吗?

出0入0汤圆

发表于 2014-1-24 18:25:44 | 显示全部楼层
nongxiaoming 发表于 2014-1-24 18:14
估计是你的SDRAM配置不对,导致GUI内存管理出问题了,你看看你的SDRAM配置,你板上的SDRAM是32bit的吗? ...

搭车问个问题,LPC1788使用两片16bit的SDRAM K4S561632组成64MB 32bit后,程序从使用一片32MB 32bit SDRAM K4M563233的代码修改的话,是不是只要把SDRAM_SIZE改为0x04000000就行了?其他参数都不用修改吧?

出0入0汤圆

 楼主| 发表于 2014-1-24 18:33:14 | 显示全部楼层
本帖最后由 stm8s 于 2014-1-26 15:50 编辑
nongxiaoming 发表于 2014-1-24 18:14
估计是你的SDRAM配置不对,导致GUI内存管理出问题了,你看看你的SDRAM配置,你板上的SDRAM是32bit的吗? ...


UCGUI 牛人 nongxiaoming  终于出现了,SDRAM是 K4S561632    这是我的开发板电路图。

出0入0汤圆

发表于 2014-1-24 21:08:19 | 显示全部楼层
shandian 发表于 2014-1-24 18:25
搭车问个问题,LPC1788使用两片16bit的SDRAM K4S561632组成64MB 32bit后,程序从使用一片32MB 32bit SDRA ...

不是的呢,还有几个参数配置不同,具体看数据手册上有讲,官方历程里面也有的,你可以看看,我之前提供的工程中也有写,上面直接配置一个宏定义就可以打开是16bit还是32bit了。区别你自己去看看就好。

出0入0汤圆

发表于 2014-1-24 21:11:30 | 显示全部楼层
本帖最后由 shandian 于 2014-1-24 21:18 编辑
nongxiaoming 发表于 2014-1-24 21:08
不是的呢,还有几个参数配置不同,具体看数据手册上有讲,官方历程里面也有的,你可以看看,我之前提供的 ...


总线位宽是一样的,都是32bit。只是由一片32bit位宽32MB的SDRAM,变为由两片16bit位宽SDRAM组成的32bit 64MB,只要修改长度就够了吧?总线宽度没变的。

我只修改了SDRAM_SIZE后,运行SDRAM测试是通过了。但是在memory窗口查看内存,发现超出SDRAM地址范围一点的区域,0xA4000000之后的内容也变成了内存测试时使用到的数据。开始我以为是调试器内存缓冲问题引起的。但是在J-link设置里面关闭了内存和代码缓冲功能,还是和之前一样。所以我怀疑是不是哪里不对。

出0入0汤圆

发表于 2014-1-21 13:35:16 | 显示全部楼层
stm8s 发表于 2014-1-24 18:33
UCGUI 牛人 nongxiaoming  终于出现了,SDRAM是 K4S561632    这是我的开发板电路图。  ...

ucgui牛人谈不上,这些都是之前在学校有时间玩玩而已,现在工作都没有用这个,都是用的RTGUI,希望有一天RTGUI也能像emwin这么优秀。你这个SDRAM是三星的,你那个工程里面用的是海力士的,里面的配置不懂你有没有改,SDRAM的参数有些可能不一致,具体要看你使用的SDRAM的数据手册。有些也是相兼容的。还有看你的工程里面,应该是从emwin官方给的工程改的,链接脚本里面有
  1. RW_RAM1 0xA0000000 UNINIT 0x02000000  {  ; RW data
  2.    * (VRAM, GUI_RAM, GUIDEMO_STACK, FS_RAM, IP_RAM, USB_RAM)
  3.   }
复制代码

3上定义的这堆东西已经不再使用了,你可以看看我之前提供的工程,我之前提供的一个16bit SDRAM的工程应该可以在你这个板子上跑起的,我那时候用的sdram也是K4S561632。

出0入0汤圆

发表于 2014-1-24 21:29:38 | 显示全部楼层
shandian 发表于 2014-1-24 21:11
总线位宽是一样的,都是32bit。只是由一片32bit位宽32MB的SDRAM,变为由两片16bit位宽SDRAM组成的32bit 6 ...

这个是可以的,我以为你是16bit的换成两片组成32bit,搞错了。对于你查看0xA4000000以外的地址数据来说是没有意义的。也就是说0xA4000001地址的数据其实等于0xA0000001的数据。为什么会这样呢?因为实际上MCU发出0xA4000001地址的时候,地址线已经超出你sdram的数据,你的SDRAM收到的是低位的地址,最高位丢失。也就是你的SDRAM收到的是0x01,那个0x4000001最高位已经丢掉,但你的MCU还说认为是这个地址的数据,读取数据的时候读出的数据其实是0x01处的数据。

出0入0汤圆

发表于 2014-1-24 21:36:51 | 显示全部楼层
nongxiaoming 发表于 2014-1-24 21:29
这个是可以的,我以为你是16bit的换成两片组成32bit,搞错了。对于你查看0xA4000000以外的地址数据来说是 ...

恩,好。感谢~
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-24 02:33

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表