FreeRTOS——内存管理(上)

一、编译过程及程序组成

1.1STM32编译过程

6b2ac886467b49cd84639f711af0f27b.png

 

16e14f0745be4f5daa612132cfdc5b50.png

  • armar打包 将.c文件生成标准库,当不想把项目源码授予他人时,可以通过这个文件来把文件打包成lib文件

  • armcc编译.c/.cpp源文件,生成目标文件,armasm与汇编相关

  • 使用armlink链接对象文件,根据程序的调用把各个.o文件的内容链接起来,最后生成程序的axf映像文件,并附带程序各个域大小的说明,包括code、RO-data、RW-data、及ZI-data的大小

  • 使用fromelf生成下载格式文件,他根据axf映像文件转换成hex文件,并列出编译过程中出现的错误(Error)和警告(Warnning)数量

1.2程序的组成、存储与运行

1.2.1组成

426e230ba4f1449ba41d60231bc9ae92.png

  • 对应C程序,代码段还包括.rodata 常量区、char*   const这些只读 不可更改的内容

  • 数据段包括(.bss)或 (.data) 全局静态内存分配区

    • .bss 主要是未初始化或初始化为0的全局变量,不占可执行空间,系统内核初始化

    • .data主要是已初始化的全局变量,占可执行空间,由程序初始化

  • heap——地址向上增长,手动动态分配,空间大,运行效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值