OpenEdv-开源电子网

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

STemWin带UCOS移植 死机

[复制链接]

36

主题

124

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2016-4-28
在线时间
262 小时
发表于 2016-6-21 12:48:37 | 显示全部楼层 |阅读模式
1金钱
大家好,小弟最近在学习STEMWIN, 将 EMWIN实验1 STemWin无操作系统移植  和 EMWIN实验2 STemWin带UCOS移植  这两个实例程序下载到板子后,发现 右下角 CONTROL 的进度条 跑到 %几 后 就死机了,LED也不闪烁了。

按RESET键重启,有时候能跑到60%,甚至100%,但是经常是 0%  20% 等 就死机了。

我单独检查了 FSMC 动态内存分配的实例 (实验37 内存管理实验),以及 外部SRAM实验,都没有问题。

唯一有区别的地方在于 我用的 F407ZET6, 不是 F407VET6。 仅仅是 片上FLASH大小的区别。

请教大家怎么回事呢?

另外,我用我自己编写的 纯UCOS3 操作系统(没有EMWIN,只是 LED闪烁,串口打数据,DSP计算) 三个并行使用,都没有问题。应该不是UCOS的问题。


最佳答案

查看完整内容[请看2#楼]

问题解决!!!!!!!!!! 原因!!!!!!!!!!!!是!!!!!!!!!!!!!!!! FSMC_ReadWriteTimingStructure.FSMC_DataSetupTime = 0x0A; SRAM的 FSMC设置里 关于DATA SETUP 时间,例程里是 0X09 X HCLK = 54NS。 但是!!!!!!!! 可能因为我PCB布线的原因,需要更长一点,我修改成 0X0A X HCLK = 59ns 成功了!!!!!! 总结:死机的原因是 SRAM高速操作的时序 不满足,导致SRAM ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

36

主题

124

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2016-4-28
在线时间
262 小时
 楼主| 发表于 2016-6-21 12:48:38 | 显示全部楼层
问题解决!!!!!!!!!!
原因!!!!!!!!!!!!是!!!!!!!!!!!!!!!!

FSMC_ReadWriteTimingStructure.FSMC_DataSetupTime = 0x0A;   

SRAM的 FSMC设置里 关于DATA SETUP 时间,例程里是 0X09 X HCLK = 54NS。

但是!!!!!!!!  可能因为我PCB布线的原因,需要更长一点,我修改成 0X0A X HCLK = 59ns

成功了!!!!!!

总结:死机的原因是 SRAM高速操作的时序 不满足,导致SRAM高速访问会有随机错误。

所以说PCB布板还是很重要的。
回复

使用道具 举报

36

主题

124

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2016-4-28
在线时间
262 小时
 楼主| 发表于 2016-6-21 12:50:59 | 显示全部楼层
QQ截图20160621125031.jpg
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2016-6-21 14:57:41 | 显示全部楼层
启动文件.s里面的栈定义大一点。
回复

使用道具 举报

36

主题

124

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2016-4-28
在线时间
262 小时
 楼主| 发表于 2016-6-21 15:22:57 | 显示全部楼层
zuozhongkai 发表于 2016-6-21 14:57
启动文件.s里面的栈定义大一点。

请教 在哪个文件的哪个地方改呢?十分感谢!!!!
回复

使用道具 举报

36

主题

124

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2016-4-28
在线时间
262 小时
 楼主| 发表于 2016-6-21 15:46:54 | 显示全部楼层
zuozhongkai 发表于 2016-6-21 14:57
启动文件.s里面的栈定义大一点。

我把 startup_stm32f40_41xxx.s 里面的

Stack_Size      EQU     0x00000400 改成 0X00001000 ,放大了4倍,还是没有解决。。。
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2016-6-21 16:16:00 | 显示全部楼层
orta 发表于 2016-6-21 15:46
我把 startup_stm32f40_41xxx.s 里面的

Stack_Size      EQU     0x00000400 改成 0X00001000 ,放大 ...

那再把emwin任务的任务堆栈改大一点,如果还不行就是移植的问题了
开往春天的手扶拖拉机
回复

使用道具 举报

36

主题

124

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2016-4-28
在线时间
262 小时
 楼主| 发表于 2016-6-21 16:20:31 | 显示全部楼层
zuozhongkai 发表于 2016-6-21 16:16
那再把emwin任务的任务堆栈改大一点,如果还不行就是移植的问题了

请问 emwin任务的任务堆栈  这个具体在哪里改呢?
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2016-6-21 16:24:24 | 显示全部楼层
orta 发表于 2016-6-21 16:20
请问 emwin任务的任务堆栈  这个具体在哪里改呢?

额,就是你运行emwin例程的那个任务的任务堆栈啊。
开往春天的手扶拖拉机
回复

使用道具 举报

36

主题

124

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2016-4-28
在线时间
262 小时
 楼主| 发表于 2016-6-21 16:48:52 | 显示全部楼层
QQ截图20160621164523.jpg
GUI的内存我给了 700K
QQ截图20160621164533.jpg

因为我用的 F407ZET6,片上FLASH是 512KB(而探索者是 ZGT6,1MB),所以在 MEM1 内存管理我设定是 40K(探索者例程是 90K),我也用的相同的SRAM,所以MEM2给的800K

以上是这么设置的,可是就是死机啊。。。连第一页都翻不过去就死机了

回复

使用道具 举报

36

主题

124

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2016-4-28
在线时间
262 小时
 楼主| 发表于 2016-6-21 16:53:00 | 显示全部楼层
zuozhongkai 发表于 2016-6-21 16:24
额,就是你运行emwin例程的那个任务的任务堆栈啊。

我的电路板设计与 探索者是一模一样的,包括管脚定义,SRAM芯片型号等

只是 芯片用的是 用的 F407ZET6,片上FLASH是 512KB(而探索者是 ZGT6,1MB)

之前基础例程我只需要改一下DEVICE型号就都可以下载运行。
可是这个STEMWIN 难倒了我。

我开始担心是不是因为 ZET6的片上FLASH比 ZGT6少一倍,导致跑EMWIN有问题

但是我的外部SRAM和探索者是一样的啊

回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 22:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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