4.HAL库启动流程

1.启动文件startup_stm32f429xx.s

启动文件主要工作:
1、初始化堆栈指针 SP=_initial_sp
2、初始化 PC指针=Reset_Handler
3、初始化中断向量表
4、配置系统时钟
5、调用 C库函数_main 初始化用户堆栈,从而最终调用main 函数去C的世界

1.1.Stack-栈

Stack_Size      EQU     0x400;

                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp

开辟栈的大小为0X00000400(1KB),名字为STACK,8(2^3)字节对齐。栈的作用是用于局部变量,函数调用,函数形参等的开销。标号__initial_sp紧挨着SPACE语句放置,表示栈的结束地址,即栈顶地址,栈是由高向低生长的。

1.2.Heap-堆

Heap_Size      EQU     0x200;

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

开辟堆的大小为0X00000200(512字节),名字为HEAP,NOINIT,8(2^3)字节对齐。__heap_base表示对的起始地址,__heap_limit表示堆的结束地址。堆是由低向高生长的,跟栈的生长方向相反。堆主要用来动态内存的分配,malloc()函数申请的内存就在堆上面。

1.3.向量表

; Vector Table Mapped to Address 0 at Reset
                AREA    RESET,<
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值