类别 描述
A
想深入了解嵌入式开发或是觉得学校课程讲得不深入、不
贴近实际的专科、本科、研究生
B 想从单片机开发转入嵌入式开发的工程师
C 不希望局限在上层,想深入了解整个系统的工程师
D 想成为系统工程师、软件框架设计师的程序员
E 想从硬件开发转为软件开发的工程师
操作系统 Linux基本操作-会使用若干条基本命令即可
开发语言
基本的C语言知识,汇编不要求(视频里有介绍汇编,就几
条而已)
硬件知识 能看得懂原理图最好,不会也没关系(视频里有专门一课)
课程名称:韦东山Linux视频第1期、第2期
课程针对人群
学习课程的能力要求
课程掌握后的能力值概述(技能目标)
裸板操作及bootloader
深入理解ARM体系统架构,可以写出具备中断功能的裸板程序,对程序现场的保存、恢复有
所了解,这些原理适用于任何架构CPU,适用于内核及应用程序
掌握常用的硬件部件的操作
,
比如
GPIO
,
UART
,
I
2
C
,
LCD
,
触摸屏
;
可以写出这些硬件部件的裸板程序
掌握写汇编代码的能力,可以分析任意裸板包括u-boot、内核里的相关汇编代码
能自己写出2期视频里讲到的各种驱动,它们已经涉及了工作中的绝大部分驱动
掌握系统级别的应用调试方法:使用工具,修改内核自制工作
掌握驱动调试方法:打印,自制打印,分析oops信息,栈回溯,理解内核原理然后修改内
核,自制调试工具
掌握驱动程序中各种操作:休眠-唤醒, 同步互斥, 异步通知, 定时器,上下半部等
学习Linux驱动的套路:分配-设置-注册,掌握驱动的分析方法
调试手段
掌握裸板调试方法:点灯、打印、用JTAG工具进行源码级别的调试,查看反汇编
熟悉裸板程序的结构,给你一个bootloader就能分析它的初始化部分、内存使用情况、链接
地址、重定位、程序的相对跳转/绝对跳转等
掌握bootloader启动内核的原理,能完全自己写出一个bootloader
内核移植及启动过程
可以配置、移植一个全新的内核
了解内核的启动过程,解决启动中碰到的问题
了解内核的基本原理:进程调度、系统调用的过程、内存管理等与程序开发密切相关的知识
驱动程序开发
掌握三大类驱动程序的框架:字符设备驱动、块设备驱动、网卡驱动
分析内核启动的第1个进程的运行过程,进而构造根文件系统