焦点资讯:【课程】8小时学透ARM体系架构
作为软件工程师,有没有下面的困惑:
(资料图片仅供参考)
软件跑死了,定位到是cpu相关的问题,不知如何入手;
内存访问出错,不知道如何查询页表属性;
配置GIC时,group0/1, secure/non-secure,fiq/irq傻傻分不清;
公司有昂贵的arm调试器,不知道能用来做什么。
几千页的arm架构手册和arm cpu手册如同天书;……
遇到上面问题千万别灰心,无数人都倒在了这里,不好走的这条路,我们陪你一起走。
如左耳朵耗子在《程序员练级攻略(2018)》所说,作为一个专业的程序员需要的学习的系统知识包括:体系结构,操作系统,网络协议。
目前主流体系结构有x86,arm,risc-v等,x86有太多的历史包袱,过于复杂;而risc-v虽然快速发展,但是目前仅仅在MCU领域有实际应用,全面与arm竞争尚需时日。根据arm公司提供的数据,arm cpu在整个基础设施领域已经占到将近30%的份额(如下图)。
《8小时学透ARM体系架构》这门课程从arm cpu架构入手,从arm指令集到内存管理到arm cpu,从单核到多核;紧贴ARM CPU手册(TRM)和系统架构手册(ARM ARM/ARMv8),由浅入深讲解32位和64位ARM CPU。
本课程既可以顺序学习整体提升你对arm cpu的理解,也可以针对具体问题学习具体章节。每章都有大小作业,可以在课程微信群讨论,多位arm专家长期驻群答疑。学习本ARM架构课程,近可以解决自己工作中遇到的ARM CPU具体问题,远可以触类旁通学习其它体系结构,为自己软件技术栈打下坚实的基础。
不需要任何ARM开发板,只需要一个可以运行Linux或docker的电脑,即可完成本课程所有实验和作业。
课程整体大纲
整体目标:突出arm架构内容,Linux本身的内容能不讲就不讲。思路:从arm cpu架构入手,从arm指令集到内存管理到arm cpu,从单核到多核。
ARM architecture以Linux为例覆盖如下内容,目标是arm的问题知道去哪里查,PCB,SOC,ARM CPU还是ARM ARM:
Instruction set: 内核基本只用整数,浮点稍微提一下lazy restore;
Exeption model:重点是内核和用户空间,EL2和EL3不提;
memory;32和64的差异。
mmu
cache: PoU, PoC
Timer
GIC
Power on and reset: arm and SOC view.
coresight
debug
trace
mcu可以从与A系列差异入手,这部分需要加硬件调试器吧,顺别把arm coresight简单说下。