查看: 3414|回复: 22

转:训练班学员心得 [复制链接]

阿南 (离线)
积分
224556
帖子
940
发表于 2009-7-16 23:06:28 |显示全部楼层
关键词: 心得 , 学员 , 训练班
阿南ARM训练班学习总结_木子
箫笑 发表于 4/13/2009 5:58:49 PM ARM Linux入门与实践 ←返回版面


        六个星期的培训班学习仿佛在一瞬间就结束了,个中情景仍然历历在目。这六个星期也正是本人遭遇人生道路上的低谷时期,如今生活开始慢慢走上正常的轨道,趁这次总结的机会,回顾一下这段时间以来自己的学习情况。
        说来惭愧,真正认识并踏上单片机嵌入式的道路只能追朔到毕业设计时期,大三拿着90分的单片机试卷时,我还是一个听到同学能说出什么是UART都很惊叹的人,毕业设计让我对这样一块小片子有了重新的认识。所以当我决意要走这条路时,时间已经指向了不容许你犯错的社会上。当初瞒着所有人毅然离开稳定的工作,一点点重拾起以往的知识,但是社会并不容许你慢慢成长,特别是遇到问题时非常渴望有人指导,我开始留意培训班,也是在这个时候才莫明其妙上起了21ic。培训班的火爆自然不必说,有人鼓吹“保证就业”,也有人信誓旦旦“包学包会”,试听过几次,了解过几家,感觉都与期望甚远,而且价格不菲,所以始终没有去参加过。
        阿南的名号是早就知晓,在论坛上请教过几个问题,都一一给予解答,印象相当好,不过当他说出要开训练班时,我虽然有想过去,但并没有抱太大的兴趣,对我来说仍然不菲的学费,空间距离,最主要是的确怀疑效果,他没有毕业证书,也没有推荐就业,更没有保证包学会,也许真正吸引我的是他说“希望大家能成为朋友,以后互相探讨进步”,时间的允许,所以我就决定过去了。
        培训的效果我肯定不会说些立竿见影,突飞猛进的话,那是广告。真正让你回味无穷值得细细品位的是这个过程,关于技术、职业、人生….当然还有一起学习的这帮志同道合的兄弟。
        对于技术学习的内容总结,以前也写了三期,往下的记得凌乱一些,计划过段时间将它都整理一下,继续写成总结的形式出来。发在论坛上也许对后来的初学者有用,关键在于对自己是一种提高。阿南的口头禅是“这问题,说白了就是….”,哈,也希望自己能用最简洁的语言说明白一件事情。
        真希望哪天自己也能出本书,如今写个总结,也罗嗦了几句,就称作序吧。

学习目的
        首先想回顾总结一下当初前去参加训练班的目的。在阿南发教学大纲之前我已经在44B0的板子上捣鼓过一阵子,他大纲里列出来的东西基本上已经接触过,所以大纲里的内容并不仅仅是我想要学习的东西,此行的目的主要有三个:
        1. 接受新的观点。一直以来都是自己在闭门造车,用自己的实践证明自己的理论,视野相当狭窄,此行就是想听一听行业内的“牛人”是怎么样看待问题,解决问题的。
        2. 交友。不记得哪个人说过类似这样的话:不是你去哈佛能学到多少东西,而是你去哈佛以后,未来引领这世界的重要人物都是你的同学。因此,交友是我的一个重要目的,我喜欢与志同道合的人一起探讨。
        3. 清晰未来的学习方向。自学ARM也有一段时间了,感觉是遇到了瓶颈,接下来该学什么,该怎么学,这个问题希望能与前辈探讨。

学习过程
        由于距离的原因,得每个星期提前一天到同学那儿住着,反而成最近的人了,几乎每次上课我都是最先到达阿南的住所,乘机与他唠嗑几句。曾记得第一次上课时,他首先对我说的一句话就是“师傅带入门,修行看个人。”首先就记下这句话,提醒所有人,别指望有人会教你一夜成才,所有的成功都得靠自己一步一个脚印走下来。
        学习的过程是轻松愉快的,如果说拘谨,那第一次上课时总会有一些,但随着陌生感的消除,一切都进展得异常顺利,上课变得严肃而随意,等到大家都肚子饿时,再一起去吃顿六块钱的快餐,再往后还学会了奢侈,加多碗素汤美上一把,如此这般。
        学习条件比我预料的还要简陋一点,上课时我的前后左右都是排插与电线,举手投足都得小心翼翼。仿真器,烙铁不够人手一份,但也许就因为简陋才更显得亲近,这或者比完善的培训“专家”更来得让人亲切。
        学习内容基本与我想象的吻合,主要是以讲授为主,花了一个上午的时间讨论关于ARM的学习方法与学习思想,确切地说是对技术的学习思想以及对于职业,对于人生的态度,相信每个学员都对这次课程印象深刻,的确,受益菲浅。然后技术上的东西按部就班,从原理图分析到硬件系统的测试,然后是启动代码及中断过程的分析,再到bootloader引导程序的分析,以及最后具体到一个触摸屏系统的讲解,一条线下来基本了解一次ARM系统的开发过程。

