硬汉嵌入式论坛

 找回密码
 立即注册
查看: 12564|回复: 32
收起左侧

[emWin] 紧急求助:emwin增加外部SRAM后 ,运行到GUI_INIT()死机

[复制链接]

8

主题

36

回帖

60

积分

初级会员

积分
60
发表于 2014-8-18 13:10:45 | 显示全部楼层 |阅读模式
各位大神,我为GUI增加了一个SRAM 512K容量,SRAM单独测试没问题,移植后,程序运行到GUI_INIT()处就死机了(hardfaulter),不知道是怎么回事啊。麻烦你知道的大神给个回复 啊
回复

使用道具 举报

5

主题

212

回帖

227

积分

高级会员

积分
227
发表于 2014-8-18 17:22:15 | 显示全部楼层
你这种问题,神也解答不了的。
回复

使用道具 举报

8

主题

36

回帖

60

积分

初级会员

积分
60
 楼主| 发表于 2014-8-19 09:34:59 | 显示全部楼层

回 honami520 的帖子

honami520:你这种问题,神也解答不了的。 (2014-08-18 17:22) 
大神那么厉害,出了这么多教程,怎么能解答不了,急等大神回答
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117567
QQ
发表于 2014-8-19 10:27:34 | 显示全部楼层
你是用F1外挂SRAM做emWin的动态内存吗
回复

使用道具 举报

8

主题

36

回帖

60

积分

初级会员

积分
60
 楼主| 发表于 2014-8-20 09:38:26 | 显示全部楼层

回 eric2013 的帖子

eric2013:你是用F1外挂SRAM做emWin的动态内存吗 (2014-08-19 10:27) 
是啊,大神,我用的是F103ZET6芯片做测试啊,这个有问题吗?单独测试SRAM读写没问题呢

在F1上给emwin分配动态内存有容量限制吗?多谢!急等
回复

使用道具 举报

8

主题

36

回帖

60

积分

初级会员

积分
60
 楼主| 发表于 2014-8-20 13:49:34 | 显示全部楼层
大神,急等回复啊
回复

使用道具 举报

8

主题

36

回帖

60

积分

初级会员

积分
60
 楼主| 发表于 2014-8-21 12:01:47 | 显示全部楼层
大神都忙着了啊,急等回复啊,多谢!
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117567
QQ
发表于 2014-8-21 17:54:03 | 显示全部楼层

回 shenxl419 的帖子

shenxl419:大神都忙着了啊,急等回复啊,多谢! (2014-08-21 12:01) 
没有限制啊,我看下下你的GUIConf.C文件里面的配置。
回复

使用道具 举报

8

主题

36

回帖

60

积分

初级会员

积分
60
 楼主| 发表于 2014-8-22 13:05:46 | 显示全部楼层

回 eric2013 的帖子

eric2013:没有限制啊,我看下下你的GUIConf.C文件里面的配置。 (2014-08-21 17:54) 
#define Bank1_SRAM3_ADDR    ((u32)0x68000000)  



    // Define the average block size  

    #define GUI_BLOCKSIZE 0x80  
      
      
    /*********************************************************************
    *
    *       Public code
    *
    **********************************************************************
    */  
    /*********************************************************************
    *
    *       GUI_X_Config
    *
    * Purpose:
    *   Called during the initialization process in order to set up the
    *   available memory for the GUI.
    */  
    void GUI_X_Config(void) {  
      //  
      // 16 bit aligned memory area  
      //  
       volatile U16* aMemory = (volatile U16*)(Bank1_SRAM3_ADDR);  
      //  
      // Assign memory to emWin  
      //  
      GUI_ALLOC_AssignMemory((void*)aMemory, 512*1024);  
      GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE);  
      //  
      // Set default font  
      //  
      GUI_SetDefaultFont(GUI_FONT_6X8);  
    }
回复

使用道具 举报

8

主题

36

回帖

60

积分

初级会员

积分
60
 楼主| 发表于 2014-8-22 13:06:21 | 显示全部楼层
大神,我就是按照这个配置的,不使用SRAM的时候,可以正常显示的
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117567
QQ
发表于 2014-8-22 14:18:49 | 显示全部楼层

