4006-998-758
3000+课程任你选择
在调试器下理解ARMv8
研发学院 在调试器下理解ARMv8 开课时间:2022-12-28
张银奎

1996年毕业于上海交通大学信息与控制工程系,在软件产业工作20年,拥有13年Intel工作经历,任职于INTEL公司的上海研发中心,先后在PASD、DEG、CPG、PCCG、VPG等部门工作。在英特尔先后从事软件开发、系统测试、架构设计等工作,呈担任英特尔架构事业部视觉与并行计算事业群担任首席软件架构师职务。

对IA-32架构、操作系统内核、驱动程序、设计模式、软件调优、C和C++等有深厚的工作经验,对于精炼、易于维护的代码有不懈追求。10多年GPU、CPG等深度优化技术积累和代码重构经验,每天的主要工作除了设计和编写代码外,就是调试和重构C语言代码。


查看老师详情
课程内容

课程大纲


第一讲:ARM基础

要点:ARM简史,ARM的三大系列,ARM手册,ARM架构的演进过程,ARMv8,ARM的微架构,Cortex,A53,A72,RK3328,GDK8,通过LINUX内核虚文件认识ARMv8

 第二讲:理解应用层寄存器和指令

要点:ARM指令集,通用寄存器,Banked寄存器,特殊寄存器,THUMB指令,常用指令,谓词执行,访问内存的指令,ARM反汇编,观看函数,在NanoDebugger(NDB)中理解ARM的应用层指令和寄存器

 第三讲:函数调用和栈

要点:分支指令,调用子函数,LR寄存器,栈,栈指针寄存器,压栈指令,栈帧,栈上的数据组织,栈回溯,栈回溯的原理,栈溢出,栈保护,在NDB下认识栈上的数据

 第四讲:特权级别和系统编程

要点:处理器状态,系统寄存器,特权级别,处理器扩展,访问系统寄存器,MRS和MSR指令,ATF(ARM Trusted Firmware)代码,分阶段初始化,U-Boot(两个阶段),内核命令行,系统启动过程

 第五讲:硬件差异和设备树(DTS)

要点:五花八门的ARM硬件,问题,x86和PC的先进经验,设备树描述,DTS,DTB,编译方法,传递内核命令行,案例(因为命令行参数不当导致的内核Panic)

 第六讲:虚拟内存

要点:地址翻译,页表,页表格式,MMU,页表翻译过程,页属性,访问权限,TLB,进程切换,缺页异常,观察页表,手工翻译内存地址

 第七讲:异常和中断处理

要点:异常处理寄存器,异常处理过程,同步异常和异步异常,中断处理,GIC,GIC的结构,GIC的配置,GIC的初始化,Linux内核中的中断处理代码

 第八讲:外存和设备管理

要点:MMC,eMMC,SD联盟和SDIO,DesignWare的SDIO控制器,DTS中的配置参数,SDIO驱动,连接闪存时的设备栈,连接无线(WiFi)时的软件栈,结合GDK8的深入分析



返回上一级