盛格塾 · 2022年06月28日

在线讲座CoreSight技术的道与器,与《软件调试》作者一起修炼ARM平台上的JTAG调试真功夫

微信截图_20220628091631.png

讲座概要

工具决定生产力水平,这句话用在芯片和软件领域也非常合适。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的工作过程。
ntp2.jpg
挥码枪官网

三、APB-AP详解

本讲要点:
APB精要、APB在ARM SoC中的脊梁作用、APB-AP的角色、结构、工作原理、APB-AP的寄存器、控制和状态字寄存器(CSW)、通过APB-AP访问内存、AP的编程模型和代码解读。
640.png

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联合分析、功耗分析。

讲师介绍

微信图片_20220628092830.png
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.png
GDK8官网

套餐B

讲座 + 挥码枪 = 1280元

单独购买课程

999元
(只供国外不通快递的用户购买,将无法亲自做动手试验)

付款方式

Nano Code内购买(课程号:161)

Nano Code下载链接
购买后会通过Nano Code的绑定邮箱,发送上课方式到该邮箱内。

*注:Nano Code中的课程价格默认为套餐B(1280元,包含讲座和一套挥码枪),如想要另行选择套餐A或单独购买课程,请咨询课程顾问补差价或退还差额。

微信/支付宝 付款

fukuan.png
完成付款后,请发送邮件到zhiqiang.chunyu@xedge.ai进行登记,上课方式也会发送到该发件邮箱内。

优惠条款

  1. 前100位下单客户可以得到“格物致知”宣纸折扇一把。
    640.jpg
  2. 购买任一套餐后,可以以38元优惠价格购买HDMI2USB转接头1个(国内包邮)
    HDMI_副本2.png
  3. 购买任一套餐后,可以以28元优惠价格购买GDK3单板1片加Type-C线2根(国内包邮)
    GDK3baidi.jpg
    GDK3官网

开课时间

首节课程直播时间:2022年7月2日星期六晚上8点至10点(20:00~22:00)
微信图片_20220628094222.png

报名或垂询

课程顾问:淳于智强
咨询电话:16622192370 (微信同号)
报名邮箱:zhiqiang.chunyu@xedge.ai

公司付款信息

账户名称: 格蠹信息科技(上海)有限公司
开户行:招商银行股份有限公司上海浦江镇支行
账号:1219 3085 8010 501

推荐阅读
关注数
7
内容数
9
盛格塾是格蠹科技旗下的知识分享平台,是以“格物致知”为教育理念的现代私塾。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息