20260720

  1. ARM工具链中gcc、ld、objcopy、objdump工具的作用?

gcc(编译器):将(.S .c)高级语言代码转换为汇编代码,再将汇编代码转换为(.o)目标文件;

ld(链接器):从-T后的链接地址开始,将多个(.o)目标文件链接成(.elf)可执行文件;

objcopy(目标文件格式转换器):将(.elf)可执行文件转换为(.bin)纯二进制格式文件,并从目标文件中提取特定的段;

objdump(反汇编器):将(.bin)机器码反汇编为汇编代码。

  1. .text段、.bss段、common段、.data段、.rodata段区别?

.text段:存放代码和指令

.bss段:存放未初始化的静态变量和初始化为0的全局变量

common段:存放未初始化的全局变量

.data段:存放非0初值的全局变量和静态变量

.rodata段:存放只读常量(const、字符串常量、switch跳转表、浮点数常量)

注:在main函数运行前,要将.bss和common段清0

  1. 你的imx6ull在启动裸机代码之前都干了什么?

1.先定义异常向量表

2.上电之后,触发复位中断,进入_reset_handler

3.切换irq普通中断工作模式,并设置栈指针地址;再切换到system工作模式,设置对应的栈指针寄存器

4.对.bss段和common段清0处理

5.跳入main主函数

相关推荐
Apipi*7 小时前
30天速通Linux 第六章信号及信号处理
linux·运维·信号处理
天启HTTP8 小时前
爬虫防封核心原理:IP轮换机制与风控规避逻辑
linux·服务器·网络·爬虫·tcp/ip
广州浮点FLOATLIC10 小时前
许可证服务器迁移后软件打不开:研发 IT 怎样定位连接问题
linux·服务器·数据库
BLUcoding10 小时前
接口服务公网超时排查记录:SecureRandom 阻塞问题分析与解决
java·linux·springboot·aes·securerandom
AIgorithmGEEK10 小时前
[Linux]从手写报头到内核套路:序列化、反序列化与自定义协议全链路
linux·运维·服务器·网络·序列化·反序列化
Nil20811 小时前
leetcode 139单词拆分
linux·运维·服务器
Starry-sky(jing)11 小时前
BUG: unable to handle kernel paging request 完整排查:dmesg 四要素与三路定罪
linux·运维·服务器·内核·排障
mounter62511 小时前
从硬件互连到操作系统变革:CXL 技术演进与 Linux 内核工程挑战
linux·运维·服务器
xh didida12 小时前
Linux -- 基础IO
linux·服务器·开发语言·c++
zly350013 小时前
centos7 mount设备挂载 /dev/sda1/硬盘挂载
linux·运维·服务器