没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
(重点)公司 架构 内核 SOC
STC ARM-v7 架构 cortex-A7*2 stm32mp157aaa
Cortex-M4
1、在特定的模式下,执行特定的代码,完成某个特定的功能
2、除用户模式外,其他几种模式都属于特权模式
3、这几种工作模式可以进行切换 1)通过软件编程进行切换 2)通过外部硬件产生中断
4、系统上电复位 / SWI 软中断指令 进入 SVC 模式
5、用户模式和系统模式共用一套寄存器
6、arm 处理器 A7 核一共有 7 种工作模式,M4 核一共有 2 种工作模式
7、cortex 处理器一共有 8 种工作模式(安全监控模式)
SOC 是啥
SoC 是指 System on Chip,即在一个微处理器芯片上集成了 CPU 核心、内存、总线、输
入/输出接口和其他功能单元的完整计算系统(重点)。SOC 通常包括各种数字逻辑和模拟电
路,以及通信接口,支持复杂的计算和控制应用程序。
相比于传统 PC 体系结构中独立的组件和逻辑板级设计,SoC 具有更高的集成度、更低
的功耗和更小的物理占用空间,这使得它们得以广泛地应用于智能手机、平板电脑,汽车仪
表盘、智能家居、工业自动化等领域。同时,SOC 也面临着一些挑战,例如散热问题、系统
稳定性以及软硬件设计的复杂性等。
RISC 和 CISC 区别(重点)
2.为什么安装交叉编译工具链?以及交叉编译工具链版本?
将程序编译生成支特 arm 架构指合集
备注:不同的架构对应的指今集不一样 I
RISC:Reduced Instruction Set Computer 精简指令集
概念:在复杂指令集中提取一些比较常用和简单的指令集和
2. 在 ubuntu 中将程序编译生成 ARM 架构
arm-linux-gnueabihf-gcc 1.c ---->使用交叉编译工具链编译
file a.out ----> ARM 架构
3. 指令周期 / 指令宽度
指令周期:执行一条指令所需要的时间
指令宽度:执行一条汇编指令编译生成机器码,机器码占用代码段空间
4. 将可执行程序编译生成反汇编文件 (既包括 arm 指令也包括 thumb 指令)
arm-linux-gnueabihf-objdump -D a.out > a.dis
5. 查看反汇编文件 a.dis 文件
arm 指令集,一条汇编指令占用 4 字节空间
thumb 指令集,一条汇编指令占用 2 字节空间
6. 将程序编译生成 arm 指令集 (每条指令都占 4 个字节)
arm-linux-gnueabihf-gcc -marm 1.c ----->将程序编译生成 arm 指令集
arm-linux-gnueabihf-objdump -D a.out > a.dis
7.将程序编译生成 thumb 指令集 (每条指令都占 2 个字节)
CISC---->复杂指令集(X86 架构)
CISC:Complex Instruction Set Computer 复杂指令集
1. 概念:复杂指令更注重于指令的功能
2. 对 ubuntu 编写的文件,使用 gcc 进行编译时,默认生成 X86 架构
gcc 1.c
file a.out -----> X86 架构
objdump -D a.out > a.dis
3.特点: 指令周期和指令宽度是不固定的
精简指今集和复杂指爷集如何进行验证?
精简指命集:使用交叉编译工具链进行验证
复杂指合集:使用 gcc 编译器
寄存器位置
register:rigister 修饰的变量不能被取地址并且处理速度快,因为寄存器
的个数有限,寄存器不可以取地址,寄存器处理速度最快的
volatile:1)防止编译器对代码进行优化 2)每次操作地址时,去内存中进
行取地址,而不是从缓存区中取地址
取址高速缓存是计算机系统中的一种高速存储器,它位于中央处理器(CPU)和主内存之间。在传统的计算机架构中,
取址高速缓存通常是集成在 CPU 芯片上的一级或二级缓存。
控制器并不直接包含取址高速缓存。取址高速缓存是作为 CPU 的一部分存在的,控制器负责管理和调度对取址高速缓
存的访问。
指令:
1、列如 a.out 是已经写好的程序存放在硬盘中。
2、./a.out 在内存中调用,运行该程序。
3、SOC 中的 icache(指令高速缓存)去取址(获取该指令地址)获取内存中的程序
数据:
1. 程序数据存放在内存中
2. SOC 中的 dcache(数据高速缓存)获取变量的值
icache 和 dcache 获取的给 cortex-A7 核,在运算器中进行运算,结果返回寄存器然后在返回
给内存。
谈谈你对寄存器的理解?
寄存器属于核内部的存储器,用来存放暂时参与运算的数据
个数有限,不能取地址,编号(r0~r15,cpsr,spsr)
cortex 一共 43 个寄存器,arm 一共 37 个寄存器
.特殊功能寄存器,以及作用?
R13-->sp
sp:the stack pointer 栈指针寄存器
作用:指向栈空间的某一块地址
R14->lr
LR:the linking register 链接寄存器
作用:保存函数返回地址
剩余37页未读,继续阅读
资源评论
沈✘✘
- 粉丝: 1
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功