编译过程
结合ARM平台,将程序的编译、链接、安装和运行的基本原理和过程梳理一遍
内存布局
程序内存布局详解:从Flash到RAM,揭秘变量存储的秘密
内存堆栈管理
本文详细介绍了ARM架构下的内存堆栈管理,包括栈的基本概念、初始化、函数调用、参数传递,堆的管理以及内存泄漏的预防等内容。
单片机的启动流程
完整流程 上电或复位: 芯片通电或RESET引脚被拉低。 读取BOOT引脚: 硬件逻辑在复位信号的上升沿锁存 BOOT0 和 BOOT1 引脚的电平状态。 执行内存重映射(M3/M4才重映射,M7没有重映射): 如果 BOOT0=0,内部总线矩阵将主闪存(0x08000000)的地址重映射到 0x00000000。 如果 BOOT0=1, BOOT1=0,将系统存储器(0x1FFFF000)重映射到 0x00000000。 如果 BOOT0=1, BOOT1=1,将SRAM(0x20000000)重映射到 0x00000000。 CPU开始执行:CPU的PC指针指向 0x00000000,开始它的生命周期。它首先从 0x00000000 读取栈顶指针(MSP)的初始值,并加载到SP寄存器。然后从 0x00000004 读取复位处理函数(Reset_Handler)的地址,并加载到PC寄存器。 这段描述适用全部模式:Flash、System Memory、SRAM 运行软件程序: 主闪存模式:CPU开始执...
几条简单的ARM汇编指令
什么是程序我认为程序就是 一段被烧写在flash里面的机器码(指令)(bin文件) 运行过程中的数据(属于程序里的一部分) cpu运行期间会在flash取指令然后执行各种操作。 程序运行时CPU如何读写内存cpu内部有寄存器,R0~R15寄存器读数据是将数据从内存RAM读取到寄存器,写数据是将数据从寄存器写入内存RAM。其中读写操作涉及几条汇编指令:LDR、STR、SUB、ADD、CMP、B、BL、POP、PUSH、LDIMA。下面我们就来介绍一下这些指令。 ARM汇编简介了解汇编指令之前我们了解一下什么是汇编语言: 1985年,ARM公司推出了第一款ARM(Acorn RISC Machine)处理器,采用精简指令集(RISC)设计理念。他们发布了两类指令集:ARM指令集和Thumb指令集。ARM指令集是32位指令,Thumb指令集是16位指令。所以基于ARM架构的CPU可以同时运行ARM指令集和Thumb指令集。那怎么区分当前指令是ARM指令集还是Thumb指令集呢?在程序状态寄存器(CPSR)中,有一个标志位T。当T位为0时,当前指令是ARM指令集;当T位为1时,当前...
通过点灯学习C的面向对象编程思想
没有class关键字,C语言如何实现高级抽象,构建出高内聚、低耦合的优雅架构呢?