思想&讨论&归纳
        1. 关于一切从零开始与学到什么就得派上用场。
        这算是本次我的思想竞争最为激烈的一个话题,一直以来在单片机上养成的从零开始学习的思想早已根深蒂固,特别是相当多人批评所谓“浮躁的工程师”,我不会轻易接受一个没有明白的代码段,uboot擦掉自己重新移植,启动代码自己编写,寄存器初始化数据对照手册自己计算….而阿南主张的是需要用到的东西才去学,否则即使学了也是忘掉,要善于利用有限的时间去学习有用的东西。
        至今还存在“汇编派”与“纯C派”的争论,我也曾经捧着汇编的书本啃过许久,但是回过头来想想,真让我用汇编去写些东西还是比较艰难的,主要的是还没有遇过谁让我用汇编写个功能出来,汇编掌握到需要掌握的程度就足够了。
        过分追求无关紧要的细节问题也许就成了技术上的孔乙己。
        2. 关于发展方向与硬件能力
        对于嵌入式的三个发展方向硬件级,驱动级和应用级,并非每一个都需要精通,要根据自己的具体情况来选择,从任何一个层面上都可以作为切入点,先精于一项,做所谓的“专才”,之后才是融会贯通,朝“通才”的方向迈进。
        只要不是做单纯的应用层的编程,硬件能力都将处于举足轻重的位置,这一项,阿南强调过几次。相信像我这种以电子专业出身的嵌入式追求者都会对驱动程序情有独衷,那么硬件自然是逃不开了。不过我恰恰是对硬件级的东西掌握甚少,认为在这个层面上,可以不要求能自己能独立画板,但对于原理图的理解是不可或缺的。
        3. 关于如何突出能力,解决别人解决不了的问题。
        培养独立解决问题的思维能力和运用正确的方法是阿南自始至终一直在强调的东西。面对同一个问题,无论是新手还是老手,他们所面临的境况都是完全相同的,而个中的区别就在于不同的人的思维方式及其所使用的方法不同,这也正是体现一个工程师价值的地方,老手往往锲而不舍,不断验证、排除问题的所在,体现在一种“捣鼓”的能力。
        由于一直往着软件的方向走,对于焊接早已生疏,第四天时拿起烙铁拆焊贴片芯片,从间距大的器件到间距小的器件,慢慢地,似乎也有了一点点感觉,这种感觉便是一种积累。这是看多少书本都不能增长的东西。遇到问题时,先排除什么,可能哪里不对,笔记也是一个很好的东西,这便是经验的积累,能力的培养。

建议
        有幸尝鲜,成为首批学员,自然见证了更多初创阶段的种种不足与缺陷,仅以我自己的目光提出一些建议。
        1. 条件简陋,工具准备不是很充足,自然有人需要轮空,那么可以考虑分批实践,一部分人做软件实验,另一部分人做硬件实验。比如当初其他学员向我要仿真器调试程序,我只能自己去找个板子拆焊元件。
        2. 开班前最好能充分了解学员的基础,同批次学员尽量同一起点,正如《C和指针》里说的要从零开始说明白一个概念是相当困难的,有相同的基础才能更有利于教学。
        3. 课堂气氛没有充分调动,容易走入传统“填鸭式”的教学误区。最好能提供教材,在上课前给出课程提纲,给予学员预习的时间,以此才能实现更好的互动。

后记
        在这段嵌入式的道路上,曾经很多次在“天赋”面前黯然神伤,然而,既然选择了,喜欢上了,那就义无反顾地走下去。
        别想着一夜成材,也别怀疑自己是天才,成功需要时间的积累。失败了无所谓,别迷失方向才重要。懂得吸收比懂得模仿更实在,超越别人不如超越昨天的自己。不要跟着别人手指看月亮,只要你动手去做了,一定会有成果的….
        希望“专注、执着、激情”的精神能激励我勇往直前。
        祝福阿南的训练班,祝福同期学习的兄弟们,也祝福我自己!
