STM32启动流程
初始位置
查看源码
;******************** (C) COPYRIGHT 2010 STMicroelectronics ********************
;* File Name : startup_stm32f10x_hd.s
;* Author : MCD Application Team
;* Version : V3.4.0
;* Date : 10/15/2010
;* Description : STM32F10x High Density Devices vector table for MDK-ARM
;* toolchain.
;* This module performs:
;* - Set the initial SP
;* - Set the initial PC == Reset_Handler
;* - Set the vector table entries with the exceptions ISR address
;* - Configure the clock system and also configure the external
;* SRAM mounted on STM3210E-EVAL board to be used as data
;* memory (optional, to be enabled by user)
;* - Branches to __main in the C library (which eventually
;* calls main()).
;* After Reset the CortexM3 processor is in Thread mode,
;* priority is Privileged, and the Stack is set to Main.
;* <<< Use Configuration Wizard in Context Menu >>>
描述:STM 32 f 10 x MDK ARM高密度器件向量表;*工具链。;*此模块执行:;* -设置初始SP;* -设置初始PC = = Reset _ Handler* -用异常ISR地址设置向量表项;* -配置时钟系统并配置外部;*安装在STM3210E-EVAL板上的SRAM用作数据;*内存(可选,由用户启用);* -分支到C库中的__main(最终;*调用main())。;*复位后CortexM3处理器处于线程模式;*优先级是有特权的,堆栈设置为Main。;* < < <在上下文菜单中使用配置向导>>>
; Reset handler
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT __main
IMPORT SystemInit
LDR R0, =SystemInit
BLX R0
LDR R0, =__main //跳转入main
BX R0
ENDP
core_cm3.c
/**************************************************************************//**
* @file core_cm3.c
* @brief CMSIS Cortex-M3 Core Peripheral Access Layer Source File
* @version V1.30
* @date 30. October 2009
*
* @note
* Copyright (C) 2009 ARM Limited. All rights reserved.
*
* @par
* ARM Limited (ARM) is supplying this software for use with Cortex-M
* processor based microcontrollers. This file can be freely distributed
* within development tools that are supporting such ARM based processors.
/*------------------ ICC Compiler -------------------*/
/* define compiler specific symbols */
stm32f10x.h
#include "core_cm3.h"
编译相关的命令与字节翻转命令,编译时包含头文件
system_stm32f10x.c
/**
******************************************************************************
* @file system_stm32f10x.c
* @author MCD Application Team
* @version V3.4.0
* @date 10/15/2010
* @brief CMSIS Cortex-M3 Device Peripheral Access Layer System Source File.
******************************************************************************
系统时钟等设置
startup_stm32f10x_hd.s将调用相应的函数
/**
******************************************************************************
* @file misc.c
* @author MCD Application Team
* @version V3.4.0
* @date 10/15/2010
* @brief This file provides all the miscellaneous firmware functions (add-on
* to CMSIS functions).
/**
* @brief Configures the priority grouping: pre-emption priority and subpriority.
* @param NVIC_PriorityGroup: specifies the priority grouping bits length.
* This parameter can be one of the following values:
* @arg NVIC_PriorityGroup_0: 0 bits for pre-emption priority
* 4 bits for subpriority
* @arg NVIC_PriorityGroup_1: 1 bits for pre-emption priority
* 3 bits for subpriority
* @arg NVIC_PriorityGroup_2: 2 bits for pre-emption priority
* 2 bits for subpriority
* @arg NVIC_PriorityGroup_3: 3 bits for pre-emption priority
* 1 bits for subpriority
* @arg NVIC_PriorityGroup_4: 4 bits for pre-emption priority
* 0 bits for subpriority
* @retval None
*/
中断优先级等相关设置
******************************************************************************
* @file Project/STM32F10x_StdPeriph_Template/stm32f10x_it.c
* @author MCD Application Team
* @version V3.4.0
* @date 10/15/2010
* @brief Main Interrupt Service Routines.
* This file provides template for all exceptions handler and
* peripherals interrupt service routine.
关系:
startup_stm32f10x_hd.s 中将此文件中相应的中断命令
* @file Project/STM32F10x_StdPeriph_Template/stm32f10x_conf.h
* @author MCD Application Team
* @version V3.4.0
* @date 10/15/2010
* @brief Library configuration file.
外设:头文件包含,要不要包含头文件设置
外设SPI ADC UART GPIO