跳转到主要内容

ARM

想了解ARM的中断系统,Linux-arm-GIC绝对不容错过

Lee_ /

要了解arm中断系统,GIC绝对不容错过,好先付上一张大家都能百度到的图片。

<center><img src="http://mm32.eetrend.com/files/2016-11/wen_zhang_/100003839-12759-1a.png…; alt="" width="600"></center>

GIC为中断控制器,不要和ARM core的中断搞混了,这些中断都是连接到ARM core的IRQ或者FIQ上的。

++和*可以先不用考虑,用于安全模式。

最小化ARM Cortex-M CPU功耗的方法与技巧

editor /

<strong>1、理解Thumb-2</strong>
  
首先,让我们从一个看起来并不明显的起点开始讨论节能技术—指令集。所有Cortex-M CPU都使用Thumb-2指令集,它融合了32位ARM指令集和16位Thumb指令集,并且为原始性能和整体代码大小提供了灵活的解决方案。在Cortex-M内核上一个典型的Thumb-2应用程序与完全采用ARM指令完成的相同功能应用程序相比,代码大小减小到25%之内,而执行效率达到90%(当针对运行时间进行优化后)。
  

嵌入式技巧:ARM的三种中断调试方法介绍

editor /

<strong>嵌入式软件开发流程</strong>

参照嵌入式软件的开发流程。第一步:工程建立和配置。第二步:编辑源文件。第三步:工程编译和链接。第四步:软件的调试。第五步:执行文件的固化。

在整个流程中,用户首先需要建立工程并对工程做初步的配置,包括配置处理器和配置调试设备。编辑工程文件,包括自己编写的汇编和C语言源程序,还有工程编译时需要编写的链接脚本文件,调试过程中需要编写存储区映像文件和命令脚本文件,以及上电复位时的程序运行入口的启动程序文件。

对后四种文件的理解很重要,其作用解释如下。

(1)链接脚本文件:在程序编译时起作用。该文件描述代码链接定位的有关信息,包括代码段,数据段,地址段等,链接器必须使用该文件对整个系统的代码做正确的定位。在SDRAM中调试程序、在FLASH中调试或固化后运行的链接脚本文件应加以区分。(在IDE开发环境中使用扩展名*.ld)

全球MCU市场洗牌在即,ARM加速混战

kelly /

全球物联网(IoT)应用热潮方兴未艾,然却已有不少MCU供应商铩羽而归,面对物联网应用整合控制/电源管理及无线连结的系统级解决方案需求,部分芯片供应商不是被迫待价而沽,就是面临被市场及客户边缘化危机,加上IP大厂安谋(ARM)版图正快速扩展到全球MCU市场,大幅降低进入门槛,并造成MCU市场杀价混战,全球MCU版图大洗牌已箭在弦上。

继恩智浦(NXP)购并飞思卡尔(Freescale),近期高通(Qualcomm)已经买下恩智浦,加上微芯(Microchip)从戴乐格(Dialog)手上抢亲艾特梅尔(Atmel),接着赛普拉斯(Cypress)购并博通(Broadcom)旗下物联网业务,以及瑞萨(Renesas)宣布合并英特矽尔(Intersil),凸显全球MCU大厂纷砸大钱布局物联网市场,全球MCU战火一触即发。

ARM三种中断返回的分析与解决

editor /

ARM单片机是大多数新手选择的入门切入点,但由于知识的不足,在设计过程中新手们经常会遇到这样或那样的问题,ARM异常中断返回就是这样一种令人头疼的问题。在ARM的使用问题中异常中断返回是新手们较为苦恼的问题,本文就将对ARM异常中断的集中情况进行总结,并给出了一些解决方法。

ARM汇编语言的程序结构

editor /

<strong>1、一个ARM汇编语言源程序的基本结构:</strong>

AREA Init, CODE, READONLY

ENTRY

Start

LDR R0, =0x3FF5000

LDR R1, 0xFF

STR R1, [R0]

LDR R0, =0x3FF5008

LDR R1, 0x01

STR R1, [R0]

... ... ... ... ... ...

END

在 ARM( Thumb)汇编语言程序中,以程序段为单位组织代码。

