1.ARM的基础知识
ARM简述
ARM公司既不生产芯片也不销售芯片,它只出售芯片技术授权。ARM技术具有很高的性能和功效,因而容易被厂商接受。同时,合作伙伴的增多,可获得更多的第三方工具、制造和软件支持,这又会使整个系统成本降低,让产品进入市场的时间加快,从而具有更大的竞争优势。
一、ARM技术的应用领域及其特点
采用ARM技术IP核的微处理器遍及汽车、消费电子、成像、工业控制、海量存储、网络、安保和无线等各类产品市场。
1.什么是IP核?
IP核是指拥有知识产权的控制功能单元。(IP核是一段具有特定电路功能的硬件描述语言程序,该程序与集成电路工艺无关,可以移植到不同的半导体工艺中去生产集成电路芯片。利用IP核设计电子系统,引用方便,修改基本元件的功能容易。具有复杂功能和商业价值的IP核一般具有知识产权,尽管IP核的市场活动还不规范,但是仍有许多集成电路设计公司从事IP核的设计、开发和营销工作。IP核有两种,与工艺无关的VHDL程序称为软核;具有特定电路功能的集成电路版图称为硬核。)
2.ARM相关的各种版本号及命名
ARM的三种版本号:ARM体系版本(内核版本号)、ARM处理器版本(SoC<System on Chip>版本号)、芯片型号。
ARM体系版本(内核版本号):ARMv1 、... 、 ARMv4 、ARMv5 、ARMv6 、ARMv7
ARM处理器版本: ..... 、 、 ARM7\ARM9 、ARM9+xScale 、ARM11 、Cortex-M\Cortex-A\Cortex-R
芯片型号: ..... 、S3C44B0\S3C2440 和2410、 、S3C6410 、...\S5PV210\...
*值得注意的是:在ARMv7版本开始,ARM处理器版本分成了Cortex-M\Cortex-A\Cortex-R这三个系列
Cortex-M:M(microctroller) 主要用于单片机,比如STM32;
Cortex-A:A(Application) 主要用于手机,平板等等;
Cortex-R:R(Realtime) 主要用于工业,航天方面;
二、一些需要知道的事儿
1.可编程器件
可编程器件是由ASIC <Application Specific Integrated Circuit 特定用途集成电路> 发展而来的。CPU就属于可编程器件(cpu内部电路对二进制文件解码)
2.可编程器件的特点
1).cpu在固定的始终频率控制下节奏运行。
2).cpu可以通过总线读取外部存储设备中的二进制指令集,然后解码,cpu内部电路对二进制文件进行解码。
*** 这些可以被cpu解码执行的二进制指令集是cpu设计时就确定了的,是cpu的设计者(ARM公司)定义的,本质上是一串0或1组成的数字,这就是cpu 的汇编指令集。
总结: 为什么可编程器件可以编程?
由于cpu是在固定的始终频率控制下节奏运行,并且可以通过总线从外部存储设备读取二进制指令集,然后解码执行,因为这些指令集是cpu的设计者通过的,所以我们可以通过提供的这些指令集去达到我们编程的目的。
3.指令集对cpu的意义
汇编的实质是机器指令的助记符。机器指令(二进制)集是一款cpu的编程特征,是这款cpu的设计者制定的。cpu的内部电路就是为了实现这些指令集的功能。机器指令集就好像cpu的API接口一样。不同的cpu机器指令集设计不同,因此汇编程序不能在不同cpu的机器互相移植。
4.RISC和CISC的区别
* RISC<Reduced Instruction Set Computer>精简指令集计算机
RISC的设计理念:让软件来完成具体的任务,cpu本身仅提供基本的指令集,功能扩展有使用cpu的人利用基础架构来灵活实现
* CISC<Complex Instruction Set Computer>复杂指令集计算机
CISC的设计理念:用最少的指令来完成任务,cpu的扩展依赖指令集的扩展。实质是cpu内部组合逻辑电路的扩展
5.cpu访问各种外设的两种方式:统一编址,独立编址
***统一编址和独立编址各自的优缺点
统一编址:因为是像访问内存一样通过地址去访问IO,所以访问简单,但是却占用了cpu的地址空间,而cpu的地址空间是有限的资源。
独立编址:优点是不占用cpu的地址空间,缺点是cpu的设计就变复杂了。
6.什么是内存?什么是IO?
内存是程序运行的场所。
IO是输入输出接口,是cpu和其他外部设备之间的通道,一般IO就是指cpu的各种内部或外部设备
7.软件控制硬件的关键-寄存器
1.什么是寄存器?
寄存器是一个硬件模块,寄存器有两类:通用寄存器和特殊功能寄存器(SFR)
通用寄存器(ARM中37个)是cpu的组成部分
特殊功能寄存器:不在cpu中,存在于cpu的外设中,我们通过访问外设的SFR来编程操控这个外设,这就是硬件编程控制的方法
1.ARM的基础知识的更多相关文章
- ARM处理器基础知识
1.ARM处理器的寄存器,ARM与Thumb状态,7中运行模式 http://blog.chinaunix.net/uid-28458801-id-3494646.html 2.ARM的7种工作模式. ...
- 驱动实现led,pwm和中断基础知识
2015.4.8星期三 晴天 今天老师讲的内容是内核编写led和pwm驱动,实现花样灯和放歌的功能.理解应用和驱动的对接,最后自己实现了在放歌的时候根据歌曲的节奏亮灭一个小灯,应为两个独立的驱动都已经 ...
- 【分享】4412开发板-嵌入式Linux开发须要掌握的基础知识和技能
本文转自迅为电子论坛:http://www.topeetboard.com 1.Linux 基础 安装Linux操作系统 Linux文件系统 Linux经常使用命令 Linux启动过程具体解释 熟悉L ...
- 嵌入式系统基础知识(一): 系统结构和嵌入式Linux
目录 一. 嵌入式体系结构 二. 开发过程中的分工 三. 嵌入式软件体系结构 四. 嵌入式Linux 一. 嵌入式体系结构 <嵌入式系统设计师教程>这本书的前三章脉络很清晰, 按照嵌入式系 ...
- jni的一些基础知识和概念
11.1基础知识 JNI(Java Native Interface,JAVA原生接口) 使用JNI可以使Java代码和其他语言写的代码(如C/C++代码)进行交互. 问:为什么要进行交互? |- ...
- 计算机科学基础知识(一)The Memory Hierarchy
一.前言 最近一个问题经常萦绕在我的脑海:一个学习电子工程的机械师如何称为优秀的程序员?(注:本文作者本科学习机械设计,研究生转到电子工程系学习,毕业后却选择了系统程序员这样的职业).经过思考,我认为 ...
- 重拾C语言基础知识
从实习到工作两年多的时间了,虽然感觉学到了很多知识,但是事实上却将立足之本的基础知识给忘了个精光.也许跟自己没有出去找工作有关,没有好好的将C语言的基础牢牢掌握. 从现在开始吧!好好的重温基础,做一名 ...
- [Linux 001]——计算机和操作系统的基础知识
在正式开始学习 Linux 操作系统之前,有必要先回顾/学习一下计算机和操作系统的基本知识,为我们在后续的学习中铺路搭桥,在了解计算机一些基础原理的条件下再去进行学习,理解应该会更透彻一些.我会从一个 ...
- 嵌入式Linux基础知识
一.构建嵌入式开发环境 1.编译bootloader并烧写到板子中---uboot, 可以自己定制bootloader and logo 2.编译file system 并烧写--内嵌APP 3.编译 ...
随机推荐
- BackTrack5-r3任务栏显示网络图标及自定义DNS
任务栏显示网络连接图标:安装NM工具,在BT终端中执行:apt-get install network-manager按y继续执行,显示:ldconfig deferred processing no ...
- Html 之div+css布局之css基础
Css是什么 CSS即层叠样式表(Cascading StyleSheet). 在网页制作时采用层叠样式表技术,可以有效地对页面的布局.字体.颜色.背景和其它效果实现更加精确的控制. 只要对相应的代码 ...
- 关于用photoshop制作海报
最近由于事情比较多,一直忙着各项活动的策划,而我所在的学社联和金山俱乐部都组织了ps的培训,也要求上交一些海报,在积极熟悉ps cs6中. 就昨天做的光棍节脱单海报来讲,稍微运用了笔刷等最基础的工具. ...
- Page 指令的各个属性及其功能
转载:http://www.cnblogs.com/elleniou/archive/2012/09/09/2678101.html 语法规则: <@%page attribute1=”valu ...
- JDBC的作用及重要接口
JDBC是由一系列连接(Connection).SQL语句(Statement)和结果集(ResultSet)构成的,其主要作用概括起来有如下3个方面: 建立与数据库的连接. 向数据库发起 ...
- jQuery获取带点的id元素
一般jQuery获取某个id为elem元素,只需用$('#elem')就行了,但是如果id中不小心包括了'.' ,那么我吗就会发现这时候jQuery就不能获取到这个元素了.但是使用dom原生的getE ...
- 5种io模式
1)阻塞I/O(blocking I/O) 发起请求,等待数据报准备好,拷贝数据,数据返回指令 应用程序调用一个IO函数,导致应用程序阻塞,等待数据准备好. 如果数据没有准备好,一直等待….数据准备好 ...
- javascript数组 去重
数组去重的方法有很多,到底哪种是最理想的,自己不清楚.于是自己测试了下数组去重的效果和性能.测试十万个数据,代码和所耗大概时间如下. 到底采用哪种方法,根据实际情况而定吧. /*方法一: 1,'1' ...
- 无后台的网站 内容暂存json
当网站无后台时,将数据暂存储为json文档,然后通过调用json文件获取数据填充前端页面 存储json格式的文件 [ { "id": 1, "cat": &qu ...
- HttpURlconntiuon获取网络数据
package Network; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream ...