STM32入门系列-启动文件介绍

在启动文件内部使用的都是汇编语言,这个文件的作用是负责执行微控制器从“复位”到“开始执行 main 函数”中间这段启动时间所必须进行的工作。它完成的具体工作有:
初始化堆栈指针SP=_initial_sp
初始化PC指针=Reset_Handler
初始化中断向量表
配置系统时钟 在这里插入图片描述
调用C库函数_main初始化用户堆栈,从而转向我们用户应用程序的main。
汇编指令
打开STM32的启动文件会发现,里面全部都是汇编语句,对于汇编指令不了解的朋友来说可能一头雾水。下面我们按照启动文件内指令出现的顺序来介绍,相信可以了解到大概情况。
EQU:给数字常量取一个符号名, 相当于C语言中的预处理命令define。其常用格式如下:
Stack_Size EQU 0x00000400
表示将0x00000400这个数值,用Stack_Size名代替。
AREA:汇编一个新的代码段或者数据段。常用格式如下:
AREA STACK, NOINIT, READWRITE, ALIGN=3
表示汇编一个数据段,名字是STACK,NOINIT表示不初始化,READWRITE表示可读可写,ALIGN表示字节对齐,通常后面会赋一个立即数,比如ALIGN=3表示的就是2^3字节对齐,即8字节对齐。
SPACE:分配一定大小的内存空间,单位为字节。常用格式如下:
Stack_Mem SPACE Stack_Size
表示给Stack_Mem分配一个Stack_S

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值