不管是代码的维护还是开发的质量都是一名的嵌入式工程师都要去考虑的,随着嵌入式的产品在市面的运用越来越多,现在对于嵌入式系统的要求也就越高了。也因为嵌入式是一门IT开发技术,而IT行业又是日新月异的行业,所以说在技术上面的要求也就越高了,下面粤嵌科技给大家讲讲嵌入式编程培训中提高开发质量的小技巧都有哪些?
技巧1:嵌入式编程培训中要避免使用汇编代码
当然,在低端PIC上您别无选择,而在高端ARM上您可能不需要它,但是在这两种极端之间,有很多平台使用汇编代码来实现以下目的:提高性能并减少代码大小。但是,问题在于,简单地选择使用汇编代码可能会使您的项目脱轨,并使您陷入困境。尽管汇编代码允许您直接访问机器的功能,但由于难以理解程序中正在发生的事情,因此可以轻易地忽略性能优势。正是出于这个原因,构思了语言,例如C和Java。
技巧2:嵌入式编程培训中要避免注释蠕变
这是一个通用的编程技巧,但是在长寿命应用程序中变得尤为重要的技巧“管理您的注释与它们记录的代码的关联。随着代码的更新,注释的迁移非常容易,并且结果很难理解。以下示例说明了随着时间的推移,注释蠕变的发生有多么容易。
技巧3:嵌入式编程培训中不要过早优化。
编程的主要缺点之一是过早的优化。但是,由于时间限制,草率的编码或过分热心的工程师,该规则在实践中经常被打破。您编写的任何程序都应尽可能简单地开始,并且仍然提供所需的功能。“如果需要性能,请尝试简单地实现该程序,即使它与性能不匹配。
一旦测试并调试了完整的单元(它是大型系统的编程器或组件),然后回去进行优化。危险地优化代码会导致维护噩梦,因为优化后的代码通常较难理解,并且您可能无法理解您需要的性能结果。理想情况下,使用探查器(例如与GCC一起使用的gprof或Intel的VTune)来查看瓶颈所在,并专注于这些领域-真正缓慢的事情可能会让您感到惊讶。
技巧4:嵌入式编程培训中的ISR应该很简单
出于性能和维护方面的考虑,中断服务例程(ISR)应该尽可能简单。作为异步性质的ISR本质上比“常规”程序代码更难调试,因此将其责任降到对于您的应用程序的总体可维护性很重要。尝试将所有数据处理移出ISR并移至主程序中,然后ISR仅负责获取数据(例如,从硬件中获取)并将其放置在缓冲区中以备后用。可以使用一个简单的标志来向主程序发出信号,通知有要处理的数据。
技巧5:嵌入式编程培训中要将调试代码保留在源文件中
在开发过程中,您可能会添加大量旨在调试“详细输出,声明,LED闪烁等”的代码。当项目结束时,可能很想删除其中的这些部分。代码以清理整个应用程序,尤其是在随意添加调试代码的情况下。
技巧6:嵌入式编程培训中要为系统调用编写包装器
尝试通过接口将低级I / O例程与程序逻辑分开,因为通过单片开发可以使程序难以管理。将应用程序的所有功能放到几个大功能中会使代码难以理解,并且更难更新和调试。对于硬件接口尤其如此。您可能可以直接访问硬件寄存器或I / O,甚至可以访问平台供应商提供的API,但是有很多动机来创建自己的“包装程序”接口。
技巧7:仅分解功能
嵌入式应用程序将与PC应用程序不同,因为许多功能将专用于您正在使用的硬件。不建议将功能单元尽可能地拆分为小–将单个作用域(功能)中的功能调用数保持在5或6以下,并使硬件的功能单元与软件中的功能单元相对应。进一步分解程序将创建调用图的蜘蛛网,从而使调试和理解变得困难。
技巧8:文档
保留所有文档以及代码,理想情况下,还应保留硬件副本。在记录应用程序时,请尝试将尽可能多的设计和应用程序模型直接放入源代码中。如果必须将其分开,则将其作为巨大的注释放入源文件中,并将其链接到程序中。
技巧9:不要机灵!
类似于过早的优化,聪明的编码会导致麻烦。由于C和C ++仍然是嵌入式世界中的主导语言,因此有很多方法可以解决一个问题。模板,继承,goto,三元运算符(“?”),列表会不断出现。
真正聪明的程序员可以提出使用这些工具解决问题的极其紧凑和优雅的方法。问题是通常只有程序员才能理解聪明的解决方案(以后可能会忘记它是如何工作的)。
技巧10:嵌入式编程培训中要将所有定义放在一个地方
如果您有很多常量定义或条件定义,请将它们放在中央位置。这可能是单个文件或源代码目录,但是如果将定义深埋在实现中,它会再次咬住您。