找回密码
 注册
关于网站域名变更的通知
查看: 525|回复: 1
打印 上一主题 下一主题

我的ARM学习经历

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2016-5-16 14:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
下面介绍我的学习经历:9 U7 U! p2 y, R7 ^2 z: N& R

" g( q) t5 ^0 X$ H+ N) @* }1、基础阶段& _8 O0 q9 D5 h

) o6 A' M9 Y4 D( V1 }     话说07年第一份工作从事的是PLC开发,用protel画原理图和PCB,写AVR单片机程序,焊焊板子,还去过华强北买器件,比较杂,但是接触面比较广,为进一步学ARM打下了基础。
4 ?% }1 a% ^8 l& n7 \    期间不甘心只停留在AVR单片机层次,买了邵贝贝的《uCOS-II嵌入式操作系统》,看了4-5遍,弄懂它的原理,还看了陈明计的《SmallRTOS嵌入式操作系统》,之后自己写了一个AVR的时间片调度器。' b9 v9 k8 z* W% Y$ \
& t6 Y' R- @7 c6 ~( W9 j
    2、接触ARM
. e9 G7 s% a+ ?4 [. o/ l) Z  r     09年4月份换了工作,搞B超,接触三星的S3C2410,看2410的数据手册,开始接触到ARM的32个寄存器、中断管理、MMU、7种工作模式,还真的晕了好长一段时间,模模糊糊,弄不懂,挺痛苦的。工作中也开始实践起来,基于ADS1.2,采用uCOS-II。
9 F& y+ X8 E# C: {4 Y      先不管ARM内核的细节、产品平台底层的细节,也先不管USB、LCD、内存控制器等较复杂的部分。先搞单片机有的那些外设,发现单单写2410的驱动程序,如SPI、USART、IO控制,发现跟单片机一样,只要看2410数据手册的SPI、USART、IO口部分就行了。这时,信心有了,感觉自己多少可以把2410玩起来了。" Q1 r( }4 a! ]0 W! _
      这时买了一块2410开发板,带有ADS1.2例程,这些例程有启动汇编代码,还有底层的一些C语言初始化代码,看的很费劲,不知道是啥意思。没关系,你总会找到main函数入口吧?其他我不管,先自己在main函数里面编编代码玩玩先,试了URAT、SPI、I2C、RTC,跑起来了。这时再学学中断,按照例程的中断,自己也编写一下自己的中断例子。; b. H  A1 j, X1 f$ m
     发现经过例程学习ARM,效果比单看书好的多。单看书你会晕,很多不明白,越看越枯燥,越看越没信心,感觉看了很久,心里还不知道ARM是什么。学学例程的话,把ARM当单片机用,很简单,上手很快,你对ARM的恐惧感就慢慢消失了,信心也有了,再结合书本,对照例子,心中一些不明白的ARM内核原理,也逐渐开朗,哦,原来如此,原理很简单嘛。9 [& x+ h' ~5 c
     再后来,看ARM原理、MMU、中断管理、SDRAM、LCD控制器,自然而然的都明白了。
4 u) I$ }! h% D4 V1 ]1 Y/ t( O
4 t* v) o; L2 E4 e5 j% j     3、提高! L* T5 C1 s7 U4 [9 ^5 B" m% J6 E
     基础有了,慢慢的接触到USB、FAT文件系统、U-BOOT、GUI显示,一个一个的去熟悉,发现你已经入了嵌入式的大门,慢慢的积累,每搞定一个功能,也小有成就感了。! H2 }) W3 O8 i* ?( F  ~" I. P
- u1 P" e& A& V
      4、后记
& i; {" q7 [3 O: d       10年五一又换了一份工作,用atmel的9260芯片,搭建软件平台,这时对以往知识的一次综合应用,以前都是现成的平台,自己在上面添加功能,修修改改,这一次,是从无到有的建立ARM+uCOS-II软件平台:- u6 X1 m* h* b. g6 f9 \, {. d/ _6 ^
      编译器选型,选了MDK,上网找破解;
, o- i  L+ S1 w! w  F, l      了解9260的启动过程,程序烧写方案;- w; u% i! o" f0 z. b
      选择调试工具,建立调试环境,使用JLINK、或者wiggler+HJTAG;/ D$ Y# \. ]! [& P' w
      uCOS-II移植,下载了官方IAR移植版的,根据MDK做修改,终于跑起来;1 {, z" G. a+ {2 B$ h. ]+ p
      编写9260各种外设驱动;
: W; K$ J7 i1 ^! `8 B      应用软件系统结构设计,多任务划分;应用编程,问题解决,这一块花的时间最多了。
7 Y( _6 X8 V6 Q6 F4 p) H6 d1 e/ b      学习zmodem,把官方的zmodem程序看懂,移植到产品上,做了一个不超过4K的9260引导程序,代替atmel的at91bootstrap,可以通过“超级终端+串口”烧录程序,而用SAM-BA烧写,很麻烦;3 b4 G: n8 p1 T$ L
      深入分析了yaffs文件系统,做了一个日志系统,计划今年将yaffs分析经验写成一个文档;
9 \$ U! ^9 t. k- y      今年的计划:预测物联网趋势,网络将会大规模应用,要深入学习tcpip,学精,分析lwip代码, v+ Z( E  @1 L: ]
9 y! \( ^# Y! ?; ^; C% \
       5、希望能给后来者参考价值。
& Z1 b: U$ F% Q! u* y

该用户从未签到

2#
发表于 2016-5-19 15:14 | 只看该作者
楼主很用心!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-23 19:53 , Processed in 0.140625 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表