嵌入式和单片机开发模式的区别

news2025/2/25 2:22:36

一、 开发模式

  • 单片机开发多为裸机,程序规模小,多为单个程序员独立开发。有些复杂产品也会使用高端单片机如STM32之类,并使用RTOS(uCOS、freeRTOS等)。
  • 嵌入式开发几乎全部基于嵌入式操作系统,目前使用最多的是 linux 和Android。

二、 技术特征

编程语言方面

单片机主要使用C语言(少量用汇编),和标准C略有不同,很少使用结构体、函数指针等C语言高级特性。

嵌入式开发较复杂,一般分底层和应用层。底层使用C语言,应用层使用C、C++、Java等语言均有。嵌入式C语言对结构体、
数据结构、算法、函数指针(用来实现面向对象)等高级特性使用比较多)。


软硬件组件方面

单片机多涉及一些简单外设,譬如串口、I2C、ADC、LCD(小屏幕和分辨率);

嵌入式系统则涉及更多复杂外设,譬如网络(有线网卡、wifi、蓝牙等)、USB、音视频编解码等。


三、 嵌入式系统的特点

  • 专用、软硬件可裁剪可配置
  • 低功耗、高可靠性、高稳定性
  • 软件代码短小精悍
  • 代码可固化
  • 实时性
  • 弱交互性
  • 专用开发工具及开发环境
  • 专业开发人员

四、嵌入式系统的组成

硬件

  • 微处理器
  • 存储器
  • I/O接口、输入输出设备等等

软件

  • 嵌入式操作系统
  • BSP board support package板级支持包
  • 应用软件
  • 注:操作系统是中间人;应用软件通过给操作系统发命令,然后由操作系统来控制 BSP 中的驱动,最终控制硬件来完成任务

五、地址总线和数据总线

  • CPU 通过地址总线寻址,然后通过数据总线与外部设备互换信息。
  • 地址总线的位数决定CPU寻址范围;数据总线的位数决定CPU单次通信能交换的信息数量;
  • 总线的速度决定CPU和外设互换信息的速度。

六、为何使用交叉编译

  • 嵌入式开发的CPU比较简单,本身无法搭建开发环境,有些甚至操作系统都没有。
  • 交叉编译可以用高性能机器为低性能机器开发软件(包括裸机软件、系统级和应用级软件)。

七、嵌入式开发特点

  • 交叉编译,不便于本机运行调试程序。
  • 嵌入式系统需要 bootloader 来启动,而 bootloader 必须首先存在于可启动介质中,这个过程需要专用工具。
  • 嵌入式系统无法通过纯软件实现单步调试,因此必须借助专用的调试器。

八、Jlink的作用

  • 下载可执行程序到目标机。
  • 在目标机上实现单步调试,便于开发bootloader。

九、USB转串口线的作用

  • 串口本身用来做嵌入式目标机的调试输出,主要目的是用来监视及调试软件。
  • 因为现在大部分个人电脑(大部分台式机和几乎全部的笔记本电脑)都未配置DB9串口,因此工作中一般直接使用USB转串口线来连接PC和开发板。
  • USB虚拟串口的实现在系统上依赖于USB转串口驱动,一般由厂家直接提供,也可以使用操作系统自带的CDC类串口驱动等。驱动主要分为2个功能,其一注册USB设备驱动,完成对USB设备的控制与数据通讯,其二注册串口驱动,为串口应用层提供相应的实现方法

十、程序的编译运行过程

  • 程序员用汇编指令编程 ——> 经汇编器汇编成二进制可执行程序文件 ——> 二进制文件被CPU读取进去 ——> CPU内部电路对二进制文件解码 ——> 解码通过则CPU执行指令、完成指令动作。
  • 如果程序员用C语言等高级语言编程,则编译器先将C语言程序编译为汇编程序,再进行上面的后续部分

在这里插入图片描述


注:源自B站朱有鹏老师.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2581.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

公众号搜题接口系统使用方法

公众号搜题接口系统使用方法 本平台优点:免费查题接口搭建 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库:题库后台http://daili.jueguangzhe.c…

html实现飞机小游戏(源码)

文章目录1.思路讲解1.1 游戏设计1.2 主界面1.3 倒计时进入游戏1.4 游戏效果1.3 游戏结束2.实现源码2.1 游戏动态效果2.2 游戏主代码2.3 源码目录源码下载作者:xcLeigh 文章说明 html实现飞机大战源码,酷炫的界面效果,有四款飞机大战背景&…

Elasticsearch:通过热、温、冷和冻结层管理数据自动化 — 无需编码!

如果你想完全按照本文标题的建议去做,那就别无所求。 这篇文章旨在指导如何使用 Kibana Dashboard 的 “堆栈管理(Stack Management)” 功能集通过热、温、冷和冻结层自动移动数据,而无需进行任何编码或执行命令行动作。 在下面的…

Cookie 和 Session

本文主要讲解一下 Cookie 和 Session 的关系和区别,大家都知道 Session 比 Cookie 安全,Session 是存储在服务器端的,Cookie 是存储在客户端的,然而更详细的说,恐怕就不太清楚了 文章目录1. 什么是 HTTP2. Cookie2.1 图…

​目标检测算法——YOLOv5/YOLOv7改进之结合Criss-Cross Attention

