[知识点] 嵌入式软件开发知识点学习

注:本人学的是ARM Cortex-A7系列的处理器(IMX6ULL),针对的校招学习也是这方面的

点个小赞关注一波,持续更新……

[专栏]嵌入式软件校招笔记(点击跳转)

[知识点] 嵌入式软件开发知识点学习

[知识点] ARM指令集详解

[知识点] 通讯协议(very重要)

[项目] C++高并发Web服务器+个人改进项目详解

[八股] C/C++基础八股

[八股] C/C++进阶八股

[八股] 计算机网络八股

[八股] 操作系统八股

[八股] 嵌入式系统八股

[八股] Linux系统编程八股

[八股] Linux网络编程八股

秋招嵌入式企业面经

ARM体系架构

ARM处理器概述

ARM处理器是一种基于RISC指令集架构的微处理器,主要用于嵌入式系统和移动设备,如智能手机、平板电脑、数字相机等。ARM处理器的优点是功耗低、体积小、可靠性高,在嵌入式系统和移动设备领域得到广泛应用。

ARM处理器架构简洁高效,指令集精简,架构简单易于实现。同时,ARM处理器支持多种操作系统,可以使用Linux、Android等开源操作系统,也可以使用Windows、iOS等商业操作系统。因此,ARM处理器适合于开发各种类型的应用程序,包括企业应用、游戏、嵌入式应用、移动应用等。

ARM处理器的发展历程非常丰富,从最初的Acorn RISC Machine,到今天的ARMv8-A架构,其核心设计思想一直保持不变,就是简单、高效、低功耗。ARM处理器已经成为了绝大部分移动设备和嵌入式系统的首选处理器,是一个非常重要的微处理器平台。

ARM架构CPU

控制单元是整个CPU的指挥控制中心 ,由程序计数器PC(Program Counter),指令寄存器IR (Instruction Register)、指令译码器ID(Instruction Decoder)和操作控制器OC(Operation Controller)等,对协调整个电脑有序工作极为重要。它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器OC,按确定的时序,向相应的部件发出微操作控制信号。操作控制器OC中主要包括节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。

运算单元可以执行算术运算(包括加减乘数等基本运算及其附加运算)和逻辑运算(包括移位、逻辑测试或两个值比较) 。相对控制单元而言,运算器接受控制单元的命令而进行动作,即运算单元所进行的全部操作都是由控制单元发出的控制信号来指挥的,所以它是执行部件。

存储单元包括CPU片内缓存和寄存器组 ,本文要将的内部寄存器也就是这里的寄存器组。是CPU中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。但因为受到芯片面积和集成度所限,寄存器组的容量不可能很大。寄存器组可分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,分别寄存相应的数据。而通用寄存器用途广泛并可由程序员规定其用途,通用寄存器的数目因微处理器而异。

总的来说,CPU从内存中一条一条地取出指令和相应的数据,按指令操作码的规定,对数据进行运算处理,直到程序执行完毕为止。而指令又是开发者设计好的, 开发者可以通过改变内部寄存器的内容来实现对CPU的控制

ARM公司概述

ARM的含义

ARM(Advanced RISC Machines)有三种含义:一个公司的名称、一类处理器的通称、一种技术。

ARM公司

成立于1990年11月,前身为Acorn计算机公司;主要设计ARM系列RISC处理器内核;授权ARM内核给生产和销售半导体的合作伙伴,ARM公司并不生产芯片;提供基于ARM架构的开发设计技术软件工具、评估板、调试工具、应用软件、总线架构、外围设备单元等;

主流的两种处理器

RISC处理器(精简指令集)

只保留常用的的简单指令,硬件结构简单,复杂操作一般通过简单指令的组合实现,一般指令长度固定,且多为单周期指令。RISC处理器在功耗、体积、价格等方面有很大优势,所以在嵌入式移动终端领域应用极为广泛。

RISC体系结构_百度百科

CISC处理器(复杂指令集)

不仅包含了常用指令,还包含了很多不常用的特殊指令,硬件结构复杂,指令条数较多,一般指令长度和周期都不固定。CISC处理器在性能上有很大优势,多用于PC及服务器等领域。

