当前位置: 首页 > news >正文

学习嵌入式的第四十天——ARM

1.链接脚本的作用?各个段存放什么类型数据

作用:

是控制程序转换成二进制格式时的蓝图,通过自定义内存布局,段的组织,符号信息等,确保程序能在特定硬件中正确加载和运行,实现硬件适配

例如:

SECTIONS{. = 0x87800000;.text : {obj/start.o*(.text)}.rodata ALIGN(4) : {*(.rodata*)}.data  ALIGN(4) : {*(.data)}__bss_start = .;.bss ALIGN(4) : {*(.bss) *(COMMON)}__bss_end = .;}

1.bss段

存放未初始化或初始化为0的数据

2.COMMON段

用于存放未初始化的非静态全局变量

3.data段

用于存放已初始化的全局变量或静态变量,非0值

4.rodata段

用于存放只读的数据,运行时受到保护,不可修改

2.编译过程需要哪些工具,分别什么作用?

交叉编译器工具链 (arm-linux-gnueabihf-)这是针对 ARM 架构的交叉编译工具链,用于在 x86 等主机平台上编译能在 ARM 架构设备上运行的程序。

gcc (交叉编译版本:arm-linux-gnueabihf-gcc)

作用:C 语言编译器
在这里负责将 C 源代码 (.c) 和汇编源代码 (.S) 编译为目标文件 (.o)
使用了-Wall(显示所有警告)、-nostdlib(不链接标准库)、-c(只编译不链接)等选项

ld (交叉编译版本:arm-linux-gnueabihf-ld)

作用:链接器
负责将所有目标文件 (.o) 链接成可执行的 ELF 格式文件 (.elf)
通过-Timx6ull.lds指定链接脚本,控制链接过程和内存布局

objcopy (交叉编译版本:arm-linux-gnueabihf-objcopy)

作用:目标文件转换工具
在这里将 ELF 格式的可执行文件 (.elf) 转换为二进制文件 (.bin)
使用-O binary指定输出格式为二进制,-S移除符号表和重定位信息,-g移除调试信息

objdump (交叉编译版本:arm-linux-gnueabihf-objdump)

作用:目标文件反汇编工具
用于将 ELF 格式文件反汇编,生成汇编代码文本文件 (.dis)
通过-D选项对所有段进行反汇编,方便调试和分析
这些工具共同完成了从源代码到可在 ARM 设备上运行的二进制文件的完整编译流程:源代码编译→目标文件链接→格式转换→反汇编分析。

3.led点灯程序需要进行哪些步骤?

一:写启动代码:

在start.S中

包括

1.异常向量表的初始化

2.异常处理函数

3.对需要使用的模式的栈指针的初始化

4.切换到初始模式(一般是user/system模式)

二:写对应函数

包括

1.led初始化

包括:

时钟配置

IO复用配置

电气配置

输入输出配置

2.打开led

对对应的引脚输入能亮灯的电平,即对该引脚赋值0或1

3.关闭led

对对应的引脚输入不能亮灯的电平,即对该引脚赋值0或1

4.led闪烁

对该引脚上的值进行异或操作

5.led的延时

普通延时,通过循坏执行--来延时

三:在主函数中调用以及修改Makefile使能正常编译

http://www.dtcms.com/a/398168.html

相关文章:

  • 佛山营销网站建设公司益阳市城乡和住房建设部网站
  • Linux磁盘数据挂载以及迁移
  • 【图像算法 - 28】基于YOLO与PyQt5的多路智能目标检测系统设计与实现
  • Android音视频编解码全流程之Muxer
  • 一家做土产网站呼和浩特网站建设信息
  • Android Studio - Android Studio 检查特定资源被引用的情况
  • 借助Aspose.HTML控件,使用 Python 编程创建 HTML 页面
  • 营销型网站建设运营网站建设yuanmus
  • Day67 基本情报技术者 单词表02 编程基础
  • 《Java操作Redis教程:以及序列化概念和实现》
  • 欧拉公式与拉普拉斯变换的关系探讨与深入理解
  • 新的EclipesNeon,新的开始,第003章
  • 计算机专业课《数据库系统》核心解析
  • 光流 | 2025年光流及改进算法综述:原理、公式与MATLAB实现
  • 做外贸网站的价格嘉兴网站建设培训
  • 西宁制作网站需要多少钱做网站数据库多少钱
  • [第二章] web入门—N1book靶场详细思路讲解(一)
  • ES 的 shards 是什么
  • LVS:Linux 内核级负载均衡的架构设计、三种工作模式与十大调度算法详解
  • 【触想智能】工业一体机在金融领域的应用优势和具体注意事项
  • 制作大模型获取天气数据工具(和风API)
  • Nginx服务部署与配置(Day.2)
  • 计算机课程《网络安全》课程导览:开启数字世界的守护之旅
  • 网站系统开发精品网站开发
  • 国外ps网站产品推广方案ppt
  • 【MuJoCo学习笔记】#2 接触动力学 腱系统 执行器 传感器
  • 北京 旅游攻略
  • python+django/flask+springboot个性化旅游推荐系统(数据可视化) 景点推荐 路线匹配 用户画像建模 智能搜索筛选 图文展示系统
  • 智慧校园信息门户网站建设一站式做网站哪家好
  • 携程HR面(准备)