2.4.1.2. 嵌入式相对通用的知识:芯片架构

硬件采用何种芯片,比如是ARM内核还是MIPS内核

是ARM内核的话,具体是哪种内核,比如ARM9TDMI还是Cortex-M3等等

不过,关于芯片架构的事情,要好好解释解释:

经常看到,嵌入式方面,介绍arm的架构

但是却又感觉学了也没啥用,和工作的内容也对不上号,纯粹就是在死读书,读死书

至少我最开始的感觉就是这样

现在其实也还是没有透彻理解,不过有一点点心得了,总结如下

比如以ARM Cortex-M3为例:

图 2.1. ARM的Cortex-M3架构概述

ARM的Cortex-M3架构概述


解释我所能够理解的,架构中的内容,和你后续嵌入式Linux开发之间的关系:

  • ARM架构中的AMBA总线

    里面有AHB和APB

    对应Linux中就是有对应的AMBA的概念的定义的,好像是在设备注册期间也有涉及到,比如probe的时候

  • ARM核是否带MMU

    决定了是用uclinux还是linux

  • 采用哪款ARM内核

    比如说Cortex-M3采用了ARMv7内核

    则意味着你选择交叉编译器(甚至是自己用crosstool-ng去制作交叉编译器)的时候内核选择是armv7。

  • 指令集

    比如说Cortex-M3是Thumb2的指令集

    意味着,比如后期制作或用交叉编译器时,编译代码、生成什么样的汇编指令,都是要设置为thumb2

如此,一点点地,把芯片架构是什么,以及不同的值的真正含义是什么,对后续开发有何影响,都说清楚了

这样才能说,明白了芯片的架构