历史上的今天
返回首页

历史上的今天

今天是:2024年09月08日(星期日)

2020年09月08日 | 初学者如何玩转ARM,举一反三

2020-09-08 来源:elecfans

我是稀里糊涂的走上了嵌入式开发的道路,回想起来,多亏了身边的几位朋友,是在与他们的闲侃中慢慢的走上了这条道路:从最早的电路设计,PCB打板,电路调试,模拟仿真,单片机开发到后来的ARM开发,回想起来,心里也是诚惶诚恐,如履薄冰。


我开始做电子是用的AVR单片机,从I/O、按键…到内存、外设玩了一通。工作之后,才开始玩ARM。在项目中逐渐对ARM开发有了一些感悟。


学习ARM有两个目的,看你是那种:1、长见识,顺便玩玩;2、工作需要,从事ARM开发。这就要分开对待了。


如果是长见识,随便玩玩,为日后的工作做准备,那么就应该挑选市场上很成熟的ARM7、ARM9等资料比较多,玩的人比较多,出现问题容易解决;如果是工作需要,就没有这么多选择,必须按照功能要求,开始征服特定的片子。


不管哪种目的,学习起来步骤我感觉差不多,先裸板,后上操作系统:

初学者如何玩转ARM,举一反三

之所以这么安排,是因为听了很多大牛的建议和意见。正所谓“万丈高楼平地起”,基础很重要。在上操作系统之前,一定要对底层代码特别是裸板程序有一定的认识。这样,对于操作系统中涉及底层的问题就会少很多。


现在以我学习ARM11(s3c6410-1176JZF)的经历介绍写一些基本功。


首先:要有一定的电子基础。

这不是废话吗,既然玩ARM当然都是懂电子的呀。其实不然!电子基础可深可浅,怎么是个头?会IC放大器,搭建信号处理电路,这是信号处理中的基本功。对于ARM开发来说,我感觉重点在信号走线、滤波、稳压和保持片子性能稳定上(分析一个ARM板子就会明白这些道理)。


我谈下我的见解:明白ARM板子中除集成IC之外的元器件的作用,最常见的是电容作用、驱动LED呀、扬声器呀、串口连接、存储器连接、LCD屏幕连接等等。看到串口,想起怎么连接;看到按键,想起怎么识别……基本上在硬件上可以将整个系统连接起来。


其次,有一定的英文阅读能力。

我在开发的时候以Linux应用完全开发手册、6410手册和ARM1176jzf内核手册为基础。这三个文档一个中文,两个英文,页数总和有2500页。如果没有耐心,想尽快完成开发,这无异于缘木求鱼。6410的手册是对ARM11芯片的介绍和寄存器的总体介绍:包括GPIO设置,相机接口、Nandflash控制器、DRAM控制器等。1176jzf是对1176jzf处理器的设置的介绍。

初学者如何玩转ARM,举一反三

对于简单的GPIO设置,我们可以查阅6410的GPIO章节,

初学者如何玩转ARM,举一反三

从中可以看出各组管脚的功能:各组管脚是混合复用(除了GPI和GPJ两组),依据单片机知识,如果是管脚复用,必须通过相应寄存器设置才能达到相应要求,这时,我们需要看GPIO的寄存器设置章节:

对于GPA组,

初学者如何玩转ARM,举一反三

可以看出端口A具有读写功能,并且有相应的地址,从存储器映射图中可以看出,端口A可以通过配置相应寄存器(也就是相应的地址)为合适的数值,就能完成相应的操作。

初学者如何玩转ARM,举一反三

对于GPA0管脚来说,通过配置其为0000或者0001或者0010将其定义为输入、输出或者串口模式,具体操作及分如下:

通过三个操作,可以讲GPA0设置为输出功能,如果外界LED,可以实现LED灯的控制。

此外,还有数据寄存器,上拉控制寄存器,配置休眠和上拉休眠等寄存器,其操作原理一样,将相应的寄存器地址放入一寄存器,写入数值,即完成相应配置。


第三、要有一点汇编和c语言的基础。

为什么这么说呢,首先看下配置I/O口为简单输入输出的ARM的启动代码:

