学习嵌入式linux开发的一点建议
对于是应该学嵌入式linux应用开发呢,还是系统开发,又或者是驱动开发呢?希望下面的内容能给我们这些初学者有帮助。(仅供参考)
一、编程比较熟悉,只关心系统移植,应该学什么?
1)系统移植的方法
2)制作Bootloader
3)编译调试内核
4)定制文件系统
即:嵌入式linux系统开发
二、编程不太会,学会简单的系统移植,创建出开发平台就行,应该学什么?
1)熟悉linux操作系统具体操作
2)熟悉并可以编译linux内核
3)熟悉嵌入式linux系统开发的整体流程
4)熟悉linux系统调用,能够熟练编写linux应用程序,包括网络、图形等
5)了解linux设备驱动程序的开发
即:嵌入式linux应用开发
三、系统编程和移植都比较熟悉了,但是硬件是自己设计的,应该学什么?
1)linux字符设备驱动程序
2)内核内存管理与中断处理
3)块设备驱动程序,MTD以及文件系统
4)网络驱动程序
5)USB设备驱动程序开发
6)帧缓冲驱动程序和DMA
即:嵌入式linux设备驱动开发
四、系统移植和编程都比较熟悉,硬件驱动也不用自己做,对内核比较感兴趣,应该学什么?
1)进程调度和抢占内核实现分析
2)内存管理
3)内核中的定时
4)中断和异常
5)系统调用和IPC
6)文件系统
即:linux内核开发
五、移植、应用、内核、驱动通通都懂,想锦上添花、技高一筹,应该学什么?
1)常用的几种调试手段,如printk/printascii,kgdb/gdb调试,BDI2000调试器等方法
2)优化时常使用的内核函数跟踪工具(KFT)、linux跟踪工具(LTT),以及常用的基准测试工具(例如LMBench,LTP)。通过跟踪手段定位系统大延迟、解决相应的bug,进行内核优化
即:嵌入式linux调试技术与性能分析
无论学习以上哪种嵌入式linux的开发,掌握C/C++和对linux操作系统是最基本的。
相关文档:
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......
一:前言
最近在研究android的sensor driver,主要是E-compass,其中用到了Linux input子系统.在网上也看了很多这方面的资料,感觉还是这篇分析的比较细致透彻,因此转载一下以便自己学习,同时和大家分享!
(这篇博客主要是以键盘驱动为例的,不过讲解的是Linux Input Subsystem,可以仔细的研究一下!)
键盘驱动将检 ......
平滑迁移的技巧和技术
文档选项
<tr
valign="top"><td width="8"><img alt="" height="1" width="8"
src="//www.ibm.com/i/c.gif"/></td><td width="16"><img alt="" width="16"
heig ......
1. 摘要
本文阐述 Linux 中的文件系统部分,源代码来自基于 IA32 的 2.4.20 内核。总体上说 Linux
下的文件系统主要可分为三大块:一是上层的文件系统的系统调用,二是虚拟文件系统 VFS(Virtual Filesystem
Switch),三是挂载到 VFS 中的各实际文件系统,例如 ext2,jffs 等。本文侧重于通过具体的代码分析来解释 Linux ......
一、linux的设备驱动程序与外界的接口可以分为三个部分:
1.驱动程序与操作系统内核的接口。通过file_operations(include/linux/fs.h)数据结构来完成的。
2.驱动程序与系统引导的接口。这部分利用驱动程序对设备进行初始化。
3.驱动程序与设备的接口。这部分描述了驱动程序如何与设备进行交互,与具体 ......