嵌入式系统设计学习周记①——初步了解嵌入式技术

∥☆過路亽.° 提交于 2020-02-27 00:53:12

嵌入式软件与非嵌入式软件的区别

嵌入式:在已有的硬件上移植(需要修改操作系统源码,安装不需要)操作系统解决软硬件耦合导致的问题。

嵌入式软件和非嵌入式软件的区别即传统开发和嵌入式开发的优缺点:
传统开发的缺点:1.软硬件耦合度高导致软件移植性差 2.软件开发人员必须懂硬件 3.软件功能性差;
优点:简单,开发成本低。
嵌入式开发的优点:1.解决传统开发软硬件耦合度导致的问题 2.多任务机制 3.提供了丰富的网络协议栈4.提供了丰富的开源软件和工具
缺点:硬件成本高。

例如嵌入式与单片机区别

单片机: 软件 —— 硬件
嵌入式: 软件 ——操作系统——硬件

嵌入式操作系统的优势

可以移植的操作系统称为嵌入式操作系统。

操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。

嵌入式是通过操作系统,间接控制硬件。因此当硬件平台发生改变,但是依旧与操作系统兼容,那么软件程序就不会改变。并且软件开发人员不需要了解硬件,只要学会操作系统中功能的调用,极大地提高了效率,因此嵌入式引入了操作系统,具有以下几个优势:

  • 提供了很多开源的软件,工具,库。
  • 可以实现多任务(所谓的多任务就是快速切换)。
  • 操作系统中有一些网络协议,因此嵌入式是可以上网的,提供了大量的网络资源,实现远程控制。

嵌入式开发的几个方向

  • 硬件层

是整个嵌入式系统的根本,需要对单片机及接口这块很熟悉,并且能用C和汇编语言来编程,同时还要对操作系统内核及其调度性相当的熟悉的。硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成CPLD的逻辑设计.

  • 驱动层

驱动工程师不仅要能看懂电路图还要能对操作系统内核十分的精通,以便其所写的驱动程序在系统调用时,不会独占操作系统时间片,而导至其它任务不能动行。除硬件层所具备的基础学科外,还要对数据结构与算法、操作系统原理、编译原理都要十分精通了解。

  • 操作系统层

对于操作系统层目前可能只能说是简单的移植,而很少有人来自已写操作系统,或者写出缺胳膊少腿的操作系统来,这部分工作大都由驱 动工程师来完成。操作系统是负责系统任务的调试、磁盘和文件的管理,而嵌入式系统的实时性十分重要。

  • 应用层

如果会在windows下如何进行编程接口函数调用,到操作系统下只是编译和开发环境有相应的变化而已。如果涉 及Jave方面的编程也是如此的。嵌入式系统中涉及算法的由专业算法的人来处理的,不必归结到嵌入式系统范畴内。但如果涉及嵌入式系统下面嵌入式数据库、 基于嵌入式系统的网络编程和基于某此应用层面的协议应用开发方面就较为复杂.。

嵌入式中的C语言

C语言在嵌入式开发的过程中占有十分重要的地位,可以说两者之间“你中有我,我中有你”。但是有很多人会想,有那么多的开发语言为什么会单单的选择C语言作为开发语言呢?

  • 有出色的可移植性

从一个平台切换到另一个平台,软件修改的代码越少,则可移植性越好,而且可以适应于不同平台。

  • 能够直接访问硬件

除C语言外,还有汇编语言能够直接访问硬件,但汇编语言访问效率高,C语言访问效率低。对硬件初始化时用汇编,对硬件进行复杂操作时采用C语言。

  • 运行效率高

C语言是高级语言中最低级的语言,可以直接编译生成硬件识别的机器码文件。而其他的高级语言需要相应的语言解释器做解释后,再编译。

cpu体系结构的种类、特点及应用场景

RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前cpu的两种架构

它们的区别在于不同的CPU设计理念和方法,虽然它们都是试图在体系结构、操作运行、软件硬件、编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但采用的方法不同,因此,在很多方面差异很大,它们主要有:
(1) 指令系统:RISC 设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来完成。因此,在RISC 机器上实现特殊功能时,效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补。而CISC 计算机的指令系统比较丰富,有专用指令来完成特定的功能。因此,处理特殊任务效率较高。
(2) 存储器操作:RISC 对存储器操作有限制,使控制简单化;而CISC 机器的存储器操作指令多,操作直接。
(3) 程序:RISC 汇编语言程序一般需要较大的内存空间,实现特殊功能时程序复杂,不易设计;而CISC 汇编语言程序编程相对简单,科学计算及复杂操作的程序社设计相对容易,效率较高。
(4) 中断:RISC 机器在一条指令执行的适当地方可以响应中断;而CISC 机器是在一条指令执行结束后响应中断。
(5) CPU:RISC CPU 包含有较少的单元电路,因而面积小、功耗低;而CISC CPU 包含有丰富的电路单元,因而功能强、面积大、功耗大。
(6) 设计周期:RISC 微处理器结构简单,布局紧凑,设计周期短,且易于采用最新技术;CISC 微处理器结构复杂,设计周期长。
(7) 用户使用:RISC 微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。
(8) 应用范围:由于RISC 指令系统的确定与特定的应用领域有关,故RISC 机器更适合于专用机;而CISC 机器则更适合于通用机。

参考:
https://www.cnblogs.com/qymua/p/11206456.html
https://blog.csdn.net/zheng_guan/article/details/53242239
https://blog.csdn.net/DP29syM41zyGndVF/article/details/80148028?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
https://blog.csdn.net/xyd2017/article/details/69372349?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
https://blog.csdn.net/qq_44823997/article/details/88822630

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!