arm的相关知识
1.硬件开发,ARM,相关的学习,需要哪些基础知识
下面是我列出的书单:
嵌入式书籍推荐
Linux基础
1、《Linux与Unix Shell 编程指南》
C语言基础
1、《C Primer Plus,5th Edition》【美】Stephen Prata着
2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)着
3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE)
4、《嵌入式Linux应用程序开发详解》
Linux内核
1、《深入理解Linux内核》(第三版)
2、《Linux内核源代码情景分析》毛德操 胡希明著
研发方向
1、《UNIX Network Programming》(UNP)
2、《TCP/IP详解》
3、《Linux内核编程》
4、《Linux设备驱动开发》(LDD)
5、《Linux高级程序设计》 杨宗德著
硬件基础
1、《ARM体系结构与编程》杜春雷着
2、S3C2410 Datasheet
英语基础
1、《计算机与通信专业英语》
系统教程
1、《嵌入式系统――体系结构、编程与设计》
2、《嵌入式系统――采用公开源代码和StrongARM/Xscale处理器》毛德操 胡希明着
3、《Building Embedded Linux Systems》
4、《嵌入式ARM系统原理与实例开发》 杨宗德著
理论基础
1、《算法导论》
2、《数据结构(C语言版)》
3、《计算机组织与体系结构?性能分析》
4、《深入理解计算机系统》【美】Randal E. Bryant David O''Hallaron着
5、《操作系统:精髓与设计原理》
6、《编译原理》
7、《数据通信与计算机网络》
8、《数据压缩原理与应用》
C语言书籍推荐
1. The C programming language 《C程序设计语言》
2. Pointers on C 《C和指针》
3. C traps and pitfalls 《C陷阱与缺陷》
4. Expert C Lanuage 《专家C编程》
5. Writing Clean Code -----Microsoft Techiniques for Developing Bug-free C Programs
《编程精粹--Microsoft 编写优质无错C程序秘诀》
6. Programming Embedded Systems in C and C++ 《嵌入式系统编程》
7.《C语言嵌入式系统编程修炼》
8.《高质量C++/C编程指南》林锐
把这些书看完,基本就可以了
2.硬件开发,ARM,相关的学习,需要哪些基础知识
下面是我列出的书单:嵌入式书籍推荐 Linux基础 1、《Linux与Unix Shell 编程指南》 C语言基础 1、《C Primer Plus,5th Edition》【美】Stephen Prata着 2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)着 3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE) 4、《嵌入式Linux应用程序开发详解》 Linux内核 1、《深入理解Linux内核》(第三版) 2、《Linux内核源代码情景分析》毛德操 胡希明著 研发方向 1、《UNIX Network Programming》(UNP) 2、《TCP/IP详解》 3、《Linux内核编程》 4、《Linux设备驱动开发》(LDD) 5、《Linux高级程序设计》 杨宗德著 硬件基础 1、《ARM体系结构与编程》杜春雷着 2、S3C2410 Datasheet 英语基础 1、《计算机与通信专业英语》 系统教程 1、《嵌入式系统――体系结构、编程与设计》 2、《嵌入式系统――采用公开源代码和StrongARM/Xscale处理器》毛德操 胡希明着 3、《Building Embedded Linux Systems》 4、《嵌入式ARM系统原理与实例开发》 杨宗德著 理论基础 1、《算法导论》 2、《数据结构(C语言版)》 3、《计算机组织与体系结构?性能分析》 4、《深入理解计算机系统》【美】Randal E. Bryant David O''Hallaron着 5、《操作系统:精髓与设计原理》 6、《编译原理》 7、《数据通信与计算机网络》 8、《数据压缩原理与应用》 C语言书籍推荐 1. The C programming language 《C程序设计语言》 2. Pointers on C 《C和指针》 3. C traps and pitfalls 《C陷阱与缺陷》 4. Expert C Lanuage 《专家C编程》 5. Writing Clean Code -----Microsoft Techiniques for Developing Bug-free C Programs 《编程精粹--Microsoft 编写优质无错C程序秘诀》 6. Programming Embedded Systems in C and C++ 《嵌入式系统编程》 7.《C语言嵌入式系统编程修炼》 8.《高质量C++/C编程指南》林锐 把这些书看完,基本就可以了。
3.关于ARM的学习
初学ARM可以买周立功的《ARM微控制器基础与实战》,这本书主要讲的是飞利浦公司的ARM7单片机的一些基础知识和嵌入式操作系统UCOS-II的移植和使用,对初学者来说比较合适。
linux是一个很复杂的操作系统,如果你想在操作系统层面研究它的话,建议先比较系统的学习操作系统原理,然后分析linux的内核源码。但是这个难度较大,对于没有相当基础的人很难进行下去。一般建议初学者先从应用层来认识和学习linux,即安装linux,使用linux编写一些简单的应用程序,这个在网上有很多资料,你可以搜一下。
平时说的ARM一般是指基于ARM内核的微处理器,这个是实现项目的硬件平台,而linux是一种软件,为应用项目提供任务管理、资源管理、软件协议包等支持。
4.学习ARM的重点是什么
你好,我现在也在学习ARM,那就说说我怎么学习了吧。
1、学习ARM,那么我们不需要了解其具体的内核结构,我们会应用就行。
2、了解ARM内核中的存储器,工作模式。
3,、ARM指令(32位)和Thumb指令(16位)一定要熟记。
4、存储器的结构,分为片内Falsh,片外Falsh,片内SRAM,片外SRAM。
5、知道存储器的映射原因和中断向量的映射。
上面先学习好,都记住了看下面
1、ARM连接的外设功能模块,其含有很多的功能寄存器,需要了解
2、尽量了解ARM的启动代码和各个模块的启动代码
3、对应的各个模块都看看相关的例程
4、了解ATPC
然后再开始做一些深入的编程。
最后就得学习一种操作系统,毕竟ARM是可以跑操作系统的,推荐学习linux,学习linux后就可以开发一些驱动,应用程序。
5.arm的介绍
ARM是全球领先的半导体知识产权 (IP) 提供商。全世界超过95%的智能手机和平板电脑都采用ARM架构1。ARM设计了大量高性价比、耗能低的RISC处理器、相关技术及软件。2014年基于ARM技术的全年全球出货量是120亿颗,从诞生到现在为止基于ARM技术的芯片有600亿颗2。技术具有性能高、成本低和能耗省的特点。在智能机、平板电脑、嵌入控制、多媒体数字等处理器领域拥有主导地位。
6.谁有arm的资料和相关的开发例子
1985年4月26日,第一个ARM原型在英国剑桥的Acorn计算机有限公司诞生,由美国加州SanJoseVLSI技术公司制造。
20世纪80年代后期,ARM很快开发成Acorn的台式机产品,形成英国的计算机教育基础。 1990年成立了Advanced RISC Machines Limited(后来简称为ARM Limited,ARM公司)。
20世纪90年代,ARM 32位嵌入式RISC(Reduced lnstruction Set Computer)处理器扩展到世界范围,占据了低功耗、低成本和高性能的嵌入式系统应用领域的领先地位。ARM公司既不生产芯片也不销售芯片,它只出售芯片技术授权。
1991 年 ARM 公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用 ARM技术知识产权( IP )核的微处理器,即我们通常所说的 ARM 微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于 ARM 技术的微处理器应用约占据了 32 位 RISC 微处理器 75 %以上的市场份额, ARM 技术正在逐步渗入到我们生活的各个方面。
ARM 公司是专门从事基于 RISC 技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的 ARM 微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的 ARM 微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用 ARM 公司的授权,因此既使得 ARM 技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。
ARM处理器的三大特点是:耗电少功能强、16位/32位双指令集和众多合作伙伴。 ARM商品模式的强大之处在于它在世界范围有超过100个的合作伙伴(Partners)。
ARM 是设计公司,本身不生产芯片。采用转让许可证制度,由合作伙伴生产芯片。
当前ARM体系结构的扩充包括: ·Thumb 16位指令集,为了改善代码密度; ·DSP DSP应用的算术运算指令集; ·Jazeller 允许直接执行Java字节码。 ARM处理器系列提供的解决方案有: ·无线、消费类电子和图像应用的开放平台; ·存储、自动化、工业和网络应用的嵌入式实时系统; ·智能卡和SIM卡的安全应用。
ARM处理器本身是32位设计,但也配备16位指令集。一般来讲存储器比等价32位代码节省达35%,然而保留了32位系统的所有优势。
ARM的Jazelle技术使Java加速得到比基于软件的Java虚拟机(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80%。CPU功能上增加DSP指令集提供增强的16位和32位算术运算能力,提高了性能和灵活性。
ARM还提供两个前沿特性来辅助带深嵌入处理器的高集成SoC器件的调试,它们是嵌入式ICE-RT逻辑和嵌入式跟踪宏核(ETMS)系列。 当前有5个产品系列——ARM7、ARM9、ARM9E、ARM10和SecurCore。
1、ARM7系列 优化用于对价位和功耗敏感的消费应用的低功耗32位核,有: ·嵌入式ICE-RT逻辑; ·非常低的功耗; ·三段流水线和冯·诺依曼结构,提供0.9MIPS/MHz。 2、SecurCore SC100特为安全市场设计,带特定的抗拒窜改和反工程的特性。
还带灵活的保护单元确保操作系统和应用数据的安全。 3、ARM9系列 高性能和低功耗领先的硬宏单元,带有: ·5段流水线; ·哈佛结构提供1.1MIPS/MHz。
ARM920T和ARM922T内置全性能的MMU、指令和数据cache和高速AMBA总线接口。AMBA片上总线是一个开放标准,已成为SoC构建和IP库开发的事实标准。
AMBA先进的高性能总线(AHB)接口现由所有新的ARM核支持,提供开发全综合设计系统。 ARM940T内置指令和数据cache、保护单元和高速AMBA总线接口。
4、ARM9E系列 可综合处理器,带有DSP扩充和紧耦合存储器(TCM)接口,使存储器以完全的处理器速度运转,可直接连接到内核上。 ARM966E-S用于硅片尺寸重要,而对cache没要求的实时嵌入式应用,可配置TCM大小:0、4K、8K、16K,最大达64M。
ARM946E-S内置集成保护单元,提供实时嵌入式操作系统的cache核方案。 ARM926ET-S带Jazelle扩充、分开的指令和数据高速AHB接口及全性能MMU。
VFP9 向量浮点可综合协处理器进一步提高ARM9E处理器性能,提供浮点操作的硬件支持。 5、ARM10系列 硬宏单元,带有: ·64位AHB指令和数据接口; ·6段流水线; ·1.25MIPS/MHz; ·比同等的ARM9器件性能提高50%。
两种新的先进的节能方式得到了异常低的耗电。VFP10协处理器完善地依从ARM10器件提供高性能的浮点解决方案。
ARM微处理器的应用选型 鉴于ARM微处理器的众多优点,随着国内外嵌入式应用领域的逐步发展,ARM微处理器必然会获得广泛的重视和应用。但是,由于ARM微处理器有多达十几种的内核结构,几十个芯片生产厂家,以及千变万化的内部功能配置组合,给开发人员在选择方案时带来一定的困难,所以,对ARM芯片做一些对比研究是十分必要的。
以下从应用的角度出发,对在选择ARM微处理器时所应考虑的主要问题做一些简要。
7.自学ARM嵌入式应该先从哪些知识入手
嵌入式Linux操作系统学习规划 ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标: (1) 掌握主流嵌入式微处理器的结构与原理(初步定为arm9) (2) 必须掌握一个嵌入式操作系统 (初步定为uclinux或linux,版本待定) (3) 必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。
从事嵌入式软件开发的好处是: (1)目前国内外这方面的人都很稀缺。这一领域入门门槛较高,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,大多数人无条件接触。
(2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。 (3)哪天若想创业,搞自已的产品,嵌入式不像应用软件那样容易被盗版。
硬件设计一般都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。 (4)兴趣所在,这是最主要的。
从事嵌入式软件开发的缺点是: (1)入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操作系统级软件功底不深,则可能不适于此行。 (2)这方面的企业数量要远少于企业计算类企业。
(3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。
(4)平台依托强,换平台比较辛苦。 兴趣的由来: 1、成功观念不同,不虚度此生,就是我的成功。
2、喜欢思考,挑战逻辑思维。 3、喜欢C C是一种能发挥思维极限的语言。
关于C的精神的一些方面可以被概述成短句如下: 相信程序员。 不要阻止程序员做那些需要去做的。
保持语言短小精干。 一种方法做一个操作。
使得它运行的够快,尽管它并不能保证将是可移植的。 4、喜欢底层开发,讨厌vb类开发工具(并不是说vb不好)。
5、发展前景好,适合创业,不想自己要死了的时候还是一个工程师。 方法步骤: 1、基础知识: 目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是操作系统级软件,那将是我的优势。
科目:数字电路、计算机组成原理、嵌入式微处理器结构。 汇编语言、C/C++、编译原理、离散数学。
数据结构和算法、操作系统、软件工程、网络、数据库。 方法:虽科目众多,但都是较简单的基础,且大部分已掌握。
不一定全学,可根据需要选修。 主攻书籍:the c++ programming language(一直没时间读)、数据结构-C2。
2、学习linux: 目的:深入掌握linux系统。 方法:使用linux—〉linxu系统编程开发—〉驱动开发和分析linux内核。
先看深,那主讲原理。看几遍后,看情景分析,对照深看,两本交叉,深是纲,情是目。
剖析则是0.11版,适合学习。最后深入代码。
主攻书籍:linux内核完全剖析、unix环境高级编程、深入理解linux内核、情景分析和源代。 3、学习嵌入式linux: 目的:掌握嵌入式处理器其及系统。
方法:(1)嵌入式微处理器结构与应用:直接arm原理及汇编即可,不要重复x86。 (2)嵌入式操作系统类:ucOS/II简单,开源,可供入门。
而后深入研究uClinux。 (3)必须有块开发板(arm9以上),有条件可参加培训(进步快,能认识些朋友)。
主攻书籍:毛德操的《嵌入式系统》及其他arm9手册与arm汇编指令等。 4、深入学习: A、数字图像压缩技术:主要是应掌握MPEG、mp3等编解码算法和技术。
B、通信协议及编程技术:TCP/IP协议、802.11,Bluetooth,GPRS、GSM、CDMA等。 2010-8-21 16:46 回复 122.90.173.* 2楼 C、网络与信息安全技术:如加密技术,数字证书CA等。
D、DSP技术:Digital Signal Process,DSP处理器通过硬件实现数字信号处理算法。 说明:太多细节未说明,可根据实际情况调整。
重点在于1、3,不必完全按照顺序作。对于学习c++,理由是c++不只是一种语言,一种工具,她还是一种艺术,一种文化,一种哲学理念、但不是拿来炫耀得东西。
对于linux内核,学习编程,读一些优秀代码也是有必要的。 注意: 要学会举一反多,有强大的基础,很多东西简单看看就能会。
想成为合格的程序员,前提是必须熟练至少一种编程语言,并具有良好的逻辑思维。一定要理论结合实践。
不要一味钻研技术,虽然挤出时间是很难做到的,但还是要留点余地去完善其他的爱好,比如宇宙,素描、机械、管理,心理学、游戏、科幻电影。还有一些不愿意做但必须要做的! 技术是通过编程编程在编程编出来的。
永远不要梦想一步登天,不要做浮躁的人,不要觉得路途漫上。而是要编程编程在编程,完了在编程,在编程!等机会来了在创业(不要相信有奇迹发生,盲目创业很难成功,即便成功了发展空间也不一定很大)。
嵌入式书籍推荐 Linux基础 1、《Linux与Unix Shell 编程指南》 C语言基础 1、《C Primer Plus,5th Edition》【美】Stephen Prata着 2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)着 3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE) 4、《嵌入式Linux应用程序开发详解》 Linux内核 1、《深入理解Linux内核》(第三版) 2、《Linux内核源代码情景分析》毛德操 胡希。
8.为什么要学习或了解嵌入式相关的知识
主要有以下几点原因(从其有点方面分析):
1. 是“专用”的计算机系统
嵌入式系统通常是面向特定任务的,而不同于一般通用PC计算机平台,是“专用”的计算机系统
2. 运行环境差异大
嵌入式系统无处不在,但运行环境差异很大,可运行在飞机上、冰天雪地的两极中、骄阳似火的汽车里、要求温度恒定的实验室等,特别是在恶劣的环境或突然断电的情况下,要求系统仍然能正常工作。
3. 比通用PC系统资源少
通用的PC系统有数不胜数的系统资源,可轻松的完成各种工作,嵌入式形系统由于是专用来执行很少的几个确定任务,它所能管理的资源比通用PC系统少很多
4. 功耗低、体积小、集成度高、成本低
嵌入式系统嵌入到对象体中,对对象环境和嵌入式系统自身具有严格的要求,一般嵌入式系统具有功耗低、体积小、集成度高、成本低等特点。
5. 具有系统测试和可靠性评估体系
建立完整的嵌入式系统的系统测试和可靠性评估体系、保证嵌入式系统高效、可靠稳定的工作。
6. 具有较长的生命周期
嵌入式系统是和实际具体应用有机结合的产物,它的升级换代也是和具体产品同步进行的,因此一旦定型进入市场,一般具有较长的生命周期。
7. 具有固化在非易失性存储器中的代码
嵌入式系统的目标代码通常是固化在非易失性存储器和芯片中,嵌入式系统开机后,必须有代码对系统进行初始化,以便其余代码能正常运行,为了系统初始化几乎所有系统都要在非易失性存储器中存放部分代码。
8. 使用实时操作系统RTOS
嵌入式系统使用的操作系统一般是实时操作系统RTOS,系统有实时结束。
9.需要专用开发工具和方法进行设计
从调试的观点看,代码在ROM中意味着调试器不能在ROM中设置断点,要设置断点,调试器必须能够用特殊指令取代用户指令,嵌入式调试已发展出支持嵌入式系统开发过程的专用工具套件。
10.包含专用调试电路
目前常用的嵌入式微处理器叫过去相比,最大区别是芯片上都包含专用调试电路,如ARM的Embedded
ICE。芯片必须能够提供很好的嵌入式测试方案,解决嵌入式调试问题。这样才能使面临上市压力的应用开发者在考虑其嵌入式系统芯片时,采用这些厂商芯片。
11.是知识集成系统
嵌入式系统是技术密集,资金密集、高度分散、不断创新的知识集成系统,嵌入式系统是将先进的计算机技术、半导体工艺、电子技术、和通信网络技术与各领域的具体应用相结合的产物,应用前景和巨大的发展潜力成为二十一世纪IT技术发展的热点之一。