1、ARM架构分类
ARM架构发展至今分为 ARMv1~ARMv8 ,不同架构之间指令集存在差异。根据架构类型又开发出不同内核,常用的 ARMv7 架构有三种类型的内核:
1)Cortex-A:用于高性能应用,主要支持分页内存管理单元MMU,linux需要MMU的支持才能运行。
2)Cortex-R:侧重于实时性应用,如汽车系统。
3)Cortex-M:侧重于微控制器,常用的STM32就是此内核。
2、Cortex-A7 处理器运行模式
不同模式之间可通过软件、中断和异常进行切换。大多数程序运行在用户模式。
1)用户模式(USER),运行在操作系统的用户态,没有权限访问其它硬件资源,只能通过中断或异常进入其他模式。
2)快速中断模式(FIQ),用于处理高速数据传输和通道处理。
3)一般中断模式(IRQ),通常在硬件产生中断后进入此模式。
4)超级管理员模式(SVC),CPU上电后默认模式,用于系统初始化。
5)监视模式(MON)
6)数据访问终止模式(ABT),当用户程序访问非法地址,没有权限读取的内存地址时,进入此模式,常见的 segment fault 是在此模式抛出。
7)超级监视模式(HYP)