完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
可能是我自己能力的问题……发现51单片机运算浮点数和 32位的数据实在太慢了!!! 并且如果一段程序内 占用的内存太多十分容易死机!!
同一个子函数内 多定义了几个浮点数或者32位数据,TMD有时候开机就卡死,开几次才开得起来,但是运行一会就死机了,我保证使用的内存没有超过单片机标称的容量!!! 我只定义了 3个 32位整型的,和一个浮点数,还有一个长度128字节的数组,但是数组我是定义在XDATA里面的, unsigned char xdata tab[128]; flash的地址都是32位的多,如果在图片处理的时候需要单独读取里面任意一个像素的颜色,那肯定要对地址进行运算了…… 但是同一段代码,在STM8 却一点问题也没有!!我擦! |
|
相关推荐
9个回答
|
|
我在所有临时变量前都加了个 xdata 就好了(我就不一一截图了)???难道真的是内存溢出??? 不太可能吧!!! 我仔细数过,data部分的变量总字节数 离128还远着呢! |
|
|
|
艹!! 看来我高兴得太早了,刚刚发完帖子 单片机就死机了!
|
|
|
|
|
|
|
|
8位的机器,才多大内存。。。 要性能还ARM平台吧
|
|
|
|
软仿真看看内存情况呀
|
|
|
|
|
|
|
|
51还是要对内部RAM非常了解,才能对内存苛刻时写出稳定的系统。
|
|
|
|
这个我很赞同!!!如果用51做一个稍微复杂点的东西,写起代码来确实很是讲究,定义个变量都得小心翼翼!! !!
|
|
|
|
你看看堆栈设置,没准会溢出
|
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2955 浏览 16 评论
3455 浏览 1 评论
8987 浏览 16 评论
4050 浏览 18 评论
1102浏览 3评论
570浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
568浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2301浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1857浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 03:44 , Processed in 1.627710 second(s), Total 85, Slave 75 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号