ARM入门笔记.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如果您是一个单片机爱好者,当见到一款功能强大、性价比高的处理器时,一定会有一股很想掌握它、运用它的冲动,起码我是这样。5年前第一次接触单片机(标准的51系列),就被它强大的功能所吸引,而痴迷于它,一直到今天。在这期间的不同时期,各种增强型51,PIC、AVR,DSP和ARM等不同程度的吸引和诱惑着我。有的已经玩过了,有的则没有,但很想玩的这股冲动一直存在心里,特别是对ARM。记得2002年我就知道了ARM这个东东,眼睁睁地看着它一天天的火热,但由于对其开发工具及开发过程的不了解等原因一直只处于认识的阶段,尽管也曾玩过ZLG的2104开发板!可能是ZLG团队做的太出色的原因吧(详细的教材与源码,还有非常方便的工程模板),没过多久、没费多少劲就把里面的实验做完了,然后由于自已性格上的缺陷把它给扔在了一边,导致不到一个月就把大部分的东东还给了周老师。直到前段时间,让我有机会真真正正的玩起了ARM!像最初玩8051那样的尽兴(出现问题时,吃不下饭、睡不着觉的那种痛苦和解决问题后的那种畅快)。? 这篇文档就是记录了我在前段时间学习、调试目前最低价的ARM核处理器——AT91SAM7Sxx时出现的问题与解决方法。它尽量完整地记录了我从开始不懂ARM,到最终完成AT91SAM7S64各种外围实验的各个环节及整个过程,包括我在开始一个实验前的一些想法,实验目的,以及各个实验中,我以单片机的思维去思考时遇到的各种问题,和这些问题的解决方法。现将自己的一点经验以及体会拿出来与大家共同分享,一来是希望能够为那些在ARM门口徘徊迷茫的人提供一些借鉴,使他们顺利越过这道门槛;二来是希望能够抛砖引玉,以结识更多有共同爱好的朋友。由于我也是新手上路,文章中难免疏漏与错误,希望大家不吝指正,如果在调试AT91SAM7Sxx时有什么问题,欢迎大家共同讨论。? 第一章??开发工具与调试环境? 一.目标板? 所用实验板是参考ATMEL公司官方网站上发布的《AT91SAM7S-EK Evaluation Board User Guide》设计的,相当于AT91SAM7Sxx评估测试板,主要用于各种外围实验,结构框图如图1-1所示。大家可以自己搭板子,或者直接购买现成的AT91SAM7Sxx评估板。? 第二章 我的第一个实验 ――将程序执行到C文件的main函数? 二.实验目的? 运用ADS编写一个小程序,使程序能够从起始的汇编代码运行到C程序的main()函数(这也可称作非常简单的起动代码),并通过仿真器连接目标板,最终能够在AT91SAM7S64里正确运行。? 三.实验程序和参数设置? 1连接器的选项设置? 选项设置如图2-1所示。因为在AT91SAM7S64中FLASH存储器的地址是以0x0开始,而SRAM的地址是以0始,所以我将下图中的RO Base和RW Base分别设置成了0x0和0其它设置请参考有关书籍。? ??           第三章 点亮我的LED? ――I/O输出实验? 一.背景? 当完成上述实验后,我就可以像使用51单片机那样,在C文件的main()函数中通过设置相应的寄存器来达到对相应外设(如I/O的输入、输出等)的控制目的。? 二.实验目的? 通过控制PIO的相关寄存器,使特定的I/O口输出高电平和低电平,来点亮LED。? 三.实验程序和参数设置? ? ?? ?? ?? ?1 连接器选项设置? RO Base = 0? RW Base = 0? Image entry point=0? ? ?? ?? ?? ?2 启动代码? 启动代码与第一个实验中修改后的相同,即将“__main()”改成main()。? ? ?? ?? ?? ?3 C语言的代码? #i nclude AT91SAM7S64.h??//特殊功能寄存器头文件。类似与51单片机中reg51.h? #i nclude Board.h? ?//定义目标板的头文件? int main(void)? { *AT91C_PIOA_PER = LED_MASK;//使能4个LED对应管脚的I/O口功能? ??*AT91C_PIOA_OER = LED_MASK;//使能4个LED管脚的输出功能? while (1)? ??{ //可用单步运行来查看输出结果? ? ?*AT91C_PIOA_SODR = LED1;//将LED1对应的管脚输出高电平? ? ?*AT91C_PIOA_CODR = LED1;//将LED1对应的管脚输出低电平? ??}? }? 四.总结? 本实验非常的顺利,没有出现问题。证明ARM芯片的内部外围与8位单片机内部外围的控制或使用方法在原理上基本是相同的,都

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档