loading请求处理中...

最齐全嵌入式系统开发攻略

2021-12-01 14:01:17 阅读 11087次 标签: 嵌入式系统开发 作者: 陈先生12121

 小编个人认为,嵌入式系统开发可以分为四个部分,最难的应该是浮点运算和变量的处理。可是也有持不同意见者,认为嵌入式系统开发一点都不难,因为大部分情况下芯片制造商都已经编写好了,那么今天就和大家一起讨论一下,嵌入式系统开发过程中,嵌入式系统开发工程师需要注意哪些问题,需要避免哪些问题,从而让工作变得更完美。

最齐全嵌入式系统开发攻略

 1、浮点运算

 嵌入式系统开发时大多数低档次的单片机都是不支持浮点运算的,因此在实际使用过程中也很少用到,因此为了降低成本,一般都去掉了浮点运算模块,这就带来了一个问题,如果万一要用到浮点运算怎么办?细心的朋友可能会发现,即使不具有浮点运算的单片机在仿真调试过程依然可以使用float o r  double的数据类型进行计算,而且结果也很准确,这是为什么呢?这个因为编译器自动调用了库函数来实现的,一般是通过迭代的方法,因此它的执行效率非常慢,不建议采用此方法,而通常采用的是“定点”的方法来解决这个问题,比如说一个32bit的数据,你可以假定它的低8位是小数位,然后移位计算,类似于整数运算,这种方法比较复杂,但是可以非常精确,还有一种方法就是直接放大10的N次方倍进行整数的计算,可以得出近似值,因此为了不增加不必要的麻烦,应该总是尽量避免使用浮点运算,一般情况也都是可以避免的。

 2、变量

 一般来说如果你非常明确某个变量的作用域和生命周期就应该定义相对的变量,如const,static等,这样不容易出错,不建议将所有变量都定义成全局变量,这样管理起来比较麻烦,程序一旦出错,破坏性也比较大,函数也是如此,全局变量和通用函数一定要申明,这样在调用的时候不容易出错,而且有些编译器对于未申明的函数是不会报错的,但在调用的时候又会发出类型隐含转换的警告,在这里就不举例子了,总之这点嵌入式系统开发中要特别小心。

 3、延时

 嵌入式编程经常会涉及到硬件的操作,如ADC,打开或者关闭一个电流源,这些都是需要时间的,因此当我们在发出这些指令的时候立即读取寄存器的值是得不到想要的结果的,而且你还找不出原因,有时候需要的延时还比较长,达到ms级,一般情况下us级就够了,根据各芯片的时钟频率而定,不单指MCU的总线时钟频率

 4、宏定义

 在嵌入式系统开发编写过程对于一些特定的数字应该尽量使用宏定义,这样做有个好处就是比较直观,便于日后维护,要不然时间久了你看到那个数字根本就想不起它代表什么意思,宏定义并不会给程序带来任何负担,因为它在编译的时候就已经全部替代了,所以尽可以广而用之。值得一提的是宏定义并不局限于使用常量,它可以定义函数,因为它是直接替换,因此避免了入栈和出栈,提高了程序执行的效率,当时同时增加了代码量,因此一般用比较简单的函数,它还有一个缺点是在替换的过程不检查参数类型是否正常,从而增加了安全隐患,解决此问题的方法是使用一个称之为inline的内联函数,它继承了宏定义的优点,又弥补了它的缺点,是个最佳的选择,但是这个属于C++的范畴,有一定的难度,在这里也不多讲,有兴趣的朋友可以参考一下相关资料。

 如果你有类似嵌入式系统开发任务需求,选择一品威客网吧,作为威客平台,目前一品威客网在业界享有较高的美誉度和影响力。而上面的专业威客,他们也凭借着自己的能力,在一品威客网上赚得盆满钵满。特别是近期一品威客网推出的VIP服务,让平台上非常多的工作室和专业团队可以更轻松的接任务。

    基于ARM的嵌入式系统开发流程

嵌入式软件公司推荐

成为一品威客服务商,百万订单等您来有奖注册中

留言( 展开评论

快速发任务

价格是多少?怎样找到合适的人才?

官方顾问免费为您解答

 
嵌入式软件相关任务
DESIGN TASK 更多
油库物联网系统开发

¥200000 已有2人投标

客户管理(CRM)系统开发

¥100000 已有15人投标

3D虚拟展厅交互系统开发需求

¥20000 已有6人投标

智能回复系统开发

¥40000 已有2人投标

预定系统开发(项目尾款)

¥8000 已有1人投标

预定系统开发(系统部署)

¥3200 已有1人投标