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.编译 ...
随机推荐
- Maven生命周期
Maven的生命周期抽象了构建的各个步骤,定义了他们的次序,但没有提供实现.Maven设计了插件机制.每个构建步骤都可以绑定一个或多个插件行为,而且Maven为大多数构建步骤编写并绑定了默认插件. M ...
- MVC5 CodeFirst (一)
创建一个MVC5项目,VS生成了AccountController.HomeController,F5直接运行,实现了注册.登录.修改……但是注册的用户只是在内存里,下面我们来持久化. 三个命令:en ...
- Sql Server 之 for xml (path,raw,auto,root)
1.for xml path('str') select ID,CreateTime from dbo.ArticleInfo for xml Path('mytitle') 结果:(注意:如果是s ...
- <转>思考力是万力之源
做任何事情,要懂得积累和总结 每天进步一点点,一年365天下来就不得了 来自为知笔记(Wiz)
- SQLServer2012在登录远程服务器实例时报错:尝试读取或写入受保护的内存
SQLServer2012在登录远程服务器实例时报错:尝试读取或写入受保护的内存.这通常指示其它内存已损坏.(System.Data). 而登录本地数据库实例则能顺利登入,不存在上述问题. 试一试重置 ...
- iOS 打电话 发短信(转载)
官方代码 发短息和邮件添加MessageUI.framework 库 发送信息 - (IBAction)showSMSPicker:(id)sender { // You must check tha ...
- C# 加载 SQLite DLL问题
/********************************************************************************* * C# 加载 SQLite DL ...
- 转载:ORA-01438: 值大于为此列指定的允许精度
Number的数据声明如下: 表示 作用 说明Number(p, s) 声明一个定点数 p(precision)为精度,s(scale)表示小数 ...
- 【转载】Spark性能优化指南——高级篇
前言 数据倾斜调优 调优概述 数据倾斜发生时的现象 数据倾斜发生的原理 如何定位导致数据倾斜的代码 查看导致数据倾斜的key的数据分布情况 数据倾斜的解决方案 解决方案一:使用Hive ETL预处理数 ...
- SQL---Chapter01 数据库和SQL
数据库类型: 层次数据库(Hierarchical Database, HDB) 数据通过层次结构(树形结构)的方式表示出来. 关系型数据库(Relational Database, RDB) 使用专 ...