热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c/c++开发分享如何从ARM处理器开始?

是否可以直接从ARM处理器的数据表和用户手册开始为新手或首先了解ARM世界然后继续?在这个相关问题的答案中描述了几个好的资源:此外,Hitex还为基于ARM处理器的几种不同微控制器

是否可以直接从ARM处理器的数据表和用户手册开始为新手或首先了解ARM世界然后继续?

    在这个相关问题的答案中描述了几个好的资源:

    此外,Hitex还为基于ARM处理器的几种不同微控制器提供了“Insider’s Guides”(免费,但需要注册):

    其中大部分(如果不是全部)都是免费下载(我认为它们是由微控制器制造商赞助的)。 它们更适合微控制器,而不仅仅是ARM的细节,但它们确实包含了一些ARM细节,并且它们是微观和微处理器外围设备的精彩概述。

    当我开始使用新的(对我而来)技术时,我首先要找到尽可能多的数据表和应用笔记,然后直接阅读它们。 第一个目标是加快该技术独有的行话(以及球员的名字)的速度。

    在ARM中,我将从www.arm.com开始,以及他们在ARM信息中心的文档。

    更新:我还将深入了解一个或多个制造商的产品系列,包括阅读至少一个家庭程序员手册。 如果您的项目计划足够坚固以至于您知道将使用哪种特定的ARM CPU,那么您可以专注于该特定模型及其近亲。 如果您希望熟悉ARM以便可以选择要在项目中使用的CPU,那么对各种系列进行采样几乎肯定是最好的计划。

    有很多ARM技术许可证持有者 。 其中,一些制造商拥有产品(基于ARM内核的CORTEX-M3风格),IMHO在深度嵌入式系统应用中脱颖而出。

    我的公司正在进行基于ST Microelectronics的STM32系列的项目。 该系列具有许多片上外设,其function对于来自8051世界或PIC世界的任何人来说都是熟悉的,并且在芯片上具有足够的FLASH和SRAM以使外部存储器可选。

    我从Luminary Micro那里听到了很多关于Stellaris系列的积极信息。 它看起来非常适合许多嵌入式平台需求。

    鉴于入门级评估板的当前价格点,我强烈建议购买一个或多个芯片,类似于您预期的目标应用市场。 STM32可以安装带有小型LCD,加速度计,一对LED或两个按钮的电路板,访问未提交的GPIO引脚,内置JTAG USB接口以及完整的基于GCC的交叉开发工具链(例如,在100美元的球场中,2009年的价格低于40美元,但该型号已经停产。

    许多其他基于ARM内核的产品都可以找到类似的软件包。

    发现ARM的另一种方式是作为芯片系统中的CPU核心。 相当多的SOC供应商正在授权ARM CPU与他们的专用硬件一起使用他们的芯片。 我已经看到了video压缩芯片,网络芯片,ATA适配器的火线以及以这种方式构建的USB设备,这只是我发布的文章和新闻稿的一个例子,我碰巧从袖口回忆起来。

    更新2013年2月:在Raspberry Pi和各种Beagle系列主板中可以看到“典型”基于ARM的SOC系列的一个非常容易进入的入口点。 两者都针对实验者和业余爱好者,都使用带有ARM内核的SOC和video和音频function等其他资源,并且都开箱即用。

    模块制造商还提供丰富多样的系统,提供夹层板,其中包含一个完整的可引导系统,可安装在定制板上,提供特定嵌入式系统所需的电源和I / O连接器。 其中一家供应商是Gumstix 。 Gumstix AirSTORM提供Wi-Fi,蓝牙,DRAM,NAND FLASH和TI OMAP3 ARM SOC。 合适的载板可以支持LCD面板或HDMI,10/100以太网,USB主机和OTG,以及线路级模拟音频连接,以及对各种附加GPIO引脚和片上外设的访问。

    我建议买一个BeagleBoard 。 它们具有JTAG支持,因此您可以看到硬件中发生了什么,类似于硬件调试器。 有几个Linux版本在其上运行。 周围还有一个很棒的社区,可以帮助您使用它。 我在我的Ubuntu Jaunty上运行,所以你可以运行的实用程序和编译器没有结束。

    我会和冲浪sparkfun.com,他们携带olimex板,以及自己的。 Luminary Micro / stellaris也很好。 beagleboard更像是一个Linux平台,而不是你访问armfunction/指令本身的东西。 您可以使用它但是为了这笔钱,您可以在3到7个不同的基于ARM的微控制器评估板之间购买。 无论哪种方式,我都会开始用一个小型电路板缠绕在一个基于臂的微控制器上,st或lpc可能,只有拇指2只是拇指2,我只会在用arm指令然后用拇指指示弄湿我的脚之后才做。

    我也是使用gameboy advance作为arm的学习平台的粉丝(不是NDS,这是先进的,从GBA家族开始)。

    您将需要ARM ARM(ARM体系结构参考手册),然后每个特定的核心都有自己的TRM,您需要两者才能了解可用的指令。 在大多数情况下,这些手册既可​​以作为参考,也可以从头开始学习。

    我会先得到像STR750-LOVE这样的评估板。 然后编译并理解这些例子。 在对这些示例感到满意之后,现在是时候继续理解底层的内容并编写自己的代码了。 学习过程的一个重要部分是尝试做某事,然后调试它并使其工作。 如果您想成为ARM的专家,您需要能够放心地阅读程序集。 我刚刚接受了ARM固件开发人员的采访,我所做的技术部分就是分析THUMB汇编代码并将其转换为c代码。 大多数编译器都可以选择输出它们生成的程序集。

    用Tom Lehrer的话来说“抄袭,剽窃,让任何人的工作都不要躲避你的眼睛”。

    或者像牛顿(和伯纳德)站在巨人的肩膀上。

    换句话说,找出人们做了什么,并理想地避免重新发明车轮。

    我从一个廉价的开发板和示例软件开始,然后从那里开始,随时查看您需要知道的内容。

    基于ARM核的STM32的一个很好的入门是适当命名的STM32 Primer 。

    除了快速浏览之外,我不会从技术手册开始。 STM32的长度为600多页,随附的Cortex-M3手册为400页。 不完全是轻读!

    这真的取决于什么样的ARM,它是一个非常广阔的世界。 通常ARM集成在SoC(片上系统)中。 如果您准备迁移到特定的SoC供应商,那么您需要考虑所有这些。 根据我的经验,SoC pheripheral和缓存选择比实际核心更具影响力(性能除外)。

    至于评估板:我对Luminary micro($ 50- $ 60系列)Cortex M3有很好的经验。 它带有完整的(eclipse)开发环境,示例,库和一些硬件(即USB,以太网,OLed显示)以及可以运行和学习的示例。 边做边学比阅读学习更有趣。 我希望你能从8051升级到Cortex M3。

    在频谱的高端,beagle板是一个真正的数字cruncher,也可以运行Linux。

    需要了解更多c/c++开发分享如何从ARM处理器开始?,也可以关注C/ C++技术分享栏目—编程笔记

      以上就是c/c++开发分享如何从ARM处理器开始?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注(编程笔记)。


      推荐阅读
      • 利用Visual Basic开发SAP接口程序初探的方法与原理
        本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
      • 微软头条实习生分享深度学习自学指南
        本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
      • Nginx使用AWStats日志分析的步骤及注意事项
        本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
      • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
      • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
      • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
      • [译]技术公司十年经验的职场生涯回顾
        本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
      • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
        本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
      • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
      • Html5-Canvas实现简易的抽奖转盘效果
        本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
      • C++字符字符串处理及字符集编码方案
        本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
      • CEPH LIO iSCSI Gateway及其使用参考文档
        本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
      • 嵌入式处理器的架构与内核发展历程
        本文主要介绍了嵌入式处理器的架构与内核发展历程,包括不同架构的指令集的变化,以及内核的流水线和结构。通过对ARM架构的分析,可以更好地理解嵌入式处理器的架构与内核的关系。 ... [详细]
      • PL2303HXD电路图(USB转UART)介绍及应用
        本文介绍了PL2303HXD电路图(USB转UART)的特性和应用,该电路图可以实现RS232和USB信号的转换,方便嵌入到手持设备中。PL2303HXD作为USB/RS232双向转换器,可以将USB数据转换为RS232信息流格式发送给外设,并将RS232外设的数据转换为USB数据格式传送回主机。通过利用USB块传输模式和自动流量控制,PL2303HXD能够实现更高的数据传输吞吐量比传统的UART端口。 ... [详细]
      • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
      author-avatar
      房东的猫
      这个家伙很懒,什么也没留下!
      PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
      Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有