您的位置 首页 电子

ARM菜鸟生长记——之一

从开始搞ARM到现在将近半年多了,第一个项目搞得有些眉目了,终于感觉像是入门了,半年来,有开始的新鲜,中间的苦闷,到最后的欣喜。其中

从开端搞ARM到现在将近半年多了,第一个项目搞得有些端倪了,总算感觉像是入门了,半年来,有开端的新鲜,中心的苦闷,到最终的欢喜。其间进程可谓曲折离奇,遇到了很到前人没有遇到过的疑难杂症,当然许多时分是因为我的大意变成的。从前也有过抛弃的主意,那个焦虑,像得了狂躁症相同。后来下定决心即便绩效没了,作业丢了也要搞完它。其实在这个进程中,看到跟我相同的许多新人在论坛上发帖求助,可是许多时分回者屈指可数,或许问题太天真,也或许问题描绘的不清楚。我发过许多帖子,乃至直接打扰了网上许多的牛人,他们都给了我很大的协助,可是我其时的主意太简略了,总想着某个牛人能够处理掉这个问题,现在想想,即便是牛人,没有看到详细的问题也很难给你一个处理方法,遇到困难不能把期望彻底寄托在他人身上,要发掘本身潜力,一遍遍细心看手册,重复实验,不断考虑,问题肯定能处理掉,仅仅时刻问题罢了。再非必须感谢公司对我的忍受,一个这么简略的东东答应我搞了这么久。

其实,在前面的进程中,一向有写点什么的激动,可是其时困难重重、出路未卜,也没了这个心境。现在能够坐下来细心总结下前面的问题,有现在都没搞理解的,特向咱们请教了;有处理掉的,那就说说经验教训,给其他人一些参阅。首要声明自己脑瓜笨,逻辑思维差,点一个灯点了一个多月,最终还发现没点对。所以说到的问题或许很天真,说话也如同前言不搭后语,有爱好看的那就受累了哈。

先说说咱们的这个块板子,裸奔的at91sam9260,外扩Norflash、SRAM,完结程序既能够跑在Norflash中,也能够复制到Sram中跑。使命就一个:操控一个片外AD,读出数据然后经过串口宣布。很简略的吧,这我都搞了几个月呢,你说菜不菜吧。以下我将回想整个的ARM学习进程,涉及到的常识都是很简略的基础常识,老鸟就不必看了,期望能够协助到像我相同的菜鸟。

前三个月首要是了解的进程,其时彻底没有想到后边程序的调试会如此的困难,想当然地以为又不上体系,无非是32位的单片机嘛。板子做回来一大段时刻内,元器件都没有凑齐,其时傻了呀,应该先了解了解编程环境,每天就为几个破元件折腾,什么都没干。

后来板子焊接好了,才发现只会用H-JTAG辨认芯片,其他的什么都不理解。然后开端看例程,只玩过51的我,初度触摸32位的单片机,其时看到AT91C_BASE_PMC->PMC_PCER=(0x1<<3)这样的句子,居然不知道是什么意思,一是困惑->代表个啥?二是为啥写成0x1<<3的姿态?后来不知过了多久才理解,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中调试很便利,也能够经过H-Flasher将程序下载到Flash跑,运用h-flasher时要一个初始化文件,首要是初始化Flash相关寄存器。
后来看到DB的JLINK都白菜价了,就从淘宝买了一个JLINK,首要是不必再用并口了,现在百元以内的JLINK大把,用JLINK是个不错的挑选,可是调试片外的flash如同还不能无限断点。
ULINK,不太清楚,如同只支撑KEIL,不过没用过。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/dianzi/261352.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部