驱动开发知识点

裸机开发 ------------------------------------------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状态。

相关推荐
神一样的老师8 小时前
【兆易创新GD32VW553开发板试用】红外遥控接入天气时钟实战
驱动开发·单片机·嵌入式硬件
charlie11451419114 小时前
嵌入式Linux驱动开发——新字符设备驱动 API 概览
linux·运维·驱动开发
莎士比亚的文学花园21 小时前
Linux驱动开发(4)——总线驱动
驱动开发
智者知已应修善业1 天前
【用一片74LS139和一片74Ls00,设计带高电平有效使能输入端的3线-8线译码器】2023-10-16
驱动开发·经验分享·笔记·硬件架构·硬件工程
Ghost Face...2 天前
LS2K PCIe驱动开发全链路解析
驱动开发
Joseph Cooper2 天前
Linux Power Management 子系统:从 suspend/resume 到 Runtime PM、PM QoS
linux·驱动开发·linux kernel·嵌入式linux·电源管理
d111111111d2 天前
移植MQTT到STM32
驱动开发
码踏樱花2 天前
navicat17安装包和破解
驱动开发
senijusene3 天前
基于 MX6UL 的 DHT11 温湿度传感器 驱动开发
驱动开发
charlie1145141913 天前
嵌入式Linux驱动开发(8)——内存映射 I/O - 别拿物理地址当指针用
linux·开发语言·驱动开发·c·imx6ull