关注”PandaCVer“公众号 深度学习Tricks,第一时间送达 (一)前沿介绍 论文题目:CCNet: Criss-Cross Attention for Semantic Segmentation 论文地址:https://arxiv.org/pdf/1811.11721.pdf 代码地址:ht…

B树和B+树(平衡多路查找树)

文章目录为什么需要B树B 树的特点B树的查找B树的引入B树的删除链接:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html 可以点击 Indexing 下的 B Trees 和 B Trees 去学习。 为什么需要B树 对 B 树的需求随着访问物理存储介质(如硬盘&…

【Java】反射, 枚举,Lambda表达式

✨博客主页: 心荣~ ✨系列专栏:【Java SE】 ✨一句短话: 难在坚持,贵在坚持,成在坚持! 文章目录一. 反射1. 反射的概述2. 反射的使用2.1 反射常用的类2.2 通过反射获取Class对象2.3 获得Class类相关的方法2.4 使用反射创建实例对象2.5 使用反射获取实例对象中的构造方法2.6 通过…

Spring学习第1篇:学习spring必备的概念知识

大家家好,我是一名网络怪咖,北漂五年。相信大家和我一样,都有一个大厂梦,作为一名资深Java选手,深知Spring重要性,现在普遍都使用SpringBoot来开发,面试的时候SpringBoot原理也是经常会问到&…

纸牌博弈问题

纸牌博弈问题 作者:Grey 原文地址: 博客园:纸牌博弈问题 CSDN:纸牌博弈问题 题目描述 有一个整型数组 A,代表数值不同的纸牌排成一条线。玩家 a 和玩家 b 依次拿走每张纸牌, 规定玩家 a 先拿&#xff…

win11开机音效设置的方法

微软为win11重做了开机音效,与我们一直以来使用的开机音效不太一样,听起来很不舒服,因此我们可以通过设置开机音效的方法来修改它,只要在个性化设置中就可以找到了,下面一起来试试看吧。 win11开机音效怎么设置&#…

wordpress图片压缩插件-免费批量wordpress图片压缩

wordpress图片压缩插件,相信每个人都知道图片的太大会影响到网站的加载速度。过多的图像会对服务器产生相应的压力。导致网站打开会越来越慢。而图片也是会被搜索引擎收录的,可以在百度图片里面能搜索的到,也算是增加了网站的宣传力度。今天给…

(附源码)计算机毕业设计SSM基于微信平台的匿名电子投票系统

(附源码)计算机毕业设计SSM基于微信平台的匿名电子投票系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。…

【微信小程序支付功能】uniapp实现微信小程序支付功能

支付实现流程 首先前端写一个页面,简单说就是有一个输入支付金额的 然后有一个按钮,点击可以支付。 点击按钮后触发支付方法,就是我下面写的这些代码,复制就可以了。 然后先请求后端的一个方法,把你的价格还有openid之…

在Vue中使用Swiper轮播图、同时解决点击轮播图左右切换按钮不生效的问题、同时将轮播图抽离出为一个公共组件

轮播图左右的切换按钮、如果点击没有反应,控制台也没有报错。很大可能是版本问题。如果不指定版本信息、默认安装的是最新的版本。版本过高或者过低都有可能导致无效。目前兼容性和稳定性比较好的是:5.4.5。 官网地址:https://www.swiper.com…

【隧道应用-1】netsh端口映射内网

1、端口映射 是指将一台主机的内网(LAN)IP 地址映射成一个公网(WAN)IP 地址,当用户访问提供映射端口主机的某个端口时,服务器将请求转移到本地局域内部提供这种特定服务的主机;利用端口映射功能…

猿创征文|程序员的浪漫(代码猜诗词)

✅作者简介: 全栈领域新星创作者,阿里云专家博主,华为云云享专家博主,掘金后端评审团成员, 💕前言:在大众的认知里,程序员只是一群坐在电脑前熬夜敲代码的…

webrtc 笔记

webrtc主要步骤 navigator.mediaDevices.getUserMedia({audio:true,redio:true}) 获取用户的摄像头状态,返回媒体流,把媒体流赋给video的srcObject属性,就能在页面上展示自己的音视频 let peer new RTCPeerConnection(servers) 创建peer实例,通过这个实例的一系列方法实现p2p…

vue3 :一个实用的 vite + vue3 组件库脚手架工具

目录 1 组件库脚手架内容 2 组件库脚手架技术栈 3 使用说明 3.1 克隆代码到本地 3.2 安装依赖 3.3 本地开发 3.4 创建新组件 3.5 构建文档 3.6 构建 example 3.7 发布组件库 4 组件库命令说明 无论是 vue2 全家桶还是 vue3 vite TypeScript,组件库的使…

无需购买服务器,用cpolar发布本地web网站

随着互联网的快速发展,网络也成为我们生活中不可缺少的必要条件,为了能在互联网世界中有自己的一片天地,建立一个属于自己的网页就成为很多人的选择。但互联网行业作为资本密集的行业,委托别人建立一个像样的网站要花费不少&#…

一文搞定基因型数据清洗

文章目录数据1 二进制文件2. plink二进制文件变为文本文件(ped和map)3. plink将vcf转化为plink文件4. 提取样本和SNP4.1 提取样本4.2 提取SNP5. plink和表型数据合并6. 数据汇总6.1 次等位基因频率(maf)6.2 缺失6.3 哈温检测6.4 杂…