回 shenxl419 的帖子

shenxl419:大神,我就是按照这个配置的,不使用SRAM的时候,可以正常显示的 (2014-08-22 13:06) 
使用外部SRAM作为emWin的动态内存还是有些问题没有解决,以前我们的V5板子也出现过这种问题。后来不知道怎么给解决了,不过代码还没有开源,得等一段时间。还需要再测试测试。
回复

使用道具 举报

8

主题

36

回帖

60

积分

初级会员

积分
60
 楼主| 发表于 2014-8-22 16:07:19 | 显示全部楼层

回 eric2013 的帖子

eric2013:使用外部SRAM作为emWin的动态内存还是有些问题没有解决,以前我们的V5板子也出现过这种问题。后来不知道怎么给解决了,不过代码还没有开源,得等一段时间。还需要再测试测试。 (2014-08-22 14:18) 
大神,能不能给我解决思路,或者你们当时用过的方法,感谢啊!这个问题困扰了一个周了
回复

使用道具 举报

8

主题

36

回帖

60

积分

初级会员

积分
60
 楼主| 发表于 2014-8-25 12:12:16 | 显示全部楼层
大神能否给个回复啊,急等啊,谢谢
回复

使用道具 举报

8

主题

36

回帖

60

积分

初级会员

积分
60
 楼主| 发表于 2014-8-26 09:58:16 | 显示全部楼层
期待大神各个回复啊,多谢!多谢!多谢!多谢!多谢!多谢!多谢!多谢!多谢!多谢!多谢!多谢!多谢!多谢!多谢!多谢!多谢!多谢!多谢!多谢!多谢!
回复

使用道具 举报

8

主题

36

回帖

60

积分

初级会员

积分
60
 楼主| 发表于 2014-8-27 09:41:32 | 显示全部楼层
难道真的不给个回复吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117567
QQ
发表于 2014-8-27 10:10:52 | 显示全部楼层
不是不给你回复,而是没有办法解决。
回复

使用道具 举报

8

主题

36

回帖

60

积分

初级会员

积分
60
 楼主| 发表于 2014-8-27 15:16:10 | 显示全部楼层
请问大神,你们在V5上是怎么解决的呢?可以给个描述思路吗?或者配置SRAM要注意的地方,不求代码,只求思路,多谢!我的邮箱:shenxl419@163.com
回复

使用道具 举报

8

主题

36

回帖

60

积分

初级会员

积分
60
 楼主| 发表于 2014-9-1 12:15:19 | 显示全部楼层

回 rxz123 的帖子

rxz123:我也遇到过  不过解决了 忘记到底哪的事了    我用的是407   多参考几家的 开发板原理图  若没有虚焊 就是软件配置的 问题  管脚配置 还有FSMC的配置 都会出现这样的问题  不过先把FSMC RAM 的 通信速度啥 .. (2014-08-30 22:36) 
多谢大神啊,感激啊,您你能不能给我提供一份工程代码,看看您的配置,板子确定没有虚焊,应该是软件配置的问题,我的邮箱:shenxl419@163.com,感激啊!
回复

使用道具 举报

5

主题

582

回帖

597

积分

版主

Rank: 7Rank: 7Rank: 7

积分
597
发表于 2014-9-18 08:35:17 | 显示全部楼层
会不会是无法4字节读取的原因啊,fsmc只有16位数据
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2015-3-27 08:19:03 | 显示全部楼层
楼主,我遇到了和你一样的问题,请问你的问题解决了吗??
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117567
QQ
发表于 2015-3-27 09:24:18 | 显示全部楼层

回 zwh751279833 的帖子

zwh751279833:楼主,我遇到了和你一样的问题,请问你的问题解决了吗?? (2015-03-27 08:19) 
参考我们V5开发板示波器的代码,已经很好的解决了,emWin动态内存全部使用外挂的2MB高速SRAM:https://forum.anfulai.cn/forum.php?mod=viewthread&tid=1285
回复

使用道具 举报

5

主题

69

回帖

5

积分

初级会员

积分
5
发表于 2015-3-30 17:52:03 | 显示全部楼层

回 zwh751279833 的帖子

