硬汉嵌入式论坛

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

[emWin] 关于Stemwin使用使用外置SDRAM的问题,正常配置了不能显示

[复制链接]

27

主题

70

回帖

151

积分

初级会员

积分
151
发表于 2019-2-18 10:20:58 | 显示全部楼层 |阅读模式
我在网上下载的例程,运行stemwin没有什么问题,我的板子有SDRAM想使用SDRAM跑STEMWIN,但是按照你们的教程配置了后就是不显示
void GUI_X_Config(void) {
  //
  // 32 bit aligned memory area
  //
  static U32 aMemory[GUI_NUMBYTES / 4];
  //
  // Assign memory to emWin
  //
  GUI_ALLOC_AssignMemory(aMemory, GUI_NUMBYTES);
  //
  // Set default font
  //
  GUI_SetDefaultFont(GUI_FONT_6X8);
}

这个是使用内部存储的,这个是能够正常运行的
我替换成

#define GUI_BLOCKSIZE 0x80
void GUI_X_Config(void) {
  //
  // 32 bit aligned memory area
  //
  static U32 *aMemory;
  aMemory = (U32 *)SDRAM_DEVICE_ADDR;
        //
  // Assign memory to emWin
  //
  GUI_ALLOC_AssignMemory(aMemory, GUI_NUMBYTES);
  //
  // Set default font
  //
  GUI_SetDefaultFont(GUI_FONT_6X8);
        GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE);
}

我替换成这个就不能够正常显示其中
#define SDRAM_DEVICE_ADDR  ((uint32_t)0xD0000000)
#define SDRAM_DEVICE_SIZE  ((uint32_t)0x800000)  /* SDRAM device size in MBytes */

是在SDRAM的驱动里面定义的
这个例程里面在LCDconf里面也用到了SDRAM地址
/* From SDRAM */
#define LCD_LAYER0_FRAME_BUFFER  ((int)0xD0400000)
#define LCD_LAYER1_FRAME_BUFFER  ((int)0xD0600000)

static void LCD_LL_LayerInit(U32 LayerIndex)
{
  LTDC_LayerCfgTypeDef             layer_cfg;

  if (LayerIndex < GUI_NUM_LAYERS)
  {
    /* Layer configuration */
    layer_cfg.WindowX0 = 0;
    layer_cfg.WindowX1 = XSIZE_PHYS;
    layer_cfg.WindowY0 = 0;
    layer_cfg.WindowY1 = YSIZE_PHYS;
    layer_cfg.PixelFormat = LCD_LL_GetPixelformat(LayerIndex);
    layer_cfg.FBStartAdress = ((uint32_t)0xD0000000);
    layer_cfg.Alpha = 255;

就这几个地方用到了,我现在想吧Stemwin的动态内存也用SDRAM,我把地址错开例如layer_cfg.FBStartAdress = ((uint32_t)0xD0200000),也是不能正常显示
但是动态内存用芯片内部的就没有问题

帮忙分析下怎么回事,谢谢






回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2019-2-18 10:22:40 | 显示全部楼层
这个不是我们的,我们是标准库。
回复

使用道具 举报

27

主题

70

回帖

151

积分

初级会员

积分
151
 楼主| 发表于 2019-2-18 16:02:21 | 显示全部楼层
我参考了你们的移植教程,这个用的是CUBEmx库,什么原因呢,老奇怪了,一设置成外部SDRAM直接是硬件错误
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2019-2-18 17:01:56 | 显示全部楼层
^张浩然 发表于 2019-2-18 16:02
我参考了你们的移植教程,这个用的是CUBEmx库,什么原因呢,老奇怪了,一设置成外部SDRAM直接是硬件错误

参考我们教程的话,务必按照教程移植章节进行测试,移植好之后先测试背景层,教程有对应的说明,然后测试图层,然后测试emWin即可:

【安富莱】全新65章2076页史诗级emWin教程发布,5年的实战经验全奉献,本次教程突出实战
http://www.armbbs.cn/forum.php?m ... 9834&fromuid=58
(出处: 安富莱电子论坛)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 22:42 , Processed in 0.221110 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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