复杂指令集计算机_百度百科

risc和cisc的区别

(1)指令系统:RISC设计者把主要精力放在那些经常使用的指令上,而CISC计算机的指令系统比较丰富。

(2)存储器操作:RISC对存储器操作有限制,CISC机器的存储器操作指令多;

(3)程序:RISC汇编语言程序复杂;CISC汇编语言程序编程简单。

(4)中断:RISC机器在一条指令执行的适当地方可以响应中断;而CISC机器是在一条指令执行结束后响应中断。

(5)CPU:RISCCPU功耗低;而CISCCPU功耗大。

(6)设计周期:RISC微处理器结构简单;CISC微处理器结构复杂;

(7)用户使用:RISC微处理器结构简单,CISC微处理器结构复杂;

(8)应用范围:RISC机器更适合于专用机;而CISC机器则更适合于通用机。

ARM指令集

指令

能够指示处理器执行某种运算的命令称为指令(如加、减、乘...);

指令在内存中以机器码(二进制)的方式存在;每一条指令都对应一条汇编;(注意:不可打断)程序是指令的有序集合;指令集

处理器能识别的指令的集合称为指令集;不同架构的处理器指令集不同;指令集是处理器对开发者提供的接口;

ARM指令集

大多数ARM处理器都支持两种指令集:

ARM指令集

所有指令(机器码)都占用32bit存储空间(4个字节)代码灵活度高、简化了解码复杂度;执行ARM指令集时PC值每次自增;

Thumb指令集

所有指令(机器码)都占用16bit存储空间(2个字节)代码密度高、节省存储空间;执行Thumb指令集时PC值每次自增;

ARM指令集_百度百科

编译原理

主要过程为:预处理(预编译)->编译->汇编。

机器码(二进制)是处理器能直接识别的语言,不同的机器码代表不同的运算指令,处理器能够识别哪些机器码是由处理器的硬件设计所决定的,不同的处理器机器码不同,所以机器码不可移植汇编语言是机器码的符号化,即汇编就是用一个符号来代替一条机器码(一一对应),所以不同的处理器汇编也不一样,即汇编语言也不可移植C语言在编译时我们可以使用不同的编译器将C源码编译成不同架构处理器的汇编,所以C语言可以移植

编译原理_sundingh的博客-CSDN博客_编译原理

ARM存储模型

1. ARM数据类型

1.1. ARM的基本数据类型

ARM采用32位架构,即ARM一次可以处理32bit的数据,基本的数据类型有以下三种:

  • Byte 8 bits(1个字节)
  • Halfword 16 bits(2个字节)
  • Word 32 bits(4个字节)

前面说到,C语言是可以移植到arm处理器上的,但是C语言的数据类型和ARM的数据类型并不兼容,所以arm-gcc编译器在编译的时候,会将C语言的类型转换成ARM可以处理的数据类型,比如 char =》 Byte,short =

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

嵌入式软件校招笔记 文章被收录于专栏

记录本人校招过程中遇到的问题及笔记整理!后续会持续更新

全部评论
码住
7
送花
回复
分享
发布于 2023-10-24 14:40 安徽
码住
4
送花
回复
分享
发布于 2023-10-24 14:57 安徽
秋招专场
校招火热招聘中
官网直投
mark
3
送花
回复
分享
发布于 2023-10-24 16:29 安徽
deque的底层为什么是双端队列😳
3
送花
回复
分享
发布于 2023-10-27 19:41 安徽
🧐
2
送花
回复
分享
发布于 2023-10-24 14:44 山东
数组越界和栈溢出有区别吗🤐
2
送花
回复
分享
发布于 2023-10-28 11:07 安徽
mark
1
送花
回复
分享
发布于 2023-10-26 16:32 安徽
码住
1
送花
回复
分享
发布于 2023-10-27 19:56 安徽
码住
1
送花
回复
分享
发布于 2023-10-28 11:30 安徽
牛啊
点赞
送花
回复
分享
发布于 2023-10-27 20:29 山东
码住
点赞
送花
回复
分享
发布于 2023-10-27 22:59 山东

相关推荐

14 80 评论
分享
牛客网
牛客企业服务