深入理解ARM体系结构-编译器使用指南

2026-03-22

深入理解ARM体系结构-编译器使用指南资源介绍:

深入理解ARM体系结构-编译器使用指南

深入理解ARM体系结构-编译器使用指南

很多嵌入式工程师平时用Keil这些IDE,就是按部就班点编译,对底层的编译链接机制基本不清楚。遇到编译错误、链接报错、内存不够用,就只能上网搜一下、猜一下、试一下,效率很低。有些特殊需求,比如想把某个函数放到RAM里加速执行,或者想控制变量存到指定地址,很多人不知道怎么下手。

主要知识点:

可执行文件(ELF)里面到底装了什么东西,这些内容是怎么从源代码变过来的
编译器和链接器有哪些常用选项,怎么用,怎么写代码能更高效
怎么精确控制内存布局,把函数和变量放到你想要的位置
程序跑起来之后,内存是怎么管理的,堆和栈怎么组织怎么用
怎么把编译出来的文件转成bin、hex这些格式,方便烧录到设备里

其他知识点:

Flash或RAM不够用,不知道哪些代码可以优化,怎么通过编译选项把代码体积压下来
开了优化选项(-O2或-O3)之后程序偶尔跑飞,关掉优化性能又不够,不懂怎么调整
volatile关键字什么时候要用,为什么有时候加了volatile还是被编译器优化掉
想实现特殊的内存布局,比如把中断向量表固定到某个地址,但不知道怎么弄
面试官问.bss段和.data段有什么区别,RO、RW、ZI分别是什么,程序启动时__main到底干了什么,为什么有些函数没被调用也被链接进去了,RTOS里多个任务同时调用printf可能出什么问题、怎么解决

资源目录:

课时1视频课程简介08:48可试看
课时2文本资料下载
课时3文本答疑说明
章节2:工具链介绍试看
课时4视频工具介绍05:29可试看
课时5视频手动构建工程11:23可试看
课时6视频Keil的工程构建分析06:44可试看
课时7视频深入了解背后工作过程14:16
章节3:控制编译器的行为
课时8视频常用编译选项03:22
课时9视频传递宏定义11:42
课时10视频读懂警告信息06:39
课时11视频代码优化等级含义07:41
课时12视频使用volatile避免过度优化(1)13:04
课时13视频使用volatile避免过度优化(2)06:11
课时14视频使用volatile避免过度优化(3)06:56
课时15视频使用内联函数提升运行速度11:02
课时16视频优化结构体占用的存储空间09:50
课时17视频优化枚举类型占用的存储空间05:07
课时18视频强制保留变量或函数以避免优化06:56
课时19视频指示存储的对齐位置05:07
课时20视频使用纯汇编实现C函数07:00
章节4:可执行程序是如何生成的
课时21视频目标文件里有哪些东西14:26
课时22视频可执行文件的如何生成12:35
课时23视频程序是如何加载运行的09:38
课时24视频为什么会有bss区域06:03
课时25视频获取可执行文件的详细信息12:04
章节5:控制链接过程
课时26视频段类型映射04:39
课时27视频加载域与执行域13:47
课时28视频分析map文件中的加载域执行域13:42
课时29视频使用命令行配置加载域和执行域配置07:04
课时30视频使用分散加载文件配置加载域和执行域05:16
课时31视频分散加载文件简介14:08
课时32视频示例一:简单的内存布局(1)10:35
课时33视频示例一:简单的内存布局(2)09:57
课时34视频示例二:一个加载和多个连续的执行域06:19
课时35视频示例三:一个加载域和多个非连续执行域02:19
课时36视频示例四:多个加载域和非连续执行域07:05
课时37视频直接指定变量和函数的存放地址10:23
课时38视频利用分散加载文件指定变量的存放地址11:43
课时39视频利用分散加载文件指定函数的存放地址08:31
课时40视频将指定文件的代码放到外部Flash11:09
课时41视频指定未分配段的存放地址09:54
课时42视频根区域和inrootsection11:49
课时43视频获取加载域的相关信息08:05
课时44视频获取执行域的相关信息16:28
课时45视频栈和堆是如何分配的12:29
课时46视频获取栈使用情况13:59
课时47视频强符号与弱符号14:18
课时48视频自动去除未用的函数和变量(1)11:53
课时49视频自动去除未用的函数和变量(2)16:11
章节6:C库使用
课时50视频C简介09:43
课时51视频程序启动流程:从__main()到main()12:35
课时52视频堆的使用06:14
课时53视频定制输入输出函数(1)12:15
课时54视频定制输入输出函数(2)24:31
课时55视频多线程环境下访问C库问题(1)10:13
课时56视频多线程环境下访问C库问题(2)08:42
课时57视频C微库简介08:54
章节7:其它
课时58视频fromelf工具的使用

此隐藏内容仅限VIP查看升级VIP

侵权联系与免责声明 1、本站资源所有言论和图片纯属用户个人意见,与本站立场无关 2、本站所有资源收集于互联网,由用户分享,该帖子作者与独角兽资源站不享有任何版权,如有侵权请联系本站删除 3、本站部分内容转载自其它网站,但并不代表本站赞同其观点和对其真实性负责 4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意 如有侵权联系邮箱:itdjs@qq.com

独角兽资源站 C/C++ 深入理解ARM体系结构-编译器使用指南 https://www.itdjs.com/8838/html

深入理解ARM体系结构-编译器使用指南
下一篇:

已经没有下一篇了!

  • 0 +

    资源总数

  • 0 +

    今日发布

  • 0 +

    本周发布

  • 0 +

    运行天数

你的前景,远超我们想象