OpenEdv-开源电子网

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

关于51单片机!

[复制链接]

36

主题

249

帖子

0

精华

高级会员

Rank: 4

积分
680
金钱
680
注册时间
2015-12-13
在线时间
243 小时
发表于 2016-3-9 06:56:38 | 显示全部楼层 |阅读模式
可能是我自己能力的问题……发现51单片机运算浮点数和 32位的数据实在太慢了!!! 并且如果一段程序内 占用的内存太多十分容易死机!!

同一个子函数内 多定义了几个浮点数或者32位数据,TMD有时候开机就卡死,开几次才开得起来,但是运行一会就死机了,我保证使用的内存没有超过单片机标称的容量!!!
我只定义了 3个 32位整型的,和一个浮点数,还有一个长度128字节的数组,但是数组我是定义在XDATA里面的, unsigned char xdata tab[128];
flash的地址都是32位的多,如果在图片处理的时候需要单独读取里面任意一个像素的颜色,那肯定要对地址进行运算了……

但是同一段代码,在STM8 却一点问题也没有!!我擦!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

36

主题

249

帖子

0

精华

高级会员

Rank: 4

积分
680
金钱
680
注册时间
2015-12-13
在线时间
243 小时
 楼主| 发表于 2016-3-9 07:26:20 | 显示全部楼层
QQ截图20160309071809.jpg QQ截图20160309072020.jpg

我在所有临时变量前都加了个 xdata 就好了(我就不一一截图了)???难道真的是内存溢出???  不太可能吧!!!
我仔细数过,data部分的变量总字节数 离128还远着呢!
回复 支持 反对

使用道具 举报

36

主题

249

帖子

0

精华

高级会员

Rank: 4

积分
680
金钱
680
注册时间
2015-12-13
在线时间
243 小时
 楼主| 发表于 2016-3-9 07:32:02 | 显示全部楼层
HER107 发表于 2016-3-9 07:26
我在所有临时变量前都加了个 xdata 就好了(我就不一一截图了)???难道真的是内存溢出???  不太 ...

艹!! 看来我高兴得太早了,刚刚发完帖子 单片机就死机了!
回复 支持 反对

使用道具 举报

36

主题

249

帖子

0

精华

高级会员

Rank: 4

积分
680
金钱
680
注册时间
2015-12-13
在线时间
243 小时
 楼主| 发表于 2016-3-9 07:43:57 | 显示全部楼层
2016-03-09 07.41.33.jpg
又死机了 图片切换不到2/3 就死机了  任何输入都没反应,除了按复位!
回复 支持 反对

使用道具 举报

0

主题

25

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2016-4-6
在线时间
1 小时
发表于 2016-4-7 00:38:16 | 显示全部楼层
8位的机器,才多大内存。。。  要性能还ARM平台吧
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2016-4-6
在线时间
4 小时
发表于 2016-4-14 17:20:05 | 显示全部楼层
软仿真看看内存情况呀
回复 支持 反对

使用道具 举报

36

主题

249

帖子

0

精华

高级会员

Rank: 4

积分
680
金钱
680
注册时间
2015-12-13
在线时间
243 小时
 楼主| 发表于 2016-4-14 22:07:03 | 显示全部楼层
天冰天降 发表于 2016-4-14 17:20
软仿真看看内存情况呀

我早就找到原因了!是因为临时变量太多,中断的时候堆栈溢出导致数据丢失造成的!!!
我已经解决了!
回复 支持 反对

使用道具 举报

17

主题

587

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4467
金钱
4467
注册时间
2013-6-27
在线时间
565 小时
发表于 2016-4-16 21:52:05 | 显示全部楼层
51还是要对内部RAM非常了解,才能对内存苛刻时写出稳定的系统。
让我们的思维驾驭在电的速度之上!
回复 支持 反对

使用道具 举报

36

主题

249

帖子

0

精华

高级会员

Rank: 4

积分
680
金钱
680
注册时间
2015-12-13
在线时间
243 小时
 楼主| 发表于 2016-4-17 00:05:30 | 显示全部楼层
DongInker 发表于 2016-4-16 21:52
51还是要对内部RAM非常了解,才能对内存苛刻时写出稳定的系统。

这个我很赞同!!!如果用51做一个稍微复杂点的东西,写起代码来确实很是讲究,定义个变量都得小心翼翼!! !!  
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 17:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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