在装配中编程姿态控制/航空电子系统

时间:2013-07-08 17:55:45

标签: assembly astronomy

我目前正在与一个业余摇滚乐队合作(好吧,“业余”是一个延伸,我们所有人都已完成,已注册或已申请相关的大学学位课程)一个项目将卫星送入轨道。到目前为止主要完成了高级编程( VB.NET Python PHP ),稍微涉及到 FIG- FORTH ,我想知道要学习和使用什么语言来编程载波航天器的姿态控制/航空电子系统。

当然,由于速度和存储方面的效率在这里都是一个大问题,所以我想到的一件事就是大会。我的问题:这样做是否可行,即在大会中编程自动姿态控制系统?

在这种极低级别的编程语言中,这似乎非常复杂,所以我想知道在这个领域有更多经验的人是否可以权衡程序集是否是一个不错的选择,或者是否仍然存在像 FORTH FORTRAN C 这样的低级别,但稍微容易处理,与他们所承受的惩罚相比,可以节省大量时间程序大小和速度。

1 个答案:

答案 0 :(得分:5)

作为过去做过很多嵌入式系统编程的人,我强烈建议你用C语言进行原型设计。这样你就可以专注于你的算法,控制流程和错误处理,而不会陷入细枝末节。索引模式和个别指令优化。最重要的是你的控制系统实际上工作

C中原型设计的另一个好处是,您可以在具有现代开发工具的Windows或Linux系统上进行大部分原型设计:编辑器,开发环境,调试器等。这对周转时间产生巨大影响。

在您证明您的算法是合理的之后,您可以对系统进行分析以确定它占用多少内存以及它是否足够快。嵌入式系统有很多优秀的C编译器,如果你使用高效的算法,很可能系统效率很高,而不必深入研究手工编写的汇编语言。请记住,良好的算法选择可以为您提供数量级的速度提升。在大多数情况下,手动编码汇编语言只能(最多)提供小倍数的性能增益。通常,改善的比例很小(低于10%)。

让它发挥作用。然后让它小而快。

就学习汇编语言而言,我认为每个程序员都应该这样做。哪个处理器并不重要。我不同意有关学习x86作为第一种汇编语言的评论。关键课程与特定指令集或注册组织几乎没有关系。最重要的是学会在较低层次思考:按指令而不是按语句。我个人认识几十个程序员,他们的第一个汇编语言是x86,而且我发现他们没有比那些学习其他汇编语言的人更好或更差。学习x86的好处很多:有很多人可以学习,有很多很好的教程信息,有几个很好的免费汇编程序,甚至是模拟器和开发环境,都是免费且得到很好的支持。出于这些原因,我很难为首次汇编语言推荐其他任何东西。