查看: 418|回复: 1
打印 上一主题 下一主题

学习基于Cortex-M3的盆友,可以看看

[复制链接] qrcode

7

主题

7

帖子

23

积分

新手上路

Rank: 1

积分
23
楼主
跳转到指定楼层
发表于 2015-12-18 11:46 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Cortex-m3启动代码分析笔记启动代码文件名是STM32F10X.S,它的作用先总结下,然后再分析。
启动代码的作用一般是:
1)堆和栈的初始化;
2)向量表定义;
3)地址重映射及中断向量表的转移;
4)设置系统时钟频率;
5)中断寄存器的初始化;
6)进入C应用程序。
(1)按启动代码的次序,先看堆和栈的初始化:
Stack_Size EQU 0x00000200 ;定义Stack_Size为0x00000200
AREA STACK, NOINIT, READWRITE, ALIGN=3 ;定义栈,可初始为0,8字节对齐
Stack_Mem SPACE Stack_Size ;分配0x200个连续字节,并初始化为0
__initial_sp ;汇编代码地址标号

Heap_Size EQU 0x00000000
AREA HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem SPACE Heap_Size
__heap_limit

PRESERVE8 ;指定当前文件堆栈8字节对齐
THUMB ;告诉汇编器下面是32为的Thumb指令,如果需要汇编器将插入位以保证对齐
(2)中断向量表定义

AREA RESET, DATA, READONLY ;定义复位向量段,只读
EXPORT __Vectors ;定义一个可以在其他文件中使用的全局标号。此处表示中断地址
__Vectors DCD __initial_sp ; 给__initial_sp分配4字节32位的地址0x0
DCD Reset_Handler ; 给标号Reset Handler分配地址为0x00000004
DCD NMI_Handler ; 给标号NMI Handler分配地址0x00000008
DCD HardFault_Handler ; Hard Fault Handler
DCD MemManage_Handler ; MPU Fault Handler
DCD BusFault_Handler ; Bus Fault Handler
DCD UsageFault_Handler ; Usage Fault Handler
DCD 0 ; 这种形式就是保留地址,不给任何标号分配
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD SVC_Handler ; SVCall Handler
DCD DebugMon_Handler ; Debug Monitor Handler
DCD 0 ; Reserved
DCD PendSV_Handler ; PendSV Handler
DCD SysTick_Handler ; SysTick Handler
; External Interrupts
DCD WWDG_IRQHandler ; Window Watchdog
DCD PVD_IRQHandler ; PVD through EXTI Line detect
DCD TAMPER_IRQHandler ; Tamper
DCD RTC_IRQHandler ; RTC
DCD FLASH_IRQHandler ; Flash
DCD RCC_IRQHandler ; RCC
DCD EXTI0_IRQHandler ; EXTI Line 0
DCD EXTI1_IRQHandler ; EXTI Line 1
DCD EXTI2_IRQHandler ; EXTI Line 2
DCD EXTI3_IRQHandler ; EXTI Line 3
DCD EXTI4_IRQHandler ; EXTI Line 4
DCD DMAChannel1_IRQHandler ; DMA Channel 1
DCD DMAChannel2_IRQHandler ; DMA Channel 2
DCD DMAChannel3_IRQHandler ; DMA Channel 3
DCD DMAChannel4_IRQHandler ; DMA Channel 4
DCD DMAChannel5_IRQHandler ; DMA Channel 5
DCD DMAChannel6_IRQHandler ; DMA Channel 6
DCD DMAChannel7_IRQHandler ; DMA Channel 7
DCD ADC_IRQHandler ; ADC
DCD USB_HP_CAN_TX_IRQHandler ; USB High Priority or CAN TX
DCD USB_LP_CAN_RX0_IRQHandler ; USB Low Priority or CAN RX0
DCD CAN_RX1_IRQHandler ; CAN RX1
DCD CAN_SCE_IRQHandler ; CAN SCE
DCD EXTI9_5_IRQHandler ; EXTI Line 9..5
DCD TIM1_BRK_IRQHandler ; TIM1 Break
DCD TIM1_UP_IRQHandler ; TIM1 Update
DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation
DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
DCD TIM2_IRQHandler ; TIM2
DCD TIM3_IRQHandler ; TIM3
DCD TIM4_IRQHandler ; TIM4
DCD I2C1_EV_IRQHandler ; I2C1 Event
DCD I2C1_ER_IRQHandler ; I2C1 Error
DCD I2C2_EV_IRQHandler ; I2C2 Event
DCD I2C2_ER_IRQHandler ; I2C2 Error
DCD SPI1_IRQHandler ; SPI1
DCD SPI2_IRQHandler ; SPI2
DCD USART1_IRQHandler ; USART1
DCD USART2_IRQHandler ; USART2
DCD USART3_IRQHandler ; USART3
DCD EXTI15_10_IRQHandler ; EXTI Line 15..10
DCD RTCAlarm_IRQHandler ; RTC Alarm through EXTI Line
DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend
后续更精彩,更多关于M0、M3、A8资料,可加Q1210014916索取或讨论
回复

使用道具 举报

1

主题

3

帖子

9

积分

新手上路

Rank: 1

积分
9
沙发
发表于 2015-12-19 02:35 AM | 只看该作者
hen hao,bucuo                                                                                                                                                                       
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表