一个嵌入式软件开发工程师的学习心得

    下面我说说我的一些学习的心得,这 些方法未必正确,我也在不断探索和改进中。
    我的学习和工作有相对明确的目标,我不会一时心动而去学习某一技术,在下决定之前我会考虑很多,包括长期的发展,个人路线的规划,需要付出的代价、可能遇到的困难及解决的办法等等,在决定后还会制定更加明确的计划,包括短期、中期和长期的,身边可以利用到的资源(包括好的书籍、资料、软硬件环境,也包括有经验的朋友或者师长),以及每一个阶段是怎么过渡到高一阶段的计划,往往在一个学习阶段一旦上路后会走的相对顺利,但是跨阶段通常比较麻烦,比如从学习基础知识转到实践。另外我买书也有自己的方法,现在世面上高质量的书远不如低质量书多,对于一个陌生的技术,往往在第一次买书会选择错误,即使买到一本好书但是它的方向也未必适合你,所以我通常会先在网上查找一些该技术的介绍,有了一点点概念后再去买一本比较薄、相对便宜并且内容相对泛泛而谈的书,这是国内作者最善于写的书:),再把它浏览一遍后我就会基本明白这门技术的要点,后面买书和制定计划就会明确的多。否则一开始就想找本好书往往比较困难,而且买回来后努力学习,有时候学了一半才发现 是本低质量的书或者是相对过时技术,让人非常懊恼。另外让有经验? 人帮你介绍,通常也是一个不错的选择。
  有些朋友想学通信、嵌入式开发,但总觉得自己没有软硬件环境,我就按我的了解给 大家介绍一下怎么建立这样的环境,当然我了解的只是我学习和工作的方向。通信我做的 是数据网方面的工作,包括TCP/IP、二三层交换、对接入网、H.323和软交换也有一点认识 。这些软硬件环境都是可以在PC上构建的。你甚至可以在一个没有网卡的PC上建立一个包 含多个路由器、接入服务器、VoIP网关、网守、主机等的仿真网络环境,而且与实际的网 络相当接近,当然这需要你有清晰的网络概念和一定的网络知识,我一直在努力开发一套 软件将这个过程简化,目前试验已经做完,我可能会将它融入我的操作系统外围扩展软件 中。这样的方法我无法用简单的语句讲的很清楚,我可以说一下大概的思想,就是在PC上 实现仿真网卡,(知道Windows怎么在没有网卡的机器实现虚拟网卡技术的朋友都应该会明 白),然后每一个仿真网卡对应一个虚拟设备,如路由器或者主机。你也可以借助第三方 工具完成部分工作,如VmWare等。我现在就是利用一个仿真网卡做自己的开发的。至于嵌入式开发环境更加容易实现,PC就是一个非常大的硬件平台,现有的嵌入式操 作系统通常都支持X86,你可以在上面做开发,通过软盘Boot或者使用虚拟机装载,我用V xWorks做了试验,在一台PC上跑Windows和VxWorks两个系统。另外Windows上的兼容DOS的 16位仿真X86环境也为很多操作系统提供了绝佳的试验环境,我的操作系统在Windows上就 是这样实现的。Linux在嵌入式中应用也比较广泛,它在网上有大量的资料,而且也相对比 较容易实践。同时很多完善的嵌入式开发环境支持软件仿真,如Tornado、WinCE等。

一个嵌入式软件开发工程师的学习心得