OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7642|回复: 4

ucgui demo移植问题

[复制链接]

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2013-1-30
在线时间
3 小时
发表于 2013-2-18 16:17:30 | 显示全部楼层 |阅读模式
在移植ucgui的demo的时候,因为原子哥的库是不能修改屏的大小的,我直接使用源代码,如图


移植完成后在跑的时候只能跑第一遍,跑第二遍的时候就死在第一页上了。

void GUIDEMO_Intro(void) {
  int xCenter = LCD_GET_XSIZE() / 2;
  int y;
  char acText[50] = "Version of 礐/GUI: ";
  strcat(acText, GUI_GetVersionString());
  GUI_SetBkColor(GUI_BLUE);
  GUI_SetColor(GUI_YELLOW);
  GUI_Clear();
  GUI_SetFont(&GUI_Font13B_1);
  GUI_DispStringHCenterAt("礐/GUI", xCenter, y= 10);
  GUI_SetFont(&GUI_Font10_ASCII);
  GUI_SetColor(GUI_WHITE);
  GUI_DispStringHCenterAt("Universal graphic software"
                          "\nfor embedded applications"
                          , xCenter, y += 20);
  GUI_SetFont(&GUI_Font10S_ASCII);
  GUI_DispStringHCenterAt("Compiled " __DATE__ " "__TIME__, xCenter, y += 25);
  GUI_DispStringHCenterAt(acText, xCenter, y += 16);
  printf("GUIDEMO_Delay(2000);\t\n");
  GUIDEMO_Delay(2000);            //第二次运行时挂掉了 进去出不来,屏显示一直不动。

  printf("next www.PowerAVR.com\t\n");
  GUI_Clear();
  GUI_DrawBitmap(&bmMicriumLogo, (LCD_GET_XSIZE() - bmMicriumLogo.XSize) / 2, 6);
  GUI_SetFont(&GUI_Font13B_1);
  GUI_DispStringHCenterAt("www.PowerAVR.com", LCD_GET_XSIZE() / 2, LCD_GET_YSIZE() - 50);
  GUIDEMO_Delay(2000);
}

int GUIDEMO_Delay(int t) {

    char DEG2[200];
  int r = 0;
  #if GUI_WINSUPPORT
    int tm, value;
    
    #if GUIDEMO_LARGE
      PROGBAR_Handle hProg;
    #endif
    
    WM_SetForegroundWindow(_ahButton[0]);
    
    #if GUIDEMO_LARGE
      hProg = (t >100) ? PROGBAR_CreateAsChild(10, 10, 60, 7, _ahInfoWin[1], 0,
                                        WM_CF_SHOW | WM_CF_STAYONTOP| WM_CF_MEMDEV) : 0;
      PROGBAR_SetMinMax(hProg, 0, t);
    #endif
    
    tm = GUI_GetTime();
    sprintf(DEG2,"GUIDEMO_Delay--OSTimeGet()/tm:%d\r\n",tm);
    printf(DEG2);
    do {
      value = GUI_GetTime() - tm;
      
      #if GUIDEMO_LARGE
        PROGBAR_SetValue(hProg, value);
        WM_ExecIdle();
      #endif
    sprintf(DEG2,"GUIDEMO_Delay--OSTimeGet()/value:%d,next GUI_Delay(10)!\r\n",value);
    printf(DEG2);      
      GUI_Delay(10);
    } while ((value < t) && !GUIDEMO_CheckCancel());
    
    #if GUIDEMO_LARGE
      PROGBAR_Delete(hProg);
    #endif
    
    _UpdateCmdWin();
    WM_ExecIdle();
  #else
    GUI_Delay(t);
  #endif
  return r;
}
使用这两句进行调试输出可以看到。
GUIDEMO_Delay--OSTimeGet()/tm:138502
GUIDEMO_Delay--OSTimeGet()/value:42,next GUI_Delay(10)!
GUIDEMO_Delay--OSTimeGet()/value:370,next GUI_Delay(10)!
GUIDEMO_Delay--OSTimeGet()/value:445,next GUI_Delay(10)!
GUIDEMO_Delay--OSTimeGet()/value:520,next GUI_Delay(10)!
GUIDEMO_Delay--OSTimeGet()/value:595,next GUI_Delay(10)!
GUIDEMO_Delay--OSTimeGet()/value:670,next GUI_Delay(10)!
GUIDEMO_Delay--OSTimeGet()/value:745,next GUI_Delay(10)!
GUIDEMO_Delay--OSTimeGet()/value:820,next GUI_Delay(10)!
OSTimeGet():139406
GUIDEMO_main()!
GUIDEMO_Delay(2000);
GUIDEMO_Delay--OSTimeGet()/tm:139800
GUIDEMO_Delay--OSTimeGet()/value:43,next GUI_Delay(10)!

然后就不动了。后面就没有了
不知道谁知道这个是什么原因,如果是我系统时钟有问题应该是第一次都没办法跑下来才对,但是第一次跑成功了,只在第二次跑到第一页的时候才挂掉。



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-2-19 13:10:03 | 显示全部楼层
回复【楼主位】guhan121:
---------------------------------
是不是内存分配的问题?
有没有可能重复分配内存导致内存不够?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2013-1-30
在线时间
3 小时
 楼主| 发表于 2013-2-19 13:50:40 | 显示全部楼层
回复【2楼】正点原子:

回复【楼主位】guhan121:
---------------------------------
是不是内存分配的问题?
有没有可能重复分配内存导致内存不够?

---------------------------------
不太清楚,我尝试使用实验29的例程,替换掉里面的库文件为源代码,也出现只能跑一遍的情况,仿真的情况下进入的是硬件故障。 
内存分配是怎么算的,主要是那些地方的内存,能给点提示么。
回复 支持 反对

使用道具 举报

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2013-1-30
在线时间
3 小时
 楼主| 发表于 2013-2-19 13:52:35 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
你的实验29不是使用的一个ucGUI.lib么,有没有在制作这个库文件的时候修改了ucgui的源代码?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-2-19 16:41:32 | 显示全部楼层
没哦
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-22 06:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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