技术文档

单片机嵌入式系统答案 学习嵌入式单片机需要学习哪些内容?

小编 2024-11-25 技术文档 23 0

学习嵌入式单片机需要学习哪些内容?

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

C语言

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

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

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

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

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

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

稳定性要求高

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

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

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

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

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

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

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

内存不足

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

虚拟内存技术

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

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

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

3.占位数据/对象。

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

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

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

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

两段式构造

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

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

CMyCompoundClass* myCompoundClass = new CMyCompoundClass;

1.为CMyCompoundClass的对象分配内存

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

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

4.构造函数完毕返回

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

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

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

假如:

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

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

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

到底什么是嵌入式?什么是单片机?

来源:本文经鲜枣课堂授权转载,谢谢。

大家好,我是小枣君。

凡是从事计算机或电子信息相关领域工作的童鞋,一定都听说过嵌入式单片机 吧?

很多人应该知道,这两个名词和硬件系统有着非常密切的关系。一听到它们,就容易让人联想到插满芯片和针脚的电路板:

但是,如果要问具体什么是嵌入式,什么是单片机,它们之间究竟有什么区别,我相信大部分人并不能解释清楚。

今天,小枣君就给大家做一个入门科普,揭秘上述问题的答案。与此同时,我还会给大家介绍一下,我们经常听说的51、STM32,究竟是什么。

什么是嵌入式

首先,我们来看看什么是嵌入式。

嵌入式,一般是指嵌入式系统,英文叫作:embedded system。嵌入式开发,其实就是对嵌入式系统的开发。

IEEE(美国电气和电子工程师协会)对嵌入式系统的定义是:“用于控制、监视或者辅助操作机器和设备的装置”。

国内学术界的定义更为具体一些,也更容易理解:

嵌入式系统,是以应用为中心,以计算机技术为基础,软件硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

以应用为中心,说明嵌入式系统是有明确实际用途的。以计算机技术为基础,说明它其实就是一种特殊的计算机。软硬件可裁剪,说明它有很强的灵活性和可定制能力。

专用计算机系统,“专用”所对应的,就是“通用”。我们常用的个人PC、笔记本电脑、数据中心服务器,可以用于多种用途,就是“通用计算机系统”。

嵌入式系统究竟具体应用于哪些“专用”方向呢?

举例如下:

个人通信与娱乐系统: 手机、数码相机、音乐播放器、可穿戴电子产品、PSP游戏机家电类产品: 数字电视、扫地机器人、智能家电办公自动化: 打印机,复印机、传真机医疗电子类产品: 生化分析仪、血液分析仪、CT网络通信类产品: 通信类交换设备、网络设备 (交换机、路由器、网络安全)汽车电子类产品: 引擎控制、安全系统、汽车导航与娱乐系统工业控制类产品: 工控机、交互式终端 (POS、ATM)、安全监控、数据采集与传输、仪器仪表军事及航天类产品: 无人机、雷达、作战机器人

嵌入式系统的应用领域

上述这些领域,都使用了嵌入式系统。这还只是冰山一角。

可以说,嵌入式系统完完全全地包围了我们,时刻影响着我们的工作和生活。

嵌入式系统,既然是一个计算机系统,那么肯定离不开硬件和软件。

一个嵌入式系统的典型架构如下:

注意,最重要的就是嵌入式操作系统和嵌入式微处理器。

从硬件角度来看,嵌入式系统就是以处理器(CPU)为核心,依靠总线(Bus)进行连接的多模块系统:

和个人PC是一样的方式

下面这张图,就是一个嵌入式系统的实物样例:

中间偏左上角,S3C2440,是CPU,中间是RAM,然后还有ROM、网卡、串口、电源等等。可以看出,嵌入式系统麻雀虽小,五脏俱全。

什么是单片机

嵌入式系统的核心,就是嵌入式处理器。嵌入式处理器一般分为以下几种典型类型:

嵌入式微控制器MCU(Micro Control Unit)

MCU内部集成ROM/RAM、总线逻辑、定时/计数器、看门狗、I/O、串口、A/D、D/A、FLASH等。典型代表是8051、8096、C8051F等。

嵌入式DSP处理器(Digital Signal Processor)

DSP处理器专门用于信号处理,在系统结构和指令算法进行了特殊设计。在数字滤波、FFT、频谱分析中广泛应用。典型代表是TI(德州仪器)公司的TMS320C2000/C5000系列。

嵌入式微处理器MPU(Micro Processor Unit)

MPU由通用处理器演变而来,具有较高的性能,拥有丰富的外围部件接口。典型代表是AM186/88、386EX、SC-400、PowerPC、MIPS、ARM系列等。

此外,还有嵌入式片上系统SoC(System on Chip)可编程片上系统SoPC(System on a Programmable Chip)

我们的单片机,就属于上述的第一种——MCU(嵌入式微控制器)。

我们来详细介绍一下它。

单片机,又称为单片微控制器,英文叫Single-Chip Microcomputer。