段是相对独立的指令或数据序列,具有特定的名称。段可以分为代码段和数据段,代码段的内容为执行代码,数据段存放代码运行时需要用到的数据。一个汇编程序至少应该有一个代码段,当程序较长时,可以分割为多个代码段和数据段,多个段在程序编译链接时最终形成一个可执行的映象文件。

可执行映象文件通常由以下几部分构成:

— 一个或多个代码段,代码段的属性为只读。

— 零个或多个包含初始化数据的数据段,数据段的属性为可读写。

【下载】关于ARM的22个常用概念

editor /

文章具体介绍了关于ARM的22个常用概念。

1、ARM中一些常见英文缩写解释

MSB:最高有效位;

LSB:最低有效位;

AHB:先迚的高性能总线;

VPB:连接片内外设功能的VLSI外设总线;

EMC:外部存储器控制器;

MAM:存储器加速模块;

VIC:向量中断控制器;

SPI:全双工串行接口;

······

更多详情请点击下载附件进行查看

<span class="download"><a href="http://mm32.eetrend.com/system/files/2016-10/文章/private/100003619-12010…;

ARM汇编伪指令介绍

editor /

在ARM处理器汇编语言程序设计里,有一些特殊的指令助记符。这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊的指令助记符为伪指令,它们所完成的操作称为伪操作。

伪指令在源程序中的作用是为完成汇编程序做各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成了。在ARM处理器的汇编程序中,大体有如下几种伪指令:符号定义伪指令、数据定义伪指令、汇编控制伪指令、宏指令及其他伪指令。

伪操作符可以分为以下几类。

<strong>1)数据定义伪操作符

数据定义伪操作符主要包括LTORG、MAP、DCB、FIELD、SPACE、DCQ、DCW等,主要用于数据表定义、文字池定义、数据空间分配等。常用的有DCB/DCQ/DCW分配一段字节/双字/字内存单元,并且将它们初始化。

<strong>2)符号定义伪操作符

符号定义伪操作符包括GBLA、GBLL、GBLS、LCLA、CN、CP、DN、FN、RLIST、SETA等,用于定义ARM汇编程序的变量,对变量进行赋值,以及定义寄存器名称等。其中用于全局变量声明的GBLA、GBLL、GBLS和局部变量声明的LCAL、LCLL、LCLS伪指令较为常用。

孙正义:ARM芯片将推进人工智能走向奇点

editor /

全球最成功的投资者之一孙正义重酬押注人工智能革命。位居福布斯财富排行榜第82位的日本软银(Softbank)负责人本周二在加州圣克拉拉召开的ARM开发者大会上表示ARM芯片将推动人工智能走向奇点。奇点是未来主义者设想的时刻,那时候人工智能的智力将会超过人类,人类将无法预测和理解接下来的发展。

<center><img src="http://mm32.eetrend.com/files/2016-11/wen_zhang_/100003587-11889-8398a3…; alt=""width="600"></center>

ARM的异常处理过程分析

editor /

近来翻了翻uC/OS-II官网给出来的ARM7-ARM9移植手册(AN-104),分析了在ARM中移植的问题,想想从来没有认真的学习过ARM的汇编,趁着这个机会复习复习吧。其实底层的东西才是创造力的心脏。

其中的移植代码中存在的很多问题比如中断的关闭和开启,任务级别的情景切换,中断到任务的情景切换都是我们在平时移植中讲到,我也不在此强调了。在官网中提供的移植过程中存在异常处理机制,这个本不是在移植过程中考虑的,但是文档中确实提供了一个比较好的处理方式。我在此对这一段时间的学习做一个总结。

首先需要了解ARM的异常处理机制,异常是每一种处理器都必须考虑的问题之一,关键在于如何让处理,返回地址在什么位置都是需要考虑的,ARM中支持7种异常,其中包括复位、未定义指令异常、软中断异常、预取指令中止、数据中止、IRQ、IFQ。每一种异常运行在特定的处理器模式下。我在此逐一的分析。

一般异常发生后,CPU都会进行一系列的操作,这些操作有一部分是CPU自动完成,有一部分是需要我们程序员完成。

首先说明CPU会自动完成的部分,用ARM结构手册中的代码描述如下: