专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网
励北网

嵌入式linux入门基础教程

来源:小易整编  作者:小易  发布时间:2023-02-23 10:12
摘要:嵌入式linux入门基础教程01嵌入式Linux是什么嵌入式Linux跟桌面Linux一样,是一个操作系统。从单片机走过来的童鞋往往习惯于直接控制寄存器,事必躬亲,从零开始实现想要的功能。而在嵌入式Linux的世界里,我们首先要抛弃这个思想...

要想深入了解某一块,绝对是超5星级推荐。你别指望把它读完,1800多页,上下两册呢。我是某一块不清楚时,就去翻一下它。任何一部分,这书都可以讲上2、3百页,非常详细。并且是以某个目标来带你分析内核源码。它以linux2.4为例,但是原理相通,同样适用于其它版本的linux。
还有没有其他介绍?呵呵,当然有了,韦东山Linux视频第2期。<嵌入式Linux应用开发完全手册>里对驱动讲得不多,不够深入。
于是我录制了这期视频。不仅仅教你怎么写怎么改驱动,还教你为什么这样写这样改驱动。

每一个驱动都是现场编写:

1.用绘图板画图讲解──相当于学校里老师在黑板上画图讲解,很直观绝对不是对着PPT念。


2.用sourceinsight当场写程序,从第1行开始写,每一课都是这样。我讲了20多个驱动,就写了20多个程序。


3.写完就编译、测试。


4.很全面,字符设备驱动、块设备、网卡驱动3大类齐全,硬件介绍、驱动框架分析、测试3大类齐全。

培训机构里教的内容,远不及这期视频丰富。我在多个培训机构讲过课,从没看到哪个老师敢每一课都当场讲解当场编写代码当场测试,除我之外!也没看到哪个培训机构讲完这些内容──因为时间不够,讲完起码要一个月,但是这部分基本只有2周授课时间。
把你手上的开发板所涉及的硬件,都去尝试写一个驱动吧。有问题就先"痛苦地思考",思考的过程中你会把很多不相关的知识
串联起来,最终贯通。
 

四、根文件系统:

大家有没有想过这2个问题:
1.对于Linux做出来的产品,有些用作监控、有些做手机、有些做平板。那么内核启动后,挂载根文件系统后,应该启动哪一个应用程序呢?
答:内核不知道也不管应该启动哪一个用户程序。它只启动init这一个应用程序,它对应/sbin/init。
显然,这个应用程序就要读取配置文件,根据配置文件去启动用户程序(监控、手册界面、平板界面等等)
这个问题提示我们,文件系统的内容是有一些约定的,比如要有/sbin/init,要有配置文件
2.你写的hello,world程序,有没有想过里面用到的printf是谁实现的?
答:这个函数不是你实现的,是库函数实现的。它运行时,得找到库。
这个问题提示我们,文件系统里还要有库。
简单的自问自答到这里,要想深入了解,可以看一下busybox的init.c,就可以知道init进程做的事情了。
当然,也可以看<嵌入式Linux应用开发完全手册>里构建根文件系统那章。
说一下我的学习经历吧。
1. 我在学校时读的是物理电子专业,其实课程里没有教怎么设计电路,只是教了些电子电路方面的知识。PCB的设计是在实验室里自学的,只设计过2层板,现在忘记得差不多了。但是保留了看原理图、看芯片手册的能力。
2. 选修了软件学位,对软件设计挺感兴趣,但是也只是学了C语言、数据库而已。凭着兴趣做了不少竞赛题。没能力去参加竞赛,但是把C语言练得很扎实。
3. 在实验室、在第1家公司,就是设计些简单的PCI卡,写一下windows的驱动程序
4. 在第2家公司,用51单片机做车载电话,开始走上纯软件的道路。
5. 开始感到单片机的不足,辞职半年闭门学Linux,从redhat怎么操作开始。步骤就是先看,再自己写裸板程序操作硬件,接着到分析u-boot。同时看,对LINUX框架有所了解。
在写裸板时,建议各位加强对中断的理解,内核就是用中断来完成各种功能的。
6. 分析完u-boot,就开始进行简单的驱动编程了,这时候,能力还很弱。
7. 开始去中兴上班,工作2年,编写各类驱动、解决各类问题(驱动问题、帮助定位应用问题),能力得到煅炼。

相关书籍推荐

1. 硬件方面的书:微机原理、数字电路,高校里的教材。毕业多年,忘名了。

2. Linux方面的书: 
<ARM体系架构与编程> 
<嵌入式Linux应用开发完全手册>    
 <Linux设备驱动>,老外写的那本    
 <linux设备驱动开发详解>    
 <linux内核完全注释>   
<Linux内核情景分析>

本文地址:百科问答频道 https://www.neebe.cn/wenda/903277_4.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!

共4页 1 2 3 4 当前是最后一页

百科问答
小编:小易整编
相关文章相关阅读
  • LINUX虚拟化是什么意思?

    LINUX虚拟化是什么意思?

    Linux虚拟化是把一台PC上的Linux系统装到一个物理主机上,同时可以在同一台物理主机上运行多个操作系统,这样可以让数据中心或大型机器获得更大的效能和空间。虚拟化技术可以在物理机上虚拟出多台虚拟机,这样每台虚拟机上的Linux系统就不...

  • linux的hostname(主机名)修改详解

    linux的hostname(主机名)修改详解

    Linux操作系统的hostname是一个kernel变量,可以通过hostname命令来查看本机的hostname。也可以直接cat/proc/sys/kernel/hostname查看。#hostname#cat/proc/sys/...

  • linux入侵提权(服务器提权)方法

    linux入侵提权(服务器提权)方法

    利用mysqlroot提权方法mysql5.x里面引入了一个system函数,这个函数可以执行系统命令,当mysql以root登陆的时候,就可以利用这个函数执行命令,当然是在权限许可的范围内。一般我们按照常规思路,搞到mysql的ro...

  • 详解Linux中hdparm命令查看硬盘信息的用法

    详解Linux中hdparm命令查看硬盘信息的用法

    功能说明:显示与设定硬盘的参数。语  法:hdparm[-CfghiIqtTvyYZ][-a][-A][-c][-d][-k][-K][-m][-n...

  • fuser软件在Linux系统下的使用方法

    fuser软件在Linux系统下的使用方法

    在Linux中,fuser工具可用来查询文件的用户,除此之外,fuser还有很多用途,能够搭配参数使用,下面小编将针对fuser工具的使用方式给大家做个详细介绍,希望对你有所帮助。lsof也具备类似的功能,它也能够找出正在对指定文件访问的进...

  • CloudLinux是什么

    CloudLinux是什么

    CloudLinux是一个基于CentOS的Linux发行版,是专为虚拟主机开发的操作系统。CloudLinux可以有效的限制共享账户占用资源,使得每台服务器能够放置更多地账户,并且更稳定。CloudLinux是一个基于Ce...

  • Linux是什么操作系统

    Linux是什么操作系统

    Linux是一套免费使用和自由传播的类Unix操作系统,是一个多用户、多任务、支持多线程和多CPU的操作系统,它能运行主要的UNIX工具软件、应用程序和网络协议,它支持32位和64位硬件;具有稳定、开源、免费、安全、高效的特点操作系统是指直...

  • SELinux 是什么意思

    SELinux 是什么意思

    安全增强型Linux(SELinux)是专门为Linux内核制作的安全模块,采用C编程语言编写,支持访问控制安全策略的功能,包括强制访问控制(MAC)。安全增强型Linux(SELinux)是专门为Linux内核制作的安全模块,它支持...

  • 周排行
  • 月排行
  • 年排行

精彩推荐