初学者如何玩转ARM,举一反三

在6410的启动代码中,需要以汇编语言的形式设置、配置寄存器,现在将这部分进行简单的分析:

在写裸板程序的起始,需以 .globl 为开始,通过

将外设地址映射到外设地址,通过

将存储器大小设置为256M,具体怎么实现的呢,查看1176jzf手册:

初学者如何玩转ARM,举一反三

有此可见,6410手册和1176jzf手册对于裸板程序是一利器。


第四、举一反三,融会贯通,利用网络。

一个6410手册有1378页,一个1176jzf有972页,看完是一项可望不可及的任务,因此善于举一反三,融会贯通是必须的。另外还需要有Google大神的帮助。在开发过程中,如果碰到新功能,新接口没有使用过,这时,Google大神就可以发挥其大神的作用,带领你完成任务。


如在写堆栈操作中,需要将各寄存器的数值进行保存,需要使用stmdb指令,如果不熟悉,可以用Google大神进行帮助。


通过介绍,可以明白具体的操作。


虽然ARM更新速度很快,但是也不是出来一个新产品就让我们从头开始学习新技术,只要熟悉掌握了一种MCU,通过举一反三,可以将技术扩大到应有的领域。

推荐阅读

史海拾趣

Andigilog公司的发展小趣事

Andigilog是一家专注于提供模拟和混合信号集成电路解决方案的公司,以下是该公司发展的相关故事:

  1. 公司成立与早期发展:Andigilog成立于2002年,总部位于美国加利福尼亚州的圣何塞。该公司成立之初,专注于设计和销售模拟和混合信号集成电路(IC),以满足各种市场的需求。最初,公司的产品主要应用于电源管理、温度监测和控制等领域。

  2. 技术创新与产品推出:Andigilog在成立初期就致力于技术创新和产品研发。随着市场需求的不断变化,公司不断推出新型的集成电路产品,包括温度传感器、电源监测芯片等。这些产品具有高精度、低功耗、高集成度等优点,受到了客户的青睐。

  3. 合作伙伴关系与市场拓展:为了扩大市场份额和提升品牌知名度,Andigilog与各种合作伙伴建立了紧密的合作关系。公司与全球各地的分销商、代理商、原始设备制造商(OEM)等进行合作,共同开拓市场,推广公司的产品。此外,Andigilog还与行业内的其他公司进行技术合作和产品整合,共同提供更完整的解决方案。

  4. 全球布局与生产基地:随着业务的不断扩展,Andigilog在全球建立了多个生产基地和销售办事处。除了在美国的总部外,公司还在亚洲、欧洲等地区设立了生产工厂和销售办事处,以更好地服务全球客户。这些生产基地拥有先进的制造设备和技术,能够满足客户对产品质量和交货周期的要求。

  5. 持续发展与未来展望:作为一家专注于模拟和混合信号集成电路的公司,Andigilog将继续致力于技术创新和产品发展。公司将不断推出适应市场需求的新产品,提升生产效率和产品质量,以满足客户不断变化的需求。同时,Andigilog也将继续关注行业的发展趋势和技术变革,不断调整战略,保持在行业内的竞争优势。

Coil-Q Corporation公司的发展小趣事

在电子行业的初期,Coil-Q Corporation以其独特的线圈技术崭露头角。公司创始人发现了传统线圈在效率和稳定性上的不足,于是投入大量资源进行研发,成功开发出一种新型高效线圈。这一创新不仅提高了电子设备的性能,还降低了能耗,迅速赢得了市场的青睐。随着技术的不断完善和市场的扩大,Coil-Q逐渐成为了电子线圈领域的领军企业。

AC Photonics Inc公司的发展小趣事

AC Photonics Inc非常重视人才培养和团队建设。公司建立了完善的人才培养和激励机制,吸引了一大批优秀的研发人才和管理人才加入。同时,公司还注重团队建设,通过定期举办团队活动、开展员工培训等方式,增强团队凝聚力和向心力。这些措施为公司的持续创新和发展提供了有力的人才保障。

Barry Industries Inc公司的发展小趣事

