单片机嵌入式系统入门(学习嵌入式单片机需要学习哪些内容)

进修嵌入式须要那些内容?

C语言

C语言是嵌入式的重中之重,Linux操作系统就是用C达到的,包含安卓系统的底层也是C语言达到的,根底不牢,地动山摇,一定要打好根底。

单片机嵌入式系统入门(学习嵌入式单片机需要学习哪些内容)(1)

C语言进修过程中重点要放在指针,构造体,文件的处理,数组等。在进修过程中,一定要多写代码,代码只看是看不会的。

遇到错误不要怕麻烦,善于运用搜索工具。要知道,你遇到的问题他人肯定也会遇到过,一般在网上一搜就会有答案。

最后,要多调试程序,熟悉调试的过程。程序三分写,七分调,没有谁的程序是能够一遍写对的。而且,多调试程序也能够让我们了解程序详细是怎么样执行的。

文章相对比较长,字数比较多,大家可以先打开头像关注我,之后慢慢看,///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像左下角黑色字体加我也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///

接着前几期关于嵌入式常见的误解

稳定性要求高

大局部嵌入式软件都对程序的长期稳定运行有较高的要求。假如手机经常几个月开机,通讯设备则要求24*7正常运行,即便是通讯上的测试设备也要求至少正常运行8小时。为了稳定性的宗旨,有一些比较常用的设计伎俩:

1.将不同的任务分布在独立的进程中。优秀的模块化设计是重要关键

2.Watch Dog, Heart beat,重新启动失效的进程。

3.完善而统一的日志系统以快捷定位问题。嵌入式设备一般缺少乏有力的调试器,日志系统尤其重要。

将错误孤立在最小的范围内,避免错误的扩散和连锁反应。核心代码要经过充分的验证,对非核心代码,能够在监控或者沙盒中运行,避免其破坏整个系统。

举例,Symbian上的GPRS访问受不同硬件和操作系统版本影响,功能不是非常稳定。其中有一个版本上当关闭GPRS连接时一定会崩溃,而且属于known issue。将GPRS连接,HTTP协议处理,文件下载等操作独立到一个进程中,虽然每次操作完毕该进程都会崩溃,对用户却没有影响。

双备份这样的伎俩较少采用

内存不足

单片机嵌入式系统入门(学习嵌入式单片机需要学习哪些内容)(2)

虽然当今的嵌入式系统的内存比之以K计数的时代已经有了很大的提高,但是随着软件规模的增长,内存不足的问题依然时时困扰着系统架构师。有一些原则,架构师在进行设计决策的时候能够参照:

虚拟内存技术

有一些嵌入式设备须要处理宏大的数据量,而这些数据不可能全部装入内存中。一些嵌入式操作系统不提供虚拟内存技术,假如WinCE4.2每个程序最多只能运用32M内存。对这样的应用,架构师应该特别设计自己的虚拟内存技术。所谓的虚拟内存技术的核心是,将暂时不太可能运用的数据移出内存。这波及到一些技术点:

1.引用计数,正在运用的数据不能移出。

2.运用预测,预测下一个阶段某个数据的运用可能性。基于预测移出数据或者提前装入数据。

3.占位数据/对象。

4.高速缓存。在复杂数据结果下缓存高频次运用的数据,直接访问。

5.快捷的持久化和装载。

下图是一个全国电信机房管理系统的界面示意图:

每个节点下都有大量的数据须要装载,能够运用上述技术将内存占用降到最低。

两段式构造

在内存有限的系统里,对象构造失败是必需要处理的问题,失败的理由中最常见的则是内存不足(现实中上这也是对PC平台的要求,但是在现实中中往往忽略,由于内存实在便宜)。两段式构造就是一种常用而有效的设计。举例来说:

单片机嵌入式系统入门(学习嵌入式单片机需要学习哪些内容)(3)

当创建CMyCompoundClass的时候会发生什么呢?

CMyCompoundClass* myCompoundClass = new CMyCompoundClass;

1.为CMyCompoundClass的对象分配内存

2.调用CMyCompoundClass对象的构造函数

3.在构造函数中创建一个CMySimpleClass的实例

4.构造函数完毕返回

一切看起来都很简略,但是假如第三步创建CMySimpleClass对象的时候发生内存不足的错误怎么办呢?构造函数没法返回任何错误信息以提示调用者构造没有成功。调用者于是获得了一个指向CMyCompoundClass的指针,但是这个对象并没有构造完整。

假如在构造函数中抛出异常会如何呢?这是个著名的噩梦,由于析构函数不会被调用,在创建CMySimpleClass对象之前假如分配了资源就会泄露。关于在构造函数中抛出异常能够单讲一个小时,但是有一个建议是:尽量避免在构造函数中抛出异常。

所以,运用两段式构造法是一个更好的选择。简略的说,就是在构造函数避免任何可能产生错误的动作,假如分配内存,而把这些动作放在构造完成之后,调用另一个函数。

假如:

单片机嵌入式系统入门(学习嵌入式单片机需要学习哪些内容)(4)

这样能够保证当Construct不成功的时候释放已经分配的资源。

在最重要的手机操作系统Symbian上,二段式构造法普遍运用。

对单片机感兴趣的朋友可以找我,我录制了一些关于单片机的入门教程,有需要的童鞋找我拿就像,免费的,私信我“林老师”就可以拿~点击打开我的头像就能领取。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页