STM32入门学习笔记之STM32F103环境搭建(下)

2024-01-15  

(3)在工程文件夹中创建四个子文件夹,HEADERWARE,OBJECT,USER和SYSTEM,各文件夹内容如下所示。

USER:存放工程文件,汇编启动文件与主函数的c文件

SYSTEM:存放系统文件,串口1文件和滴答时钟文件

HEADERWARE:存放其他的驱动文件

OBJECT:存放编译过程的链接文件以及最终的HEX文件

图片

(4)新建工程,输入工程保存路径后点击保存。

图片

图片

(5)选择目标芯片型号,我们使用的芯片型号是STM32F103ZET6

图片

图片

图片

(6)点击工程设置,添加系统文件夹

图片

点击红框选中的位置来新建文件夹,双击新建的文件夹修改名称,创建和步骤3目录一样的文件夹,如下图所示。

图片

(7)创建启动汇编文件

图片

点击保存,输入文件名stm32f103x.s后保存进User文件夹。

图片

输入以下代码,由于以下代码是固定的,所以可以直接复制


Stack_Size    EQU    0x00000400



        AREA  STACK, NOINIT, READWRITE, ALIGN=3

Stack_Mem    SPACE  Stack_Size

__initial_sp



Heap_Size    EQU    0x00000200



        AREA  HEAP, NOINIT, READWRITE, ALIGN=3

__heap_base

Heap_Mem    SPACE   Heap_Size

__heap_limit



                PRESERVE8

                THUMB



; Vector Table Mapped to Address 0 at Reset

                AREA    RESET, DATA, READONLY

                EXPORT    __Vectors

                EXPORT    __Vectors_End

                EXPORT    __Vectors_Size



__Vectors    DCD    __initial_sp        ; Top of Stack

        DCD    Reset_Handler        ; Reset Handler

        DCD    NMI_Handler          ; NMI Handler

        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              ; Reserved

        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     DMA1_Channel1_IRQHandler  ; DMA1 Channel 1

        DCD     DMA1_Channel2_IRQHandler  ; DMA1 Channel 2

        DCD     DMA1_Channel3_IRQHandler  ; DMA1 Channel 3

        DCD     DMA1_Channel4_IRQHandler  ; DMA1 Channel 4

        DCD     DMA1_Channel5_IRQHandler  ; DMA1 Channel 5

        DCD     DMA1_Channel6_IRQHandler  ; DMA1 Channel 6

        DCD     DMA1_Channel7_IRQHandler  ; DMA1 Channel 7

        DCD     ADC1_2_IRQHandler      ; ADC1 & ADC2

        DCD     USB_HP_CAN1_TX_IRQHandler  ; USB High Priority or CAN1 TX

        DCD     USB_LP_CAN1_RX0_IRQHandler  ; USB Low  Priority or CAN1 RX0

        DCD     CAN1_RX1_IRQHandler      ; CAN1 RX1

        DCD     CAN1_SCE_IRQHandler      ; CAN1 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

        DCD     TIM8_BRK_IRQHandler      ; TIM8 Break

        DCD     TIM8_UP_IRQHandler      ; TIM8 Update

        DCD     TIM8_TRG_COM_IRQHandler    ; TIM8 Trigger and Commutation

        DCD     TIM8_CC_IRQHandler      ; TIM8 Capture Compare

        DCD     ADC3_IRQHandler        ; ADC3

        DCD     FSMC_IRQHandler        ; FSMC

        DCD     SDIO_IRQHandler        ; SDIO

        DCD     TIM5_IRQHandler        ; TIM5

        DCD     SPI3_IRQHandler        ; SPI3

        DCD     UART4_IRQHandler      ; UART4

        DCD     UART5_IRQHandler      ; UART5

        DCD     TIM6_IRQHandler        ; TIM6

        DCD     TIM7_IRQHandler        ; TIM7

        DCD     DMA2_Channel1_IRQHandler  ; DMA2 Channel1

        DCD     DMA2_Channel2_IRQHandler  ; DMA2 Channel2

        DCD     DMA2_Channel3_IRQHandler  ; DMA2 Channel3

        DCD     DMA2_Channel4_5_IRQHandler  ; DMA2 Channel4 & Channel5

__Vectors_End



__Vectors_Size  EQU  __Vectors_End - __Vectors



        AREA    |.text|, CODE, READONLY

; Reset handler

Reset_Handler  PROC

        EXPORT    Reset_Handler        [WEAK]

        IMPORT    __main  

        LDR      R0, =__main

        BX      R0

        ENDP



; Dummy Exception Handlers (infinite loops which can be modified)

NMI_Handler    PROC

        EXPORT    NMI_Handler          [WEAK]

        B    .

        ENDP

HardFault_Handler

        PROC

        EXPORT    HardFault_Handler      [WEAK]

文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。