arm那些事
ARM简介
ARM的商业模式:
- ARM只负责设计IC,并且出卖自己的设计IP(版权)。
- ARM自己不生产芯片,而是把设计IP授权给其他半导体厂商来生产芯片。
- 严格地说,ARM并不是一家半导体厂商。
- ARM7 44B0
- ARM9 2240 2410 2416
- ARM11 6410
- A8 S5PV210 S5PC100
- A9 4412 418
ARM型号的发展历程:
- ARM内核版本号和SoC版本号是由ARM确定的,而SoC型号是由半导体公司确定的。
- SOC(system on ship)
- 内核版本号 SOC版本号 芯片型号(三星)
- ARMv1
- ......
- ARMv4 ARM7 S3C44B0
- ARMv4 ARM9 S3C2440 S3C2410
- ARMv5 ARM9+XScale
- ARMv6 ARM11 S3C6410
- ARMv7 cortex-M
- cortex-A
- cortex-R
- -----------------------------------------------------------
- cortex-A8 S5PV210/S5PC100
- cortex-A9 Exynos4412
- cortex-A7 全志A10 A20 A31
- -----------------------------------------------------------
- cortex-A53 A57 高通骁龙815和410,苹果iPhone5s
嵌入式与单片机的区别:
- 主流的芯片平台:51、PIC、AVR、MSP430、STM32等
- 主流的嵌入式平台:ARM、PPC、MIPS
- 单片机片上资源有限、价格低、应用领域多为小家电、终端设备等。
- 嵌入式系统片上资源丰富、价格较高、应用领域宽广,如智能手机、平板电脑、游 戏机、路由器、摄像机、智能电视机、广告机、智能手表、收银机等。
- 单片机开发多为裸机,程序规模小,多为单个程序员独立开发。有些复杂产品也会使用高端单片机如STM32之类,并使用RTOS(uCOS、freeRTOS等)。
- 嵌入式开发几乎全部基于嵌入式操作系统,目前使用最多的是linux和Android。
- 嵌入式以C语言为主,汇编语言为辅;
- 中间层开发用C++较多;
- 应用层开发多使用C++、Java、Python、tcl/tk、perl等;
嵌入式系统的特点:
- 专用、软硬件可裁剪可配置
- 低功耗、高可靠性、高稳定性
- 软件代码短小精悍
- 代码可固化
- 实时性
- 弱交互性
- 专用开发工具及开发环境
- 专业开发人员
嵌入式系统组成:
- 硬件:微处理器、存储器、I/O接口、输入输出设备等
- 软件:嵌入式操作系统、BSP boardsupport package板级支持板、应用软件;
- 应用程序:GUI、GPRS、3G、WIFI等;
- 操作系统:智能操作系统、操作平台;
- 硬件:中央处理器、ROM、RAM、IO和电源;
- 非嵌入式开发:A类机编写、编译,得到可执行程序,发布给A类机运行;
- 嵌入式开发:A类机编写、编译,得到可以行程序,发布给B类机运行;
- 嵌入式开发的CPU比较简单,本身无法搭建开发环境,有些甚至操作系统都没有。交叉编译可以用高性能机器为低性能机器开发软件(包括裸机软件、系统级和 应用级软件)
- 必须使用交叉编译工具链;
- 由于可执行程序不能再本地运行调试,因此,必须配合一定的手段(专用调试器、JTAG调试器、USB下载、串口下载、SD启 动、网络共享等)将可执行程序加载到目标嵌入式设备上运行调试;
- 数据总线:CUP通过地址总线寻址,然后通过数据总线与外部设备交换信息;
- 地址中线:地址总线的位数决定CPU的寻址范围;数据总线的位数决定CPU单次通信能交换的信息数量;
- 命令总线:CPU在通过数据总线进行数据交换时,会通过命令总线发送一个命令,然后再通过地址总线和数据总线,进行数据交换;
- CPU的位数指的是数据总线的位数;
- 32位CPU寻址范围是4G(2^10=1024bit=1K,2^20=1024K=1M,2^30=1024M=1G,2^2×2^30=4G),所以最大支持4G内存;数据总线是32位的,所以内存是32位的,编程时最好用int;
嵌入式开发特点:
- 采用交叉编译,不便于本机运行调试程序;
- 嵌入式需要BootLoader来启动,BootLoader必须先存在于启动介质中,需要专业工具
- 嵌入式系统无法通过纯软件实现单步调试,因此,必须借助专用的调试器。
- 用于下载可执行程序到目标机;
- 在目标机上实现单步调试,便于开发BootLoader;
arm那些事的更多相关文章
- 痞子衡嵌入式:ARM Cortex-M内核MCU开发那些事 - 索引
大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是ARM Cortex-M内核微控制器相关知识. ARM公司从2004年开始推出Cortex-M系列内核,迄今Cortex-M家族已经包 ...
- 痞子衡嵌入式:ARM Cortex-M内核那些事(2)- 第一款微控制器
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是第一款Cortex-M微控制器. 1.天生荣耀:ARM Cortex-M处理器由来 ARM公司自2004年推出ARMv7内核架构时,摒弃 ...
- 痞子衡嵌入式:ARM Cortex-M调试那些事(1)- 4线协议标准(JTAG)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式调试里的接口标准JTAG. 在结束<ARM Cortex-M文件那些事>系列文章之后,痞子衡休整了一小段时间,但是讲课的 ...
- 痞子衡嵌入式:ARM Cortex-M文件那些事(8)- 镜像文件(.bin/.hex/.s19)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的image文件(.bin, .hex, .s19). 今天这节课是痞子衡<ARM Cortex-M文件那些事>主 ...
- linux arm的存储分布那些事之一【转】
转自:http://blog.csdn.net/xiaojsj111/article/details/11724081 linux arm的存储分布那些事之一 linux arm 内存分布总览 上图是 ...
- 痞子衡嵌入式:ARM Cortex-M内核那些事(9.1)- 存储保护(MPU - PMSAv6/7)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM Cortex-M存储保护模块(MPU). <ARM Cortex-M内核MCU开发那些事>的内核篇连载最早是 201 ...
- 痞子衡嵌入式:ARM Cortex-M内核那些事(3)- 功能模块
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM Cortex-M功能模块. ARM Cortex-M处理器家族发展至今(2016),已有5代产品,分别是CM0/CM0+.CM1 ...
- 痞子衡嵌入式:ARM Cortex-M内核那些事(4)- 性能指标
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM Cortex-M性能指标. 1.处理器的性能指标 用于评价CPU的性能指标非常多,不同的性能侧重点下的测试标准可能得出的指标值不 ...
- 痞子衡嵌入式:ARM Cortex-M内核那些事(5)- 指令集
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM Cortex-M指令集. 指令集 指令长度(bits) 包含指令 CortexM0 CortexM0+ CortexM1 Cor ...
随机推荐
- 华为交换机MSTP+VRRP配置实例说明文档
华为交换机MSTP+VRRP配置实例说明文档 拓扑图 IP地址规划表 设备名称 设备接口 对端设备 对端接口 VLAN VLAN /接口地址 备注 SW0 GE0/0/23 SW2 GE0/0/23 ...
- JSP内置对象——Exception对象
举个实例说明下: 新建一个“exception_test.jsp”: 对应的exception.jsp页面: 运行“exception_test.jsp”后: 虽然执行的是“exception_tes ...
- loadrunner 运行场景-命令行运行场景
运行场景-命令行运行场景 by:授客 QQ:1033553122 1 相对路径与绝对路径 在场景中为脚本指定一个相对位置,可以是相对于当前场景目录或lr安装目录. 当你运行一个场景,场景自动从这个相对 ...
- 安卓开发_浅谈ListView(自定义适配器)
ListView作为一个实际开发中使用率非常高的视图,一般的系统自带的适配器都无法满足开发中的需求,这时候就需要开发人员来自定义适配器使得ListView能够有一个不错的显示效果 有这样一个Demo ...
- Android Studio 通过一个登录功能介绍SQLite数据库的使用
前言: SQLite简介:是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且目前已经在 ...
- JVM、Gc工作机制详解
JVM主要包括四个部分: 类加载器(ClassLoad) 执行引擎 内存区: 本地方法接口:类似于jni调本地native方法 内存区包括四个部分: 1.方法区:包含了静态变量.常量池.构造函数等 2 ...
- 微信小程序-06-详解介绍.js 逻辑层文件-注册页面
上一篇介绍的是 app.js 逻辑层文件中注册程序,对应的每个分页面都会有的 js 文件中 page() 函数注册页面 微信小程序-06-详解介绍.js 逻辑层文件-注册页面 宝典官方文档: http ...
- 机器学习实战(Machine Learning in Action)学习笔记————10.奇异值分解(SVD)原理、基于协同过滤的推荐引擎、数据降维
关键字:SVD.奇异值分解.降维.基于协同过滤的推荐引擎作者:米仓山下时间:2018-11-3机器学习实战(Machine Learning in Action,@author: Peter Harr ...
- 【第三篇】SAP ABAP7.5x新语法之程序结构&SubScreen
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文地址:SAP ABAP7.5x系列之程序结构& ...
- 使用 Array2XML把数组转成XML格式,有相同的节点
最近开发一个项目,需要调用第三方的接口,第三方提供的数据是xml,我直接使用Array2XML把php数组转成XML格式. XML格式如: <root> <body> < ...