它其实就是一种集成电路芯片,是通过超大规模集成电路技术,将CPU、RAM、ROM、输入输出和中断系统、定时器/计数器等功能,塞进一块硅片上,变成一个超小型的计算机。

这么说来,单片机不就是一个嵌入式系统?别急,我们往下看。

“单片机”其实是一种古老的叫法。以前半导体工艺技术不成熟,不同的功能无法做进一个芯片(Chip),所以会有多片机。现在半导体技术早已非常发达,所以不存在多片机。但是,“单片机”的叫法却一直延用至今。

很多高校老师喜欢强调单片机姓“单”,除了指单片机只是一个硅片之外,更多是指单片机的功能单一,它是完成运算、逻辑控制、通信等功能的单一模块。即便它性能再强大,功能依然是单一的。

单片机技术从上世纪70年代末诞生,早期的时候是4位,后来发展为8位,16位,32位。它真正崛起,是在8位时代。8位单片机功能很强,被广泛应用于工业控制、仪器仪表、家电汽车等领域。

我们在研究单片机的时候,经常会听到两个词——51单片机STM32 。我来介绍一下它们究竟是什么。

51单片机,其实就是一系列单片机的统称。该系列单片机,兼容Intel 8031指令系统。它们的始祖,是Intel(英特尔)的8004单片机。

注意,51单片机并不全是英特尔公司的产品。包括ATMEL(艾德梅尔)、Philips(飞利浦)、华邦、Dallas(达拉斯)、Siemens(西门子)、STC(国产宏晶)等公司,也有很多产品属于51单片机系列。

ATMEL公司的51单片机,AT89C51

这是一个51单片机的开发板,中间那个芯片才是51单片机

51单片机曾经在很长时间里都是市面上最主流、应用最广泛的单片机,占据大量的市场份额。

51单片机其实放在现在毫无技术优势,是一种很老的技术。之所以它的生命力顽强,除了它曾经很流行之外,还有一个原因,就是英特尔公司彻底开放了51内核的版权。

所以,无论任何单位或个人,都可以毫无顾忌地使用51单片机,不用付费,也不用担心版权风险。

此外,51单片机拥有雄厚的存量基础和群众基础。很多老项目都是用的51单片机,出于成本的考虑,有时候只能继续沿用51单片机的技术进行升级。而且,很多老一辈的工程师,都精通51单片机开发技术。所以,51单片机的生命力得以不断延续。

再来看看STM32。

STM32,是意法半导体公司推出的基于ARM Cortex-M内核的通用型单片机。

STM32单片机

意法半导体(STMicroelectronics)是世界最大的半导体公司之一,于1987年6月成立,是由意大利的SGS微电子公司和法国Thomson半导体公司合并而成。1998年5月,SGS-THOMSON Microelectronics 将公司名称改为意法半导体有限公司。

意法半导体LOGO

ARM公司以前小枣君给大家介绍过。它是目前全球做芯片设计最厉害的公司之一,利用手机芯片的快速发展而崛起,占有物联网市场极大的份额。

在单片机领域,ARM的Cortex-M内核拥有压倒性的优势,已经成为绝对的主流。很多半导体公司都放弃了自己原先的架构,转做ARM架构的单片机。

STM32单片机开发板

STM32的硬件配置可以满足大部分的物联网开发需求,开发工具和相关的文档资料齐全,已经成为目前单片机学习的首选对象。

嵌入式和单片机的区别

说到这里,我们来看看,嵌入式和单片机的区别到底是什么。

从前文的介绍来看,嵌入式系统是一个大类,单片机是其中一个重要的子类。嵌入式系统像是一个完整的计算机,而单片机更像是一个没有外设的计算机。

以前单片机包括的东西并不算多,两者的硬件区别较为明显。但是,随着半导体技术的突飞猛进,现在各种硬件功能都能被做进单片机之中。所以,嵌入式系统和单片机之间的硬件区别越来越小,分界线也越来越模糊。

于是,人们倾向于在软件上进行区分。

从软件上,行业里经常把芯片中不带MMU(memory management unit,内存管理单元)从而不支持虚拟地址,只能裸奔或运行RTOS(实时操作系统,例如ucos、华为LiteOS、RT-Thread、freertos等)的system,叫做单片机(如STM32、NXP LPC系列、NXP imxRT1052系列等)。而把芯片自带MMU可以支持虚拟地址,能够跑Linux、Vxworks、WinCE、Android这样的“高级”操作系统的system,叫做嵌入式。

在某些时候,单片机本身已经足够强大,可以作为嵌入式系统使用。它的成本更低,开发和维护的难度相对较小,尤其是针对一些针对性更强的应用。而嵌入式系统理论上性能更强,应用更广泛,但复杂度高,开发难度大。

嵌入式和单片机的学习价值

最后我们来说一说嵌入式和单片机的学习价值,到底有没有必要学习嵌入式和单片机。

