
一、复习C语言内存段存什么东西读写权限谁管理code 代码段函数指令、机器码只读 / 执行系统rodata (常量区)整型、字符串等各种常量、switch跳转表只读系统data数据段初始化不为0的全局及静态变量读写系统BSS 段未初始化及初始化为0的全局及静态变量读写系统自动清零heap 堆(2.8/9G左右)malloc/new 动态内存(程空间中其他部分使用剩余的空间使用时需要手动申请及释放)读写程序员自己stack 栈8M局部变量、函数参数、函数返回地址读写系统自动map内存映射段映射一些库(函数)的地址(库位置/函数偏移地址)读写系统内核空间1Gkernel操作系统核心功能受保护内核满减栈、空减栈进程和线程区别进程开辟空间大(进程空间全部独立) 开辟/调度效率低 通信复杂线程开辟空间小(只有栈是独立的) 开辟/调度效率高 通信简单二、中断cortex-a7CPU 核心负责执行指令、处理中断GIC中断控制器是所有外设中断的 “总调度器”外设模块GPIO DR、UART、定时器、IIC、ADC 等产生中断信号req/ackCPU 与 GPIO 寄存器的读写握手CP15就是 ARM 用来配置系统的专用协处理器。寄存器名字英文全称属于哪个模块核心作用必须记住SCTLRSystem Control RegisterCP15 c1系统总控制寄存器1.bit13(V)中断向量表位置选择 ・V0 → 可用 VBAR 映射到 RAM ・V1 → 固定 0xFFFF00002.bit0MMU 开关3.bit12指令缓存开关VBARVector Base Address RegisterCP15 c12中断异常向量表基地址寄存器1. 存放RAM 中断向量表的起始地址2. 只有 SCTLR.V0 时才生效3. 让 CPU 去 RAM 找中断函数CBARConfiguration Base Address RegisterCP15 c15GIC 配置基地址寄存器1. 保存GIC 中断控制器的物理基地址2. 读取它 → 才能找到 GICD 和 GICC3. 是配置中断的第一步GICD_CTLRGIC Distributor Control RegisterGICDGIC 分发器总开关1. 全局使能 / 关闭所有中断2. 写 1 → 开启 GIC 分发器3. 不打开所有外设中断都无效GICC_CTLRGIC CPU Interface Control RegisterGICCCPU 中断接口总开关1. 让 CPU 能接收 GIC 发来的中断信号2. 写 1 → 开启 CPU 接口3. 和 GICD_CTLR 必须同时打开