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主函数

相关推荐
feng_you_ying_li1 小时前
linux之网络层
linux·运维·网络
未来之窗软件服务1 小时前
Linux 运维日志删除的多种方式—东方仙盟
linux·运维·服务器·仙盟创梦ide·东方仙盟
小雉系统1 小时前
BcoreOS实战:用一个升级包,让Rocky Linux跑进Debian服务器
linux·运维·服务器·debian
thethefighter1 小时前
快速预览Word、WPS秒开,支持空格弹窗
linux·word·wps·快速预览·空格弹窗·nhdeepview
用户8351414049492 小时前
把日志和寄存器值喂给AI做故障定位,我的实际问法
linux·ubuntu
Ruiery2 小时前
Linux 6.6内核内存管理深度解析(十七):vmalloc — 内核要“虚拟连续“就够:物理页逐个凑,页表来连
linux·运维·服务器
Escalating_xu2 小时前
【Linux 网络编程】ARP 的具体过程与 ARP 欺骗:一条 IP → MAC 映射,怎样改变数据的去向?
linux·网络·tcp/ip
坚定的共产主义生产设备永不宕机3 小时前
服务器从裸机开始搭建ESXI虚拟机
linux·服务器·网络
刚入门的大一新生3 小时前
Linux-线程封装
linux·运维·服务器
god_cvz3 小时前
实践:Linux环境构建CTB工具(cesium-terrain-builder)
linux·gis·ctb