动态链接(3):共享库
C语言到底学到什么程度,才能够胜任嵌入式Linux内核、驱动的开发?
C语言到底学到什么程度,才能够胜任嵌入式Linux内核、驱动的开发?
C语言到底学到什么程度,才能够胜任嵌入式Linux内核、驱动的开发?
不同的软件开发职位,对C语言的要求是不同的。
总体来讲,嵌入式开发,尤其是驱动内核开发,对C语言的要求,相比其它职位,相对很高。
不仅要求学员学习C语言的基本语法,还要对
1)计算机基本原理、系统架构
2)编译、链接原理
3)程序的加载、运行过程
4)C标准、C编译器对C标准的扩展
5)嵌入式硬件系统的理解
6)程序的健壮性、安全性、编码风格等
有一个更深的理解和学习。
本期是《C语言嵌入式Linux高级编程》第3期主要内容包括:
1)C语言编译的基本过程:预处理、编译、链接
2)linux环境下LEF文件种类、与BIN文件差异
3)编译过程分析:预处理、汇编、符号表、重定位表
4)链接过程分析:地址分配、链接脚本、符号解析、重定位
5)程序的运行原理、BSS段的处理、main函数入口分析
6)静态库的链接机制
7)动态链接过程分析:PIC与位置无关代码、全局偏移表、动态链接重定向符号表、共享库
8)C语言插件机制:如何开发一个最简单的C语言插件
9)linux内核模块加载机制:linux内核模块是如何动态加载到内核执行的
10)binutils工具集常用工具介绍
11)linux内核加载实验:u-boot的bootm机制、Linux内核的解压缩、重定位
12)u-boot的重定位分析:如何进行自身的代码拷贝、重定位操作、如何从Flash跳转到RAM中去执行
本期课程偏向于理论,探讨程序编译链接的基本过程,有一定的难度和复杂度,课程里面涉及到了嵌入式开发中比较难的几个点,比如u-boot重定位等。所以千万不要期望看一次视频就完全学习哦~。 如果看一遍视频感觉有什么疑惑或者不理解的地方,不要灰心,多复习,课下多总结、分析,相信一定能攻克它!
公开笔记对他人可见,有机会被管理员评为“优质笔记”
{{ noteEditor.content.length }}/2000
讲师收到你的提问会尽快为你解答。若选择公开提问,可以获得更多学员的帮助。
课程大纲