本課程滿10人開班,否則可申請全額退款。購買后請?zhí)砑游⑿舓anxuecom,發(fā)送訂單截圖,核實后寄送配套硬件設備
從深度嵌入式,到桌面,再到云,ARM不斷攻城略地,正在成為主流。本培訓著眼于ARM系統(tǒng)的關鍵原理,按歷史順序從ARM三大系列的M系列講起,過渡到M系列必須的外部調(diào)試技術,再進入到當前正在大行其道的A系列,再深入解析A系列的調(diào)試設施,包括這些設施的原理和應用。本培訓由《軟件調(diào)試》作者張銀奎主講,深處著眼,淺出講起,上調(diào)試器,看活代碼,通過大量動手實驗引領大家一起進入到ARM的世界中。
本培訓包含大量動手試驗和實戰(zhàn)內(nèi)容,參加本培訓的每一位學員,都將獲得:
- 一套基于ARM M核的GDK3開發(fā)套件
- 一套基于ARM A核的幽蘭代碼本
- 一套揮碼槍硬件調(diào)試器
上課形式:每周六晚上8:30 – 9:30直播授課(共15節(jié)),講解、演示和講師引領的動手實驗
培訓對象:軟件工程師、信息安全領域的工程師和研究者
通過本培訓,學習者可以在如下多個方面進階獲益:
- 深刻理解ARM架構(gòu)的技術精髓,包括三大系列,四大特權(quán)模式,安全/非安全兩大陣營,以及ATF,TrustZone,CoreSight等關鍵技術
- 全面認識ARM平臺的調(diào)試設施,包括自稱載的本機調(diào)試和基于硬件調(diào)試器的外部調(diào)試
- 熟練使用GDB、NDB(揮碼槍)兩大調(diào)試器和很多其它軟件工具(strace, dtc, readelf)
- 熟悉ARM生態(tài)中的常用固件和系統(tǒng)軟件,包括ATF、U-BOOT、WoA和Linux等
整個培訓分為三篇,15講。目錄如下:
序:
第一講:準備上手和以物為師
要點:ARM的三大系列,M系列代表之GDK3,A系列代表之RK3588,內(nèi)部調(diào)試器之GDB和NDB(Nano code Debugger),外部調(diào)試器之揮碼槍,ARM文檔大觀之ARM和TRM,上調(diào)試器和以物為師
上篇:M核精華
第二講:M核精華之中央處理器
要點:ARM簡史,ARM指令集,THUMB指令,通用寄存器,Banked寄存器,特殊寄存器,常用指令,謂詞執(zhí)行,訪問內(nèi)存的指令,ARM反匯編,觀看函數(shù),在NDB中理解ARM的應用層指令和寄存器
第三講:M核精華之存儲與外設
要點:片上內(nèi)存,片上閃存,地址空間,哈佛架構(gòu),中斷向量表,復位后的第一條指令,M核固件概述,使用GNU工具鏈構(gòu)建固件,使用揮碼槍燒錄固件
第四講:M核精華之RTOS
要點:M核的軟件棧,HAL,驅(qū)動,RTOS背景,CMSIS,RTX,線程創(chuàng)建和管理,多線程同步,在調(diào)試器下觀察線程
第五講:M核精華之外部調(diào)試器
要點:ARM架構(gòu)手冊定義的調(diào)試架構(gòu)(Debug Architecture),自承載調(diào)試(Self-hosted Debug),外部調(diào)試,CoreSight,調(diào)試事件,面向調(diào)試器編程
“雖然ARM主推的SWD通信方式只有三根很普通的線:時鐘、數(shù)據(jù)、地,但是它工作的非常穩(wěn)定。能用低廉的硬件把硬件調(diào)試實現(xiàn)的如此穩(wěn)定,其中的一個主要原因是協(xié)議定義的優(yōu)秀,包括400多頁的調(diào)試接口協(xié)議(ADI),訪問內(nèi)部資源的CoreSight技術,以及散布在整個ARM架構(gòu)中的調(diào)試支持。”
“三線”代表ARM硬件調(diào)試器常用的三根線。擼豹模仿“擼貓”之語。ARM能用三根線把芯片硬件調(diào)試實現(xiàn)的如此精湛,舉重若輕,把兇猛的CPU控制的服服貼貼,“擼豹”如同“擼貓”一樣,真是讓人贊嘆,神乎其技!。
——張銀奎 《三線擼豹,神乎其技!》
中篇:A核精華
第六講:A核精華之V8傳奇
要點:ARMv8新境界,AA64,A64指令集,四大特權(quán)級別,安全與非安全(NS),TrustZone,通用寄存器,系統(tǒng)寄存器,訪問系統(tǒng)寄存器,使用NDB讀寫系統(tǒng)寄存器
第七講:A核精華之可信固件
要點:上電過程,M核護駕,ATF(ARM Trusted Firmware)代碼,分階段初始化,從BL0到BL3,Power State Coordination Interface (PSCI),調(diào)用ATF的服務,TEE OS,與TEE OS交互,使用NDB觀察TEE核PSCI行為
第八講:A核精華之U-Boot
要點:ARM生態(tài)中成長起來的U-BOOT,代碼結(jié)構(gòu),兩大階段,U-BOOT搬家,使用U-BOOT的命令行,使用揮碼槍調(diào)試U-BOOT,神奇的x18寄存器,修改U-BOOT代碼,定制啟動流程
第九講:A核精華之設備樹(DTS)
要點:五花八門的ARM硬件,林納斯發(fā)怒,x86和PC的先進經(jīng)驗,設備樹描述,DTS,DTB,編譯方法,傳遞內(nèi)核命令行,Linux中解析設備樹的代碼,根據(jù)設備樹加載驅(qū)動的過程,使用DTC工具逆向設備樹
下篇:融會貫通
第十講:函數(shù)調(diào)用和棧
要點:分支指令,調(diào)用子函數(shù),棧,LR寄存器,棧指針寄存器,壓棧指令,棧幀,棧上的數(shù)據(jù)組織,棧回溯,棧回溯的原理,棧溢出,返回到libc,棧保護,在NDB下認識棧上的數(shù)據(jù)
第十一講:頁表和虛擬內(nèi)存
要點:地址翻譯,頁表,頁表格式,MMU,ARM的TTBR寄存器,地址翻譯過程,頁屬性,訪問權(quán)限,TLB,進程切換,缺頁異常,觀察頁表,手工翻譯內(nèi)存地址
第十二講:異常和中斷處理
要點:CPU異常,同步異常,異步異常,ESR寄存器,異常進入,異常退出,中斷處理,GIC,GIC的結(jié)構(gòu),GIC的配置,GIC的初始化,Linux內(nèi)核中的中斷處理代碼
第十三講:自承載調(diào)試和調(diào)試異常
要點:self-hosted debug,端點指令和軟件端點,硬件斷點寄存器,監(jiān)視點寄存器和監(jiān)視點,向量捕捉(Vector Catch),單步跟蹤,大范圍內(nèi)存監(jiān)視,使用NDB的硬件斷點和監(jiān)視點功能
第十四講:實戰(zhàn)之NT內(nèi)核和WOA
要點:WoA的背景和未來,二進制翻譯和兼容x86程序,NT架構(gòu),KD引擎,調(diào)試符號服務器,使用揮碼槍調(diào)試NT內(nèi)核,NT內(nèi)核的關鍵數(shù)據(jù)結(jié)構(gòu)
第十五講:實戰(zhàn)之Linux系統(tǒng)與根件
要點:so和用戶空間注入,基于LD_PRELOAD的注入,strace和系統(tǒng)調(diào)用,內(nèi)核根件之Reptile,LKM,構(gòu)建和加載,隱藏文件,隱藏進程,反調(diào)試原理和化解
講師介紹:張銀奎
格蠹科技創(chuàng)始人,微軟全球最有價值技術專家(MVP),同濟大學電子與信息工程學院特邀講師,前英特爾亞太研發(fā)有限公司軟件架構(gòu)師。《軟件調(diào)試》、《格蠹匯編》的作者,新版《十萬個為什么》電子分冊撰稿人之一,《程序員》雜志調(diào)試之劍欄目作者 。1996年畢業(yè)于上海交通大學信息與控制工程系,在軟件產(chǎn)業(yè)工作20年,在多家跨國公司歷任開發(fā)工程師、軟件架構(gòu)師、開發(fā)經(jīng)理、項目經(jīng)理等職務,對 IA-32 架構(gòu)、操作系統(tǒng)內(nèi)核、驅(qū)動程序、虛擬化技術、云計算、軟件調(diào)優(yōu)、尤其是軟件調(diào)試有較深入研究。
從2005年開始公開講授“Windows內(nèi)核及高級調(diào)試”課程,曾在微軟的Webcast和各種技術會議上做過《Windows Vista內(nèi)核演進》、《調(diào)試之劍》(全球軟件戰(zhàn)役研究峰會)、《感受和思考調(diào)試器的威力》(CSDN SD2.0大會)、《Windows啟動過程》、《如何診斷和調(diào)試藍屏錯誤》、《Windows體系結(jié)構(gòu)——從操作系統(tǒng)的角度》(以上三個講座都是微軟“深入研究Windows內(nèi)部原理系列”的一部分)等。翻譯(合譯)作品有《現(xiàn)代x86匯編語言編程》、《21世紀機器人》、《觀止——微軟創(chuàng)建NT和未來的奪命狂奔》、《數(shù)據(jù)挖掘原理》、《機器學習》、《人工智能:復雜問題求解的結(jié)構(gòu)和策略》等。
學習器材:
揮碼槍硬件調(diào)試器
幽蘭代碼本
GDK3 開發(fā)套件