一个机械专业小混混(gooogleman)学习嵌入式ARM的真实经历

2023-05-16

        我记得在我毕业一周年的时候,写过一篇文章,大概是讲我学习嵌入式wince驱动的经历 (http://topic.csdn.net/u/20090704/01/43492b64-f7bf-4953-a31f-dbe74d9b4a5d.html?33940),里面讲我貌似一点基础都没有一样,只是一年的时间,貌似就掌握了蛮多wince开发细节似的,现在我要来纠正一下,其实我大学的时候就接触过ARM,只是被打击的一点信心都没有,后来就放弃了。
          先吃排骨汤先,待续~~~~
         2010.05.25 23:00 接上
         2004 年高中复习一年后上了gliet,莫名奇妙的到了机电学院的微电子制造工程专业,表面上写着电子,其实就是机械的一个分支,上了这个专业,不知道是祸是福,因为貌似我也学了蛮多东西,我曾经想过,如果我上了电子专业,那会怎么的结果?无法预知,这就是人生,充满了坎坷,充满了磨难。
        当年的机械制图和材料力学真是折磨死我了,我通常平时上课要么不去听,要么就带一些单片机的书籍进去看,常常闹笑话,就是老师看我很不尊重他,就专门整我,叫我回答问题。我脸皮也狗厚的,总是说麻烦老师再说一遍,我听不清楚。O(∩_∩)O哈哈哈~甚至因为忘记交机械作业被老师挂过,嘿嘿。以前真的一根筋,往死了学电子,高中的失败(我曾经被家里人安排去学医,最终实在受不了返回高中复习的。)让我对自己有很清楚的认识——就是我不喜欢的我不做,我不会听别人的主意,别人是别人,我是我。所以大学四年我都我行我素,别人做什么我不管,我只做我自己。
      在后来通过毛笔字特长进入了gliet 的一系科协的宣传部做助理,从此展开了大学学习电子的漫长旅程。早期是一边做好宣传部本职,出海报,平时电子部有啥活动我也主动去参与,嘿嘿,甚至比电子部的人还要积极,就是因为这样,我后来经过yinbin的推荐,换成了电子部,接下来就是天天跟着当时科协的小牛人H和Z混,总之大伙看我比较积极,就经常照顾我了。
      现在想起来,我当时真的很蠢,学什么都学不会,H和Z经常一周就学会了很多东西,而我一个月甚至三个月都学不会,我有时候经常怀疑自己的能力,真的,因为我明显感觉到自己和队友H和Z的差距太大了,我很害怕成为他们的负累,可惜我真的拖累了他们大学四年——要不是因为我太菜,我们不可能参加两次全国电子设计大赛都和全国一等奖失之交臂。当时的H和Z已经表现出了惊人的技术潜力,很多老师都很看好他们,而我心理很明白,我的最大能耐就是英语比他们好点,所以我的工作就是写文档,跑腿买器件,有时候连器件都买的不合格,真是相当纠结,我也很着急,不知道为什么,很简单的东西我就是学不会——我至今都不明白,为什么那时候我会这么笨!
      大学我就这么一直纠结着,想进步,也很努力,可惜很悲剧,我连一个单片机的程序都写不好,有时候一个简单的单片机程序,别人写200行,我写出2K行出来,真是典型的弱智的一代挫男。嘿嘿!大学期间的几个重大比赛都是H和Z一手包办,我就是跑腿+写文档,也许我写博客的能力就是从那时候锻炼出来的(O(∩_∩)O哈哈哈~)!
       大学就这么过了三年(我们大一就开始自学单片机了),到了大四,我找工作屡屡受挫,我才知道我大学有多么失败,每次笔试我都过不了,总是一些基础题目似曾相识,虽然当时已经是老油条,表面不动声色,可是内心的刺痛让我觉得世界都是灰色的。当时H和Z这些实力强悍的基本都是一次性签署了工作,有些人还更拽,做起来面霸,到处面试,到处要他,他到处都不签协议。而我一直是个悲剧,结果每个人签约了,就我一个人在那里纠结,郁闷!后来大家一起喝酒,他们总是安慰我,心里很不是滋味。
      经历了这么多风雨,老油条一样的我开始反思,我为什么会有这样的结局,我明明大学四年很努力,可是我却什么也得不到,难道真的是我能力有问题?开始我不停地给我找借口,我本来就是个文科生类型,英语,语文,历史,政治成绩很好,数理化怎么恶补还是最差的,只是当时喜欢电子,所以就读了理科,我只能给安慰我自己,这是我给我自己制造的一个悲剧,我倒行逆施,不考虑自己的天赋就学这个,是自找死路!
       2007年的最后一两个月,我一直很纠结,痛苦,一直整天游戏麻痹自己,我不想这样,但是我真的找不到方向,我大学四年把所有时间花在了电子上,可是我却是个找工作不及格大学士,无颜面对江东父老啊。
       不懂为什么,有一天我突然醒悟了,我发现我之所以学不好,那是因为我没有学好基础,尤其是C语言基础,我清楚的记得当时我强迫自己跟上H和Z的节奏,结果我错过打好基础的机会,我错过了gliet非常牛的L老师的C语言学习机会;还有就是我一直处于H和Z的光环下,我一直没有获得自信,很多时候不是我不行,而是我自己吓自己认为我不行。不记得哪一天我突然恍然大悟,我于是找了谭老师的C语言回来看,并且做了很让人惊讶的事情,自己动手做后面的习题,做完了觉得自己还靠谱,然后又找了一些网络上推荐的老外的C语言经典书籍来看,越看越来劲。那段日子,我把C的基础掌握了一下,信心上来了,后来到www.51job.com投递简历,很多人叫我去实习,真的爽呆了,从那天起我的所以阴霾都过去了,给我学习wince驱动打下了基础。
       嘿嘿,说了很长一段自己一段不为人知的悲惨经历,嘿嘿,大家看了是不是对学ARM很有信心啊,我这么挫,都能学,何况是你们呢?!话说回来,其实我不是毕业后才学ARM的,我、H和Z大二下学期就凑钱2K多大洋买了友善当时的2410板子,记得是七寸套餐呢,买回来相当激动,看着像个电脑一样强悍,不知道如何下手,我们连看手册都看不懂,资料又不多,连讲如何使用都没有,尤其是我买到后我连系统都没有烧写过,悲剧!H的基础较好,还在上面弄了几个驱动,没有想到他也是搞的没有信心了——后来他得出结论,我们的能力不适合做软件,不适合做Linux,只适合做单片机底层的(评论@2011年05月06日:其实现在看来就是太急于求成,想把ARM当单片机一样学,完全就是错误的,对自己要求太高,确切的说是对ARM的难度以及学习流程没有把握好,想速成,结果被打击是必然的)。我是个墙头草,连C语言基础都不过关的人,压根没有资格学嵌入式,就这样我们的板子躺了一年,然后最终1200的价格卖掉,真是个悲剧,我们没有通过这个2410学到什么,反而被打击的一塌糊涂,悲剧啊,悲剧啊!。
       我和ARM的经历还没有结束,当时找到工作后信心膨胀,想找个ARM的毕业设计挑战一下,刚开始的时候老师的题目是基于atmel的9260的can总线楼宇控制器,我压根不懂Linux,也不懂ARM是什么,但是我当时真是疯了,想两个月就做出这个来。后来到公司实习一个月,公司只用wince,后来我就跟导师说我要用wince做。于是我又自己掏1100 大洋出来在淘宝买了个QQ2440,我大学勤工俭学+助学贷款完成的,这时候我拿出这么多钱做这个舍友都惊呆了,嘿嘿,我经常做这种败家行为,FPGA和USB实验板都是自己买的,并且自己什么都没有学懂那种。这次QQ2440 的毕业设计我倒是做的很成功,只用了半个月不到就完成了硬件,再用一个星期写了个can 转232 控制应用程序,虽然现在觉得那个东西超级简单,可是当时我真是对我能力的提高的速度惊呆了,要知道,以前我一个人干活总是找不到入口的,不仅如此,做完自己的毕业设计我还帮别人做了四五个,并且不知道怎么回事我那时候FPGA这些玩意居然也会了,真是神了,以前我压根不会写VHDL的语句的,后来和H配合做毕业设计,我居然能和他讨论上了,我清楚的记得,以前他和Z讲什么我都不懂。哎,要是我早一年能够这样,那么我们的全国电子设计大赛一定能获得一等奖,我这个挫人造就了我们三个人的悲剧!
       大学毕业的时候,我做了一次成功的销售——我把毕业设计800 块钱(QQ2440)卖给师弟去了,那些FPGA送给师弟了,USB 实验板子也卖给师弟了,嘿嘿,算下来没有亏多少,自己学了一堆东西,值了!ARM这玩意一次性投资,并且可以当二手卖掉的,不会亏太多的,所以大家压根不会损失什么,只会将来赚的更多。
       至于毕业后,其实我也算个ARM盲,因为毕业设计我压根没有写驱动,连wince内核都没有烧写过,我胆小,我怕烧坏(O(∩_∩)O哈哈哈~)。毕业后我就吸取大学的悲惨教训了:我不会再要求自己很快学会wince,我会一步步来,我先通过bootloader源码来学习,了解ARM的体系架构,在bootloader的学习阶段,我花了接近三个月的时间,并且后期我花了一个月的时间来学习MMU,真是庆幸,当时公司采用类似优龙、飞凌的2440 的开源bootloader (当时第一次买2410 的确没有意识到bootloader对工程师培养的重要性,也许这是我们被打击的最大原因)。这样合理的学习计划,让我对自己越来越有信心,嘿嘿,后来才进入wince的学习,总之是来到CSDN的wince版块是我的幸运,不多说了,在这个帖子写的很详细了http://topic.csdn.net/u/20090704/01/43492b64-f7bf-4953-a31f-dbe74d9b4a5d.html?33940
  很晚了,再说点吧。我觉得很多初学者都有如下疑问:
一、学嵌入式需要具备什么知识?
这个太复杂,对于wince我发过一个帖子,明天找个连接过来,讲的比较好的了。
http://blog.csdn.net/gooogleman/archive/2010/02/25/5325489.aspx#1473445
二、到底是学Linux好还是wince好?
       我觉得都好,我觉得最好专一学一个,学好一个再学别的,不要两个一起学,走火入魔的可能性较大。嘿嘿,很多人认为wince不是开源的,就不靠谱,这是大学生的普遍想法,当年我们都有过,我们都被媒体忽悠了,大家疯狂支持开源,要知道那些媒体是不懂技术的,我们反而被他们忽悠,真是个悲剧。可是出来后发现wince未必不靠谱,他占据了很大的市场,存在即是道理嘛。wince的优点是开发环境友好,兼容性高,入门容易。不过不要高兴,wince入门容易,提高很难,我看过Linux驱动是C语言,但是wince很多是C++,难度比较大,所以千万别鄙视wince了,其实他也大部分开源了。嘿嘿,做了一年多的wince还有很多不懂,要不是想转型做个技术性销售,我还真没有学习Linux的打算呢。总之自己工作干啥的,最好专攻这个,以后想玩别的再说,我大学的最大失败点就是什么都学,结果什么都学不好,什FPGA,USB都去乱搞一通,差点酿成重大悲剧。现在觉得一个有潜力的人,就是基础好,包括理论和实践,还有就是他的方法和信心了。
     很晚了,以前说十一点必须睡觉的,今晚太激动了,写就不停了,嘿嘿。最后建议大家养成良好的作息习惯,身体是革命的本钱哦,我这个月一直生病,深有体会。大伙有问题就博客留言吧。直接在CSDN敲打,没有来得及纠错,见谅。睡觉,This is it!
                                                                                      作者:gooogleman 2010.05.26 凌晨 最后修改2011.05.06

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/gooogleman/archive/2010/05/23/5617981.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一个机械专业小混混(gooogleman)学习嵌入式ARM的真实经历 的相关文章

  • 应用服务器与zk之间的连接超时

    关于connectString服务器地址配置 格式 192 168 1 1 2181 192 168 1 2 2181 192 168 1 3 2181 这个地址配置有多个ip port之间逗号分隔 底层操作 span class hljs
  • 日本小学生走向APP开发私塾 智能手机迫切改变IT教育——日本经济新闻报道

    如要在日本接受专门的信息技术教育 xff08 IT xff09 xff0c 只有结束义务教育课程才能接受 如今 xff0c 打破这些障碍的趋势逐渐浓厚 因为从小就接触到各种数字机器和互联网而长大的 数字土著 xff08 digital na
  • 步进电机和伺服电机的区别

    步进电机作为一种开环控制的系统 xff0c 和现代数字控制技术有着本质的联系 在目前国内的数字控制系统中 xff0c 步进电机的应用十分广泛 随着全数字式交流伺服系统的出现 xff0c 交流伺服电机也越来越多地应用于数字控制系统中 为了适应
  • 【图像处理】墨西哥小波和带通滤波

    一 说明 在连续小波的家族当中 xff0c 埃尔米特小波是个非常特别的存在 xff08 应用在连续小波转换称作埃尔米特转换 xff09 Ricker子波计算电动力学的广谱源项 它通常只在美国才会被称作墨西哥帽小波 xff0c 因为在作为核函
  • 【halcon知识】应用仿射变换

    一 说明 无论什么样的变换 xff0c 都离不开齐次变换矩阵 一般地 xff0c 先准备一个空的齐次变换矩阵 xff0c 这个矩阵随便填写 xff1a 1 xff09 填入旋转类参数就是旋转矩阵 xff0c 2 填入仿射参数就可进行仿射变换
  • 【ROS2知识】SQLite数据库

    目录 一 说明 二 介绍SQLite 三 安装 3 1 简单测试 生成一个表 3 2 sqlite 共五种数据类型
  • open3D

    目录 一 说明 二 如何安装open3d xff1f 三 显示点云数据 3 1 显示点云场景数据 3 2 体素下采样 3 3 顶点法线估计 一 说明 对于点云 处理 xff0c 这里介绍哦pen3d xff0c 该软件和opencv同样是i
  • 【计算几何7】帝国边界划分问题【Voronoi图的原理】

    目录 一 说明 二 帝国边界划分问题 三 voronoi的正规定义 3 1 最简单的voronoi情况 3 2 在距离空间的数学描述 3 3 不同距离空间所得 Voronoi 单元不同 四 代码和库 4 1 算法库 4 2 参数说明 4 3
  • 【python视图2】基于networkx的10个绘图技巧

    目录 一 说明 二 简单图操作种种 2 1 简单的无向图 2 2 简单的有向图 2 3 二维网格grid图 和边数据读写 2 4 环图 2 5 全连接神经网络 2 6 分布直方图 度秩图 连同子图 2 7 随机生成 2 8 渐变颜色化 2
  • ESP32控制TDC-GP22测量超声传播时间(超声流量计)

    TDC GP22控制的资料 xff0c 网上的资源都是基于STM32或者MSP430主控的 xff0c 但现在这两款芯片都太贵了 xff0c 因此就想用便宜点的ESP32 xff0c 折腾了快一周 xff0c 终于弄好了 工程源码和参考资料
  • 【python视图3】networkx图操作示例

    目录 一 说明 二 神奇制图 2 1 绘制彩虹图 2 2 随机地理图 2 3 旅行商问题 2 4 权重的灵活绘制 2 5 barabasi albert模型1 2 6 barabasi albert模型2 2 7 igraph操作 一 说明
  • 【python视图1】networkx操作Graph图

    目录 一 说明 二 生成图 xff08 Creating a graph xff09 2 1 创建一个没有节点和边的空图 2 2 在空图追加节点 2 3 追加边 xff08 Edges xff09 2 4 删除节点 2 5 查询 三 使用图
  • 【python】错误TypeError: ‘dict_values‘ object does not support indexing when的改出

    一 说明 在使用python的dict和索引时 xff0c 在早期的python可以 xff0c 但后来不可以了 因此 xff0c 在python执行语句 xff1a names i d values i for i in range le
  • 【Python知识】 可哈希和不可哈希对象

    目录 一 说明 二 可哈希 在Python中是什么意思 xff1f 2 1 什么是哈希 hashable xff1f 2 2 python的可哈希对象 2 3 实验和说明 2 4 什么是不可哈希 unhashable xff1f 三 更深的
  • 【python知识】推导式和生成器

    目录 一 说明 二 列表生成式 2 1 语法 2 2 列表推导式实例 三 字典的推导式 3 1 语法字典推导式 3 2 示例 四 集合推导式 4 1 集合推导的语法 4 2 实例 五 元组推导式 5 1 元组推导式基本格式 5 2 元组推导
  • 【python知识】运算符博览

    目录 目录 一 说明 二 基本数值运算符 2 1 基本运算符的列举 2 2 基本运算符的示例 2 3 复数基本运算符的示例 三 整数进制转化 3 1 进制转换运算符 3 2 实验代码和说明 四 整数按位运算 4 1 全部位运算符号 4 2
  • 【python知识】__init__.py的来龙去脉

    目录 一 说明 二 包 模块 函数结构 2 1 包 模块 函数的关系 2 2 init py的角色 2 3 识别包 三 init py的功效 3 1 建立一个工程包 3 2 用 init py简化工程包 3 3 过滤 3 4 设置顶级全局变
  • 【python知识】importlib包详解

    importlib The implementation of import Python 3 11 3 documentation 目录 一 说明 二 模块导入简介 2 1 最简单的 importlib用途 2 2 importlib 包
  • 【python】如何用conda更新软件的问题

    一 说明 在实现anancoda的软件更新问题 xff0c 需要明确几个问题 xff1a 1 xff09 是python包吗 xff1f 2 xff09 是C 43 43 包吗 xff1f 更新的方法有别 python包可以pip访问 C
  • 【射影几何08】仿射映射

    目录 一 说明 二 仿射映射 2 1 直线上的仿射映射定义 2 2 平面间的仿射映射定义 三 仿射不变性性质 四 平面到自身的透视仿射 五 透视仿射和透视映射的关系 5 1 射影透视变换和仿射的关系 5 2 仿射函数和线性函数的区别 一 说

随机推荐