当前位置: 首页 > news >正文

01-零基础入门嵌入式系统

1.什么是嵌入式系统

       首先我们要知道计算机系统分为大型机、通用计算机和嵌入式系统三大类。

        计算机系统的发展,经历了由1台计算机系统为N个人服务的大型机时代到由1台计算机系统为1个人服务的PC时代,正在步入由N台计算机系统为1个人服务的嵌入式时代。

       嵌入式系统(Embedded System)是一种专门为特定任务设计的计算机系统,通常嵌入在更大的设备或系统中,用于控制、监控或执行特定功能,所以叫嵌入式。与通用计算机(如笔记本电脑)不同,嵌入式系统通常具有专用性、实时性和资源受限的特点。

2.什么是嵌入式处理器

       嵌入式系统的硬件是嵌入式系统运行的基础,提供嵌入式软件运行的物理平台和通信接口。嵌入式系统的硬件由嵌入式处理器、嵌入式存储器以及嵌入式I/O接口和设备共同组成。需要注意的是,在某些嵌入式处理器(尤其是微控制器)中,存储器是集成在芯片内部的,而在其他情况下(如微处理器),存储器可能是外部的。

       嵌入式系统以嵌入式处理器为核心,以嵌入式存储器作为程序和数据的存储介质,借助总线相互连接,通过嵌入式I/O接口和I/O设备与外部世界联系。

       所以嵌入式处理器是嵌入式系统硬件的核心,现在几乎所有的嵌入式系统都是基于嵌入式处理器设计的。嵌入式处理器与传统PC上的通用CPU最大的不同在于嵌入式处理器大多工作在为特定用户群所专用的设计的系统中,它将通用CPU许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。

3.嵌入式处理器的主要分类

       主要分为三大类微控制器(MCU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)。以上三者组成了我们常见的嵌入式设备。

       注意,微控制器(也称为单片机)由于体积小巧,为了便于学习和开发,市面上出现了许多基于相同微控制器的不同开发板。这些开发板为学习和原型设计提供了便利。

4.嵌入式中什么是硬件,软件,固件

       硬件是嵌入式系统中的物理组件,包括传感器、执行器、存储器等。其中,处理器和存储器相当于人的大脑,处理器负责思考和支配身体,存储器负责记忆知识,而传感器和执行器相当于人的四肢,传感器帮助人获取知觉,执行器负责执行大脑指定的动作。硬件是嵌入式系统的基础,开发者需要设计和布局硬件电路,选择适当的处理器和外围设备,以满足系统需求。

       软件包括应用程序和操作系统。软件是嵌入式系统的核心,开发者根据系统的计算和控制任务开发相应的操作系统与应用程序。

       把两者联系起来的是固件,它是介于硬件和软件之间的一类软件,是存储在非易失性存储器中的代码和数据,作为嵌入式系统的桥梁,用于初始化硬件、加载操作系统或直接执行控制功能。

      电脑和单片机在软件和固件的存储与执行方式上有所不同。在电脑中,软件通常安装在硬盘上,而固件则安装在ROM中。当电脑启动时,固件和软件会被加载到RAM(内存)中以供执行。相比之下,单片机软件和固件都是烧录在非易失性存储器中,单片机上电或复位时,固件和软件会被加载到内存中执行。以STM32F103C8T6单片机为例,注意该单片机不运行软件,其固件存储在闪存中,并在运行时加载到SRAM,其SRAM既可以充当高速缓冲器,也可以充当内存,是用于运行时数据存储、堆(Heap)和栈(Stack)空间、中间计算、缓存。当我们编写代码并使用编程工具将其烧录到该单片机的闪存中时,这段代码就成为了该单片机的固件。比如我们写了有关于电机控制代码,并烧录进去,实际上是烧录的固件。如果代码是直接针对单片机硬件编写的,并且烧录到单片机的闪存中,那么它就是固件。如果代码可以在不同的环境中运行,并且不依赖于特定的硬件,那么它更接近于软件。

 

相关文章:

  • Comsol 双层带穿孔多孔材料背衬的穿孔板的吸声:亥姆霍兹共振腔的能量耗散
  • C++类与对象深度解析(一):从引用、内联函数到构造析构的编程实践
  • 广西壮族自治区园区投促中心党委书记陶德文率团到访深兰科技
  • 【软件分享】Beyond Compare 4
  • 2025.2.19——1500
  • 认识AD2428芯片
  • js基础知识总结
  • 【部署优化篇三】《DeepSeek边缘计算实战:把目标检测模型塞进树莓派,让AI在巴掌大的设备上“开天眼“》
  • 【C语言】fwrite函数用法介绍
  • PHP旅游门票预订系统小程序源码
  • 提示:这里可以添加要学的内容3
  • Java Web开发实战与项目——用户认证与授权模块开发
  • AlphaFold v3.0.1 conda版本详细安装与使用
  • Nginx 在Linux中安装、使用
  • order by 字段没有在 select distinct 中的问题
  • OpenMv识别色块通过串口发给STM32
  • vue3之echarts3D圆柱
  • share.py
  • Java集合之ArrayList(含源码解析 超详细)
  • python-leetcode 36.二叉树的最大深度
  • 李强会见巴西总统卢拉
  • 白玉兰奖征片综述丨综艺市场破局焕新,多元赛道重塑价值坐标
  • 火车站员工迟到,致出站门未及时开启乘客被困?铁路部门致歉
  • 中国工程院院士、国医大师石学敏逝世
  • 习近平圆满结束对俄罗斯国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典
  • 宇数科技王兴兴:第一桶金来自上海,欢迎上海的年轻人加入