锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

Cortex-M3 .s文启动文件分析

时间:2024-04-18 10:07:09

1. 基本概念(CMSIS): Cortex Micro-controller Software Interface Standard,软件标准。

2. CMSIS标准的文件结构: a) core_cm.c (stdint.h) b) system_.c (core_cm, system_) c) startup_.s 其中core_cm.c以及core_cm中为内核设访问层,其中定义了定义了内核中得外设几丁质以及一些内核的访问及控制函数。 startup_.s文件是系统的启动文件,其包括堆和栈的初始化配置、中断向量表的配置以及将程序引导到main()函数等功能。 system_和system_.c文件则是由 公司提供模版,各芯片制造商根据自己芯片的特点来编写的。 3. 注解startup_.s文件 此文件主要完成三项工作:堆栈以及堆的初始化、定位中断向量表、调用Reset Handler a) 堆栈以及堆的初始化 ; Stack Configuration ; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> ; Stack_Size EQU 0x00000200 AREA ACK, NOINIT, READWRI, ALIGN=3 // 指明8字节对齐(ALIGN=3)
Stack_Mem S Stack_Size __initial_sp // 此标号有一层隐含的意思那就是在M3中堆栈是满递减堆栈, //因为它指定了堆栈指针位于堆栈的高地址(在//Stack_Mem之后) ; Heap Configuration ; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> ; Heap_Size EQU 0x00000000 AREA HEAP, NOINIT, READWRITE, ALIGN=3 __heap_base Heap_Mem ACE Heap_Size __heap_limit 以上堆和栈的具体地址可以在工程编译后产生的*.map文件中看到。 b) 定位中断向量表 PRESERVE8 // PRESERVE8指定了以下的代码位8字节对齐 THUMB // THUMB指定了接下来的代码为THUMB指令集 ; Vector Table Mapped to Address 0 at Reset AREA RESET, DATA, READLY // 此语句声明RESET数据段 EXPORT __Vectors // 导出向量表标号,EXPORT作用类似于C语言中的extern __Vectors D __initial_sp ; Top of Stack DCD Reset_Handler ; Reset Handler DCD NMI_Handler ; NMI Handler DCD HardFault_Handler ; Hard Fault Handler DCD MemManage_Handler ; Fault Handler DCD BusFault_Handler ; Bus Fault Handler DCD UsageFault_Handler ; Usage Fault Handler DCD 0 ; Reserved
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章