- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
arm学习经验.doc
从开始搞ARM到现在将近半年多了,第一个项目搞得有些眉目了,终于感觉像是入门了,半年来,有开始的新鲜,中间的苦闷,到最后的欣喜。其中过程可谓曲折离奇,遇到了很到前人没有遇到过的疑难杂症,当然很多时候是因为我的粗心酿成的。曾经也有过放弃的念头,那个焦虑,像得了狂躁症一样。后来下定决心即使绩效没了,工作丢了也要搞完它。其实在这个过程中,看到跟我一样的很多新人在论坛上发帖求助,可是很多时候回者寥寥无几,可能问题太幼稚,也可能问题描述的不清楚。我发过很多帖子,甚至直接骚扰了网上很多的牛人,他们都给了我很大的帮助,但是我当时的想法太简单了,总想着某个牛人能够解决掉这个问题,现在想想,即使是牛人,没有看到具体的问题也很难给你一个解决方法,遇到困难不能把希望完全寄托在别人身上,要挖掘自身潜力,一遍遍仔细看手册,反复试验,不断思考,问题肯定能解决掉,只是时间问题而已。再次要感谢公司对我的容忍,一个这么简单的东东允许我搞了这么久。? ? 其实,在前面的过程中,一直有写点什么的冲动,但是当时困难重重、前途未卜,也没了这个心情。现在可以坐下来仔细总结下前面的问题,有现在都没搞明白的,特向大家请教了;有解决掉的,那就说说经验教训,给其他人一些参考。首先声明本人脑瓜笨,逻辑思维差,点一个灯点了一个多月,最后还发现没点对。所以提到的问题可能很幼稚,说话也好像前言不搭后语,有兴趣看的那就受累了哈。? ? 先说说我们的这个块板子,裸奔的at91sam9260,外扩Norflash、SRAM,实现程序既可以跑在Norflash中,也可以拷贝到Sram中跑。任务就一个:控制一个片外AD,读出数据然后通过串口发出。很简单的吧,这我都搞了几个月呢,你说菜不菜吧。以下我将回想整个的ARM学习过程,涉及到的知识都是很简单的基础知识,老鸟就不用看了,希望可以帮助到像我一样的菜鸟。? ? 前三个月主要是熟悉的过程,当时完全没有想到后面程序的调试会如此的困难,想当然地认为又不上系统,无非是32位的单片机嘛。板子做回来一大段时间内,元器件都没有凑齐,当时傻了呀,应该先熟悉熟悉编程环境,每天就为几个破元件折腾,什么都没干。? ? 后来板子焊接好了,才发现只会用H-JTAG识别芯片,其他的什么都不懂。然后开始看例程,只玩过51的我,初次接触32位的单片机,当时看到AT91C_BASE_PMC-PMC_PCER=(0x13)这样的语句,竟然不知道是什么意思,一是困惑-代表个啥?二是为啥写成0x13的样子?后来不知过了多久才明白,AT91C_BASE_PMC是个基地址,PMC_PCER是相对这个基地址的偏移,移位赋值是为了给32位寄存器赋值的方便。先说说开发ARM要用到的软件以及工具吧,这段时间我接连使用了IAR、KEIL、h-jtag、JLink,都会用但是都不精通。最后是在KEIL+Jlink下完成的。开发工具的选择:1、编译环境:IAR、KEIL、GCC、……? ? 开始我想也没想就选择了IAR,原因很简单:ATMEL的例程很都是基于IAR的,而KEIL安装目录下的例程很少。匆忙安装了IAR当时的必威体育精装版版IAR5.20,完全没有考虑可用的资源和交流的方便。然后才发现IAR5.X跟4.X有很大的不同,主要就是其中的链接器从XLINK换成了ILINK,所以配置文件也由XCL文件换成了ICF文件,初看后者好像比前者更简单更易懂了,但是由于是新版,使用的人还不多,网上上的参考资料大部分还是基于4.X的,对于新手哪几条语句还是很费解。? ? 不过一根筋的我还是硬着头皮坚持使用IAR5.20,直到遇到IAR的杀招:系统从慢时钟想快时钟切换时就跑飞了,都是死在lowlevelinit()中的这一句上:AT91C_BASE_PMC-PMC_MCKR |= AT91C_PMC_CSS_PLLA_CLK;然后将这一句放在主程序中,照死不误。使用过程中,总弹出一个警告,大致意思就是说:IAR安装目录下,bin文件夹下的armlibsupport.dll may be missing or corrupt.重新装后还是老样子。在LED闪烁程序上折腾一个多月未果后,才痛下决心转向KEIL。? ?用上KEIL才发现这玩意不是传说中的弱智,相反特别适合我等菜鸟,感觉主要有三个方面特别好:启动代码的图形化配置;在Flash跑不需要什么配置文件,直接在option中添两个地址值就可以了;只需点击鼠标就可以实现将代码从Flash自动拷贝到RAM中执行,不需要再写什么代码拷贝程序了。GCC,没用过,不懂。2、调试工具:JLINK、H-JTAG、ULINK、……? ? 开始使用h-jtag,配合Wiggler使用,小巧且便宜,不得不佩服Twentyone前辈,在RAM中调试很方
文档评论(0)