首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
七七养老
北京邮电大学 算法工程师
关注
已关注
取消关注
@苦学编程30年:
[知识点] 嵌入式软件开发知识点学习
注:本人学的是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 =
点赞 14
评论 12
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
03-27 18:38
拼多多集团-PDD_服务端研发工程师(准入职员工)
那次全链路压测,我负责的模块没有掉链子
周一早会,导师突然说了一句:"下周全链路压测,你负责的那个服务,准备好了吗?" 我愣了一下。 说实话,那个服务我接手才一个多月。最开始只是帮忙修几个小 bug,后来导师让我试着做一次小重构,再后来,慢慢地,那个模块的日常维护就落到了我手上。 但"全链路压测"这四个字,份量完全不一样。 我点了点头,说:"我先梳理一遍,明天给你同步。" 回到工位,我打开了系统的架构图,开始一个节点一个节点地捋。说不紧张是假的——这个服务在整条链路里不算最核心的,但如果它出了问题,上下游都会受影响。导师把它交给我,既是信任,也是考验。 那天下午我没写一行代...
点赞
评论
收藏
分享
03-31 11:56
武汉大学 移动产品经理
AI圈发展变化的太快了
点赞
评论
收藏
分享
03-20 15:12
北京理工大学珠海学院 数据分析师
26应届投简历投麻了
感觉就是那种,背景也不够硬,实习也不够硬,啥都不够硬,除了硬着头皮在各个招聘软件和官网平台投没有任何收获,已经不知道自己能干啥了……
想减肥的布莱克最喜欢...:
一样,投麻了,没实习,学历比不上你,人麻的已经不知道该干啥,学啥了
点赞
评论
收藏
分享
03-28 12:14
山东大学 Java
美团2026-3-28笔试总结
选择题考了很多机器学习,深度学习模型训练有关的东西,没学过没啥头绪编程题第一题给一个长度为n的数组nums对其中的任意一个元素进行两种操作,每个元素最多可以被操作1一次和操作2一次,可以不操作操作1 将其/2并向下取整操作2 减去一个数字k(非负) 操作1可以进行a次,操作2可以进行b次 (a,b均小于n) 求经过操作后,可以得到的最小数组和 思路:先将数组排序,从最大的非负元素开始进行操作1,然后累加结果-b*k即可,注意开Long否则会溢出 时间复杂度: 通过90%样例第二题 class Solution { public long maxAlternatingSum(int[] nums...
查看4道真题和解析
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
我放弃互联网大厂了。。
3433
2
...
Vibe Coding开发前的 7 个关键步骤
3169
3
...
字节实习一、二、三、HR面面经
2884
4
...
双非前端字节一面面经(难度 plus ultra 版)
2561
5
...
我招了!当年就是被招行这么招进去的
1730
6
...
京东零售平台产品与研发中心一面
1529
7
...
如何把面试主动权握在手里?Ai岗面试焚诀!
1429
8
...
美团后端暑期实习一面
1354
9
...
美团暑期二面
1345
10
...
在工作中,如何正确使用vibe coding来增效?
1345
创作者周榜
更多
正在热议
更多
#
你觉得大几开始实习最合适?
#
9646次浏览
94人参与
#
实习生的蛐蛐区
#
921489次浏览
4698人参与
#
厦门银行科技岗值不值得投
#
12806次浏览
306人参与
#
你见过哪些招聘隐形歧视?
#
6744次浏览
67人参与
#
毕业季等于分手季吗
#
59293次浏览
680人参与
#
面试被问到不会的问题,你怎么应对?
#
8791次浏览
71人参与
#
招商银行数字金融训练营
#
69005次浏览
788人参与
#
面试吐槽bot
#
182216次浏览
865人参与
#
好好告别我的学生时代
#
138169次浏览
1554人参与
#
25届秋招公司红黑榜
#
328775次浏览
1292人参与
#
小厂实习有必要去吗
#
87352次浏览
417人参与
#
租房前辈的忠告
#
380364次浏览
7491人参与
#
你都用vibe coding做过什么?
#
4061次浏览
164人参与
#
做完笔试后你收到面试了吗?
#
9505次浏览
82人参与
#
Vibe Coding 会干掉初级岗位吗?
#
7919次浏览
131人参与
#
实习转正进行时
#
168443次浏览
1064人参与
#
AI Coding实战技巧
#
2925次浏览
77人参与
#
你现在一天AI几次?
#
2970次浏览
60人参与
#
牛友の3月总结
#
13218次浏览
122人参与
#
如果人生可以debug你会改哪一行?
#
3542次浏览
75人参与
#
大厂实习和小厂实习最大的区别是什么?
#
17649次浏览
113人参与
#
百度工作体验
#
319725次浏览
2239人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务