STM32 啟動檔案

2021-07-03 08:40:29 字數 1428 閱讀 9793

先來看看啟動**中的偽操作和偽指令

equ

用於定義常量,相當於c中的巨集定義

如stack_size equ 0x00000400 ——— #define stack_size 0x00000400

align

位元組對齊方式

align = 3

export

相當於宣告了乙個全域性變數

export __vectors //中斷向量的起始位址

export __vectors_end //中斷向量的結束位址

export __vectors_size //中斷向量的空間大小

import

相當c語言的extern

import __main ————— extern __main

dcd

dcd expr

分配一段連續的記憶體單元,並且用expr初始化

__vectors dcd __initial_sp ;top of statck———–__vectors = __initial_sp

dcd reset_handler ;reset handler

space

space expr

space用於分配一塊大小為expr的連續記憶體,並且初始化為0

area sectionname ….

area常用來定義乙個段,段名為sectionname,attr位段的屬性

code **段屬性,預設屬性位readonly

data 資料段,預設屬性為readwrite

readonly

readwrite

align

noint 表示資料段初始化為0

棧定義

stack_size equ 0x00000400

area stack,noint,readwrite,align=3

stack_mem space stack_size

__initial_sp

段名:stack

段大小:stack_size=0x00000400

段屬性:readwrite

段的對齊方式:align=3

上面的意思是從stack_mem初始化stack_size大小的記憶體,定義棧底為__initial_sp

堆的定義

heap_size equ 0x00000200

area heap,noint,readwrite,align=3

__heap_base

heap_mem space heap_size

__heap_limit

段名:heap

段大小:heap_size =0x00000200

段屬性:readwrite

段的對齊方式:align=3

stm32啟動檔案

這是st提供的3個啟動檔案,分別適用於不同容量的stm32晶元。這三個檔案為 startup stm32f10x ld.s startup stm32f10x md.s startup stm32f10x hd.s 其中,ld.s適用於小容量 產品 md.s適用於中等容量產品 hd適用於大容量產品 ...

stm32的啟動檔案

libraries cmsis core cm3 startup arm資料夾下是由彙編編寫的系統啟動檔案,不同的檔案對應不同的晶元型號。cl 互聯型產品,stm32f105 107系列 vl 超值型產品,stm32f100系列 xl 超高密度 容量 產品,stm32f101 103系列 ld 低密...

stm32啟動檔案分析

這篇文章主要是分析stm32啟動檔案,啟動檔案是由彙編編寫的,檔名為startup stm32f40 41 s。啟動檔案最主要的功能就是初始化堆疊指標sp,執行復位程式進入c語言main函式 1.初始化堆疊空間大小,定義棧頂位置 堆起始位置等等 2.定義中斷向量表,初始化sp指標 3.reset h...