阿南的一点点看法
阿南 发表于 2009-4-13 21:26 ARM Linux入门与实践 ←返回版面 举报该贴

木子在深圳上班,当时联系阿南时已经不工作在学习ARM,当时听到这样的消息时,心里不知道是一种什么样的滋味,也回想起当初自己不工作专心学ARM的场影.
木子喜欢动脑筋发现问题,这点真得是很好,因为作为一名学习者,成长中的工程师,任何问题都是非常难得的,只有在解决问题的过程中才能得到更多\更大的成长和提高.但正如当时上课过程中,阿南提出的那样要注意学习方法和解决问题的思路的培养,不要让自己这种善于思考变成"牛角尖",这样只能是给自己挖坑,然后把自己埋了.

另外需要提醒的是:关于"需要用到的东西才去学...",应该理解成学习需要有明确的目标.比如像学生,他们并没有什么实践的应用,此时并不是指他们就不用学习了,而是应该给自己找一个目标和目的,比如说我看这书的目的是什么,应该是要动手去完成某个实验或是小制作.而不是只看书什么都不做,这样效果就不好.而作为一名已经参加工作的工程师,那么学习\看书的目的就应该要把他应用到实践当中,或是短期内即将应用上
一朝成名 (离线)
积分
36914
帖子
1865
发表于 2009-7-16 23:19:38 |显示全部楼层
阿南一直在做很有意义的事情~
很佩服阿南~
网名招摇了点,人不招摇,大家都知道:)
qupeng2008 (离线)
积分
38071
帖子
1910
发表于 2009-7-16 23:34:35 |显示全部楼层
阿南是成名的偶像哦~
一朝成名 (离线)
积分
36914
帖子
1865
发表于 2009-7-16 23:43:08 |显示全部楼层
现在的人太物质了,很少人去做些真正有意义的事
这是现实~

说白了点,就这点培训费算什么,除去硬件还有个钱吗?
这些大牛们谁一天不1000¥左右的收入(俺胡猜的或许更多)?
花费这么大的精力没什么回报可说~几乎纯粹的奉献,这算都算的出来
网名招摇了点,人不招摇,大家都知道:)
qupeng2008 (离线)
积分
38071
帖子
1910
发表于 2009-7-17 08:56:08 |显示全部楼层
造福于民~
wjy1107 (离线)
积分
3
帖子
6
发表于 2009-7-17 09:01:08 |显示全部楼层
偶像~~~
诸葛孔明 (离线)
积分
810467
帖子
1818
发表于 2009-7-17 09:28:39 |显示全部楼层
绝对偶像!
夫君子之行,静以修身,俭以养德,非淡泊无以明志,非宁静无以致远。
阿南 (离线)
积分
224556
帖子
940
发表于 2009-7-17 22:38:02 |显示全部楼层
哈哈哈
箫笑 (离线)
积分
9
帖子
9
发表于 2009-7-18 19:27:39 |显示全部楼层
怎么转到这里来了????脸红了。。。。。。
f.luo (离线)
积分
210850
帖子
4327
发表于 2009-7-19 10:24:09 |显示全部楼层
楼上名字好熟,好像上过21ic论坛头条。
我允许你走进我的世界,但决不允许你在我的世界里走来走去。
自诫:
混论坛而不看书, 基础不扎实, 十八般武艺尽是花拳绣腿.
看书而不混论坛, 眼界难开阔, 水再深不过是巴掌大口井.

【------西南地区机器视觉技术交流群: 188725313------】
lelee007 (离线)
积分
29396
帖子
2683
发表于 2009-7-20 23:51:54 |显示全部楼层
顶南哥

看了下内容安排,与俺的需求不太对路,所以没报名

俺自己摸索+琢磨搞了有两年了,一直在linux下搞,2410的裸奔俺也写了不少代码了

前段时间瞎琢磨,把二级中断向量表的动态配置用GNU的工具给作了下,所有的中断使用都非常方便,跟51差不多一样用了

其实很简单,但是俺对GNU的汇编使用不怎么熟练,网上到处找不到例子,就自己瞎折腾了两三天,改来改去,还是给弄好了,嘿嘿

