嵌入式学习 订阅
嵌入式学习即嵌入式Linux系统、Android系统开发学习,主要讲述嵌入式学习的方法,嵌入式学习路线、和兴趣学习嵌入式的必要性。 展开全文
嵌入式学习即嵌入式Linux系统、Android系统开发学习,主要讲述嵌入式学习的方法,嵌入式学习路线、和兴趣学习嵌入式的必要性。
信息
兴趣学习
兴趣是学好嵌入式的基本要求
学习路线
学习流程
中文名
嵌入式学习
学习方法
坚持
嵌入式学习基本介绍
什么是嵌入式学习?嵌入式学习是将学习真正“嵌入”到日常工作中,使学习的知识能得到有效的转化。嵌入式学习模式认为如果学习内容与工作相关,员工学习的积极性最大,在今天日益快速变化的学习环境中,传统结构化的课程很难预测员工在工作中遇到的各种复杂问题,因此难以向员工提供最佳的问题解决方法,而员工在工作中遇到困难时能通过内部学习组织很快得到解决问题的方法从而得到知识,就被称为嵌入式学习。嵌入式学习具有提供即时的学习支持、强调合作性、引入学习技术、将学习与工作相结合的特点。
收起全文
精华内容
下载资源
问答
  • 嵌入式学习

    2021-02-20 17:18:24
    在论坛里面突然发现的一个大佬给的嵌入式学习的路线建议跟大家分享一下 一:做任何事情都有一个循序渐进的过程,学习嵌入式linux也一样。 在有了一定的嵌入式开发基础后,学习嵌入式linux开发比较适合的切入点是从...

    在论坛里面突然发现的一个大佬给的嵌入式学习的路线建议跟大家分享一下

    一:做任何事情都有一个循序渐进的过程,学习嵌入式linux也一样。
    在有了一定的嵌入式开发基础后,学习嵌入式linux开发比较适合的切入点是从嵌入式linux应用程序开发开始,即暂时先不去关心嵌入式硬件平台,不去关心linux的底层驱动,先把精力集中在现有的嵌入式linux平台上进行嵌入式linux应用程序设计开发。
    学习嵌入式linux开发绝不是看看书就可以学好的,需要多实践,编程调试;因为嵌入式开发不同于普通的基于PC机或服务器的应用程序开发,嵌入式开发的应用程序是要烧写到嵌入式板卡或开发板上运行的,所以首先你要给自己购买一块开发板,现在普遍流行的嵌入式开发板都是基于三星的ARM9 CPUS3C2440,性价比极高,在这里我推荐使用飞凌公司FL-2440 高性价比ARM9学习开发板,开发板资源丰富,稳定,同时配有大量的实验源码,视频教程和实验指导书。
    有了开发板后,先后开始学习嵌入式linux开发环境搭建、嵌入式linux开发模型、linux内核移植和文件系统、嵌入式linux应用程序移植、嵌入式linux多进程,多线程应用程序设计、嵌入式linux网络编程,如果对嵌入式数据库或图形软件开发有兴趣的,可以进一步学习嵌入式linux数据库开发或基于QT的嵌入式linux图形应用软件设计。
    每学一章节都要通过相关实验来来验证你从书上学到的东西,同时提高自己编写代码,调试程序的能力。这个过程根据不同学员的基础不同,大概要花上1 ~ 2个月时间。学完这些课程后,你就有了再现有的嵌入式linux平台上进行应用程式设计开发的能力,到一些嵌入式软件公司去,能够胜任在现有的嵌入式linux平台上进行上层的应用程序开发工作。
    但是目前你还不能进行嵌入式linux系统和驱动的开发,也就是说,你现在只能在一个已经构建好的嵌入式linux平台上进行应用程序开发,而自己还没有能力根据实际需要去重新构建一个嵌入式linux平台。要让自己有能力根据实际需要重新构建一个嵌入式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各部分的实现机制和原理,以及可能存在的问题。

    展开全文
  • 何为嵌入式? 1、单片机相关 1.1 基于单片机的智能小车、智能机器人制作 1.2 基于Arduino的3D打印机制作 2、嵌入式Linux相关 2.1 智能扫地机器人 2.2 智能可穿戴类设备:智能安全头盔 2.3 智能可穿戴类设备:...

    更多技术干货,欢迎扫码关注博主微信公众号:HowieXue,一起学习探讨软硬件技术知识经验,关注就有海量学习资料免费领哦:

    ----------

    目录:

    0、引言

    何为嵌入式?

    1、单片机相关

    1.1 基于单片机的智能小车、智能机器人制作

    1.2 基于Arduino的3D打印机制作

    2、嵌入式Linux相关

    2.1 智能扫地机器人

    2.2 智能可穿戴类设备:智能安全头盔

    2.3 智能可穿戴类设备:面向空巢老人/病人的智能手环

    2.4 物联网智能控制系统:家居、农业、医疗

    2.5 基于Linux的嵌入式网络视频监控系统

    2.6 移动图像监控系统

    2.7 基于TCP/IP的安全文件传输系统(TLS/SSL)

    2.8 嵌入式MP3播放器

    2.9 基于Qt的新能源汽车电池管理系统

    2.10 嵌入式车载导航定位系统 Qt+GPS+Baidu Map

    2.11 无人机

    2.12 嵌入式VR、AR

    2.13嵌入式结合AI、Machine Learning

    3、嵌入式Android相关

    3.1 物联网智能控制系统:家居、农业、医疗

    3.2 嵌入式家庭保健系统

    3.3 智能电视TV、AR/VR眼镜

    3.4 自己定制的平板电脑、手机等

    4、裸机开发

    4.1 裸机实现串口通信

    4.2 裸机实现DMA方式SD卡读写

    4.3 裸机是实现NANDFlash、EEPROM的操作(擦除、读写)

    5、相关资料分享

    博主热门文章推荐:


    0、引言

    何为嵌入式?

            IEEE官方定义:Devices Used to Control,Monitor Assist the Operation of Equipment,Machinery or Plants。

    翻译过来就是:用于“控制、监视或者辅助操作机器和设备的装置”。

              其实按我理解,嵌入式系统就是“高大上+土豪”版的单片机,因为嵌入式不只带操作系统(OS),并且都是上架构(如ARM)的。其实咱们所用PC机也是一个嵌入式系统,只不过处理器、Bootloader、操作系统OS都是通用化的Intel系列、BIOS、Windows等;而面向具体应用,就需要根据需求,实现硬件资源和软件操作系统的“私人订制”,无非就是先根据需求硬件选型,然后根据硬件资源去裁剪操作系统,把软件不需要的都去掉,只留有用的,这样保证我们用的系统在达到需求目标的同时,还保证了实时性稳定性(没有无关因素干扰)并且小型化具有专用性

           再啰嗦几句,假设大家对单片机已经很熟了,举个栗子:对单片机引脚控制LED,用C编程通过IDE编译个Hex文件,烧写就可以运行实现;那么对嵌入式来说呢,因为处理器引脚太多(如Cortex-A9架构的Exynos4412芯片 有400多引脚),那么自己一个个配(裸机编程)实在麻烦,而且编的程序都与硬件密切相关,没有通用性且很难移植;因此就使用上了操作系统;那么操作系统干了什么呢?其实就是和单片机操作引脚一样,只不过OS将这些操作封装成各种驱动(如GPIO驱动),那么你只要在应用程序上调用这个驱动内的函数,借助OS内核实现机制,就能向单片机一样操作这些引脚,所有嵌入式设计,底层都是这么实现的。

          So, 怎么判断该用嵌入式还是单片机呢:其实就是看需求,单片机处理能力、可扩展性及其有限,涉及到图像监控处理、网络协议就捉襟见肘了;因此这个逻辑很简单:单片机不能实现的,上嵌入式;并且现在是个嵌入式功能都有成型的solution,特别是Linux的开源,资料成堆成堆的。这也是近年嵌入式(包括物联网智能硬件火这么快的原因之一吧。

    以上都是愚见,切入正题:本人不才整理了几个嵌入式比较好的练手项目和小课题,有的是我之前做的项目,有的是网络搜罗,反正都是我个人认为比较综合而且interesting的,这些网上一大堆相关资料,我这里只是提个题目和其中关键点,具体内容不赘述,感兴趣直接百度google,希望给大家一个参照,大家有idea都可以相互交流,有机会共同学习,感谢。

    骚扰方式: Howiexue@gmail.com


    1、单片机相关

          这里主要是推荐嵌入式相关,所以单片机就只简单提几句

    1.1 基于单片机的智能小车、智能机器人制作

         对于大学经常参加一些智能车比赛的童鞋,相信已经做吐了。。。小车目前可以算是相关资料最多的练手项目之一,各种脑洞大开的智能车车,你值得拥有~

     

    1.2 基于Arduino的3D打印机制作

    需求:使用单片机,通过限位开关和温度等传感器控制步进电机移动、加热头,将打印材料加热挤出后凝固成型。

    硬件:Arduino mega2560开发板,3D打印机套件,打印材料,安装工具等

    软件:Marlini开源程序,上位机软件Print3D,切片软件(推荐Cura),三维制图软件(推荐犀牛)等。

    参考链接:http://reprap.org/wiki/Kossel

                http://prusaprinters.org/prusa-i3/(推荐一开始做Kossel和i3型的)

    800元组装一台3d打印机全教程流程http://tieba.baidu.com/p/2944800373?see_lz=1

    注:这个项目实现很费事,可谓处处是坑,不只是单片机软硬件知识,还要学三维制图、机械原理等等,期间会遇到一系列问题,但是最终调试完,第一次打出自己想要的东西时,感觉真是此生难忘,所以当时一做就做了三台(下图,其中左面上角是 Prusa I3 型,其余那俩都是Kossel 三角洲)。推荐创客们玩玩,比四轴飞行器好玩多了(也省软妹币)。

        3D打印现在是所谓工业4.0的主打,特别是牛炸天的细胞打印(对你没有看错)、器官打印、粉末金属打印等。不过我们做的也就打印些塑料小玩具,现在的SLA光敏树脂打印倒挺不错,能比FDM的快几十倍,只是成本太贵(貌似10w+)。又扯远了。。。咳咳,下面开始划重点:


    2、嵌入式Linux相关

          嵌入式Linux就是在嵌入式硬件平台上使用Linux操作系统。其实嵌入式开发过程就是硬件+软件设计过程,本节推荐的都是在一个目标硬件平台上设计基于linux系统的应用,主要工作一般都是:Bootloader设计与移植、Linux内核裁剪移植、Linux驱动程序开发移植、文件系统制作移植和最后的应用程序开发移植。说了这么多移植它是什么东东?我理解为:拿着别人写好的东西,稍微自己改改放到自己的平台上,其中的“改”和“放”的过程就是移植的过程。这也是嵌入式工程师必须具备的能力,一定要借鉴甚至使用别人做好的,自己闷头写代码只能闭门造车(大神除外)。

             推荐硬件平台树莓派(首推),友善之臂、飞凌等开发板(这些开发板自带很多练手项目课题,网上也很多资料,本文就不再提那些case),架构最好选主流的ARM,像流行的s3c6410(ARM11)、s5pv210(A8)、exynos4412(A9)等。或者自己画板子(使用现有开源出来的修改下,不过成本高,难度大),有兴趣不妨一试,刚开始学习还是老实用开发板吧。

            推荐软件平台Linux2.6以上内核(2.6以下很多系统机制会不同)嵌入式系统,Github、开源中国和ChinaUnix上一堆开源的Linux驱动和小应用,宿主(PC)机最好使用Fedora、Ubuntu系统(如果使用虚拟机VMware版本最好在9.0以上),Bootloader推荐使用U-Boot;文件系统根据使用的Flash支持,用Busybox制作;人机界面用Qt。

    如图:

    嵌入式系统层次结构

    2.1 智能扫地机器人

           深藏不露的“扫地僧”,类似壁障设轨智能小车,只不过有更多人性化功能,网上资料+自由发挥吧

    2.2 智能可穿戴类设备:智能安全头盔

    背景:在工厂或危化品存储等场所,经常发生危害气体泄漏,而由于环境、风力等因素,人们无法直接在固定位置检测,而且有的气体是无色无味,如何解决?其实最终目的还是保证工人的人身安全,这时候就体现出来智能可穿戴设备的价值。

    需求:设计智能安全头盔,当检测到有害气体后震动报警,并将该危险地点通过GPS上传到上位机显示,生成一个有害气体地图(借助Baidu API)以红色标出危险地段。

    2.3 智能可穿戴类设备:面向空巢老人/病人的智能手环

    需求:背景不用说,设计一个智能手环(或其他设备),检测人身体的各项生命特征,并且实时GPS传输老人位置,还具有跌倒报警、遇水报警等突发状况向子女手机、服务器端推送报警信息。自由发挥,有些身体特征检测实现确实困难,但总有方法解决,市面已有这类产品。

    2.4 物联网智能控制系统:家居、农业、医疗

    这就是近年炒的最火的智能家居、智慧农业等物联网项目,其实都是属于嵌入式智能控制系统,无非就是底层传感器网络(如Zigbee)采集环境参数数据,传给嵌入式网关,网关再传给上位机服务器,再加上远程控制、视频监控等。像这样的题目很多很多,例如智能温室大棚控制系统、智能家居系统、智慧医院系统、智能仓储管理系统等等,其实都能归结为一套系统,只不过根据应用领域有些不同细节。

     

     

    盗图留种:http://www.embedu.org/projects/smart-agriculture.html

    注:这类课题难度适中,建议多人合作,分别负责感知层(传感器网络),网关层(嵌入式平台),上位机应用层(Web服务器、安卓App);至于云端架构可以使用乐联网、Yeelink等已实现好的物联网平台。总之多借鉴别人好的案例。

    友情提示:可以先做底层采集温度,传给网关显示并转发到服务器,这一路通了后面程序就好开发了。或者灵活变通,用嵌入式网关采集传感器(需移植传感器驱动到Linux内核),就不需要使用Zigbee等WSN了(如下图)这也可以算是一个题目,都很open的,怎么做你来定,只要脑中有idea,生活处处皆课题(简直是自虐)。

    2.5 基于Linux的嵌入式网络视频监控系统

    面向安防等应用中,具多个摄像头同时视频传输,为减少带宽、提高视频分辨率和帧率,就需要使用编码标准对视频编码后再传输,so做一个软编码器,我做过基于H.265的编码(有兴趣百度Lib265),这里可以使用H.264(资料较多)其实原理很简单,涉及到摄像头驱动和编码库。还有上位机解码软件。

    Linux网络服务器可以使用开源的mjpg-streamer。(可以参照国嵌高级项目班视频)

     

    2.6 移动图像监控系统

          类似2.4, 例如国嵌高级项目班中就有介绍,多了一个入侵检测。使用摄像头抓取图像,通过Motion库动态监控比对,一旦出现和前一个图像较大变化(如家中进来一个人),则立即拍照将照片传到上位机,并报警等联动。

        后面还包括安全文件传输系统,嵌入式MP3两个都是国嵌教程里的项目,后面都有链接,我也是以前学习时候在网上找的,如有侵权等问题请告知

           另外:视频图像做好了,就可以做很多应用,如现在比较牛的机器视觉,无损检测、缺陷检测等等。

     

    2.7 基于TCP/IP的安全文件传输系统(TLS/SSL)

        其实就是把Socket包通过OpenSSL的工具加密一下(TLS/SSL),再发送,然后接受端再解密。里面用到了线程池,在企业项目会经常用到。

    2.8 嵌入式MP3播放器

    2.9 基于Qt的新能源汽车电池管理系统

        如题,使用Qt作为GUI显示,实现对电池容量显示和管理操作。较简单,不过可扩展性强,大到汽车管理,再大一点还可以上升到车联网。

    2.10 嵌入式车载导航定位系统 Qt+GPS+Baidu Map

        GPS采集经纬度数据通过GPRS、WiFi无线传输到服务器上,并借助Baidu、Google提供的API进行精确定位。(还是那句话,借鉴网上现有的,自己开发难度Huge)

    2.11 无人机

    好吧,不得不又谈四轴了,现在无人机导航送快递、监控交通可谓前景广大,有兴趣创客可以做一个,网上各类资料,实现不难,但主要是烧钱….烧钱….钱…

    Ps:买就要买好的模块,特别是图传和电调!,要么一摔就….别问我怎么知道的!

    2.12 嵌入式VR、AR

    VR/AR实际没接触过,不过很高大上的样子,最近好多大牛公司在搞虚拟现实。感觉还是嵌入式图像处理+全景映象的应用吧,有兴趣可以看看Google的产品。

    2.13嵌入式结合AI、Machine Learning

    此类课题必火!本质其实就是将机器学习、人工智能等算法,应用在嵌入式领域。AI领域将是嵌入式工程师的又一择业选择!未来必将处处AI,且处处嵌入式AI(如现在市面各类AI电器)。

    因为AI涉及到N多机器学习类算法,学习过程也能极大提高嵌入式er的算法能力(算法一般是广大嵌入式er的一块短板),网上也有各种大神编译好的算法模型可以借鉴并直接使用,不过在学习阶段建议自己从无到有搭建算法模型、找数据集训练、交叉验证最终移植发布,有可能自己搭的模型效果不咋地,但这个过程我觉着还是能学到不少AI的思想。。。

    本人这方面还是纯种小白,目前正在努力学习,找到好的嵌入式AI资料再第一时间奉上。(前期可以看看吴恩达的视频)

    附机器学习算法地图:

     


    3、嵌入式Android相关

    嵌入式Android开发,就相当于自己定制各种功能的手机一样,因为Android系统发布就是面向移动端设备的,Android系统移植后也保留大量移动设备应用。因为Android系统基于Linux内核,所以底层还是Linux的东西,但应用层就完全不一样了,要在之前的基础上开始学Java、JNI、Android编程,相关嵌入式资料也没有Linux多,所以想开发还是有一些门槛的。

    要说明的是:上述嵌入式Linux的项目,用嵌入式Android一样开发,只不过平台不一样,用的Linux内核不太一样而已,这时候如果真心想学,可以在上面项目做完后的基础上,将你的项目移植到Android平台。这里要注意使用的Linux内核版本,缺少什么就补什么,如驱动、库文件等等,然后重新编译移植内核

    Android系统架构

     推荐硬件平台树莓派、友善之臂、飞凌等开发板,这里一般的处理器就不行了,ARM11以下可能连安卓2.0系统都带不动,So推荐使用Cortex-A9四核处理器或以上,否则系统卡顿…顿….

     推荐软件平台嵌入式Android2.3以上系统,宿主(PC)机最好不要用虚拟机,我用真实Ubuntu,i5+8G内存的主机编译Android5.0.2系统都编译了8个多小时,推荐使用开发板厂家提供的已经编译好的版本,不要重新一点点编译;Bootloader和上章一样,Linux内核3.0以上;人机界面直接用Android自带的(嵌入式Android优势)。

    3.1 物联网智能控制系统:家居、农业、医疗

    同上文一样,只不过网关那一层换成Android平台,个人感觉这个还是很有搞头的,毕竟Android用户群这么大,大家跟熟悉,操作使用更方便。

    这里说到了 ,类似上章的题目,都可以把Linux平台转到Android平台,所以这里关于上面提到的题目就不再赘述。

    3.2 嵌入式家庭保健系统

    借助Android良好的人际交互,开发集成智能心率计、血压计等检查项目的嵌入式系统。

    3.3 智能电视TV、AR/VR眼镜

    就是家里用的互联网电视机顶盒,例如小米、乐视盒子,结合AR技术

    需要支持HDMI音视频输出、VGA输出、AV音视频输出、支持网口与WIFi、支持USB设备(鼠标键盘)、支持红外设备(遥控器)等。

    3.4 自己定制的平板电脑、手机等

    从底层或者上层应用定制自己的移动设备,比如说更改开机界面为你的果照。。


    4、裸机开发

    “裸奔”挺难的,因为不使用操作系统,不光要整天和芯片datasheet打交道,还要深入处理器架构以及各类存储机制。其实严格意义来讲,我们之前搞单片机也是属于裸机开发。

    如果是大神中的大神,上述的一些题目完全也可以用裸机开发出来,我没有奔过,不敢妄自评测,所以只提供几个小题目。

    4.1 裸机实现串口通信

    4.2 裸机实现DMA方式SD卡读写

    4.3 裸机是实现NANDFlash、EEPROM的操作(擦除、读写)


    5、相关资料分享

    福利来也

    注:这些都是我学习嵌入式时候精心整理的资料,其中也有购买或在网上找的资源,如有侵权等问题请告知删除

    链接:http://pan.baidu.com/s/1b0QLOy 密码: 

    链接:http://pan.baidu.com/s/1cDsqp4 密码: (本文提到的很多项目源码和视频)

    链接:http://pan.baidu.com/s/1dFmNHxZ 密码: 

    链接:http://pan.baidu.com/s/1gfFPTIV 密码: 

     

    PS:一直审核不过,考虑或许有不少涉及版权,就把链接密码去了,所以需要资料的留言邮箱吧~ 别忘加关注哦~

    Python Tools: 由于小伙伴太多啦,所以做了个python工具,能够自动发送资料到留言的邮箱,详情见:Python实现自动发送邮件 - 自动抓取Blog中留言的邮箱并发送邮件 

    Wechat: 如果小伙伴们等不急Python脚本发送,也可以直接扫码关注微信公众号:HowieXue,并回复“MCU” 也可立即得到资料:

     

    博主热门文章推荐:

    一篇读懂系列:

    LoRa系列:

    网络安全系列:

    嵌入式开发系列:

     


    友情赞助:

    如果你觉得博主的文章对你那么一点小帮助,恰巧你又有想打赏博主的小冲动,那么事不宜迟,赶紧扫一扫,小额地赞助下,攒个奶粉钱,也是让博主有动力继续努力,写出更好的文章^-^,求赞助哦~~。

     

        1. 支付宝                2. 微信

                                     

     

     

    展开全文
  • 嵌入式学习资料嵌入式学习资料嵌入式学习资料嵌入式学习资料嵌入式学习资料嵌入式学习资料嵌入式学习资料
  • 嵌入式学习方法嵌入式学习方法嵌入式学习方法嵌入式学习方法嵌入式学习方法嵌入式学习方法嵌入式学习方法嵌入式学习方法嵌入式学习方法嵌入式学习方法嵌入式学习方法嵌入式学习方法嵌入式学习方法嵌入式学习方法...
  • 嵌入式学习文章推荐嵌入嵌入式学习文章推荐式学习文章推荐嵌入式学习嵌入式学习文章推荐章推荐
  • ARM嵌入式学习心得 ARM嵌入式学习心得 ARM嵌入式学习心得
  • ARM嵌入式学习经验 ARM嵌入式学习经验 ARM嵌入式学习经验
  • 嵌入式 学习

    2008-09-08 19:00:00
    所以我想学习嵌入式要从个人的知识背景和现实条件出发。订立合适的阶段目标,在允许的条件下多动手多思考。 一般情况下对于硬件设备是比较短缺的。但是可以从软件方面和嵌入式系统开发模式上下功夫,提醒大家一点,...
    爱因斯坦说过,”我是站在巨人的肩膀上“ 


         实践当然是最锻炼人的方式,但是我想在校生很少有这样的机会,别说本科生,硕士生也未必有条件。所以我想学习嵌入式要从个人的知识背景和现实条件出发。订立合适的阶段目标,在允许的条件下多动手多思考。
    一般情况下对于硬件设备是比较短缺的。但是可以从软件方面和嵌入式系统开发模式上下功夫,提醒大家一点,嵌入式系统开发设计的内容知识很多,所以大家不要乱,在了解嵌入式系统开发的体系结构后,一步一步的下手,最容易上手的是linux下的C,比如ucos(有开放源代码),虽然可能无法在硬件上仿真,但也不必着急。wince,palmos上手都很容易。无论对于初学者还是自以为是高手的人来说,编程水平(这可不受硬件条件限制)绝对是没有止境的,有了较高的编程水平(嵌入式主要是C,当然OO的几种语言c++,java是发展趋势),等到有机会的时候及时的补充硬件知识,会很快的成为高手。
    还有,一定记住,学习嵌入式,”要想办法,不要找理由“。当年在dos下用tc编程时的条件,现在回想起来建筑就是奇迹。

    我推荐一条学习之路吧,仅供参考,
    1、C开发经验
    条件:linux(这都有吧)
    方法:随便,主要是掌握ansiC编程(不包括gtk,qt等图形可视化开发)
    2、网络、操作系统、体系结构
    条件:linux,各种书,算法、例程。
    方法:通过C编程实现简单的网络等知识的算法和过程。
    3、嵌入式系统概念
    条件:各个嵌入式网站,讨论组,书籍
    方法:少提问(尤其是等着天上掉馅饼,这主要是防止增长惰性,也解决不了实际问题),多思考。
    4、嵌入式开发实践
    条件:各种嵌入式系统开发工具的demo版(或者D版,如果有的话),包括编译器,仿真器。可以找高手们要,也可以下载。
    方法:这里有两个分支,一个是基于mcu/dsp的嵌入式系统开发,一个是象palmos,wince,ucos等rtos下的应用软件开发。对硬件感兴趣,想成为真正高手的由第一个分支入手,以后进入第二个分支;如果十分厌烦硬件,只想停留在软件开发上的,可以只由第二个分支入手,以后就和pc上的开发没有什么本质上的区别了,找份不错的工作应该没问题,可以不用进行下面的步骤了,感兴趣可以参考第6条。
    5、硬件开发
    条件:各种嵌入式芯片、存储器等电路器件,protel99等电路设计软件,电路板制作。
    方法:这时候该有开发条件了,最起码是51系列,这个比较方便。电路的设计内容较多,不过看起来吓人,实际上比软件要简单的多。只要下功夫,实践会告诉你一切。
    6、硬件工程/软件工程/项目管理
    条件: 各个芯片详细资料和使用经验,软件工程知识,项目管理知识,培训,大型项目参与经验
    方法:已经是高手了,但是学无止境,沾沾自喜于已有的知识是致命的。那个下一步。。。,你该是管理者了。
    展开全文
  • 嵌入式学习不是一蹴而就的,需要不断的积累,如果是希望向嵌入式软件方向发展的话,目前最常见的是嵌入式Linux方向,关注这个方向,我认为大概分3个阶段: 嵌入式学习难点 嵌入式软件学习3个阶段 1、嵌入式linux...

     嵌入式学习不是一蹴而就的,需要不断的积累,如果是希望向嵌入式软件方向发展的话,目前最常见的是嵌入式Linux方向,关注这个方向,我认为大概分3个阶段:

     

     

    嵌入式学习难点 嵌入式软件学习3个阶段

    1、嵌入式linux上层应用,包括QT的GUI开发
    2、嵌入式linux系统开发
    3、嵌入式linux驱动开发

    嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等。

    Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。
    你可以尝试以下路线:
    (1) C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。
    推荐书籍:《The C Programming Language》 这本经典的教材是老外写的,也有中译版本。


    (2) 操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。


    (3)Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。
    推荐书籍:《UNIX环境高级编程》(第2版)


    (4) 了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。


    (5) 系统移植的时候,就需要你从最下层的

    bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。


    (6) 驱动开发
    linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。


    linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。

    以上只不过是大概的框架,在实际的开发中还会涉及很多东西,比如:交叉编译、makefile、shell脚本等等,所以说学习嵌入式的周期较长,门槛较高,自学的话更是需要较强的学习能力和专业功底。只要能坚持下来一定会取得成功!


    嵌入式是一个比较大的概念,有四个分支(主要):

    1、微控制器(单片机为例);

    2、微处理器(arm为例);

    3、dsp(数字信号处理);

    4、soc(片上系统);

    对于我们初学者而言,首先要学习单片机,以51为代表,等你学好51之后,可以深入学习更艰难的东西;


    当然,并不是说你只需要学习单片机;要想学好单片机,你还得学c语言,得学汇编,得学一大堆应用软件;等到单片机能够掌握的不错的时候又需要自己进行原理图、PCB板的设计;还得掌握系统设计的工程管理什么的;比较多。。。。

    还是要踏踏实实的学习嵌入式软件方面的知识,单片机还是比较简单的,等到学好之后,开始学习arm的时候,你就接触的多了,什么操作系统啊、驱动编写啊、内核移植啊、应用程序的添加啊、上位机的编写啊,,那个就多了,,不过到时候你就全知道了。。。

     

    展开全文
  • 嵌入式学习步骤

    2011-09-12 10:37:44
    嵌入式 学习步骤 嵌入式学习步骤 嵌入式学习步骤
  • 嵌入式学习路线 嵌入式学习路径图 嵌入式学习方法步骤
  • 课程内容:为什么介绍物联网、嵌入式学习路线、常见物联网结构,物联网与嵌入式关系、面向物联网的开发涉及哪些事情、面向物联网的嵌入式开发的课程大纲、怎么学习物联网、嵌入式的这些课程,本课程的宗旨在于指导...
  • 资深的嵌入式工程师告诉你嵌入式学习都要学习那些技术。
  • 嵌入式学习指南

    2013-12-30 22:03:04
    嵌入式学习顺序,方面学习嵌入式相关知识,从linux入门到嵌入式系统开发等?
  • 嵌入式学习路线

    千次阅读 2020-03-05 21:00:39
       Hello大家好,我是你们的朋友...  嵌入式学习是一个循序渐进的过程,如果是希望向嵌入式软件方向发展的话,目前最常见的是嵌入式Linux方向,关注这个方向,我认为大概分3个阶段: (1) 嵌入式Li...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,026
精华内容 12,410
关键字:

嵌入式学习