信庭嵌入式工作室-ARM应用技术之体系结构应用(上)
ARM应用技术是抛去操作系统,面向ARM自身的应用技术,总的来讲可以分为三部分:ARM体系结构应用、ARM最小系统应用和ARM外设(外围接口)应用。ARM体系结构应用包含比较多的模块,下面逐个解析。
ARM体系结构-CPU核应用,CPU核主要用来执行程序,换句话说所有程序的指令都是在CPU核运行,CPU核最重要的指标是MIPS数,MIPS数和CPU核主频、流水线和MAC等有关系。CPU核主频越高的CPU核并不意味着它的MIPS数越高。有些CPU核跑220MHz并不比另外的跑200MHz的CPU核执行程序快,可能是后者采用的流水线比前者多;如果是执行的复杂数学运算的速度快,也有可能后者使用的MAC单元比前者多。所以专业来将用于衡量程序执行效率用CPU核MIPS数替代CPU核主频衡量模式会比较精确。同样在选者ARM时CPU核MIPS数是一项重要的指标。
ARM体系结构-AMBA总线应用,CPU核对DDR(SDRAM)、FLASH和其它外围接口的操作是通过AMBA总线来实现的,可以说ARM地址空间的操作都需要通过AMBA总线来进行,包括ARM自身的寄存器,AMBA总线就像桥梁,连接着“天南地北”。除了最重要的桥接功能,AMBA总线对程序执行效率也有影响,曾经我做过一个实验,把总线的速度由54MHz提升到108MHz,程序的执行效率提升20%;把CPU核的频率由108MHz提高到216MHz(保持54MHz的总线速率),程序的执行效率只提升了10%。所以总线对程序执行效率有影响。通常CPU核主频的和总线的良好匹配是重要的总线选择指标。一个低主频(如108Hz)CPU核和一个高速(500MHz)的总线,或者一个主频(如500MHz)CPU核和一个低速(108MHz)的总线都不是良好的匹配。如果你对PC比较熟,你可以这样理解,若显卡(GPU)使用系统内存(DDR),显卡图形图象处理速度相对就较慢,若显卡(GPU)使用自有扩展的内存(GDDR),显卡图形图象处理速度相对就较快。
ARM体系结构-高速缓存(Cache)应用,高速缓存是ARM内部的存储单元,是高速的SRAM。可分为D-Cache和I-Cache两种,D-Cache是数据高速缓存,就是把CPU常用到的数据或者最近常用到的数据存放到D-Cache中,当需要的时候从D-Cache取数而不是从内存(DDR)SDRAM取数,从而加快了数据操作的速度;I-Cache是指令高速缓存,就是CPU常执行的程序块或者最近常执行的程序块存放到I-Cache中,当执行到本程序块时,从I-Cache中获取程序指令,而不是从内存(DDR)SDRAM或者FLASH中获取程序指令,通过Cache可以提高程序执行的效率,但有时候也有负作用,如内存(DDR)SDRAM中视频缓冲区的数据有更改,而通过Framebuffer刷到LCD显示频上的部分数据却从D-Cache获取的旧数据,这是LCD显示的图象看起来有杂点,这就需要做Flush Cache处理。
ARM体系结构-中断应用,中断是ARM内部体系的结构的重要部分,中断分为快速中断(FIQ)和通用中断(IRQ),FIQ原理上是一有中断触发就执行中断程序,IRQ有优先级,就是说如过一个中断触发了,有更高优先级的中断也触发了,那么这个中断就需要等待高优先级的中断处理过后才能处理。所以为了避免中断等待时间过长,编写的中断处理程序尽量简单(不要有复杂处理),这种要求是由IRQ中断的优先级属性决定的。中断是打断CPU‘常规执行程序’跳转到‘中断执行程序’的处理过程,所以中断程序和常规执行程序比较而言有更高的优先级,这种属性可以用于慢速接口(读写)和快速接口处理(读写)匹配,如串口收数据时,应用程序启动接收的最长等待(最坏)时间比较长,而这个时间间隔串口又接收到了大量的数据,以至于串口数据缓冲区(FIFO)已满,这时就可能有数据丢失,如何解决,就需要使用中断,在中断中接收数据到大的软件缓冲区中。IRQ中断主要为解决接口数据丢失的问题而发明的。
(作者 冯青华 信庭嵌入式工作室-主管 Blog:http://blog.csdn.net/fqheda )
<转载请注名来路>
信庭嵌入式工作室-ARM应用技术之体系结构应用(上)相关推荐
- 32位ARM嵌入式处理器的调试技术
32位ARM嵌入式处理器的调试技术 https://blog.csdn.net/bekars/article/details/611072 摘要:针对32位ARM处理器开发过程中调试技术的研究,分析了 ...
- 【嵌入式】ARM技术博客汇总
00. 目录 文章目录 00. 目录 01. 开发环境 02. ARM汇编 03. ARM裸板 04. 内核驱动 05. 项目实践 06. 问题专区 07. 参考链接 08. 附录 01. 开发环境 ...
- 嵌入式linux实时化技术,嵌入式Linux实时化技术
引言 Linux支持PowerPC.MIPS.ARM.DSP等多种嵌入式处理器,逐渐被用于多种关键性场合.其中实时多媒体处理.工业控制.汽车电子等特定应用对Linux提出了强实时性需求.Linux提供 ...
- 嵌入式系统--ARM微处理器概述
1.1 ARM-Advanced RISC Machines ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术 ...
- 嵌入式知识-ARM裸机-学习笔记(9):SD卡启动详解(S5PV210)
嵌入式知识-ARM裸机-学习笔记(9):SD卡启动详解(S5PV210) 一.SD卡介绍 1. SD卡背景知识和特点 SD卡.MMC卡.MicroSD.TF卡:这些卡其实内部就是Flash存储颗粒,比 ...
- 嵌入式典型ARM处理器介绍以及分类
笔者电子信息专业硕士毕业,获得过多次电子设计大赛.大学生智能车.数学建模国奖,现就职于南京某半导体芯片公司,从事硬件研发,电路设计研究.对于学电子的小伙伴,深知入门的不易,特开次博客交流分享经验,共同 ...
- 嵌入式:ARM体系结构详解
文章目录 指令集与指令集架构 主要计算机指令集架构 PC及服务器领域 嵌入式领域 新生代 ARM体系结构的演变 ARM发展的历程 指令集与指令集架构 指令:就是指挥计算机工作的命令,程序就是一系列按一 ...
- 【ARM】ARM接口技术
0开发工具的使用 1安装keil4 2运行MDK411EXE安装 3选择好要安装的目的位置 4安装完成并运行 5安装JLink驱动 6运行测试例程验证开发板是否OK 1自己做一个例子 1新建一个项目 ...
- 嵌入式linux的调试技术
本章介绍了嵌入式linux的调试技术,例如,设置断点.逐步跟踪代码.输出调试信息等. Printk函数用于打印内核调试信息,运行在内核空间,printf函数运行在用户空间.Printk文件是一个简单的 ...
- Android深度探索(卷1)HAL与驱动开发 心得体会 第十章 嵌入式Linux的调用技术
Android深度探索(卷1)HAL与驱动开发 心得体会 第十章 嵌入式Linux的调用技术 对于复杂的Linux驱动以及HAL等程序库,需要使用各种方法对其进行调试.例如,设置断点,逐步跟踪代码. ...
最新文章
- python算法与数据结构-循环链表(41)
- C++:二维数组和二维向量的长度
- php 同步退出,Ucenter 的同步登录与同步退出
- 指针二维二维数组和二重指针 的疑问 二维数组名为什么不能直接赋值给二重指针...
- DEVC++下载与环境配置,手把手教程
- python设计模式之Borg模式
- 万能硬盘数据恢复软件注册码真的可以用吗?
- JDK 的 ORACLE 官网下载步骤
- IP问问:高精度IP定位|IP查询工具内测(街道级别)
- EVO工具在EUROC数据集TUM数据集,评测ORB-SLAM3和VINS-MONO
- python模拟类蠕虫--蠕虫初探
- Lumerical官方案例、FDTD时域有限差分法仿真学习(八)——光纤布拉格光栅(Fiber Bragg gratings)
- MySQL进阶-02-多表设计
- 【2020.10.17 牛客 普及组 模拟赛一】T2 牛牛的跳跳棋
- 比尔·盖茨买百万亩农地成美“头号地主”,图扑数字孪生农场
- 判断SDCard是否存在
- 基于属性的测试,hypothesis以及查找bug
- linux断掉crt、xshell依然运行命令?查找命令执行是否完成?
- python执行pip install 命令的时候报错 Filexxxx,line 1 pip install 的问题
- 正则匹配---匹配包含指定字符串