驱动开发知识点

裸机开发 ------------------------------------------linux驱动

SOC:

  • 定义:SOC,全称System on Chip,是一种集成了多个功能模块的芯片,包括处理器、内存、外设、接口等。它将原本分散在多个芯片上的功能集成到一个芯片上,形成一个完整的系统。
  • 特点:集成度高、功耗低、体积小、性能优越。SOC芯片的出现,使得嵌入式系统可以实现更多的功能,提高了系统的性能和可靠性。

kernel:

Kernel是操作系统的核心,负责管理和控制计算机的硬件资源,以及提供系统服务。

**X86:**x86内核在性能方面通常具有优势,尤其是在需要处理大量数据和复杂计算的应用场景中。然而,x86处理器的功耗相对较高,这可能限制了其在某些低功耗应用场景中的使用。

**ARM:**ARM内核在功耗方面表现出色,特别适用于需要长时间运行且对功耗有严格要求的移动设备和物联网设备。尽管ARM内核在性能上可能略逊于x86内核,但其在功耗方面的优势使得它在这些领域具有更强的竞争力。

APB:(Advanced Peripheral Bus)高级外围总线,主要用于连接处理器和外设之间的通信。APB总线具有简单、灵活、可靠等特点,特别适用于低功耗和低带宽的外围设备

外设:GPIO,I2C,UART , LCD

AHB:(Advanced High-performance Bus)AHB总线通常作为高性能的系统总线,连接处理器、内存和其他高性能的外围设备

存储器的分类:

RAM (随机存储器)RAM中的数据在断电后会丢失,因此它通常用于存储当前正在运行的程序和数据。

ROM(只读存储器) ROM中的数据在断电后不会丢失,因此它通常用于存储固定的、不需要频繁更改的信息。

nor flash :可以寻址

nand flash :不可寻址

**ALU(Arithmetic Logic Unit,算术逻辑单元)**是计算机中央处理器(CPU)中的一个重要组成部分。它是负责执行算术运算(如加、减、乘、除)和逻辑运算(如与、或、非、异或)的单元。ALU的输入通常来自CPU的寄存器或内存,而它的输出则可以被存储回寄存器或内存中,供进一步的处理。

ARM:

arm的7个基本工作模式:

ARM处理器的七种主要异常处理类型:

重置异常(Reset):系统启动时触发,初始化处理器状态。

未定义指令异常(Undefined Instruction):遇到未识别的指令时触发,处理器进入未定义模式。

软件中断异常(Software Interrupt):由软件请求系统服务时触发,通常用于调用操作系统功能。

预取异常(Prefetch Abort):当指令预取失败(如访问非法内存)时触发。

数据异常(Data Abort):在数据访问失败时触发,如访问非法地址。

IRQ中断(IRQ Interrupt):普通中断,处理优先级较低的外部中断。

FIQ中断(FIQ Interrupt):快速中断,处理优先级较高的外部中断,响应速度更快。

ARM寄存器:

通用寄存器(R0-R15):

R0-R12:用于数据处理和存储临时变量。

R13(SP):栈指针,指向当前栈顶。

R14(LR):链接寄存器,存储返回地址。

R15(PC):程序计数器,指向当前执行指令的地址。

特殊寄存器:

CPSR:当前程序状态寄存器,包含标志位和当前处理模式信息。

SPSR:保存程序状态寄存器,用于保存异常发生时的CPSR状态。

相关推荐
天夏已微凉17 小时前
OpenHarmony系统HDF驱动开发介绍(补充)
驱动开发·音视频·harmonyos
不摆烂选手1 天前
Linux 阻塞和非阻塞 I/O 简明指南
linux·驱动开发·ubuntu·正点原子imx6ull学习笔记
__Benco1 天前
OpenHarmony平台驱动开发(十五),SDIO
驱动开发
7yewh1 天前
FPGA前瞻篇-计数器设计与实现实例
arm开发·驱动开发·嵌入式硬件·fpga开发·硬件架构·硬件工程·精益工程
程序员JerrySUN2 天前
《驱动开发硬核特训 · 专题篇》:深入理解 I2C 子系统
驱动开发
sukalot2 天前
window 显示驱动开发-将虚拟地址映射到内存段(二)
驱动开发
忧虑的乌龟蛋2 天前
嵌入式Linux I2C驱动开发详解
linux·驱动开发·嵌入式·iic·i2c·读数据·写数据
月上柳青3 天前
linux-驱动开发之设备树详解(RK平台为例)
linux·驱动开发·dsp开发
程序员JerrySUN3 天前
驱动开发硬核特训 · Day 30(下篇): 深入解析 lm48100q I2C 音频编解码器驱动模型(基于 i.MX8MP)
linux·驱动开发·架构·音视频
Blossom.1184 天前
《从零开始:构建你的第一个区块链应用》
人工智能·驱动开发·python·深度学习·区块链·aigc·交互