嵌入式学习路线

ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标:

(1)掌握主流嵌入式微处理器的结构与原理(初步定为arm9)

(2)必须掌握一个嵌入式操作系统(初步定为uclinux或linux,版本待定)

(3)必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。

从事嵌入式软件开发的好处是:

(1)目前国内外这方面的人都很稀缺。这一领域入门门槛较高,所以非专业IT人员很难切

入这一领域;另一方面,是因为这一领域较新,目前发展太快,大多数人无条件接触。

(2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。

(3)哪天若想创业,搞自已的产品,嵌入式不像应用软件那样容易被盗版。硬件设计一般

都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成

自己的产品了。

(4)兴趣所在,这是最主要的。

从事嵌入式软件开发的缺点是:

(1)入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操作系

统级软件功底不深,则可能不适于此行。

(2)这方面的企业数量要远少于企业计算类企业。

(3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司

也并无此要求,只要有经验即可。

(4)平台依托强,换平台比较辛苦。

兴趣的由来:

1、成功观念不同,不虚度此生,就是我的成功。

2、喜欢思考,挑战逻辑思维。

3、喜欢C

C是一种能发挥思维极限的语言。关于C的精神的一些方面可以被概述成短句如下:

相信程序员。

不要阻止程序员做那些需要去做的。

保持语言短小精干。

一种方法做一个操作。

使得它运行的够快,尽管它并不能保证将是可移植的。

4、喜欢底层开发,讨厌vb类开发工具(并不是说vb不好)。

5、发展前景好,适合创业,不想自己要死了的时候还是一个工程师。

方法步骤:

1、基础知识:

目的:能看懂硬件工作原理,但重点在嵌入式软件,特别是操作系统级软件,那将是我的优

势。

科目:数字电路、计算机组成原理、嵌入式微处理器结构。

汇编语言、C/C++、编译原理、离散数学。

数据结构和算法、操作系统、软件工程、网络、数据库。

方法:虽科目众多,但都是较简单的基础,且大部分已掌握。不一定全学,可根据需要选修。

thec++programminglanguage(一直没时间读)、数据结构-C2。

2、学习linux:

目的:深入掌握linux系统。

      方法:使用linux—〉linxu系统编程开发—〉驱动开发和分析linux内核。先看深,

那主讲原理。看几遍后,看情景分析,对照深看,两本交叉,深是纲,情是目。剖析则是0.

11版,适合学习。最后深入代码。

主攻书籍:linux内核完全剖析、unix环境高级编程、深入理解linux内核、情景分析和源代。

3、学习嵌入式linux:

目的:掌握嵌入式处理器其及系统.

方法:(1)嵌入式微处理器结构与应用:直接arm原理及汇编即可,不要重复x86。

      (2)嵌入式操作系统类:ucOS/II简单,开源,可供入门。而后深入研究uClinux。

      (3)必须有块开发板(arm9以上),有条件可参加培训(进步快,能认识些朋友)

      主攻书籍:毛德操的《嵌入式系统》及其他arm9手册与arm汇编指令等。

4、深入学习:

      A、数字图像压缩技术:主要是应掌握MPEG、mp3等编解码算法和技术。

      B、通信协议及编程技术:TCP/IP协议、802.11,Bluetooth,GPRS、GSM、CDM

A等。

      C、网络与信息安全技术:如加密技术,数字证书CA等。

      D、DSP技术:DigitalSignalProcess,DSP处理器通过硬件实现数字信号处理算

法。

      说明:太多细节未说明,可根据实际情况调整。重点在于1、3,不必完全按照顺序

作。对于学习c++,理由是c++不只是一种语言,一种工具,她还是一种艺术,一种文化,

一种哲学理念、但不是拿来炫耀得东西。对于linux内核,学习编程,读一些优秀代码也是

有必要的。

      注意: 要学会举一反多,有强大的基础,很多东西简单看看就能会。想成为合格的

程序员,前提是必须熟练至少一种编程语言,并具有良好的逻辑思维。一定要理论结合实践。

      不要一味钻研技术,虽然挤出时间是很难做到的,但还是要留点余地去完善其他的爱

好,比如宇宙,素描、机械、管理,心理学、游戏、科幻电影。还有一些不愿意做但必须要

做的!

      技术是通过编程编程在编程编出来的。永远不要梦想一步登天,不要做浮躁的人,不

要觉得路途漫上。而是要编程编程在编程,完了在编程,在编程!等机会来了在创业(不要

相信有奇迹发生,盲目创业很难成功,即便成功了发展空间也不一定很大)。

      嵌入式书籍推荐

      Linux基础

      1、《Linux与UnixShell编程指南》

      C语言基础

      1、《CPrimerPlus,5thEdition》【美】StephenPrata着

      2、《TheCProgrammingLanguage,2ndEdition》【美】BrianW.KernighanDav

idM.Rithie(K&R)着

      3、《AdvancedProgrammingintheUNIXEnvironment,2ndEdition》(APUE)

      4、《嵌入式Linux应用程序开发详解》

      Linux内核

      1、《深入理解Linux内核》(第三版)

      2、《Linux内核源代码情景分析》毛德操胡希明著

      研发方向

      1、《UNIXNetworkProgramming》(UNP)

      2、《TCP/IP详解》

      3、《Linux内核编程》

      4、《Linux设备驱动开发》(LDD)

      5、《Linux高级程序设计》杨宗德著

      硬件基础

      1、《ARM体系结构与编程》杜春雷着

      2、S3C2410Datasheet

      英语基础

      1、《计算机与通信专业英语》

      系统教程

      1、《嵌入式系统――体系结构、编程与设计》

      2、《嵌入式系统――采用公开源代码和StrongARM/Xscale处理器》毛德操胡希明

      3、《BuildingEmbeddedLinuxSystems》

      4、《嵌入式ARM系统原理与实例开发》杨宗德著

      理论基础

      1、《算法导论》

      2、《数据结构(C语言版)》

      3、《计算机组织与体系结构?性能分析》

      4、《深入理解计算机系统》【美】RandalE.Bryant DavidO''Hallaron着

      5、《操作系统:精髓与设计原理》

      6、《编译原理》

      7、《数据通信与计算机网络》

      8、《数据压缩原理与应用》

      C语言书籍推荐

      1.TheCprogramminglanguage《C程序设计语言》

      2.PointersonC《C和指针》

      3.Ctrapsandpitfalls《C陷阱与缺陷》

      4.ExpertCLanuage《专家C编程》

      5.WritingCleanCode-----MicrosoftTechiniquesforDevelopingBug-freeCProgr

ams

      《编程精粹--Microsoft编写优质无错C程序秘诀》

      6.ProgrammingEmbeddedSystemsinCandC++《嵌入式系统编程》

      7.《C语言嵌入式系统编程**》

      8.《高质量C++/C编程指南》林锐

      尽可能多的编码,要学好C,不能只注重C本身。算法,架构方式等都很重要。

这里很多书其实是推荐而已,不必太在意,关键还是基础,才是重中之重!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/407018.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Taro+react开发(47)taro中消息机制

import Taro, { Events } from tarojs/taroconst events new Events()// 监听一个事件,接受参数 events.on(eventName, (arg) > {// doSth })// 监听同个事件,同时绑定多个 handler events.on(eventName, handler1) events.on(eventName, handler2) …

纯js监听滚动条到底部(vue版)

项目中,因为数据量过大,为提高页面性能,采用页面滑动 滚动条到底部的时候再进行数据请求分页,这边给大给个核心,结合vue的生命周期用纯javascript写的一个监听函数 第一个我们需要知道几个属性值,判断滚动…

记腾讯互娱网站布局(1)

1.导航栏 第一步:设置最外层的容器的定位方式、宽度和高度以及背景 第二步:给第二层容器设置内容的居中显示 第三步:设置居中的logo的定位和位置 第四步:设置6个标志的布局 设置所有的导航栏项目的定位和距离顶部的距离&#xff0…

第五——十三章的作业

第五章 1.团队模式和团队的开发模式有什么关系? 答:团队模式指团队的分工模式,团队内部的结构,团队开发模式指团队开发的流程及步骤 2.如果你领头开展一个全新的项目,你要怎么选择“合适”的团队模式? 答&a…

Taro+react开发(48)taro中switchTab

跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面

JS中完美兼容各大浏览器的scrolltop方法

1、各浏览器下 scrollTop的差异 IE6/7/8/9/10: 对于没有doctype声明的页面里可以使用 document.body.scrollTop 来获取 scrollTop高度 ; 对于有doctype声明的页面则可以使用 document.documentElement.scrollTop ; Safari: safari 比较特…

记腾讯互娱网站布局(2)

2.头图特效 给头图设置宽度100%以及定高1110px,同时设置display为table,和定位方式fixed 通过设置绝对定位以及固定宽高和背景的方式来实现 存放动态特效的盒子采用绝对定位,并且触发流体特效以及百分百宽的方式 主图上标志的实现是采用外部容…

DB Reindex

数据库在使用一段时间后,就会出现很多的索引碎片。declare ID int set IDOBJECT_ID(SMT_QC) dbcc showcontig(ID)Scan Density值越低代表越需做DBCC ReIndex ,刚做完DBCC会等于 ReIndex100% 下面是Reindex的存储CREATE procedure [dbo].[DBReindex] DB varchar(20)…

ABBYY

ABBYY FineReader Engine泰比OCR文字识别控件移动版 产品功能:OMR识别控件 平台: 开发商:ABBYY”‘Š€ 版本:产品介绍:手机识别的高品质和精度 泰比(ABBYY)Mobile OCR Engine是基于对世界知名的…

JS预编译过程

首先讲预编译过程 JS代码执行过程三部曲 过程 语法分析:首先扫描一遍,看有没有低级的语法错误预编译解释执行:解释一行执行一行 预编译low讲 函数声明整体提升,变量 的声明提升(这个其实很low,点击low…

codeforces 476B.Dreamoon and WiFi 解题报告

题目链接:http://codeforces.com/problemset/problem/476/B 题目意思:给出两个字符串str1, str2,其中,str1 只由 和 - 组成,而str2 由 ,-和?组成。初始点在原点0的位置,经过 str1 的变换最终会…

在应用程序级别以外使用注册为 allowDefinition='MachineToApplication' 的节是错误

在应用程序级别以外使用注册为 allowDefinitionMachineToApplication 的节是错误 在web.config文件之外注册为 allowDefinitionMachineToApplication 的节是错误 遇到这个问题,我真是晕啊! 以下是我个人的经验解决上述的二个问题,至今有时还…

bash删除文件中的空行

方法一:sed /^$/d a.txt 所以如果要将删除后的结果替换原文件中的内容,就可以用: sed /^$/d a.txt > temp; mv temp a.txt 然后在弹出提示符下选择Y就可以了。 方法二:在vi命令提示符下,输入:%s/^\n/…

Taro+react开发(50) 小程序触底操作

onReachBottom() {console.log("我在触底");const { pageIndex, pageSize, getStauList } this.state;if (pageIndex * pageSize > getStauList.length) return;this.setState({pageIndex: pageIndex 1},() > {this.getStatusList();});}

记腾讯互娱网站布局(3)

3.图文回顾 先看看整个网站的全貌 这里’display:table;width:100%;table-layout:fixed’是约定俗成的写法,用来保证固定的表单布局,同时让连续的英文单词不会超出 内部采用’display:table-cell’属性将内容当做表格的td标签一样显示,设置v…

JS阻止冒泡和取消默认事件(默认行为)

阻止事件冒泡 function stopPropagat(e) {if (e && e.stopPropagation) {e.stopPropagation();//标准浏览器} else {window.event.cancelBubble true;//兼容IE的方式来取消事件冒泡}}阻止默认行为 function stopDefault(e) {if (e && e.preventDefault) {e.pr…

如何提高个人的职涯“本钱”

何所谓职业生涯的本钱?简单来说,必须涵盖三个方面,一是充分的能力,包括专业技能、管理知识的储备等;二是态度,即工作态度及风格是否契合你所希望就职公司的文化,开阔的视野、兼容并包的心胸、善…

Taro+react开发(51) 数组对象和数组得处理

for (var key of value) {arrcode.push(selectorIndustry.find(obj > obj.value key));}

简单的python流回显服务器与客户端

环境:Fedora12 python2.6.2 server.py #!/usr/bin/python import socket srvsock socket.socket(socket.AF_INET, socket.SOCK_STREAM) srvsock.bind((, 5000))srvsock.listen(5) while True:clisock, (remoteHost, remotePort) srvsock.accept()str11 clisock…

MongoDB 入门之安装篇

前言:MongoDB 在各 OS 上的安装比较简单,此文章只用来记录,不考虑技术深度。 一、Ubuntu 导入 MongoDB 公钥,添该软件源文件,更新源列表sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 …