硬汉嵌入式论坛

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

[有问必答] 外部SRAM做为emwin的空间问题

[复制链接]

5

主题

11

回帖

5

积分

新手上路

积分
5
QQ
发表于 2015-5-19 10:36:28 | 显示全部楼层 |阅读模式
我用”armfly-v2v3开发板裸机STemWin5.20“例程点亮了一个5寸屏和7寸屏,现在碰到一个这样的问题,当使用内部的ram作为emwin空间时正常,当使用外部的SRAM作为emwin空间时,
每次重新上电或者按复位键,会出现卡死在GUI_Init()里面的现象,多按复位两次又恢复正常,正常之后再按复位又卡死在GUI_Init(),GUI_X_Config里面的配置程序如下,

void GUI_X_Config(void)
{
    #if 0
    /* 32 bit aligned memory area */
    static U32 aMemory[GUI_NUMBYTES / 4];
   
    /*  Assign memory to emWin */
    GUI_ALLOC_AssignMemory(aMemory, GUI_NUMBYTES);
    GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE);
    #else

   
    /*  Assign memory to emWin */
//    GUI_ALLOC_AssignMemory((U32 *)0x68000000, 1024*1024);
//    GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE);
   
    static U32 *aMemory ;
    aMemory = (U32 *)0x68000000;
    /*  Assign memory to emWin */
    GUI_ALLOC_AssignMemory(aMemory, (1024*1024));
    GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE);

    #endif
}
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107369
QQ
发表于 2015-5-19 10:45:35 | 显示全部楼层
V2,V3板子使用外部SRAM做emWin动态内存还没有调试过,后面有时间我调试下,现在我手头已经没有V2,V3板子了。
回复

使用道具 举报

5

主题

11

回帖

5

积分

新手上路

积分
5
QQ
 楼主| 发表于 2015-5-19 10:59:35 | 显示全部楼层

回 eric2013 的帖子

eric2013:V2,V3板子使用外部SRAM做emWin动态内存还没有调试过,后面有时间我调试下,现在我手头已经没有V2,V3板子了。 (2015-05-19 10:45) 
现在这个板是我对着V3板子自己动手画的,我有V5的开发板,对了半天也没发现用外部SRAM做emwin的空间和V5有什么不一样的地方,网上查了下,也没发现有什么解决方法。
回复

使用道具 举报

5

主题

11

回帖

5

积分

新手上路

积分
5
QQ
 楼主| 发表于 2015-6-10 11:43:23 | 显示全部楼层
弄了好多天,问题终于解决了。由于SRAM和LCD都是挂载在FSMC上面的,所以要注意初始化时序的问题,我现在在初始化SRAM之前,先讲RA8875的RST脚拉低,让8875不处于工作状态,等SRAM初始化完成之后,在讲8875的RST脚拉高,在进行LCD的初始化,这样开机上电就不会出现卡死在GUI_Init()的现象了,现在每次上电都能正常启动了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107369
QQ
发表于 2015-6-10 16:28:46 | 显示全部楼层

回 gollpower 的帖子

gollpower:弄了好多天,问题终于解决了。由于SRAM和LCD都是挂载在FSMC上面的,所以要注意初始化时序的问题,我现在在初始化SRAM之前,先讲RA8875的RST脚拉低,让8875不处于工作状态,等SRAM初始化完成之后,在讲8875的RST脚拉高,在进行LCD的初始化,这样开机上电就不会出现卡死在GUI_Init( .. (2015-06-10 11:43) 
[s:151] 你的RST引脚是接在STM32上面的?
回复

使用道具 举报

336

主题

2042

回帖

3055

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3055
发表于 2015-6-10 16:47:37 | 显示全部楼层

回 gollpower 的帖子

gollpower:弄了好多天,问题终于解决了。由于SRAM和LCD都是挂载在FSMC上面的,所以要注意初始化时序的问题,我现在在初始化SRAM之前,先讲RA8875的RST脚拉低,让8875不处于工作状态,等SRAM初始化完成之后,在讲8875的RST脚拉高,在进行LCD的初始化,这样开机上电就不会出现卡死在GUI_Init( .. (2015-06-10 11:43) 
只能拉RA8875的RST脚么? 有没有别的脚可以拉?

因为FSMC上可能还接别的设备呢
回复

使用道具 举报

5

主题

11

回帖

5

积分

新手上路

积分
5
QQ
 楼主| 发表于 2015-6-25 09:45:34 | 显示全部楼层

回 eric2013 的帖子

eric2013:[s:151] 你的RST引脚是接在STM32上面的? (2015-06-10 16:28)
是的,我直接用个IO口控制这个复位脚了。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107369
QQ
发表于 2015-6-25 09:50:24 | 显示全部楼层

回 gollpower 的帖子

gollpower:是的,我直接用个IO口控制这个复位脚了。 (2015-06-25 09:45) 
明白了,谢谢告知
回复

使用道具 举报

5

主题

11

回帖

5

积分

新手上路

积分
5
QQ
 楼主| 发表于 2015-6-25 10:11:40 | 显示全部楼层

回 caicaptain2 的帖子

caicaptain2:只能拉RA8875的RST脚么? 有没有别的脚可以拉?

因为FSMC上可能还接别的设备呢

....... (2015-06-10 16:47)
拉8875的RST脚只是让8875不工作而已,FSMC还是照常工作啊,不会影响FSMC上别的设备的使用。别的方法我就没试过了。
回复

使用道具 举报

336

主题

2042

回帖

3055

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3055
发表于 2015-8-25 11:27:46 | 显示全部楼层

回 gollpower 的帖子

gollpower:拉8875的RST脚只是让8875不工作而已,FSMC还是照常工作啊,不会影响FSMC上别的设备的使用。别的方法我就没试过了。 (2015-06-25 10:11) 
理论上,拉高RA8875的片选(即禁止),应该就不会影响SRAM的初始化的哦。。。

大多数情况下,RA8875的RST和stm32的RST是接在一起的。 你的这个方法比较奇怪。
回复

使用道具 举报

100

主题

275

回帖

575

积分

金牌会员

积分
575
发表于 2015-10-4 21:47:41 | 显示全部楼层

回 gollpower 的帖子

gollpower:拉8875的RST脚只是让8875不工作而已,FSMC还是照常工作啊,不会影响FSMC上别的设备的使用。别的方法我就没试过了。 (2015-06-25 10:11) 
8875的RST脚一直是一个IO口管的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-28 11:05 , Processed in 0.262711 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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