ARM初探
- 格式:doc
- 大小:323.50 KB
- 文档页数:7
ARM初学入门经过一段时间对arm的学习,在这里跟大家说一些前期的学习经验,另外仅以一个例子说明一下ads的开发过程,因为这也是初学,可能有的地方说的不太好,望大家谅解,另外可以找其它参考资料来学习。
第一部分:arm的早期学习经验个人认为,要想学好arm应该首先对arm的整体框架(包括arm体系结构,arm开发过程,及arm程序框架及执行过程等)有一个了解。
这里这就不多说了,这些东西我也只是刚刚开始学习,还没有很好的掌握,就只说一些个人想法吧。
呵呵,因为时间紧,据说要在一周内完成。
至少你可以用书做一点,但上周之后,最后,哇,我真的疯了。
当我第一次得到这个实验盒时,我认为和NIOS一样,我几乎可以玩更多的演示。
一开始我没想到会遇到大问题。
我在arm实验箱里带了几本教科书和实验说明。
在用实验说明做了几次演示后,我没能做到这一点,因为前两次演示相对简单,只需用汇编语言编写一些关于arm寄存器操作的语句,那些学习过汇编语言的人很快就能理解。
但未来会有所不同,因为我在学习之初不知道ARM项目的框架。
我真的不明白。
为什么44B在整个过程中都有用。
h、 44B。
还有一个44binit的文件吗?前三个很容易理解。
那些玩过MCU的人可以很容易地看到44B H在S3C44B0X中定义了一些寄存器,44blib H和44blib C定义了一些初始化函数,而44binit S?我不明白。
我不能在这里做arm程序。
我必须在互联网上找到信息,看看这个功能是用来做什么的。
事实证明,这是我以前经常听到的“bootloader”或“boot code”或“arm boot program”,这是处理器启动时执行的一段代码,主要任务是初始化处理器模式,设置堆栈,初始化变量等由于上述操作与处理器架构和系统配置密切相关,它们通常是由汇编编写的(对于此内容,您可以查看相关资料)。
所以我花了几天时间研究文件“44binit.S”。
通过对本文档的研究,我学到了很多关于arm编程的知识,并对arm编程的总体框架有了大致的了解。
极术公开课本PPT由极术社区提供,如需要观看回放请前往极术社区周易AIPU 初探Alvin YangArm China AI Product全志语音芯片R329集成Arm中国“周易”AIPUAgenda•周易AIPU 是什么•周易AIPU 能做什么•周易AIPU 怎么使用•IP for NN processing designed by Arm China•Innovative Architecture for NN processing•Hardware and Software for NN processing•Flexible and Excellent PPAZhouyi AIPUSecurity AIFix Function Local Mem SystemZhouyi AIPUT ensor Exe.Cell Scalar UnitT ensor Exe.Cell T ensor Exe. Cell T ensor Exe. CellOur Vision:Enable Every Device IntelligenceMobileIoT SurveillanceHome CloudRoboticsAutomotiveVR/MRSilicon PartnerOne chip sell to more OEMsproductsOEM ProductsRun Different Algorithms•Popular open algorithms •SSD/Resnet/Segnet …•CNN/RNN/LSTM…•OEM in-house algorithms or 3rd party development •Customize layer•High utilization to support all pre-define layer/OPProgrammabilityFlexibleAI Solution•Vector/TensoroSuper set state-of-the-art general purpose vector/tensor instructions•AI Fix Function by ISA-ext.oInstructions extension with custom hard-wired accelerators for specific Operations •ScalaroNecessary general purpose scalar instructions for NN Compute•Optional security extension •Optional customize extensionZhouyi AIPU Architecture for NN ProcessingSecurity AIFix Function Local Mem SystemZhouyi AIPUT ensor Exe. Cell Scalar UnitT ensor Exe.Cell T ensor Exe. Cell T ensor Exe.CellFullyProgrammableExtreme Efficiency BalancedAI SolutionZhouyi AIPU•Multi-TEC (Tensor Execution Cell )oFully Programable for any NN OP/Layer•AI Fix FunctionoConvolution and Inner Product o Pooling o ActivationoOther optimized OPScalable Configuration from 0.2TOPS to Dozens TOPSAIFix Function Flexible Config TEC numberAI FF Performance CategoryT ensor Exe. Cell T ensor Exe.Cell T ensor Exe. Cell T ensor Exe. CellAI Fix Function AI Fix Function AI Fix FunctionAI Key ElementEcosystemSoftwareHardwareAlgorithmApplicationDeveloperBuildRuntimeDriverFirmwareSchedulerSimulatorCPUGPU/DSP Dedicate AI EngineFull Stack of AI PlatformAI Applications / AlgorithmArm Cortex CPU Arm Mali GPU Arm China AIPUCompute LibraryHCLRuntime (Tengine/Arm NN/Android NN)AIPU DriverBuild ToolCompilerProfilerDebuggerSimulatorZhouyi AIPU Toolchain3rd Party Runtime•Unified ISA include both Implicit and Explicit programming models•Easy to useoA TensorFlow model as input to Build Tool , generate AIPU.binoHost CPU run runtime/driver o config job to ZhouyioZhouyi run the model (while CPU could sleep )oFinish and interrupt to host CPUEasy to Use AIPU SDKNN ModelsZhouyi ExecutableRichLibrariesT ensor Vector FF ISA-ext.An Example AI SOCZhouyi AIPUCortex-A77AXI Bus NIC-450•Cortex A77 + Cortex-A55•64bit arm v8.2, DynimIQ •Big.Little•Zhouyi AIPU•Domain flexible to fit different kind of requirement •ISP•HDR, NR•Video Codec•Mali-V52/V76, 4K, H.265,H264•GPU/Display/BusISPSensorMali-Video GPUCortex-A55Juno development board + logic tile FPGA extension •OS Linux•CPU Cortex-A53 MP2•Zhouyi Z1-0904 FPGA •HDMI display •4x USB PortASIC development Board will come soonZhouyiDevelopment BoardZhouyi SummaryArm CPU/GPU/AI Best EcosystemFully Programmability High FlexibilityUnified Architecture Best EfficiencyAlgorithm + SDK + HW T otal SolutionT rustzone+ Security ext.Best Security。
ARM介绍为什么它成为了军事装备的核心技术ARM(Advanced RISC Machines)是一种基于精简指令集(RISC)架构的处理器设计。
它在军事装备领域发挥了重要作用,并成为了核心技术。
本文将介绍ARM的特点以及它在军事装备中的应用。
一、ARM的特点ARM处理器具有以下几个核心特点,这些特点使得它成为了军事装备的核心技术。
1. 低功耗:ARM处理器采用RISC架构,指令集精简,具有高效能耗比。
这对于战场设备来说是至关重要的,因为它们通常需要长时间的工作,并且需要使用电池供电。
低功耗的ARM处理器可以延长电池使用时间,提高装备的持久性和可靠性。
2. 高性能:尽管ARM处理器功耗较低,但它的性能并不受影响。
ARM处理器的设计注重优化,它采用了多级流水线技术和分支预测等技术来提高处理器的运行效率。
这使得ARM处理器在军事装备中能够处理高强度的计算任务,保证设备的性能和稳定性。
3. 可定制性:ARM处理器具有模块化的设计,可以根据不同的需求进行定制。
这对于军事装备来说非常重要,因为不同的装备对处理器的要求可能不同。
ARM处理器的可定制性使得它能够满足各种不同的应用场景的需求,提供定制化的解决方案。
4. 易于集成和互操作:ARM处理器可以方便地集成到其他硬件设备中,如传感器、通信模块等。
它也支持多核和对称多处理器(SMP)配置,实现多个处理器之间的互操作。
这种灵活性和互操作性使得ARM处理器在军事装备的应用中具有很大的优势。
二、ARM在军事装备中的应用ARM处理器广泛应用于军事装备中,它在提高装备性能和功能方面发挥了重要作用。
1. 无人机和导弹系统:无人机和导弹系统需要高性能的处理器来提供实时计算和控制。
ARM处理器的高性能和低功耗特点使得它成为无人机和导弹系统的首选处理器。
它可以实时计算飞行轨迹、导航和攻击目标等任务,并能够同时处理多个传感器的数据。
2. 侦察和监视系统:军事侦察和监视系统需要处理大量的图像和视频数据。
arm工作原理ARM(Advanced RISC Machines)是一种基于精简指令集(RISC)架构的处理器设计。
它的工作原理是通过执行一系列指令来完成特定的任务。
在本文中,我们将深入探讨ARM的工作原理,包括指令集、寄存器、流水线执行以及内存管理等方面。
一、指令集ARM采用了精简指令集(RISC)架构,指令集非常简洁,但功能强大。
它包括基本的算术和逻辑操作指令,以及用于控制流程的分支和跳转指令。
此外,ARM还提供了一些专门用于处理数据的指令,如移位、扩展和加载/存储指令等。
二、寄存器ARM处理器拥有一组通用寄存器,用于存储和操作数据。
这些寄存器是ARM架构的核心组成部分,它们的数量和功能会因不同的ARM版本而有所不同。
通常情况下,ARM处理器具有16个通用寄存器,每个寄存器的大小为32位。
这些寄存器可以用于存储临时数据、函数参数、局部变量以及其他计算所需的数据。
三、流水线执行ARM处理器采用了流水线执行的方式来提高指令的执行效率。
流水线执行将指令的执行过程分为多个阶段,并将不同的指令并行执行。
这样一来,当一个指令正在执行的同时,下一条指令的取指、译码和执行等操作也可以同时进行,从而提高了处理器的整体性能。
四、内存管理ARM处理器支持虚拟内存管理,这使得操作系统能够为每个应用程序提供独立的内存空间。
ARM使用了一种称为页表的数据结构来实现虚拟内存管理。
页表将虚拟地址映射到物理地址,从而使每个应用程序都能够独立地访问自己的内存空间,提高了系统的安全性和稳定性。
五、异常处理ARM处理器具有强大的异常处理机制,可以处理各种异常情况,如中断、系统调用和数据访问异常等。
当发生异常时,ARM会根据预定义的异常处理程序来处理异常,并在处理完异常后返回到原来的执行状态。
这种异常处理机制使得ARM处理器能够更好地应对不同的应用场景和故障情况。
六、功耗管理ARM处理器在设计时考虑了功耗管理的重要性。
它采用了一系列的技术来降低功耗,如动态电压调节、时钟门控和功率管理单元等。
Cortex-M3权威指南J oseph Yiu 著宋岩 译译序我接触ARM的历史约4年,早期是很欣赏这类处理器,到了后来切身使用它们的机会越来越多,慢慢地有了感觉,也更加喜欢了。
在偶然听说Cortex‐M3后,我就冥冥地感到它不寻常。
只是因为其它工作一直没有去了解它,直到今年初才进一步学习,很快就觉得相知恨晚。
当时只能看ARM官方的重量级资料,在看到这本书的英文原稿后,更感觉被电到了一样,于是突然有了把它翻译成中文的冲动。
经过累计约150个小时的奋战,终于有了此译稿。
在翻译过程中,我始终采用下列指导思想:1.尽量使用短句,并且把句子口语化。
我认为高深的道理不一定要用高级的语法句型才能表达。
想想看,即使是几位博士互相聊天讨论一个课题,也还是使用口语吧,而且火花往往就是在这种讨论中产生呢!2.多用修辞方法,并且常常引用表现力强的词汇——甚至包括网络用语和脍炙人口的歌词。
另外,有时会加工句子,使得风格像是对话。
这样做的目的是整个文风更鲜活——有点像为写出高分作文而努力的样子。
这点可能与很多学术著作的“严肃、平实”文风不同,也是一次大胆的尝试。
还希望读者不吝给予反馈。
3.在“宏观”上直译,在“微观”上意译。
英语不仅单一句子的语法和汉语不同,并且句子的连贯方式也与汉语不同。
因此在十几个到几十个单词的范围内,我先把它们翻译成脑子里的“中间语言”,再把中间语言翻译成汉语。
这样,就最大地避免了贻笑大方的“英式汉语”。
4.有些术语名词不方便翻译成汉语,或者目前的翻译方式不统一,或者与其它术语翻译的结果很接近,如error和fault,就只能用英语意会。
此时我就保留英文单词,相信这样比硬生生地翻译成汉语还好。
这些词汇主要是:retarget, fault, region等。
另外,英文中有一个很能精练表达“两者都”意思的单词及其用法:”both”,我也常常保留之。
5.图表对颜色的使用比较丰满,尤其是比较大型的插图,相信这样能帮助读者分析和理解。
ARM架构知识科普ARM架构,过去称作高级精简指令集机器(英语:Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。
但在其他领域上也有很多作为,由于节能的特点,ARM处理器非常适用于移动通信领域,匹配其主要设计目标为低成本、高性能、低耗电的特性。
另一方面,超级计算机消耗大量电能,ARM同样被视作更高效的选择。
至2009年为止,ARM架构处理器占市面上所有32位嵌入式RISC处理器90%的比例,使它成为占全世界最多数的32位架构之一。
ARM处理器可以在很多消费性电子产品上看到,从便携式设备(PDA、移动电话、多媒体播放器、掌上型电子游戏和计算机)到电脑外设(硬盘、桌面型路由器),甚至在导弹的弹载计算机等军用设施中都有他的存在。
在此还有一些基于ARM设计的衍伸产品,重要产品还包括Marvell的XScale架构和德州仪器的OMAP系列。
2011年,ARM的客户报告79亿ARM处理器出货量,占有95%的智能手机、90%的硬盘驱动器、40%的数字电视和机上盒、15%的微控制器、和20%的移动电脑[3]。
在2012年,微软与ARM科技生产新的Surface平板电脑,AMD宣布它将于2014年开始生产基于ARM核心的64位服务器芯片,2016年,富士通宣布下一代“京”超级计算机将采用ARM架构。
2016年7月18日,日本软银集团斥资3.3万亿日元,约合311亿美元将ARM的设计公司ARM Holdings收购。
特色和应用自2005年,每年超过一亿的手机销售约98%至少使用了一个ARM处理器。
截至2009年,占大约90%的所有嵌入式32位RISC处理器[7]和ARM处理器被广泛使用在消费性电子产品,包括个人数字助理(PDA)、平板电脑、移动电话、数字媒体和音乐播放器、手持式游戏游戏机、计算器和计算机外围设备(如硬盘驱动器和路由器)。
ARM介绍为什么它是物联网时代的核心技术在物联网时代,无数设备和物品通过互联网相互连接,形成智能化的生态系统。
而作为这个生态系统的核心技术之一,ARM架构发挥着不可替代的重要作用。
本文将介绍ARM的基本概念和特点,分析为何ARM成为物联网时代的核心技术。
一、ARM架构简介ARM(Advanced RISC Machine)是一种基于精简指令集(RISC)的处理器架构。
它由ARM公司(现为英特尔的子公司)开发,并成为全球最流行的处理器架构之一。
ARM处理器广泛应用在智能手机、平板电脑、家电、车载设备等各类物联网终端设备中。
二、ARM架构的特点1. 低功耗:ARM架构采用精简指令集,精简了指令集的数量和复杂性,从而大大降低了功耗。
对于物联网设备来说,功耗是非常重要的考虑因素之一,因为它们通常需要长时间运行,并且使用电池供电。
2. 高性能:尽管ARM架构在指令数量上比复杂指令集(CISC)架构少,但通过优化和提高单指令执行效率,ARM处理器在相同主频下可以实现比CISC架构更好的性能表现。
这对于处理物联网设备中的海量数据和进行复杂计算任务非常重要。
3. 灵活性:ARM架构采用模块化设计,可以根据不同设备的需求进行灵活的定制。
这使得ARM处理器能够适应各种不同的物联网终端设备,从而满足不同场景下的需求。
4. 可靠性:ARM架构具有强大的稳定性和可靠性。
在物联网时代,设备需要长时间运行且具备高可靠性,因为它们通常处于无人监管的环境中。
ARM处理器能够提供稳定可靠的工作性能,确保设备的正常运行。
三、ARM在物联网时代的应用1. 智能家居:智能家居是物联网时代的重要应用场景之一,通过连接家庭中的各种设备来提高生活质量和便利性。
ARM处理器能够满足智能家居对于低功耗和高性能的要求,为家庭设备提供强大的计算和互联能力。
2. 智能交通:随着智能交通的发展,各种车载设备需要更高的计算能力和低功耗。
ARM处理器在车载导航、智能驾驶和车载娱乐系统中得到广泛应用,发挥支持智能交通的核心作用。
ARM体系架构解析ARM是一种广泛应用于嵌入式系统和移动设备上的处理器架构。
它具有低功耗、高效率和高性能的特点,因此在各个领域都有着广泛的应用。
本文将对ARM体系架构进行解析,并探讨其特点和优势。
首先,ARM架构具有低功耗的优势。
由于应用于嵌入式系统和移动设备中,功耗对于设备的续航能力至关重要。
ARM处理器通过使用精简指令集架构(RISC)来实现低功耗,即通过减少指令数量和时间来提高性能。
这使得ARM架构的处理器能够在相同功率下提供更高的性能。
其次,ARM架构具有高效率的特点。
ARM处理器的架构设计使其能够更好地利用计算资源,提高处理器的运算效率。
ARM处理器具有乱序执行、分支预测和指令重排等功能,可以最大限度地减少指令冲突,提高指令执行的并行性。
这使得ARM架构的处理器在相同主频下能够获得更高的性能。
此外,ARM架构还具有高度的可扩展性和灵活性。
ARM处理器可以通过添加不同的功能模块和协处理器来满足不同的应用需求。
例如,可以添加浮点运算单元、硬件加速器或者专用芯片来处理特定的任务。
这使得ARM架构的处理器能够根据不同的应用需求进行优化,提供更好的性能表现。
最后,ARM架构在应用生态系统方面具有独特的优势。
ARM架构被广泛应用于嵌入式系统和移动设备中,因此具有庞大的生态系统。
开发者可以利用现有的软件库、工具和应用程序来快速开发基于ARM架构的应用。
同时,由于ARM架构在全球广泛应用,存在大量的技术和经验文档可供参考,使得开发者能够更加方便地进行开发和优化。
总之,ARM体系架构是一种低功耗、高效率和高度可扩展的处理器架构。
其灵活性和广泛的应用生态系统使得ARM架构成为各个领域的首选处理器架构。
无论是移动设备、嵌入式系统还是物联网设备,ARM架构都能够提供卓越的性能和功耗优势,满足不同应用需求的同时开发者也能够更加方便地进行工作。
一.初探
4月1日入手友善mini2440。
先看了下板子,感觉没什么稀奇的,s3c2440总线上外挂SDRAM(对这个不是很感冒,之前搞过一个FPGA的SDRAM控制器),NOR . flash,Nand Flash, Enternet PHY +MAC 芯片。
心里视乎有点数了--------程序烧在Flash里,上电后s2c2440把代码从Flash调入DRAM执行…..直觉上想. . 到应该有一个程序来完成copy的事,但是这个程序本是如何被最先调入Dram的呢(后边谈)。
. 接着打光盘里友善的手册,大致翻了一下,发现说的全是基于操作系统的编程和一点基本的操作,对初学的我来说掩盖了太多底层的细节。
. 本人专业是电气工程及其自动化,结合自己的情况我觉得应该先把Arm当单片机使更合适些。
1. 基于上边的想法我应该先从硬件上入手
(1)先搞清S3C2440里边到底有什么东西,是什么东西?不用说直奔Datasheet去了。
手册里的一张图解决了我的疑问
(原文件名:s3c2440.JPG)
引用图片
S3C2440 = Arm920T + 挂在AHB上的一堆东西 + 挂在APB上的一堆东西
ARM920T = ARM920TDMI + 一堆东西
S3C2440里的外设都还好搞定,照着Datasheet来就行了。
下边重点落到了ARM920T上
(2)了解ARM920T
明确目的后直奔 点击Documention链接
(原文件名:arm header.JPG)
引用图片
资料前几天已经上传
/bbs/bbs_content.jsp?bbs_sn=3275791&bbs_page_no=1&bbs_id=1032
(原文件名:arm9TRM.JPG)
引用图片
原来ARM920T = ARM9TDMI(CPU 核心) + MMU(内存管理单元-------内存保护,地址映射)在ARM920T_TRM1_S.pdf里了解到
(原文件名:what is ARM920T.JPG)
引用图片
到此为止我已经有了S3C2440的总体概念
S3C2440 = ARM9TDMI + MMU + 与AHB(高级高性能总线)互联的外设 + 与APB(高级外设总线)互联的设备
二.整理思路,制定学习计划
1 .硬件上
Ok现在基本上搞清状况了,至少知道自己在和什么东西打交道,思路清晰后我理出学习计划:(1)学习S3C2440的使用,须从ARM9TDMI开始,具体的说ARM9TDMI的指令集,寻址方式……处理器状态,中断等(练习通过ADS在计算机上仿真) .
(2)学习与ARM9TDMI 相伴左右的MMU的知识,如何实现能内存保护,虚地址到物理地址转换…..从这几天的研究看这些主要是通过协处理器CP15控制 . 的。
(前边说了ARM920T = ARM920TDMI + MMU 上边的搞定了ARM920T自然也就搞定了)
(3)学习S3C2440内外设的使用如lcd控制器,看门狗,定时器,实时钟,usb…..主要是S3C2440 Datasheet 里的内容了,可以针对每个单独外设编写 . 程序练习。
先学串口的使用,这对后边的的学习帮助较大,因为把程序运行结果从串口发到PC验证程序比较方便。
2. 软件上
既然选了带MMU的ARM就一定是想跑操作系统的
我计划是Linux方向
内核移植◊软件移植-----◊Linux驱动编写----◊一般Linux程序设计------◊(1)(偏硬方向)Liunx基本操作(命令行)----
网路编程,qt图形界面编程……◊一般Linux程序设计-------◊(2)(偏软方向)Linux基本操作(命令行)--- (需要有基础知识--------汇编,C,c++,操作系统…)
3. 工具链使用
(1)编程工具
Windows平台下:
Windows平台下好想主要有这几种IDE:ads,keil,iar
初期学习选择最不方便的-------ADS(当然还有更不不方便的比如直接在命令行编译,汇编,链接)
Linux平台下:
Gcc,汇编器,链接器使用
(2)调试工具
mini2440自配的H-JATG, Jlink等调试器代理的使用和在IDE中如何配置
以上是我的学习思路和计划
三.寻找最初成就感
上边说了,我准备先把S3C2440当单片机用,下边是我的第一个Arm程序-------Led流水灯
运行平台:友善mini2440
是否需要操作系统支持:否
根据mini2440开发板光盘程序稍作修改所得
点击此处下载ourdev_433343.rar(文件大小:63K)(原文件名:Led.rar)
程序很简单,最难的就是启动代码那块(直接用的光盘里的启动代码,最近在研究启动那块),其实启动代码本身并不难,就是完成以下几个功能
1.初始化堆栈,
2.设置中断,
3.初始化外设,时钟
4. 切换处理器模式
5.跳转到用户程序入口
程序可以直接通过supervivi下载到内存运行,因为程序小于4K所以也可以直接烧在Nand flash运行(因为S3C2440支持从Nand引导,片内带有4kSRam用于运行bootloader,就是前边说的用来copy的一小段bootloader)
arm的指令集还不熟,独立写一个启动代码还不行,过几天吃透了,单独发一贴谈谈启动代码。
刚学5天,也不可能有太大进展,主要用这几天理清思路,欢迎大虾指正!。