【精品】挺进嵌入式----来自多年嵌入式开发工程师的经验之谈!

  • 爱看代码
  • LV0工程师
  • |      2015-10-21 12:52:28
  • 浏览量 782
  • 回复:2

以下言论来自网友收集整理,如有侵权,请联系告知,谢谢。


嵌入式专业是一门实践性非常强的学科,只有多动手,多实践,多编程,多调试,多看书,多思考才能真正掌握好嵌入式开发技术。
    现在很多同学也意识到了学校培养模式和社会需求脱节问题,有一部分同学也先行行动起来,开始注重培养自己的实际动手能力,培养自己实际分析问题,解决问题的问题,培养自己在嵌入式专业实际编程,和调试程序的能力。但是嵌入式专业不同于其他学科,嵌入式专业是一门综合性非常强,涉及知识面非常广的学科,对于初学者来说,面对那么多教程,课本,那么多知识点,往往不知道从何处下手,不知道哪些是重点,哪些不是重点,这些知识点之间有什么关联,一脸的茫然,然后东一榔头,西一棒子,折腾了几个月甚至大半年后,还是找不着学习嵌入式的方向,还徘徊在嵌入式开发的大门之外。


    那么,如何从零开始学习嵌入式开发技术,  进入嵌入式开发大门呢,笔者根据自己的嵌入式学习经历和多年的嵌入式 linux 教学经验,谈谈自己对嵌入式学习的一些想法和意见,希望对大家有所帮助。

一、练好基本功

    嵌入式系统专业是综合了计算机硬件技术,计算机软件技术以及电子电路技术的一门综合学科,所涉及的内涵和知识非常广泛,包括:数字电路,模拟电路,计算机组成原理,单片机基础,语言基础,操作系统,数据结构,编译原理,计算机控制,计算机网络等知识。 在真正学习嵌入式开发之前,首先要打好基础。其中最重要的是 语言基础、数字电路、计算机组成原理三门课程。对于 C语言,至少能单独编写调试一个 3 ~ 500 行的程序,能够了解 语言的基本语法规则,基本语句的使用,理解指针概念并能灵活使用各种指针。 计算机组成原理要能理解组成一个计算机系统的几大部件,计算机系统的结构,理解系统总线,理解处理器和计算机外部设备的关系,处理器和计算机外设是如何协调工作完成某一项功能的,计算机软件和硬件是如何分工协作完成某一项任务的,理解软件是通过寄存器来控制硬件的。

    数字电路,模拟电路要了解其基本原理个概念,能看懂简单模拟、数字电路原理图。理解数字电路中的寄存器,时序的概念,能看懂芯片手册和时序图。对于其他基础课程,重点要理解其中的一些基本概念,如何使用等等。

    对于电子,自动化,通信,计算机类专业的学生,在大二、大三开设的专业基础或专业课程中基本包含了以上的大部分课程。因为缺乏实践,可能学得不是很深入,但是一些基本的概念和基本知识应该还是有所了解,针对一些薄弱环节,自己稍微加强学习一下,基本上已经具备了学习嵌入式开发的基础。在嵌入式基本功学习阶段,最重要的是 语言和单片机基础,最好是能用 语言开发一个小的单片机程序,例如用 语言实现单片机和 PC的串口通信,用 C语言控制 LED等显示,用 语言控制数码管显示等小程序。在这个期间需要的学习工具就是单片机51学习开发板。


二、嵌入式 Linux 应用开发

    嵌入式开发基础知识学习完后,这时候你已经有了一定的嵌入式开发基础了,可以进行基于单片机的嵌入式系统设计了。单片机编程本身也是属于嵌入式编程,但是在这里我们只是把单片机开发当作嵌入式系统开发的基础,不把单片机开发作为真正的嵌入式系统开发,在这里我们的嵌入式系统开发是指在带有操作系统的嵌入式平台上的应用和驱动开发,特别指在嵌入式 linux平台上的开发。

    单片机开发在很早以前是非常热门的,现在在一些比较简单的系统上单片机也用的非常广泛,随着硬件的成本不断降低,在一些比较复杂的嵌入式设备一般都采用嵌入式 linux 操作系统,在嵌入式 linux 平台上进行开发,这样可以极大的提高嵌入式开发效率,提高系统的稳定性和可靠性,降低开发成本。由于 linux 是一个开源的操作系统,你可以通过阅读 linux内核来理解内核的实现机制,如果有需要,你甚至可以通过修改内核源码来提高系统的性能;同时,全球参与 linux 开发的队伍非常庞大,网上有大量的嵌入式 linux开发资料和源代码,很多你需要实现的功能在网上基本都能找到相关源码,参考一下别人写的源码,这样可以极大的提高自己的工作效率和技术能力,近几年,随着参与 linux 开发的人越来越多,linux 系统的稳定性、实时性有了很大的提高,linux 系统无论在服务器上还是嵌入式设备平台上都应用越来越广泛,现在包括华为、中兴、朗讯的各大通信巨头都开始把自己设备的底层平台从 vxworks 操作系统迁移到 linux 系统,可以说嵌入式 linux 是嵌入式技术发展一个方向,是嵌入式技术的一面旗帜。基于以上原因,我的建议是学嵌入式开发,就学嵌入式 linux 开发,相对于 wince 等其他的嵌入式平台,你可以真正学到更多的东西,学到嵌入式技术的精髓,同时他又符合嵌入式产业发展的方向,不容易被日新月异的技术发展所淘汰。 有了嵌入式开发的基础,又知道了我们为什么要学习嵌入式 linux 开发,那我们就要开始动手开始学习了,那如何开始学习嵌入式 linux 开发,从哪里开始着手呢?


