热门标签 | 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++游戏开发关注(编程笔记)。


      推荐阅读
      • SSE图像算法优化系列三:超高速导向滤波实现过程纪要(欢迎挑战)
        自从何凯明提出导向滤波后,因为其算法的简单性和有效性,该算法得到了广泛的应用,以至于新版的matlab都将其作为标准自带的函数之一了&#x ... [详细]
      • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
      • 七大策略降低云上MySQL成本
        在全球经济放缓和通胀压力下,降低云环境中MySQL数据库的运行成本成为企业关注的重点。本文提供了一系列实用技巧,旨在帮助企业有效控制成本,同时保持高效运作。 ... [详细]
      • 页面预渲染适用于主要包含静态内容的页面。对于依赖大量API调用的动态页面,建议采用SSR(服务器端渲染),如Nuxt等框架。更多优化策略可参见:https://github.com/HaoChuan9421/vue-cli3-optimization ... [详细]
      • 本文详细介绍了 Node.js 中 OS 模块的 arch 方法,包括其功能、语法、参数以及返回值,并提供了具体的使用示例。 ... [详细]
      • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
      • Docker安全策略与管理
        本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
      • Node.js在服务器上的多种部署策略
        本文探讨了Node.js应用程序在服务器上部署的几种有效方法,包括使用Screen、PM2以及通过宝塔面板进行简易管理。 ... [详细]
      • 本文详细介绍了如何在 Ubuntu 16.04 系统上配置 Qt 5.5 的交叉编译环境,特别针对 i.MX6 平台进行了优化设置。内容涵盖从基本的软件安装到高级配置的全过程。 ... [详细]
      • 本文介绍了如何使用Java编程语言实现凯撒密码的加密与解密功能。凯撒密码是一种替换式密码,通过将字母表中的每个字母向前或向后移动固定数量的位置来实现加密。 ... [详细]
      • 在CentOS 7中部署Nginx并配置SSL证书
        本文详细介绍了如何在CentOS 7操作系统上安装Nginx服务器,并配置SSL证书以增强网站的安全性。适合初学者和中级用户参考。 ... [详细]
      • 本文深入探讨了MySQL中的高级特性,包括索引机制、锁的使用及管理、以及如何利用慢查询日志优化性能。适合有一定MySQL基础的读者进一步提升技能。 ... [详细]
      • 本文详细介绍了MySQL InnoDB存储引擎中的Redo Log和Undo Log,探讨了它们的工作原理、存储方式及其在事务处理中的关键作用。 ... [详细]
      • 视觉Transformer综述
        本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
      • 本文详细介绍如何安装和配置DedeCMS的移动端站点,包括新版本安装、老版本升级、模板适配以及必要的代码修改,以确保移动站点的正常运行。 ... [详细]
      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社区 版权所有