讲座概要
工具决定生产力水平,这句话用在芯片和软件领域也非常合适。CoreSight(核镜)是ARM平台上一系列调试和追踪技术的总称,具有丰富而且强大的调试和优化功能,在ARM的生态中扮演着重要角色。但因为核镜技术比较底层,文档中术语众多,学习门槛很高,学习者常常看得眼花缭乱。
本讲座独辟蹊径,基于经典的格物方法,选取具体的ARMv8(GDK8)盒子作为目标系统,使用格蠹科技最新研发的硬件调试器(挥码枪)接收来自芯片内部的“物语”,带领大家走进核镜技术的世界,深度挖掘核镜技术的能力和用法,解读核镜设计者“螺蛳壳里做道场”的方法与奥秘,感受核镜技术的魅力和威力,启发大家思考和挖掘核镜技术的应用场景和潜力。
讲座形式
在线讲座,讲解、演示和讲师引领动手实验。
长度
10讲,每讲大约2小时。
一、ADI-v5和大局观
本讲要点:
ADI背景和简史、DAP = DP + AP、SW-DP、JTAG-DP和SWJ-DP,内存AP、DAP-Lite、GDK8中的DP和AP、使用挥码枪调试时的数据通路、ROM表、访问GDK8中的ROM表。
二、透过挥码枪认识DP
本讲要点:
ARM架构中的调试器、外部调试器、外部调试器接口、三种DP、SW-DP、细说三根线、时钟、时序、主机发起信号和目标发起信号、避免竞争、DP的寄存器、ABORT、IDCODE、CTRL/STAT、SELECT、RDBUFF、WCR、RESEND、透过代码理解SW-DP的工作过程。
挥码枪官网
三、APB-AP详解
本讲要点:
APB精要、APB在ARM SoC中的脊梁作用、APB-AP的角色、结构、工作原理、APB-AP的寄存器、控制和状态字寄存器(CSW)、通过APB-AP访问内存、AP的编程模型和代码解读。
Found APB-AP at AP index: 0 (IDR=0x24770002)
四、CMSIS-DAP和调试器固件
本讲要点:
CMSIS在ARM生态中的角色和价值、CMSIS-DAP项目背景、历史和典型应用、代码解读、与主机的USB接口、主机命令、命令扩展、与目标通信、提供的服务、更新闪存、设置断点、访问内存。
五、OpenOCD和主机软件
本讲要点:
项目背景、主要功能、代码结构、支持的CPU、目标管理、服务器线程、JTAG驱动、Jim脚本、初始化和枚举CoreSight设备、访问内存的过程、设置断点的过程、与GDB配合工作。
六、符号化调试和上层语义
本讲要点:
宇宙一般的软件世界、底层的优势和局限、上层语义的意义、符号文件、符号文件与二进制文件的匹配、加载符号文件的挑战、GDB的处理方法、地址空间随机化和搜索内核位置、NDB的加载方法。
七、使用硬件调试器调试Linux内核
本讲要点:
NDB简介和基本用法、软件断点和硬件断点、设置断点的技巧、调试网络栈、调试内存管理的核心机制、调试线程调度的核心代码、调试软件调试器难以调试的代码。
八、硬件辅助追踪
本讲要点:
芯片的超级化和复杂化、看不见的重要行为、强需求举例、处理器事件追踪、部件类型(源、控制器、连接器、插座)、内嵌追踪宏窝(ETM)、交叉触发接口(CTI)、PMU、典型实现举例。
九、Linux内核的驱动支持
本讲要点:
设备树支持、DTS解读、CoreSight设备、源代码结构、初始化过程、软件对象、虚文件接口、通过虚文件接口与芯片交互。
root:/sys/bus/coresight/devices# cat 20010000.etb/status
Depth: 0x2000
Status: 0x1
RAM read ptr: 0x0
RAM wrt ptr: 0x19d3 <----- The write pointer is moving
Trigger cnt: 0x0
Control: 0x1
Flush status: 0x0
Flush ctrl: 0x2001
root:/sys/bus/coresight/devices#
十、使用硬件追踪技术进行软件调优
本讲要点:
追踪事件传输和解码、商业工具和开源项目、perf、认识常用的perf事件、获取数据、呈现和解析、DS-5、 Streamline、调优案例之曼德罗图形、CPU和GPU联合分析、功耗分析。
讲师介绍
1996年毕业于上海交通大学信息与控制工程系,在软件产业工作20余年,一多半时间任职于INTEL公司的上海研发中心,先后在PASD、DEG、CPG、PCCG、VPG等部门工作。业余时间喜欢写作和参与各类技术会议,发文数百万字,探讨各类软件问题,其中《在调试器里看阿里的软件兵团》等文章广为流传。
2015年起获微软全球最有价值技术专家(MVP)奖励。著有《软件调试》、《格蠹汇编》和《软件简史》等书,曾经主笔《程序员》杂志调试之剑专栏 。在多家跨国公司历任开发工程师、软件架构师、开发经理、项目经理等职务,对 IA-32 架构、操作系统内核、驱动程序、虚拟化技术、云计算、软件调优、尤其是软件调试有较深入研究。
从2005年开始公开讲授“Windows内核及高级调试”课程,曾在微软的Webcast和各种技术会议上做过《Windows Vista内核演进》、《调试之剑》(全球软件战役研究峰会)、《感受和思考调试器的威力》(CSDN SD2.0大会)、《Windows启动过程》、《如何诊断和调试蓝屏错误》、《Windows体系结构——从操作系统的角度》(以上三个讲座都是微软“深入研究Windows内部原理系列”的一部分)等。
翻译(合译)作品有《现代x86汇编语言编程》、《21世纪机器人》、《观止——微软创建NT和未来的夺命狂奔》、《数据挖掘原理》、《机器学习》、《人工智能:复杂问题求解的结构和策略》等。
套餐内容
套餐A
讲座 + GDK8 + 挥码枪 = 1980元
GDK8官网
套餐B
讲座 + 挥码枪 = 1280元
单独购买课程
999元
(只供国外不通快递的用户购买,将无法亲自做动手试验)
付款方式
Nano Code内购买(课程号:161)
Nano Code下载链接
购买后会通过Nano Code的绑定邮箱,发送上课方式到该邮箱内。
*注:Nano Code中的课程价格默认为套餐B(1280元,包含讲座和一套挥码枪),如想要另行选择套餐A或单独购买课程,请咨询课程顾问补差价或退还差额。
微信/支付宝 付款
完成付款后,请发送邮件到zhiqiang.chunyu@xedge.ai进行登记,上课方式也会发送到该发件邮箱内。
优惠条款
- 前100位下单客户可以得到“格物致知”宣纸折扇一把。
- 购买任一套餐后,可以以38元优惠价格购买HDMI2USB转接头1个(国内包邮)
- 购买任一套餐后,可以以28元优惠价格购买GDK3单板1片加Type-C线2根(国内包邮)
GDK3官网
开课时间
首节课程直播时间:2022年7月2日星期六晚上8点至10点(20:00~22:00)
报名或垂询
课程顾问:淳于智强
咨询电话:16622192370 (微信同号)
报名邮箱:zhiqiang.chunyu@xedge.ai
公司付款信息
账户名称: 格蠹信息科技(上海)有限公司
开户行:招商银行股份有限公司上海浦江镇支行
账号:1219 3085 8010 501