三、嵌入式 Linux 系统和驱动开发

    有了嵌入式 linux 平台上开发应用程序的基础,你已经对 linux 的功能、linux 对应用程序提供的接口和系统调用有了一定的了解,知道如何利用linux提供的功能来进行应用程序开发,知道如何来使用设备驱动来进行应用程序设计,有了这些知识后,你就可以更深入的去学习Linux 系统原理和基于 Linux 驱动的开发,Linux 内核的裁剪,文件系统构,bootloader等等底层的知识了。

    想要更深入学习嵌入式 Linux 系统和驱动开发,要学的内容非常多包括计算机软件、硬件、操作系统知识。这时候你可以参照以下的学习思路,因为嵌入式 Linux 系统和驱动的开发,和底层硬件联系非常紧密,所以首先我们从学习了解嵌入式硬件开始,包括:ARM 体系架构、S3C2440 微处理器接口设计、时钟系统、LCD 屏接口、存储控制器及系统的存储空间分配、NAND FLASH 接口和 NOR FLASH接口等。对嵌入式系统硬件有了一定的了解后,接下来就可以开始学习 bootloader 了,理解 bootloader 的概念,功能,和原理,重点掌握U-BOOT 的使用和移植。接下来就开始学习嵌入式 linux 内核机制,分析嵌入式 Linux 源码组成、内核的模块机制、内核进程管理、内存管理机制、linux 的中断系统、Linux 内核的移植等。有了内核的基础,就可以学习嵌入式 Linux 设备驱动开发了,重点掌握字符设备驱动开发,LCD 屏设备驱动开发、触摸屏设备驱动开发、USB 设备驱动开发,网卡设备驱动开发。学完这些知识点并通过相关实验验证后,嵌入式 Linux 系统和驱动的开发就算掌握了差不多了,能够胜任绝大部分基于 linux 平台的驱动开发工作了。学完这些知识点,根据学员的不同情况,一般需要花三个月到半年时间。通过这一阶段的学习,你在嵌入式 Linux 开发领域已经算是有了一定的功底,已经不再被人称为菜鸟了,已经进入嵌入式 linux开发高手行列了。


四、更上一层楼

    深入理解了嵌入式内核和驱动开发,这时候写个什么驱动对你已经没有什么问题了,开发过程中一些基本问题都难不倒你了。这是你可能想优化一下系统的性能,比如实时性,提高系统的启动速度,或者优化系统的内存管理机制,要达到修改内核核心机制的境界,你就

需要去深入去研读 linux 内核源码了,参考《linux 源码深度分析》、《linux 情景分析等》等linux 源码分析的书籍,深入理解 linux 各部分的实现机制和原理,以及可能存在的问题。你只有在深入理解现有代码和实现机制的基础上,才能提出更好的改进方案。如果你能达到这个境界,那你已经是高手中的高手,可以笑傲群雄了。

    以上是笔者结合自己的嵌入式学习经历和嵌入式培训经验总结的一些嵌入式学习方法和步骤,这只是笔者对嵌入式学习的一些看法,希望对那些有兴趣学习嵌入式 linux 又不知道从哪开始学的同学们有所帮助。当然,每个人,每个同学的基础,各方面的情况都不一样,每个人都有自己适合的学习方式,本文章总结的一些学习方法和思路仅供参考,希望大家能找到适合自己的学习嵌入式开发的方式,早日进入嵌入式开发大门。



以上的文章是转载的,现在在学习中遇到了瓶颈,请有这方面兴趣的同学与我联系,子曰:独学而无友,则孤陋寡闻。

资料下载地址:

百度云链接: http://pan.baidu.com/s/1c0jX09U 密码: idqx



【精品】挺进嵌入式----来自多年嵌入式开发工程师的经验之谈!【精品】挺进嵌入式----来自多年嵌入式开发工程师的经验之谈!【精品】挺进嵌入式----来自多年嵌入式开发工程师的经验之谈!【精品】挺进嵌入式----来自多年嵌入式开发工程师的经验之谈!【精品】挺进嵌入式----来自多年嵌入式开发工程师的经验之谈!

以下资料是笔者整理的资料,有兴趣的可以去下载学习。【精品】挺进嵌入式----来自多年嵌入式开发工程师的经验之谈!

  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:2
LUCKYWANG 2015-11-13
你好  请问连接怎么失效了啊  能否再发一次呀  
0   回复
举报
发布
爱看代码 2015-10-21
史上最强! 嵌入式视频资料教程(内部资料600G)下载地址
百度云链接: http://pan.baidu.com/s/1c0jX09U 密码: idqx

0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子