硬汉嵌入式论坛

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

[emWin] RTX+EMWIN+SD文件系统 emwin线程死机,但是RTX不死机

[复制链接]

3

主题

3

回帖

43

积分

新手上路

积分
43
发表于 2018-3-26 11:35:54 | 显示全部楼层 |阅读模式
最近做项目遇到个很奇怪的问题,不知道有没有个大侠指点下,我移植好的RTX和emwin运行都没问题,加上SPI_FLASH文件系统也是没有问题的,但是加上SD卡文件系统之后就会导致emwin线程 不定时死机 但是其它线程运行正常,也就是说RTX并没有死机,专门处理emwin的线程代码循环部分如下:while(1){
        GUI_Delay(10);// i 代表电池容量的数据
        changeProgbarBat(i);//向标题栏窗体发送消息,改变电池显示的参数               
}
实际调试的时候发现emwin是移植在等待sem信号量,只不过是一直等不来而已,

文件系统使用长文件名,#define  _USE_LEN 2  
/   0: Disable LFN feature. _MAX_LFN has no effect.
/   1: Enable LFN with static working buffer on the BSS. Always NOT thread-safe.
/   2: Enable LFN with dynamic working buffer on the STACK.
/   3: Enable LFN with dynamic working buffer on the HEAP.
按照示意,文件名应该是使用了芯片STACK  考虑到可能是堆栈太小的问题,后来就把堆栈改成 8192Byte问题并没有解决,然后又分别把heap和处理文件系统的线程和emwin线程的任务栈都扩大到8192Byte,问题依然没有解决,
文件系统部分任务代码如下
__task void taskFatFs(void)
{
        //test_sd_fatfs();
        usart1TxStart("spi test\r\n");
        test_spi_fatfs();
        while(1)
        {       
                LED0=!LED0; / /  实际测试发现程序已经执行到这里且正常执行,但就是接下来的时间不一定要多长时间,emwin的那个线程就死在等待sem信号量了
                os_dly_wait(500);
        }
}

就这样啦,能说的我就说了,还请各位的大侠给指点指点下



回复

使用道具 举报

3

主题

3

回帖

43

积分

新手上路

积分
43
 楼主| 发表于 2018-3-26 11:38:04 | 显示全部楼层
//test_sd_fatfs(); 补充一点,就是把这一页注释掉,问题就不会再出现
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2018-3-26 11:49:54 | 显示全部楼层
先测试下不使用长文件名是否有问题。
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2018-12-11 22:46:12 | 显示全部楼层
我也是这个问题,比较奇怪,RL_fs 感觉很烂
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2018-12-12 00:00:11 | 显示全部楼层
张晓 发表于 2018-12-11 22:46
我也是这个问题,比较奇怪,RL_fs 感觉很烂

不看帖子乱回复,楼主用的是FatFS
回复

使用道具 举报

29

主题

514

回帖

606

积分

金牌会员

积分
606
QQ
发表于 2018-12-12 09:00:29 | 显示全部楼层
1.线程的优先级的划分方法;
2.高优先级的线程应该尽可能精简,少做频繁调用;
3.个别重要的数据读取放在低优先级线程执行,要考虑加互斥锁。
4.emWin耗时耗资源,运行节奏要照顾好emWin 页面切换的繁忙以及大延时。

三个月前,我的产品碰到了很多跟楼主相似的问题,中途反反复复琢磨了上面四个问题,希望能给你一点idea成长。
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2018-12-12 15:26:52 | 显示全部楼层
RL_fs 压抑了好几天,终于搞定了。4bit的很不稳定,双线的比较好,虽然速度比不上4bit,总算能用了。fatfs准备移植,费劲不小,SDIO的结构在rtos2里找不到了,烧脑子两天,还是回来了。rtos集成度很好,虽熟悉浪费了两个月,emwin,rl_fs,sdram ,算是比较稳定,也算小有收获,可以集中精力在业务层了。示波器二代的样板也不错,大家啊,继续努力!
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2018-12-12 15:28:19 | 显示全部楼层
github的stm32f429-master,大家可以看看,fatfs有较深的移植水平。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 16:55 , Processed in 0.292632 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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