俺从51+FPGA搞过来的,才开始看ARM,对里边的那个RO,RW,ZI不太明白,郁闷过一段时间,很多从51转来搞ARM的,可能就是卡在这个环节,对于ARM的底层操作环节不太明白,其实这个搞明白了,裸奔就没什么大问题了

呵呵,俺在外围支持南哥
lelee007 (离线)
积分
29396
帖子
2683
发表于 2009-7-21 00:08:16 |显示全部楼层
因为51的集成开发环境,把最底层的代码都隐去了,而且51的底层操作也确实比ARM简单很多

51简单的裸奔的话,其实就是最基本的C语言的应用,根本不用去管段的概念,连C的堆栈都不用设置,更没有代码加载地址和运行地址的概念(因为都是51的这俩概念内容都一样,线性连续地址),只管将代码写好,IDE编译个bin或者hex,然后烧到ROM里边,上电就运行,而ARM里边要让代码在SDRAM里边运行,所有的操作,都得自己用代码来实现(虽然有现成的代码可以用,但是要弄明白,还是需要理解那些概念),这是和51不同的地方,把这些弄明白了,基本可以把ARM当51用了。

把底层处理的代码弄好,连接脚本写好,中断向量表配置好,对于外部中断,把二级中断向量表配置好,实现外部中断入口动态配置,然后就想写51的代码一样,堆上去就是了

哈哈,这些对于WIN下的IDE应该都是很简单的事情,而且SAMSUNG有源码包和一些库文件,很简单的事情。GNU下裸奔的话,主要就是外部中断的动态配置。WIN下的IDE俺没怎么研究,因为当初被RO,RW,ZI卡的喘不过气来,就换到GNU下边来研究了,因为RO,RW,ZI的东东,找了些资料,也没弄清个所以然,而GNU下虽然也是以这个为基本概念来的,但是讲解的更透彻一些,容易理解
lelee007 (离线)
积分
29396
帖子
2683
发表于 2009-7-21 00:09:12 |显示全部楼层
晕了,看了下刚发的,感觉说来说去都是在重复

文采不行,简单的意思总感觉没表达好,所以重复
阿南 (离线)
积分
224556
帖子
940
发表于 2009-7-21 09:04:16 |显示全部楼层
呵呵,谢谢lelee007支持。
RO,RW,ZI其实也很好想通的,您把内存映射和启动代码文件(如2410init.s或2440init.s)分析完了应该就理解了.
另外,如果想让51玩到一定水平,在调试时还是要实实观察分析反汇编的代码,而不是只用C语言解决一切。
裸奔也好,linux也罢,“硬件+底层”玩不好,那么只能和计算机专业的程序员抢饭碗
McuPlayer (离线)
积分
75022
帖子
4011
发表于 2009-7-21 09:50:08 |显示全部楼层
007这次这水灌的有档次,赞一个
我们的口号是:“不跑气,不放气”
博客:http://www.mcuplayer.com
一朝成名 (离线)
积分
36914
帖子
1865
发表于 2009-7-21 11:15:37 |显示全部楼层
所以说Linux能让人学聪明,win能让人学傻~
在Linux下基本想挖多深有多深~

从应用程序到-API-编译过程-加载运行-nmap到内存-os-os底层和硬件的交互
想看什么能看什么
网名招摇了点,人不招摇,大家都知道:)
lelee007 (离线)
积分
29396
帖子
2683
发表于 2009-7-21 12:53:37 |显示全部楼层
MP大哥说的俺有点骄傲了哦,呵呵

俺主要是怕班门弄斧,贻笑大方,所以就天天混迹水版
phoenixmy (离线)
积分
100789
帖子
1435
发表于 2009-7-21 13:00:26 |显示全部楼层

呵呵
, 007不必谦虚
欢迎访问电子工程师的收藏夹
汇聚电子设计类最新最全最有价值网站,上HotPage,做专业的电子工程师!

本站官方QQ:896631752
benhaizi2410 (离线)
积分
2156
帖子
114
发表于 2009-8-3 17:19:46 |显示全部楼层
写的很好,很有借鉴意义,顶
iltwq (离线)
积分
5
帖子
1
发表于 2009-9-18 20:26:46 |显示全部楼层
信南哥,会arm
500 字节以内
不支持自定义 Discuz! 代码
您需要登录后才可以发表评论 登录 | 立即注册

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备11013910号 | 京公网安备11010502021702
回顶部