问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

问个问题啊,嵌入式开发所谓的bss段,data段,text段属于哪方面知识,有没有书推荐

发布网友 发布时间:2022-05-20 12:53

我来回答

3个回答

热心网友 时间:2023-10-21 15:03

你好,你提到的bss段,data段,text段是计算机(不一定是pc机,也可能是嵌入式开发板)的引导程序的汇编部分,对于pc来说就是bios,而对于嵌入式产品就是 bootloader的 startup.s汇编程序,当然启动引导程序在机器里面会以二进制文件形式出现,也就是.bin文件,亦称可执行文件,并且把可执行文件分为两种情况:分别为存放态和运行态。下面分两部分来讲解:
1、存放态是指在存储介质(flash或磁盘)上的分布. 此时可执行文件一般由两部分组成:分别是代码段和数据段。代码段又分为可执行代码段(.text)和只读数据段(.rodata),数据段又分为初始化数据段(.data)和未初始化数据段(.bss)。分布见下图
+-------------+-----------
| .bss |
+-------------+-- 数据段
| .data |
+-------------+-----------
| .rodata |
|_____________| 代码段
| .text |
+-------------+-----------
2、当可执行文件(也就是.bin文件)被拷贝到flash等之类的外部存储器时,接下来要做的就是把可执行文件搬运到cpu内部的ram中,这个过程叫装载,也就是可执行文件从存放态到运行态的转变。当然,搬过去的时候可执行文件在结构上将发生变化,下面是装载前后的变化:
| ... |
+-------------+-----------
| .bss | ZI 段
+-------------+-- 数据段
| .data | RW 段
+-------------+-----------
| .rodata |
|_____________| 代码段(RO 段)
| .text |
+-------------+-----------
| ... |
装载前

当可执行文件装载后, 在RAM中的分布如下:
| ... |
+-------------+-- ZI段结束地址
| ZI 段 |
+-------------+-- ZI段起始地址
| 保留区2 |
+-------------+-- RW段结束地址
| RW 段 |
+-------------+-- RW段起始地址
| 保留区1 |
+-------------+-- RO段结束地址
| RO 段 |
+-------------+-- RO段起始地址
| ... |
装载后
好了,我说的也许太含糊,那就推荐几本书给你:《linux系统移植》、《linux内核全注释》,如果看不懂那就说明你的基础还有待提高,多看一些基础的书籍:《arm汇编》、《c语言》、《嵌入式系统设计》
希望对你有帮助,欢迎追问!!!追问你好,你的这些内容是从哪里知道的呢?能否给我个你的常用邮箱地址呢?

追答先选为最佳答案呗

热心网友 时间:2023-10-21 15:04

《嵌入式linux应用开发完全手册》这本书讲了,还有这本书的视频也不错,看看吧,我买的盗版的书,从网上下的视频。

热心网友 时间:2023-10-21 15:04

《嵌入式linux应用开发完全手册》
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
南师足贴的功效和用法是什么 五指运湿膏能减肥吗 清颜六白膏真的管用吗 一个手机号建了两个微信号第一个微信号密码忘了怎么找回 ug最好用的版本是什么 带“沙鸥”的诗句大全(87句) 归计狎沙鸥的意思是什么 指期乘禁马,无暇狎沙鸥。 “无机终日狎沙鸥”的出处是哪里 “无暇狎沙鸥”的出处是哪里 如何定位elf里面哪里使用了rodata的数据 Linux 下ELF 文件中的 .data.bss.rodata段偏移量为何相同 火车司机的驾驶室内都有些什么东西呢? 加了显卡和内存为什么会死机? 求基于51单片机数字电压表的汇编程序(c的也行) 数字电压表 一、 要求:以单片机为核心,设计一个数字电压表 MULTISIM中的电压表为什么那么慢 如何测量电脑内存的电压,我有电压表 ,要过程 南充智慧爱家全家享128合约期是多久 中国移动智慧爱家5G套餐流量为什么越来越少了? 智慧爱家添加成员 办理智慧爱家套餐后多久取消 智慧爱家5g版(全家福)128可以绑同省不同市吗 智慧爱家58可以移出家庭成员影响宽带吗 智慧爱家128套餐是无限流量吗 智慧爱家5g优享成员158资费可以几个人用 ASP 如何设置手机访问指定页面 手机访问一次网页约会产生数十条甚至数百条的上网记录对吗? 数据增幅统计数值差距大怎么算合理 请教关于统计两天数据差异的sql查询 lds的文件格式 关于测试虚拟内存 ARM中假设".text"段的地址范围是0x30000000~0x300003f1,这其后的".rodata"段的地址4字节对齐后是多少? C语言指针数组和二维数组的问题 c语言中received段,rodata段是什么 vmlinux.lds.s怎么被编译成vmlinux.lds 谁知道这个C语言例题有什么问题?为什么我在linux下,和vs2010里都不能编译成功? 6个一样的形状拼成一个圆 whose girl这句话哪错了 whose girl is she中文是什么意思 whose girl is whose is the girl under the tree,这句那错啦 Whose that girl?错在哪 whose时什么词吗? 定语从局中,whose可以充当名词性物主代词在句子中单独做主语或宾语吗? 做在我前面的女孩的头发是红色的 英语翻译 最好带定语who ,whose 英语中whose的用法 英语中whose的用法 请问这句英语里空格处为什么不填who而是whose,先行词为什么不是the girl ? 请问这句英语里空格处为什么不填who而是whose,先行词为什么不是the girl ?