精华内容
下载资源
问答
  • 预热1、ARM和Cortex内核

    千次阅读 2018-05-18 17:40:20
    1、ARM是什么? ARM是英国一家电子公司的...ARM提供一系列内核、体系扩展、微处理器系统芯片解决方案 ARM是一种功耗很低的高性能处理器芯片架构 2、ARM的架构 ARM以前的架构:ARM7、 ARM9、 ARM11 ARM现在的...

    1、ARM是什么?

        ARM是英国一家电子公司的名字

        ARM敢为天下先,该公司不生产芯片,也不设计芯片,而是设计出高效的IP内核,授权给半异体公司使用

        ARM提供一系列内核、体系扩展、微处理器和系统芯片解决方案

        ARM是一种功耗很低的高性能处理器芯片架构

    2、ARM的架构

        ARM以前的架构:ARM7、 ARM9、 ARM11

        ARM现在的架构:Cortex-A、R、M

    Cortex-A --开放式操作系统的高性能处理器,面向尖端的基于虚拟内存的操作系统和用户应用

    A8 A9 A15 A52 A53 A72 A73

    应用场景:智能手机、上网本、数字电视、机顶盒

     

    Cortex-R --面向实时应用的卓越性能,针对实时系统 

    应用场景:汽车制动系统、动力传输、航天航空

     

    Cortex-M --面向具有确定性的微控制应用的成本敏感性的产品,对微控制器

    M0 M3 M4 M7

    应用场景:门禁、扫地机器人、 平衡车、手环等等

    STM32F1xx系使用ARM Cortex M3内核,STM32F4xx系使用Cortex M4内核,STM32F7xx系使用Cortex M7内核

    展开全文
  • ARM Cortex处理器ARM Cortex处理器ARM Cortex处理器
  • ARM7、ARM9、ARM11、ARM-Cortex的关系 ARM7、ARM9、ARM11、ARM-Cortex的关系 ARM7:ARMv4架构,ARM9:ARMv5架构,ARM11:ARMv6架构,ARM-Cortex 系列:ARMv7架构 ARM7没有MMU(内存管理单元),只能叫做MCU(微控制...

    ARM7、ARM9、ARM11、ARM-Cortex的关系

    1. ARM7、ARM9、ARM11、ARM-Cortex的关系

      ARM7:ARMv4架构,ARM9:ARMv5架构,ARM11:ARMv6架构,ARM-Cortex 系列:ARMv7架构 ARM7没有MMU(内存管理单元),只能叫做MCU(微控制器),不能运行诸如Linux、WinCE等这些现代的多用户多进程操作系统, 因为运行这些系统需要MMU,才能给每个用户进程分配进程自己独立的地址空间 。ucOS、ucLinux这些精简实时的RTOS不需要MMU,当然可以在ARM7上运行。 ARM9、ARM11,是嵌入式CPU(处理器),带有MMU,可以运行诸如Linux等多用户多进程的操作系统,应用场合也不同于ARM7。 到了ARMv7架构的时候开始以Cortex来命名,并分成Cortex-A、Cortex-R、Cortex-M三个系列。 三大系列分工明确:“A”系列面向尖端的基于虚拟内存的操作系统和用户应用; “R”系列针对实时系统; “M”系列对微控制器。 简单的说Cortex-A系列是用于移动领域的CPU,Cortex-R和Cortex-M系列是用于实时控制领域的MCU。 所以看上去ARM7跟Cortex-M很像,因为他们都是MCU,但确是不同代不同架构的MCU(Cortex-M比ARM7高了三代!),所以性能也有很大的差距。此外,Cortex-M系列还细分为M0、M3、M4和超低功耗的M0+,用户依据成本、性能、功耗等因素来选择芯片。 想必楼主现在肯定知道了ARM7、Cortex-M的区别,不过还是花了点时间整理在此,可以帮助后来的初学者搞明白这些基本的概念性问题

    2. ARM7,ARM9,cortex-m3,cortex-m4,cortex-a8的区别
      arm系列从arm11开始,以后的就命名为cortex,并且性能上大幅度提升。
      从cortex开始,分为三个系列,a系列,r系列,m系列。
      m系列与arm7相似,不能跑操作系统(只能跑ucos2),偏向于控制方面,说白了就是一个高级的单片机。
      a系列主要应用在人机互动要求较高的场合,比如pda,手机,平板电脑等。a系列类似于cpu,与arm9和arm11相对应,都是可以跑草错系统的。linux等。
      r系列,是实时控制。主要应用在对实时性要求高的场合。
      arm7和m3,m4是同一类型。这三个里面,arm7是最早的arm产品。m3是cortex m系列的过渡品,其低端市场被cortex m0的高端替代, 其高端市场又被cortex m4的低端取代。现在m系列,是m4内核的。典型的芯片是st公司和飞思卡尔公司的。
      arm9 和cortex a8 是一个类型的,都是跑操作系统的,现在的高端手机,三星,htc等智能手机,就是用的cortex a8,cortex a9 内核的芯片作为cpu。
      (1)ARM7,ARM9属于v4T或v5E架构
      (2)ARM11属于v6架构
      (3)Contex属于v7架构
      ARM7,ARM9的区别在于是否有MMU(存储器管理单元)或MPU(存储器保护单元)
      架构上v5E相比v4T则是在于v5E新加入的增强型DSP(数字信号处理)指令,v4T则是Thumb指令集的加入,v6架构则是开始支持SIMD以及Thumb2的问世.

    展开全文
  • ARM从CORTEX3M到ARMcortex15

    2011-08-24 21:55:01
    关于ARM历史的介绍简介,主要介绍了从CORTEX3M到CORTEX15的历史
  • arm_cortex_m3_designstart_eval,arm cortex m3的设计文档
  • arm-cortex-a9技术参考手册
  • ARM_Cortex_M3_设计指导,官方教材,中文版。ARMCortex-M3采用哈佛结构,并选择了适合于微控制器应用的三级流水线,但增加了分支预测功能。
  • ARM-Cortex-M底层技术

    2019-02-21 16:44:02
    ARM-Cortex-M底层技术,半导体工艺部分,IDE技术部分,工具链技术部分,分散加载技术部分,启动代码技术部分,硬件设计技术部分等
  • ARM Cortex内核选型

    2018-05-03 10:54:45
    ARM Cortex内核选型ARM Cortex内核选型ARM Cortex内核选型ARM Cortex内核选型
  • ARMCortex

    2017-09-01 17:45:00
    arm系列从arm11开始,以后的就命名为cortex,并且性能上大幅度提升。 从cortex开始,分为三个系列,a系列,r系列,m系列。...a系列类似于cpu,与arm9和arm11相对应,都是可以跑草错系统的。linux等。...

    arm系列从arm11开始,以后的就命名为cortex,并且性能上大幅度提升。
    从cortex开始,分为三个系列,a系列,r系列,m系列。

    m系列与arm7相似,不能跑操作系统(只能跑ucos2),偏向于控制方面,说白了就是一个高级的单片机。
    a系列主要应用在人机互动要求较高的场合,比如pda,手机,平板电脑等。a系列类似于cpu,与arm9和arm11相对应,都是可以跑草错系统的。linux等。
    r系列,是实时控制。主要应用在对实时性要求高的场合。
    arm7和m3,m4是同一类型。这三个里面,arm7是最早的arm产品。m3是cortex m系列的过渡品,其低端市场被cortex m0的高端替代, 其高端市场又被cortex m4的低端取代。现在m系列,是m4内核的。典型的芯片是意法半导体的STM32。

    arm9 和cortex a8 是一个类型的,都是跑操作系统的,现在的高端手机,三星,htc等智能手机,就是用的cortex a8,cortex a9 内核的芯片作为cpu。
    (1)ARM7,ARM9属于v4T或v5E架构
    (2)ARM11属于v6架构
    (3)Contex属于v7架构
    ARM7,ARM9的区别在于是否有MMU(存储器管理单元)或MPU(存储器保护单元)
    架构上v5E相比v4T则是在于v5E新加入的增强型DSP(数字信号处理)指令,v4T则是Thumb指令集的加入,v6架构则是开始支持SIMD以及Thumb2的问世。

    转载于:https://www.cnblogs.com/fallenmoon/p/7464341.html

    展开全文
  • ARM-Cortex_-M4内核参考手册
  • 三星S5PV210 SOC芯片(ARM-Cortex A8核心)的中断发生处理过程。

            本文将讲述三星S5PV210 SOC芯片(ARM-Cortex A8核心)裸板的中断发生和处理过程。

    关于中断的说明:

    中断:指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。ARM的中断比较复杂,与其它的处理器一样,ARM的中断可分为外部中断和内部中断。


    中断的三个关键部分包括:中断源、中断处理程序和中断服务程序。以下将依据这几个关键部分对S5PV210的中断进行说明。

    外部中断源的配置:

    1.  如图的最右,首先应该配置GPIO引脚的相应寄存器为外部中断源模式。

    2.  然后需要配置外部中断控制器EXT_C,共有2个寄存器,分别为控制寄存器和中断掩码。

    3.  配置中断向量控制器VIC,此处共需要配置3个寄存器,S5PV210共有VIC[0-3]四个中断向量控制器。

    内部中断源的配置:

    1. 内部中断不经过外部中断控制器,但仍需要经过中断向量控制器VIC,S5PV210共有VIC[0-3]四个中断向量控制器。


            到此为止,外部中断信号终于可以送到A8处理器中了。


    程序状态寄存器的配置:

            不管是外部中断还是内部中断,都需要配置程序状态寄存器CPSR,把IRQ模式打开,才能正常触发中断。关于CPSR如下图所示:



    中断处理程序的配置:

            需要把中断处理程序存放到iRAM中去,中断发生后SOC芯片会根据厂家的定义自己跳转到这里。中断处理程序包括两部分,进入中断部分和退出中断部分。其功能应该包括:

    1.         把公共的通用寄存器的内容压入内存栈中(请参阅下文的ARM处理器模式介绍)
    2.         跳转到中断服务程序当中
    3.         把内存栈中的寄存器内容恢复到公共寄存器中
    4.         跳转回发生中断的地方并把CPU状态切换回去(请参阅下文的ARM处理器模式介绍)

    中断服务程序的配置:

            这个由程序员自己定义。

            需要把中断服务程序的地址存放到对应的中断向量地址寄存器当中,这个在芯片的Datasheet中可以查到。例如:VIC0的第16个中断的处理程序,就放置在VIC0ADDRESS16这个寄存器当中。当发生中断时,这个寄存器里面的值会自动装载到VIC0ADDRESS这个寄存器中,在中断处理程序中取出这个寄存器的值然后跳转到中断服务程序中去。

    ------------------------------------------------------------------------------------------------------       

    ARM的处理器模式介绍

            了解ARM处理器的模式,有助于我们更深入地了解中断。ARM共有以下7种工作模式,本次讲解使用的是IRQ模式。

    1. 用户模式(User):  ARM处理器正常的程序执行状态
    2. 快速中断模式(FIQ):   用于高速数据传输或通道处理
    3. 外部中断模式(IRQ):   用于通用的中断处理
    4. 管理模式(Supervisor):   操作系统使用的保护模式
    5. 数据访问终止模式(Abort):   当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护
    6. 系统模式(System):   运行具有特权的操作系统任务
    7. 未定义指令中止模式(Undifined):   当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真


            ARM处理器有7种不同的处理器模式,在每一种处理器模式中有一组相应的寄存器组。任意时刻(也就是任意的处理器模式下),可见的寄存器包括15个通用寄存器(R0~R14)、一个或两个状态寄存器及程序计数器(PC)。

            在所有的寄存器中,有些是各模式共用的同一个物理寄存器,有些是各模式自己拥有的独立的物理寄存器,如图所示。

          我们从图中可以看出普通用户模式(Systen and User)、超级用户模式(Supervisor)、和普通中断模式(FIQ)的R0-R12寄存器是共用的,这样也就不难理解为何要在中断处理程序中把这13个寄存器和LR(R14)寄存器保存到内存栈中了。

            对于FIQ模式的R8~R14寄存器是独有的,FIQ处理程序可以不必执行保存和恢复中断现场的指令,从而使中断处理过程非常迅速。

     

    几个特殊的通用寄存器:

    R13

           每一种异常模式拥有自己的物理的R13。应用程序初始化该R13,使其指向该异常模式专用的栈地址。当进入异常模式时,可以将需要使用的寄存器保存在R13所指的栈中;当退出异常处理程序时,将保存在R13所指的栈中的寄存器值弹出。这样就使异常处理程序不会破坏被其中断程序的运行现场。

    R14

          R14又被称为连接寄存器(Link Register,LR),在ARM体系中具有下面两种殊的作用:

    第1种:

            每一种处理器模式自己的物理R14中存放当前子程序的返回地址。当通过BL或BLX指令调用子程序时,R14被设置成该子程序的返回地址。在子程序中,当把R14的值复制到程序计数器PC中时,子程序即返回。

    第2种:

            当异常中断发生时,该异常模式特定的物理R14被设置成该异常模式将要返回的地址,对于有些异常模式,R14的值可能与将返回的地址有一个常数的偏移量。具体的返回方式与子程序返回方式基本相同。

    R15

            R15用于程序计数器(PC),保存了当前的程序跑到哪里。


    中断触发时到底发生了什么?

            首先处理器会回到ARM公司定义好的相应的异常地址去。


            然后根据该地址中的内容进行下一步跳转,这个跳转地址是ARM公司定义好的,半导体厂商可以把这个地址设计为一个iROM或iRAM的地址,继续进行下一步跳转;也可以直接把这个地址设计为内存DRAM的地址。

            S5PV210这块芯片三星公司把IRQ跳转的地址设置为iROM的地址,处理器会根据三星公司固化好的iROM程序,跳转到相应的iRAM地址,三星公司在这个位置又定义了一个异常向量表,程序员编写好的中断处理代码就存放在这里,然后根据中断处理代码的逻辑进行下一步跳转,最后到达中断服务程序中。


    最后附上一段中断处理程序的代码:

    .text
    .extern uart_init
    .extern printf
    .extern Start_Arm
    
    .global _start
    
    _start:
    	mov r10,lr           @把程序的入口放到R10寄存器中
    	bl uart_init         @跳到串口初始化程序中,初始化串口主要是方便调试
    	ldr r0,=fmt1         @初始化好之后打印一句话,这些都无关重要
    	bl printf
    
    	bl cpsr_init
    	bl vector_table_init
    	
    	bl Start_Arm
    	
    cpsr_init:                   @设置cpsr寄存器
    	mrs r0,cpsr
    	bic r0,r0,#0x80
    	msr cpsr_c,r0
    	bx lr
    	
    vector_table_init:           @初始化iRAM中的异常向量表,把中断处理程序放到这个表中
    	ldr r0,=handle_irq
    	ldr r1,=0xd0037418
    	str r0,[r1]
    	bx lr
    
    handle_irq:                  @中断处理程序
    	sub lr,lr,#4
    	stmfd sp!,{r0-r12,lr}
    
    	ldr lr,=return_irq
    	
    	ldr r1,=0xf2000000   @VIC0IRQSTATUS
    	ldr r2,[r1]
    	cmp r2,#0
    	
    	beq return_irq
    	
    	ldr r1,=0xf2000f00   @VIC0ADDRESS
    	ldr pc,[r1]	     @跳转到中断服务程序当中
    	
    return_irq:
    	ldmfd sp!,{r0-r12,pc}^	
    
    fmt1:
    	.asciz ">>> welcome to MyCode! <<<\n"
    .end

    展开全文
  • ARM-Cortex 系列:ARMv7架构 ARM7(ARMv4架构)没有MMU(内存管理单元),只能叫做MCU(微控制器),不能运行诸如Linux、WinCE等这些现代的多用户多进程操作系统, 因为运行这些系统需要MMU,才能给每个用户进程分配...
  • 本文中会详细的对照Cortex-M 系列处理器的指令集高级中断处理能力,以及 SoC系统级特性,调试追踪功能性能的比较 1 简介 今天, ARM Cortex-M 处理器家族有8款处理器成员。除此之外,ARM的产品系列还有很多...
  • arm-cortex_a8-linux-gnueabi 交叉编译工具链arm-cortex_a8-linux-gnueabi 交叉编译工具链arm-cortex_a8-linux-gnueabi 交叉编译工具链
  • 本PPT详细介绍了ARM_Cortex-M3结构与TI基于ARM cortex-M3内核的Stellaris系列芯片选型。
  • arm cortex m0 rtl code

    2018-06-20 10:48:16
    armcortex m0已经开源了, 这是arm cortex m0 rtl code
  • Yiu, J The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors, 3rd Edition. ARM Cortex-M3与Cortex-M4权威指南 示例代码
  • 为了方便大家平时公交、地铁、外出办事也能用手机回顾查看文章,我特意用心精选,并分类整理了部分文章:认识ARMCortex-M内核,以及ARMv8-M架构Cortex-M软件接口标准CM...
  • arm cortex m3 designstart eval customization guide
  • 1.2ARMCortex-M3处理器 1.2.1处理器组件 1.2.2Cortex-M3的层次实现选项 1.2.3处理器内核 1.2.4嵌套向量中断控制器(NVIC) 1.2.5总线矩阵 1.2.6集成调试 1.2.7可选组件 1.2.8Cortex-M3处理器应用 1.3ARMCortex-M3...
  • ARM Cortex代号

    2014-05-13 17:45:33
    ARM公司在经典处理器ARM11以后的产品改用Cortex命名,并分成A、RM三类,旨在为各种不同的市场提供服务。 Cortex系列属于ARMv7架构,这是到2010年为止ARM公司最新的指令集架构。(2011年,ARMv8 架构在 TechCon ...
  • ARM ® Cortex ® -A Series Programmer’s Guide for ARMv8-A
  • ARM Cortex-M3与ARM Cortex-M4权威指南_EN_3nd_窄框; ARM Cortex-M3与ARM Cortex-M4权威指南_EN_3nd_窄框
  • 前不久ARM正式宣布推出新款ARMv8架构的Cortex-A50处理器系列产品,以此来扩大ARM在高性能与低功耗领域的领先地位,进一步抢占移动终端市场份额。Cortex-A50是继Cortex-A15之后的又一重量级产品,将会直接影响到主流...
  • 选择ARM处理器,ARM7还是Cortex-M32009-02-13 19:02要使用低成本的32位处理器,开发人员面临两种选择,基于Cortex-M3内核或者ARM7TDMI内核的处理器。如何做出选择?选择标准又是什么?本文主要介绍了ARM Cortex-M3...
  • ARM7:ARMv4架构,ARM9:ARMv5架构,ARM11:ARMv6架构,ARM-Cortex 系列:ARMv7架构。  ARM7没有MMU(内存管理单元),只能叫做MCU(微控制器),不能运行诸如Linux、WinCE等这些现代的多用户多进程操作系统,因为...
  • 选择ARM7还是cortex-M3?

    千次阅读 2013-03-14 11:40:10
    要使用低成本的 32位处理器,开发人员面临两种选择,基于Cortex-M3内核或者ARM7TDMI内核的处理器。... ARM Cortex-M3是一种基于ARM7v架构的最新ARM嵌入式内核,它采用哈佛结构,使用分离的指令数据总线(冯诺

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,275
精华内容 13,710
关键字:

arm和cortex