硬件(驱动开发概念)

驱动程序开发

裸机驱动(无操作系统) Linux驱动

以计算机技术为基础,在软件和硬件层间可以被剪裁的专业硬件计算机系统

SOC:片上系统

Kernel:内核

x86 (CISC:complex instruction set computer 复杂指令集电脑)

ARM:低功耗,低成本,低消耗 (RISC:reduces instruction set computer 精简指令集)

GPIO:通用目的的输入和输出

控制某个引脚变成高电平或者低电平

红字:网络标号,不可能独自出现

UART:用于不同设备,不同芯片之间的通信

APB:高级外设总线

AHB:高级高速总线(连接RAM,USB等)

Kernel:

ALU:算数逻辑单元

R0~R15:通用寄存器(全局变量)

pc(program counter):程序计数器,保存当前指令的下一条地址

lr:链接寄存器,为了从硬件的体系上实现函数的调用

sp:栈指针,RAM开空间,sp保存栈的地址,即为初始化栈指针(汇编初始化)

Cache:高速缓存

I Cache:指令Cache

D Cache:数据Cache

冯诺依曼架构:与哈佛相反

哈佛架构:数据与算法分开存放,提高效率

MMU:内存管理单元,决定SOC是否合适上操作系统,为了虚拟内存使用,将虚拟地址映射到物理内存空间上,提高RAM的使用效率

汇编需要关闭Cache和MMU

RAM:随机访问存储器

ROM:只读存储器(非易失性存储器)

flash闪存:nor flash 可以被寻址

存放编写的代码

nand flash 不可被寻址

块设备,512个字节一起写入,只能写0,一般用于硬盘

CPSR:当前程序状态寄存器

SPSR:备份CPSR

FIQ:快速中断请求

IRQ:中断请求

模式切换时,寄存器状态也发生改变

不同的工作模式都有自己不同的栈指针,都要分别初始化

所有模式公用一个pc,cpsr

发生异常时,一般在偏移量放入跳转指令,即函数指针的数组,初始化异常向量表

相关推荐
叼烟扛炮1 小时前
Linux 学习笔记(四十一):TCP 并发演进——从单进程到多线程服务器
linux·运维·服务器·网络·笔记·学习·tcp/ip
ynchyong1 小时前
Linux 有两个 “版本“
linux·发行版·内核版本
叼烟扛炮1 小时前
Linux 学习笔记(四十四):HTTP 协议解析与极简 Web 服务器实战
linux·服务器·学习
叼烟扛炮1 小时前
Linux 学习笔记(四十三):网络编程进阶——自定义协议解决 TCP 粘包与守护进程
linux·开发语言·网络·笔记·tcp/ip
Escalating_xu2 小时前
【Linux 网络编程】DNS 与 ICMP:从域名解析到 ping、traceroute,把“网络通不通”问清楚
linux·网络·php
songyuc2 小时前
【Manskill3】TableSceneBuilder学习笔记
pytorch·笔记·学习
外收内放2 小时前
Python基础语法练习题(75)
开发语言·python·学习
一枕槐安4874 小时前
大模型限流、重试、超时处理:API 调用健壮性方案
linux·服务器·php·大模型api·指数退避·限流控制·超时预算
西索斯coding4 小时前
gpt-image-2.5-sunburst 和 gemini-3.1-flash-image 差多少?60 组项目素材的成功成本评测框架
java·linux·gpt·ai
箓维4 小时前
应用层协议基础_序列化与反序列化
linux