"Original"--Linux driver Development--"continuous finishing"

Source: Internet
Author: User

First, write in front:

Qualified Linux driver engineers need to meet the following conditions, the goal of this article is to present these conditions to the reader

1, have a certain hardware foundation, understand Sram,flash,sdram, disk read and write way, understand UART,IIC,USB and other device interface, understand the polling, interrupt, DMA principle, the working mode of PCI bus and CPU memory Management Unit (MMU) and so on.

2, have a certain C language Foundation, be able to skillfully use the structure, pointers, function pointers, as well as the dynamic application and release of memory.

3, there is a certain Linux kernel Foundation, the kernel part is difficult, at least should understand the driver and the kernel interface.

4, there are a number of tasks concurrency and synchronization Control Foundation, in the drive will use a lot of spin lock, mutual exclusion, signal volume, waiting queue and other concurrency and synchronization control mechanism.

Second, the development environment:

Ubuntu14.04lts (virtual machine inconvenient, directly installs Ubuntu), OK6410 Development Board (although a bit old)

Tool chain installation (see blog post ")

NFS and TFTP installation (see blog post ")

III. Overview of device drivers

1. Single task environment and multi-task operating system environment

2, classification: Character equipment, block equipment, network equipment

3. The relationship between hardware and software system and drive

Four, the Hardware Foundation

1. Universal processor

Chart

2. DSP

3. Memory

4. Interface and Bus

5, CPLD,FPGA

6. Schematic basis

Five, Linux kernel analysis

1. Five main pillars

2. Kernel Source code directory structure

3. Core Components

Process scheduling, memory management, virtual file system, network interface, process communication

4. Kernel Compilation and loading

Compiling: Multiple compilation methods analysis

Makefile ""

5. Kernel Boot

6. C Programming under Linux

Six, device drive in-depth

1. Kernel module

2. File system and Equipment file system

3. Concurrency control

4. Blocking and non-blocking I/O

5. Asynchronous notification and asynchronous I/O

6. Interrupts and Clocks

7. Memory and I/O access

8. Application: Android

Seven, device driver example

1. Character device driver

2, block device drive

3. Network device driver

  

"Original"--Linux driver Development--"continuous finishing"

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.