liteos连接器脚本(二)

本文详细解析了LiteOS连接器脚本在STM32L431RCTx设备上的应用,探讨了程序在nor flash和RAM之间的布局及启动时的数据拷贝过程。内容涵盖了中断向量表、text段、data段、bss段的分布以及内存管理,强调了连接器脚本在系统初始化和内存分配中的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一节我们概述了连接器脚本的作用,并且结合data段,bss段和text段的各一个例子解释了和程序中的对应关系,那么这一节,我们结合具体的stm32l431来看看系统的boot阶段。在讲解之前这里要讲一个上一届遗留的问题,上一届我们提到了一个图是最终可执行程序的布局,这个里面有bss段,实际上的可执行文件里面的bss段是不占用磁盘空间的,大家想一下为什么,因为bss段里面本来就是脏数据,没有有效数据,所以如果留出来空间就是对磁盘空间的浪费,可执行文件只需要记录bss段的区间大小就行。不过当程序到内存中之后,却是需要根据这个相对地址留出来一段内存用作bss段的,因为bss段里面定义的变量是在程序执行的过程中实实在在需要使用的变量。

并且同时我们知道连接器脚本决定了程序布局,并且连接器脚本里面可以定义程序中使用的变量,这一点很重要,程序执行初始化的时候就是通过这些变量辅助的找到段,或者也有可能其他的辅助的变量。这个和我们通常变量的定义在源代码中会感觉到有一点诧异。大家记住这一点

上一节我们概述了连接器脚本的作用,并且结合data段,bss段和text段的各一个例子解释了和程序中的对应关系,那么这一节,我们结合具体的stm32l431来看看系统的boot阶段。在讲解之前这里要讲一个上一届遗留的问题,上一届我们提到了一个图是最终可执行程序的布局,这个里面有bss段,实际上的可执行文件里面的bss段是不

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值