随着电子行业的快速发展,Barry Industries Inc意识到只有不断创新才能在市场中立足。公司加大了对研发的投入,引进了一批高素质的研发人才,并建立了完善的研发体系。经过多年的努力,Barry成功突破了微波半导体封装技术的多项关键技术,推出了多款性能卓越、具有创新性的产品。这些产品不仅广泛应用于军事、航天、通信等领域,还为公司赢得了市场的广泛认可。

Everbuild公司的发展小趣事

Everbuild深知人才是企业发展的核心。因此,公司注重人才培养和团队建设。公司建立了完善的培训体系,为员工提供各种技能培训和职业发展机会。同时,Everbuild还鼓励员工参与创新项目和技术研发,激发员工的创造力和工作热情。这些努力使Everbuild拥有一支高素质、专业化的团队,为公司的持续发展提供了强有力的保障。

Amphenol Piher公司的发展小趣事

为了进一步扩大市场份额,Everbuild开始积极拓展国际市场。公司派遣专业的团队参加国际电子产品展览会,与国际知名厂商进行技术交流和合作。同时,Everbuild还针对不同国家和地区的市场需求,推出了定制化的电子产品解决方案。这些努力使Everbuild的产品逐渐进入国际市场,并赢得了越来越多客户的信任和支持。

问答坊 | AI 解惑

免费样片申请全集(全网最全最有效)<兼谈申请心得>

看了的兄弟帮忙回个帖,可以让更多的人看到. 1、推荐铁电存储器(未见量的限制,据说最多有人申请了100片,不知真假.) 介绍:铁电存储器(FRAM)产品将ROM的非易失性数据存储特性和RAM的无限次读写、高速读写以及低功耗等优势结合在一起。FRAM ...…

查看全部问答>

减少被动红外探测器误报漏报原理

我们来分析一下红外探测报警器主要有那些原因会造成误报、漏报。目前报警系统出现误报、漏报主要有以下几个方面原因。 无线探测器抗干扰能力羞表现为同频干扰容易造成误报、漏报; 红外探测器对入侵行为判断力不够准确造成误报、漏报; 红外探测 ...…

查看全部问答>

NEC单片机之——CC78K0R语言篇

本帖最后由 paulhyde 于 2014-9-15 08:58 编辑  …

查看全部问答>

烧写vivi不成功原因?

我设计的是s3c2410的板,通过jtag可以检测到CPU和NAND FLASH,通过NAND FLASH烧写vivi,可以正常烧进去;但是问题是重启时在DNW没有任何显示,好像进不去vivi…

查看全部问答>

寻找一颗芯片,一个USB转成4个RS-232的芯片,FT4232还没量产,其他还有什么类型的芯片啊!

寻找一颗芯片,一个USB转成4个RS-232的芯片,FT4232还没量产,其他还有什么类型的芯片啊!急!11111111111…

查看全部问答>

请问10 pin miniUSB接口常用于音频的引脚是怎么定义的?

10 pin miniUSB接口比较多,它有上下两排线,其中一排用于USB传输,另一排5根线常用来作为耳麦。 我想问一下: 10 pin miniUSB里用于耳麦的引脚是哪些?怎么定义的? …

查看全部问答>

特斯拉线圈的什么原理可以使全世界无线输电

特斯拉线圈的什么原理可以使全世界无线输电,有电路图没?请教下,查资料时没有看懂,呵。。。谢谢!不怕到时,周围全是人造闪电吗 [ 本帖最后由 secondlife110 于 2013-3-8 18:28 编辑 ]…

查看全部问答>

谁有基于ad9851的信号发生器设计,谢谢

本帖最后由 paulhyde 于 2014-9-15 03:09 编辑 我们用ad9851模块,按原带电路连接,用它原带程序,但是没有波形,不知道怎么回事,求知道的人帮帮忙说下原理。谢谢    …

查看全部问答>

LDC1000这个电感传感器有哪些优势呢?

本帖最后由 dontium 于 2015-1-23 11:35 编辑 根据宣传是业界第一个感性(电感)传感器,但是不是很明白有哪些优势,大家可以讨论讨论,发表下自己的看法。 ti./ww/en/analog/dataconverters/inductance-to-digital-converter/technical-document ...…

查看全部问答>