最近这些年,有一句话被广泛传播,那就是——“软件为王”。人们普遍认为软件知识的价值远远大于硬件,而学习软件,从事软件方向,会更容易找到工作,找到更高收入、更有前途的工作。

而嵌入式和单片机,往往被归为“硬件”方向,遭人“嫌弃”。加上嵌入式和单片机的学习难度较大,学习周期很长,需要漫长的“煎熬”,所以越来越多的人放弃这条路。

小枣君认为这种想法是不正确的。

首先,嵌入式和单片机并不是纯“硬件”类方向。前面我也说了,它们是软件和硬件的紧密结合。

如果你想学好嵌入式和单片机,只懂数字电路和微机接口这样的硬件知识是不够的,你更需要学习的,是汇编、C/C++语言、数据结构和算法知识。

拥有软硬结合的能力,远远比单纯掌握某种程序开发语言更有价值。

其次,嵌入式和单片机拥有广泛的应用场景,在各个领域都有项目需求和人才需求。

根据权威部门统计,目前我们国家每年的嵌入式人才缺口高达50万。尤其是嵌入式软件开发,是未来几年最热门和最受欢迎的职业之一。具有10年工作经验的高级嵌入式工程师,年薪可以达到30-50万元左右。

而且我们国家现在正在大力发展芯片产业,也会带动嵌入式人才的就业,提升待遇。

随着5G的全面启动,整个社会正在向“万物互联”的方向发展。物联网技术也将迎来前所未有的历史机遇。嵌入式和单片机技术是物联网技术的重要组成部分,也将进入发展的快车道。

因此,尽管学习过程会比较艰辛,小枣君仍然建议有志青年关注这一赛道。技术越难,过程越苦,越有利于构建竞争壁垒。到了后期,个人价值可以得到进一步的体现。

*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。

今天是《半导体行业观察》为您分享的第2068期内容,欢迎关注。

半导体行业观察

半导体第一垂直媒体

实时 专业 原创 深度

AI|台积电|华为|封测|晶圆|SIC|存储|IC

回复 投稿 ,看《如何成为“半导体行业观察”的一员 》

回复 搜索 ,还能轻松找到其他你感兴趣的文章!

相关问答

单片机 可以称为 嵌入式 吗?有什么区别? - 懂得

单片机开发属于嵌入式的一种,但是更多的偏重于硬件驱动开发,需要掌握基本点硬件知识,如模电数电。而嵌入式开发范围更广,现在大多数嵌入式开发指的...

51 单片机 属于 嵌入式系统 吗?

是的,目前有两种微处理器,分别是通用微处理器和嵌入式微处理器,通用微处理器有:4位:Intel公司的4004,4040等8位:Intel公司的8008、8080,Motorola公...是的....

单片机 嵌入式 有哪些帮助吗?

学习单片机对学习嵌入式的帮助是全方位的,因为单片机本身就是嵌入式的一部分。既然说到了单片机和嵌入式系统,今天我们就来简单了解一下单片机与嵌入式系统的...

单片机 可以称为 嵌入式 吗?有什么区别?

嵌入式,是把一个小型处理器控制系统嵌入到其他设备当中,广义上讲,单片机的控制系统也属于嵌入式系统。单目前来说,通常大家说的嵌入式系统,是指把一个带有...

电子专业的进,PLC,PLD,EDA,DSP, 单片机 嵌入式系统 都是...

额,你说的我都用过,至于那些是什么东西你百度下可以找到一大堆如二楼说的东西,不过不便于理解我就从使用角度解释下,单片机:英文直译叫做微控制器,...

嵌入式 常用的 单片机 有哪些?

嵌入式是指独立CPU能完成对了的系统功能的芯片,比如手机嵌入式单片机定义在实物上可以理解为单片机开发板一款单片机开发板(可以参考吴鉴鹰单片机开发板)有硬...

单片机 ,电脑主板和 嵌入式 这三者有何不同?-ZOL问答

嵌入式硬件资源有限,不相关的最后可以不用编译到bin文件里,电脑上的除了内核,还有相关的应用软件,界面这些,都是嵌入式linux所没有的。是否可拆卸嵌入式系统C...

单片机 开发, 嵌入式 开发有什么区别啊?

单片机开发和嵌入式开发之间的关系密切,但两者侧重点有所不同。下面分别介绍单片机开发和嵌入式开发的概念及区别。1.单片机开发:单片机开发主要是针对单片...

嵌入式 单片机 有什么联系,区别?

嵌入式系统和单片机在计算机科学和电子工程领域中都扮演着重要角色,它们有联系,但也存在一些区别。下面是它们之间的联系和区别:联系:1.目标:嵌入式系统...

嵌入式 处理器家族中的 单片机 、DSP、 嵌入式 微处理器各自的应用领域有什么不同?

我认为单片机和DSP都属于嵌入式微处理器,只是从用途或者数据位宽上可以细分为:单片机,DSP,嵌入式微处理器。一、单片机一般把CPU是4位、8位、16位的微控制...

猜你喜欢