zwh751279833:楼主,我遇到了和你一样的问题,请问你的问题解决了吗??(2015-03-27 08:19)嬀/color]
如果开始就死机的话 看看有没有在调用GUI_Init 之前初始化SRAM
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2015-5-25 16:17:22 | 显示全部楼层
遇到同样的问题,请问楼主如何解决???谢谢!
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117567
QQ
发表于 2015-5-25 23:39:48 | 显示全部楼层

回 zouxinghai 的帖子

zouxinghai:遇到同样的问题,请问楼主如何解决???谢谢!
 (2015-05-25 16:17) 
参考我们V5开发板示波器的代码,已经很好的解决了,emWin动态内存全部使用外挂的2MB高速SRAM:https://forum.anfulai.cn/forum.php?mod=viewthread&tid=1285
回复

使用道具 举报

5

主题

69

回帖

5

积分

初级会员

积分
5
发表于 2015-5-29 16:01:28 | 显示全部楼层
可能的解决办法,供大家测试下。

1、看看在哪里调用的RAM初始化函数,确定RAM在调用GUI_Init之前已经初始化了
2、看看GUIConf.c文件中是否已经进行了正确的内存分配
回复

使用道具 举报

0

主题

2

回帖

0

积分

新手上路

积分
0
发表于 2015-6-26 03:23:27 | 显示全部楼层
我也遇到了类似的问题(外接SRAM可正常读写,但emwin使用时就进入HardFault),就是一执行GUI_Init()函数就卡死(进入HardFault),
1.然后我就怀疑malloc内存管理的问题
2.跟到mem_malloc(内存分配)函数内,发现是无法分配到内存,因为,如果分配到内存,返回的是内存偏移地址,而实际我看到的是返回的是0XFFFFFFFF,故怀疑是外部SRAM没有背出好似话的原因
3.故在最开始内存初始化时mem_init(MEMx)发现:对应外部SRAM相应地址的内存在初始化时未被设为0
4.原因找到:外部SRAM未能正确初始化,EMWIN分配不到内存

但是我不知道为什么外部的SRAM不能正确初始化,此部分问题不知道哪位大神遇到过?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117567
QQ
发表于 2015-6-26 08:33:46 | 显示全部楼层

回 suna123 的帖子

suna123:我也遇到了类似的问题(外接SRAM可正常读写,但emwin使用时就进入HardFault),就是一执行GUI_Init()函数就卡死(进入HardFault),
1.然后我就怀疑malloc内存管理的问题
2.跟到mem_malloc(内存分配)函数内,发现是无法分配到内存,因为,如果分配到内存,返回的是内存偏移地址 .. (2015-06-26 03:23)
你看下这位网友的解决办法是否能够帮到你。
https://forum.anfulai.cn/forum.php?mod=viewthread&tid=9151
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2015-6-26 11:05:53 | 显示全部楼层
LCD的驱动程序FSMC配置加上这句:
FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable;
试试
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2015-6-26 11:06:17 | 显示全部楼层

回 zwh751279833 的帖子

zwh751279833:楼主,我遇到了和你一样的问题,请问你的问题解决了吗?? (2015-03-27 08:19) 
试试29楼的方法
回复

使用道具 举报

0

主题

8

回帖

8

积分

新手上路

积分
8
发表于 2015-6-26 11:06:45 | 显示全部楼层

回 suna123 的帖子

suna123:我也遇到了类似的问题(外接SRAM可正常读写,但emwin使用时就进入HardFault),就是一执行GUI_Init()函数就卡死(进入HardFault),
1.然后我就怀疑malloc内存管理的问题
2.跟到mem_malloc(内存分配)函数内,发现是无法分配到内存,因为,如果分配到内存,返回的是内存偏移地址 .. (2015-06-26 03:23) 
我的方法就用29楼的解决了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117567
QQ
发表于 2015-6-26 17:02:20 | 显示全部楼层

回 zwh751279833 的帖子

zwh751279833:LCD的驱动程序FSMC配置加上这句:
FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable;
试试 (2015-06-26 11:05) 
非常感谢补充的解决方法[s:142]
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-15 10:01 , Processed in 0.064969 second(s), 30 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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