閱碼場(chǎng)訓(xùn)練營(yíng):ARM架構(gòu)與調(diào)試調(diào)優(yōu)
有沒有覺得從嵌入式到服務(wù)器領(lǐng)域,ARM芯片在很多地方出現(xiàn)?
- 有沒有發(fā)現(xiàn)海內(nèi)外巨頭都在做ARM芯片?
- 有沒有覺得ARMv7,v8,v9,Cortex,Neoverse,ARM ARM,TRM,APCS,SCMI等內(nèi)容看著眼花繚亂?
- 有沒有覺得操作系統(tǒng)學(xué)了做了很多,遇到ARM相關(guān)的問題還是無從下手?
我是從ARM7TDMI開始接觸ARM架構(gòu)的,當(dāng)時(shí)很幸運(yùn)有DSP的學(xué)習(xí)基礎(chǔ),同時(shí)遇到了把ARM架構(gòu)和操作系統(tǒng)結(jié)合講解的書籍。這樣,結(jié)合自己不斷的實(shí)踐,一直可以跟上ARM架構(gòu)的演進(jìn)。長(zhǎng)期的跟蹤也讓我容易能看到ARM的趨勢(shì),我從Linaro在做ARM NEON指令集優(yōu)化關(guān)注到Linaro,后面持續(xù)的關(guān)注以Linaro為首ARM生態(tài)組織的發(fā)展,幾年后的2017年,我作為演講人分享了ARM架構(gòu)下的一個(gè)TLB性能優(yōu)化方案,實(shí)現(xiàn)了從關(guān)注到深度參與到過程。
如果把工程師的成長(zhǎng)比喻為一架持續(xù)飛行的飛機(jī)。學(xué)習(xí)框架是飛機(jī)的兩翼,實(shí)踐就是飛機(jī)的引擎,課程中會(huì)反復(fù)結(jié)合三位一體的學(xué)習(xí)方法,不斷從帶領(lǐng)大家實(shí)踐到大家自己動(dòng)手。一路走來,希望我的經(jīng)驗(yàn)?zāi)軒椭酱蠹疑僮卟槐匾膹澛罚嗟木δ苡迷谧约旱拈L(zhǎng)期目標(biāo)上。
張健老師在實(shí)際工作和培訓(xùn)中,遇到很多實(shí)際案例。從Linux內(nèi)核到用戶空間,有很多和ARM架構(gòu)相關(guān)的問題。系統(tǒng)掌握了ARM架構(gòu)就等于有了一雙新的眼睛,幫助大家解決技術(shù)問題,改善系統(tǒng)性能。
第一部分 從坐而言到起而行
|
? 復(fù)習(xí)Linux用戶空間編譯過程(配置,編譯,安裝:configure,make,make install),編譯Linux內(nèi)核常見的測(cè)試套件:LTP。 ? 編譯內(nèi)核和文件系統(tǒng)。 ? 觀察內(nèi)核啟動(dòng)過程(CPU特性,memory,dma zone,GIC,timer,psci),介紹ARM架構(gòu)中的概念。 ? 實(shí)驗(yàn):動(dòng)手編譯內(nèi)核和文件系統(tǒng)。 |
第二部分 軟件和硬件的接口:匯編語言 |
? 從Linux用戶空間測(cè)試代碼(來自LTP)看ARM架構(gòu)常見指令。 ? 實(shí)驗(yàn):?jiǎn)尾秸{(diào)試算術(shù),跳轉(zhuǎn)和load/store指令。 ? 理解調(diào)用棧的概念。 |
第三部分:我是誰,我能做什么:異常處理
|
? 異常的核心是什么。 ? 如何用匯編語言調(diào)用系統(tǒng)調(diào)用。 ? 異常的進(jìn)入和退出; ? 從Linux內(nèi)核到虛擬化 ? 從Linux內(nèi)核安全OS |
第四部分:用頁表屬性的磚搭建ARM的內(nèi)存世界
|
? 內(nèi)存基本概念 ? MMU的原理 ? cache基本概念 ? 頁表和頁表屬性 ? 演示實(shí)驗(yàn):continuous bit hint的應(yīng)用 ? cache的結(jié)構(gòu)(含演示實(shí)驗(yàn)) ? cache coherence。 ? 原子操作 |
第五部分:Death is another beginning:Linux內(nèi)核crash調(diào)試 |
? 內(nèi)核調(diào)試方法概述 ? Linux內(nèi)核crash分析實(shí)例 |
第六部分:軟件工程師的瑞士軍刀:調(diào)測(cè)。 |
? coresight原理; ? perf與coresight,PMU結(jié)合使用; ? 調(diào)優(yōu)的USE模型; ? 演示實(shí)驗(yàn):perf PMU分析系統(tǒng)性能。 |
總計(jì)12h
ARM架構(gòu)已經(jīng)有41年的歷史,目前市場(chǎng)上以v8架構(gòu)為主,也還有一定的v7架構(gòu)芯片。v9架構(gòu)基本還沒有產(chǎn)品出現(xiàn)。本課程以v8為主,同時(shí)兼顧v8中與v7,v9相同的部分。
站在架構(gòu)角度看,匯編語言,異常處理和內(nèi)存管理處于核心位置。內(nèi)核crash調(diào)試和調(diào)測(cè)技術(shù)體現(xiàn)的是對(duì)ARM和系統(tǒng)的綜合理解。課程首先結(jié)合實(shí)例和練習(xí)介紹匯編語言,異常處理和內(nèi)存管理。最后用內(nèi)核crash調(diào)試和調(diào)測(cè)技術(shù)把前面知識(shí)串聯(lián)起來,幫助大家綜合應(yīng)用。
不同于很多上來講匯編語言的ARM課程,課程首先介紹講解“理論,代碼,實(shí)踐”三位一體的學(xué)習(xí)方法,然后在每章的課程中,用開頭的引導(dǎo)問題引發(fā)打大家的思考,最后用課后練習(xí)保證大家的學(xué)習(xí)效果。課程中的明線是ARM架構(gòu),暗線是系統(tǒng)調(diào)試和調(diào)優(yōu),會(huì)在合適的地方出現(xiàn)調(diào)試/調(diào)優(yōu)的工具,并在課程的最后兩課對(duì)調(diào)試和調(diào)優(yōu)有全面的學(xué)習(xí)。
?BSP工程師;
?Linux驅(qū)動(dòng)工程師;
?固件工程師;
?系統(tǒng)軟件工程師;
?IC驗(yàn)證工程師。
?希望從X86遷移到ARM的軟件工程師。
1.熟悉ARM架構(gòu)各類專業(yè)詞匯,遇到問題能從正確方向入手;
2.對(duì)匯編語言不再害怕,能看懂和上手調(diào)試;
3.對(duì)異常處理有從上到下縱向的理解,既能調(diào)試底層代碼,也能在上層應(yīng)用異常概念完成開發(fā)工作;
4.能理解操作系統(tǒng)物理內(nèi)存管理的核心,將來可以向上對(duì)接操作系統(tǒng)更豐富的內(nèi)存管理能力,從而為掌握操作系統(tǒng)打下基礎(chǔ);
5.結(jié)合ARM架構(gòu)知識(shí)靈活運(yùn)用系統(tǒng)的調(diào)測(cè)能力。
十四年IT基礎(chǔ)設(shè)施研發(fā)經(jīng)驗(yàn),其中包括六年Linux kernel一線研發(fā)經(jīng)驗(yàn),在suse,華為,星際比特(技術(shù)合伙人)等公司工作。
作為團(tuán)隊(duì)核心成員參與了大陸第一個(gè)Cortex-A8 SOC芯片研發(fā),負(fù)責(zé)CPU軟件驗(yàn)證,操作系統(tǒng)移植等工作。
作為華為派駐到Linaro的技術(shù)專家,主導(dǎo)/參與多個(gè)Linux與arm架構(gòu)相關(guān)特性研發(fā)(ILP32,continuous bit hint,kernel selftest等)
在拉斯維加斯,柏林,布達(dá)佩斯和北京多次發(fā)表技術(shù)演講:
?2020 第?屆開源操作系統(tǒng)年度技術(shù)會(huì)議(OS2ATC) Linux On RISC-V最新進(jìn)展和遷移要點(diǎn)?2019 ?知錄 ARM在企業(yè)級(jí)的應(yīng)?與前景?2019 建設(shè)銀? ARM在企業(yè)級(jí)的應(yīng)?與前景?2018 Recent Kernel Update(Ubuntu Kylin 18.04 meetup in Beijing)?2017 Linaro Connect Budapest: BUD17-305 - Implement contiguous page hint for anonymous page in user space?2016 Linaro Connect Las Vegas: LAS16-TR07: Working upstream [Mandarin]?2016 Linuxcon Europe: An efficient unit test and fuzz tools for kernel/libc porting?2015 patent in US, EP, CN, WO(WO2017054610A1): Computer, and method and apparatus for controlling quality of service?2014 openSUSE Asia Summit: openSUSE on ARM
Ftrace訓(xùn)練營(yíng)1期線上合影
Ftrace訓(xùn)練營(yíng)1期證書
閱碼場(chǎng)訓(xùn)練營(yíng)文化衫
學(xué)員好評(píng)