OpenEdv-开源电子网

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

关于柯南大侠的人机界面

[复制链接]

17

主题

293

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
金钱
388
注册时间
2012-12-26
在线时间
1 小时
发表于 2014-3-2 18:30:15 | 显示全部楼层 |阅读模式
           在战舰上将,柯南的人机界面改了支持3.5寸屏幕,但是现在出了一个新问题,文件浏览器,打开后能看到SD卡的根目录,但是选中其中一个文件夹,点击打开时就卡死进入硬件错误循环里面,求解,这是怎么回事啊 
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2014-3-2 19:05:34 | 显示全部楼层
估计是文件系统有问题吧,要不然就是目录内文件太多,遍历过程内存占用过大溢出
回复 支持 反对

使用道具 举报

17

主题

293

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
金钱
388
注册时间
2012-12-26
在线时间
1 小时
 楼主| 发表于 2014-3-2 19:54:41 | 显示全部楼层
回复【2楼】ricefat:

估计是文件系统有问题吧,要不然就是目录内文件太多,遍历过程内存占用过大溢出

---------------------------------
根目录下文件夹和文件总共19个,
卡死在这个里面
static void FileOpen(LISTBOX_Handle hFileBrowseListBox,char *buf)
{
u16 i;
FilePath_process(FilePath,buf);
FatFs_Open(FilePath);
for (i =  LISTBOX_GetNumItems(hFileBrowseListBox);i > 0;i--){
LISTBOX_DeleteItem(hFileBrowseListBox, i-1);
}
for(i = 0;i < filecount;i++){
 LISTBOX_AddString(hFileBrowseListBox, (char*)FileList);
}
}

第一个for循环当i=0x0011时(i初始为0x0019),执行LISTBOX_DeleteItem(hFileBrowseListBox,i-1)时卡死在里面的函数,里面都是uCGUI自己的函数,这个函数是uCGUI提供的API,柯南大侠的这个程序是一样的,但不会死,真搞不懂了,这个函数是在文件浏览器对话框的回调函数里调用的,文件浏览服务堆栈设置为1024了都,还是会出现这个问题,不知是哪里的问题
回复 支持 反对

使用道具 举报

17

主题

293

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
金钱
388
注册时间
2012-12-26
在线时间
1 小时
 楼主| 发表于 2014-3-2 19:56:24 | 显示全部楼层
回复【2楼】ricefat:

估计是文件系统有问题吧,要不然就是目录内文件太多,遍历过程内存占用过大溢出

---------------------------------
怎么查看内存是否溢出,利用KEIl
回复 支持 反对

使用道具 举报

17

主题

293

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
金钱
388
注册时间
2012-12-26
在线时间
1 小时
 楼主| 发表于 2014-3-4 00:32:51 | 显示全部楼层
回复【楼主位】kassandra:

           在战舰上将,柯南的人机界面改了支持3.5寸屏幕,但是现在出了一个新问题,文件浏览器,打开后能看到SD卡的根目录,但是选中其中一个文件夹,点击打开时就卡死进入硬件错误循环里面,求解,这是怎么回事啊 

---------------------------------
经过不懈努力终于找出原因了,是版本的问题 uCGUI3.98会出现这个问题,具体还会表现在在一个对话框的回调函数里面再创建对话框的时候会卡死,3.90版本则不会出现这个问题 ,但是相对于3.90,3.98版本则多了对Graph控件和Drapdown控件的支持,新添加了对MultiEdit等控件的多项属性设置                                        
回复 支持 反对

使用道具 举报

17

主题

293

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
金钱
388
注册时间
2012-12-26
在线时间
1 小时
 楼主| 发表于 2014-3-4 00:42:42 | 显示全部楼层
回复【2楼】ricefat:

估计是文件系统有问题吧,要不然就是目录内文件太多,遍历过程内存占用过大溢出

---------------------------------
不是的,是uCGUI版本的问题,我用的是3.98版的,这个版本可能有问题,在窗口的回调函数里面调用某些函数的时候会卡死进入硬件错误中断,后来我用3.90版本替换掉了3.98就好了,不会出现在回调函数里面调用某些函数例如创建对话框函数的时候出现卡死的问题,这可能是3.98的Bug 不知道是哪里的内存或是堆栈溢出了,具体原因现在还不清楚;多任务系统中,在1号任务里创建了一个对话框1,然后在对话框1的回调函数里再创建对话框2,这个时候3.89就会出现卡死的现象
回复 支持 反对

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2014-3-4 09:13:58 | 显示全部楼层
回复【6楼】kassandra:
---------------------------------
原来是这样,学习了。
如果不是为了中文,还是可以考虑STemWin,估计这些BUG都没了
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-14 03:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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