您好,欢迎来到搜客无忧!

嵌入式linux系统课程

  作者:正苗启德发表时间:2023-10-02点击量:149

如何快速学习嵌入式Linux课程?

如何快速学习嵌入式Linux课程?嵌入式要学哪些课程?嵌入式用一句话概括,就是写程序,用软件控制硬件。

嵌入式的应用领域非常多。

智能家居,智能农业,智能医疗等等都属于嵌入式。

那么嵌入式该怎么学习呢?

1.C语言

自上而下的学习首先是写代码,写用户的应用程序。

每种语言的使用目的是不同的,嵌入式的语言是C语言。

所以首先要学习C语言的基本语法,C库提供了大量的函数,我们可以调用以实现一些功能。

所以还要熟悉C库的常用函数。

C语言一定要学好,它是基础。

Linux内核大部分也是用C语言实现的。

2.Linux系统的基本使用

在学习C语言的过程中,可以适当学会Linux系统的基本使用。

你可能没有听说过Linux,但你肯定听说过windows,系统有很多共通之处。

可以在学习过程中对比理解。

而且Linux系统提供了C语言的编辑器gcc,你可以在系统上写完代码之后,在系统上编译并运行,这样,在学习C语言的阶段你也熟悉了Linux系统的使用。

3.数据结构

当你学完了C语言的基本语法,此时你的c语言水平只是入门阶段。

你还要学习一门没有新知识的课程----数据结构。

这门课程就是大量的使用指针、数组、结构体、函数。

经过这个阶段你才能算是掌握了C语言。

而且后面学习内核的过程中,内核中也是有大量的链表之类的数据结构的。

4.内核

此时,我们要往下开始系统内核的学习。

Linux的内核包括以下几个部分:进程管理、内存管理、网络堆栈、虚拟文件系统、设备驱动等。

内核是一个系统最重要的部件。

想要真正的认识它需要你一步一步的积累。

这个阶段推荐大家先依次学习文件IO、进程线程、网络编程。

5.设备驱动

驱动是硬件和应用程序之间的桥梁,如果一个应用程序要操作硬件,必须要有驱动。

一句话总结:驱动就是根据相应的硬件,写出驱动程序作为调用接口提供给用户,用户使用该接口就可实现控制硬件的目的。

其次,在驱动的学习中,我们会慢慢学习内核。

内核的各种模块,内核源码等等。

6.硬件

对于一个嵌入式工程师来说,能够看懂电路图即可。

即只需要掌握基本的电路知识,看懂电路图。

至于开发板的画图、布线、腐蚀、焊接等步骤,可以不必深入研究。

这些技能是属于硬件工程师们的要求。

另外,一个程序员双语很重要,你学习了面向过程的C语言,推荐大家掌握一门面向对象的语言,可以是c++、java或者python都可。

其次,你要单独实现一个完整的项目,UI界面部分必不可少。

做页面可以用qt、可以用网页、也可以用手机端。

这可以使你自己做的项目更加完善。

最后我想说,学习不能图快。

任何学习都需要踏踏实实沉下心来努力地学,祝你学有所成。

嵌入式开发要学习的内容,大概就是以上这些。

建议你找一些视频教程,这样一边学习一边动手,速度会快一点

祝好运,望采纳

该怎样学习嵌入式Linux的基础课程

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++、编译原理、离散数学。

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

方法:虽科目众多,但都是较简单的基础,且大部分已掌握。

不一定全学,可根据需要选修。

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、CDMA等。

2010-8-2116:46回复

122.90.173.2楼

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

D、DSP技术:Digital Signal Process,DSP处理器通过硬件实现数字信号处理算法。

说明:太多细节未说明,可根据实际情况调整。

重点在于1、3,不必完全按照顺序作。

对于学习c++,理由是c++不只是一种语言,一种工具,她还是一种艺术,一种文化,一种哲学理念、但不是拿来炫耀得东西。

对于linux内核,学习编程,读一些优秀代码也是有必要的。

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

想成为合格的程序员,前提是必须熟练至少一种编程语言,并具有良好的逻辑思维。

一定要理论结合实践。

不要一味钻研技术,虽然挤出时间是很难做到的,但还是要留点余地去完善其他的爱好,比如宇宙,素描、机械、管理,心理学、游戏、科幻电影。

还有一些不愿意做但必须要做的!

技术是通过编程编程在编程编出来的。

永远不要梦想一步登天,不要做浮躁的人,不要觉得路途漫上。

而是要编程编程在编程,完了在编程,在编程!等机会来了在创业(不要相信有奇迹发生,盲目创业很难成功,即便成功了发展空间也不一定很大)。

嵌入式书籍推荐

Linux基础

1、Linux与Unix Shell 编程指南

C语言基础

1、C Primer Plus,5th Edition美Stephen Prata着

2、The C Programming Language,2nd Edition美Brian W. Kernighan David M. Rithie(K R)着

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

Linux内核

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

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

研发方向

1、UNIX Network Programming(UNP)

2、TCP/IP详解

3、Linux内核编程

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

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

硬件基础

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

2、S3C2410 Datasheet

英语基础

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

系统教程

1、嵌入式系统DD体系结构、编程与设计

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

3、Building Embedded Linux Systems

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

理论基础

1、算法导论

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

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

4、深入理解计算机系统美Randal E. Bryant David O'Hallaron着

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

6、编译原理

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

8、数据压缩原理与应用

C语言书籍推荐

1. The C programming language C程序设计语言

2. Pointers on C C和指针

3. C traps and pitfalls C陷阱与缺陷

4. Expert C Lanuage 专家C编程

5. Writing Clean Code -----Microsoft Techiniques for Developing Bug-free C Programs

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

