打印
[AVR单片机]

【求助】关于ATmega128的程序空间问题?

[复制链接]
1790|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
neuo|  楼主 | 2010-8-10 13:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
做机器人
除去舵机控制程序,另有代码行4000+的一个问题求解算法
ATmega128的能不能装下?
若不能,大概要换多大的单片机?
附:压缩代码大概能到3000左右,但是函数调用层数变多。
ATmega128的函数栈有多少?

相关帖子

沙发
疯子8972| | 2010-8-10 14:20 | 只看该作者
不是是不是用ICC编写
ICC只能支持64K
高64K需要手动
完全可以把复杂的函数放在高64K
调用时处理下跳转

ICC的帮助中有

使用特权

评论回复
板凳
neuo|  楼主 | 2010-8-10 14:31 | 只看该作者
2# 疯子8972

没有很么复杂函数,都是if...else 判断,多达近万种。

使用特权

评论回复
地板
疯子8972| | 2010-8-10 15:30 | 只看该作者
64K不够了?

使用特权

评论回复
5
chunyang| | 2010-8-10 16:04 | 只看该作者
如果程序过于庞大会影响运行效率,如果确实不能在程序结构上做出足够的优化或者任务本身确实太过繁杂,最好的办法不是靠单一大程序来强行实现,而是应该将任务分解,用多片MCU分担,然后用通讯总线将其整合为一体。现在的MCU已非常便宜,可选择的余地也很大,用多片MCU因为放宽了对资源的需求,在成本上未必就高,而且可同时大大降低程序出错或工艺性不佳带来的不良影响,像机器人这种应用,更是该用多片MCU来实现,需要复杂功能如音视频识别等可引入DSP、ARM甚至x86计算平台,而动作执行和一般传感器处理用多片MCU配合即可,这样的系统结构思想也是控制系统自1980S以来流行的“集散式控制系统”的主题思想。

使用特权

评论回复
评分
参与人数 2威望 +2 收起 理由
chrisbo + 1
neuo + 1
6
neuo|  楼主 | 2010-8-10 19:23 | 只看该作者
4# 疯子8972
倒也不是不够,只是现在怕不够,时间很紧,若是等程序写好来试就晚了,而且一块刷一块电路板也200元。资金不够了》。。。。

使用特权

评论回复
7
疯子8972| | 2010-8-10 22:34 | 只看该作者
时间急   资金少    估计也是以交差为目标的任务了
要做好   真要像chunyang大侠说得那样做
几万种if   else?
这样的情况,优化程序结构可能能缩掉很多的空间
将所有条件做成数据结构,条件既数据库
要改变机器人的行为  只要改变数据库即可
像变游戏一样   一样的引擎   不一样的素材   可得到不同的游戏
一样的判断规则   不一样的判断数据    得到不同的机器人行为
很多情况下    在好的程序结构     单片机的表现超出人们的想象

使用特权

评论回复
评分
参与人数 2威望 +2 收起 理由
clutchshooterr + 1 赞一个!
neuo + 1
8
neuo|  楼主 | 2010-8-11 15:00 | 只看该作者
7# 疯子8972
数据结构上的优化应该已经做的差不多了。
代码压缩成情况的16分之一了。都是同样的判断函数,不同的行为函数。
倒也不是交差,要不然也不会这么忧虑了。
先这样做着。现在担心的是,函数调用的层数太深了.....不然又要悲剧了....

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

5

帖子

1

粉丝