6. Programming Embedded Systems in C and C++嵌入式系统编程

7.C语言嵌入式系统编程修炼

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

尽可能多的编码,要学好C,不能只注重C本身。

算法,架构方式等都很重要。

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

这是从百度福州鼎嵌贴吧看来的呵呵

建议楼主自己去它那看看

1.LZ这样想是对的,一般处于嵌入式入门阶段的,即使经过几个月的自学或者培训,能够到公司上任工作,也一般只能从应用做起,之后的发展凭自己的努力,当然也有少数例外。

2.至于你说的专业课,最最基础的有C语言,操作系统,数据结构,了解计算机组成原理与体系结构这些,然后就是汇编和微机接口,熟悉linux的一些基本操作、linux操作系统原理、linux驱动、linux内核等等这些,最后就是单片机和arm 这两个是硬件部分,建议先学软件部分。

3.根据你现在的基础,在毕业之前能很好的掌握到应用部分就很不错了,然后毕业找一份工作是完全可以的。

给你推荐一个网站,华清远见的官方网站和技术论坛,上面有很多嵌入式学习相关的实时信息和学习方法,更新的也比较快,学习资料和视频教程很多也都可以下载,你可以下载下来作为学习参考用。

嵌入式开发其实很简单了。

建议快速入门开发的话,你只需要看两门课。

1.c语言。

编程一般都是c,当然也有c++和汇编,不会很少用,即使偶尔用的话,稍微看下就行了。

所以当务之急是先学好c语言,这是最基础的了。

2.linux系统。

学linux,大致了解下基本概念,如进程、存储管理、线程等等,这是linux系统的基本概念,也是其他系统的基础,即使是windows ce开发,也是一样可以类比的,可谓手到擒来。

然后学学linux的基本命令,只是基本命令,如:cd mkdir tar ls 等等,以后用到啥命令,再Google一下就是了,很容易的。

3.其他课程。

其他的课程不是不重要,而是你用到啥再学啥吧。

不过看看也是有益处的。

我来帮你回答,我做了嵌入式5年了,希望能帮到你,也希望你能把我选为答案。

首先推荐你一定要相信去看这篇文章,一个嵌入式高手些的,可以回答了你大部分的问题。

如何学习嵌入式

现在我来回来你的问题

1.我知道嵌入式开发大概分应用和系统,驱动,以我现在的基础和时间基本只能完成应用的开发学习,这样想对吗?

是的,嵌入式分为软件和硬件部分,关于软件部分划分确实和你说的一样,分应用和系统,驱动。

应用相对来说是比较简单,入门最好先写写应用,驱动需要有一定的硬件基础,你需要懂一些硬件原理,而系统的移植要建立在驱动的基础上。

2.如果我现在只能完成应用开发的学习,那么我该学习哪些专业基础课?

首先C语言,这个是毋庸置疑的,不管是做嵌入式软件还是硬件开发的人员,对C语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,现在绝大部分都是用C语言,你说不掌握它可以吗?至于如何学习C语言,我想这些基础的知识每个人都有自己的方法,关键要去学习,看书也好,网上找些视频看也好。

很多人会问,C语言要学到怎么样,我觉得这没有标准的答案。

我想至少你在明白了一些基础的概念后,就该写代码了,动手才是最重要的,当你动手了,遇到问题了,再反过来学习,反过来查查课本,那时的收获就不是你死看书能得到的。

其次,应该对操作系统有所了解,这对你对硬件和软件的理解,绝对有很大的帮助。

应该把系统的管理理解一下,比如进程、线程,系统如何来分配资源的,系统如何来管理硬件的,当然,不是看书就能把这些理解透,如果不是一时能理解,没关系,多看看,结合以后的项目经验,会有更好的理解的。

还有应该学习嵌入式系统,如linux或者wince下的编程,这些对以后做应用的编程很有帮助,当然,如果做手机的话,那可以学习MTK、塞班、Android等操作系统,Android是以后发展的趋势,现在很热门,Android也是基于linux系统封装的,所以建议先学习下linux。

还有,应该学习下单片机或者ARM或者MIPS,很多人说我没有单片机的经验,直接学ARM可以吗?我觉得那完全没有问题的,当然如果你学习过单片机,那最好不过了,以后学习ARM就更简单了。

最后如果你把以上的知识都有所了解后,就该去阅读阅读一些优秀的代码,比如结合arm芯片手册学习去学习下UBOOT的源代码,了解下最小的系统开发,那对你整个嵌入式开发的非常有帮助的,可以的话,还可以学习下linux的源代码,当然如果你直接阅读2.6的代码,我想你会很痛苦的,可以先看看linux 代码早期的版本,比如0.12的代码等等,麻雀虽小,五脏俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程师。

3.如果我现在的时间可以学到系统和驱动的开发,那么该学习那些专业基础课?顺序,主次?

我觉得你现在最好先学习应用的开发,因为驱动最好是要有硬件的一些资料,如果你真的想学的话,可以先看看一些视频教程。

我看过一份比较好的教程,是人家整理出来的。

从入门到精通,你可以去看看。

我是想你去借鉴下。

最后希望您能早日学习好嵌入式,别忘了给我分数啊。

我回答这么多不容易啊

嵌入式linux要好好学下,最近android也比较火,也可看下,以后找工作也容易。

做手持设备用wince比较多,呵呵

申请试听课程

提交后,免费为您匹配专业课程

机构入驻 | 帮选课 | 公司介绍 | 联系我们 | 网站地图

版权所有:(c)2024 武汉涵宝信息科技有限公司 All Rights Reserved 备案号:鄂ICP备2022007586号-13 技术支持:搜客无忧