原创 PCI驅動

一、PCI總線 1、PCI橋 Host/PCI橋:用於連接CPU與PCI根總線,即“北橋芯片組” PCI/ISA橋:用於連接PCI與舊的ISA總線,即“南橋芯片組” PCI-to-PCI橋:用於連接PCI

原创 中斷與時鐘

一、linux中斷編程 1、申請中斷 int requet_irq(unigned int irq,irq_handler_t handler,unsigned long irqflags,const c

原创 數值溫度傳感器18b20驅動分析

#include <linux/module.h> #include <linux/kernel.h> #include <linux/fs.h> #include <linux/init.h> #inc

原创 文件操作系統調用

1、文件操作系統調用 1)創建 int creat(const char *filename,mode_t mode); 2)打開 int open(const char *filename,int fl

原创 內存與IO訪問

一、用戶空間的內存申請 malloc();//申請 free();//釋放 二、內核空間的內存申請 1、kmalloc() void *kmalloc(size_t size,int flags); 2、

原创 linux設備驅動中的阻塞和非阻塞IO

一、等待隊列 1、定義等待隊列頭 wait_queue_head_t my_queue; 2、初始化等待隊列頭 init_waitqueue_head(&my_queue); 3、定義等待隊列 DECLA

原创 字符設備驅動結構

一、字符設備驅動的結構體描述 1、描述字符設備的結構struct cdev struct cdev {struct kobject kobj;//內嵌的kobject 對象struct module *o

原创 linux內核模塊

1、insmod xxx.ko 加載模塊 2、rmmod xxx.ko 卸載模塊 3、lsmod 獲得系統中加載的所有模塊及模塊間的依賴關係 4、modprode xxx.ko 加載模塊時,會同時加載該模

原创 linux設備驅動的併發控制

一、中斷屏蔽 中斷屏蔽的使用方法: local_irq_disable();//屏蔽中斷 ....//臨界區處理 local_irq_enable();//開中斷 注:local_irq_disable(

原创 linux設備驅動中的異步通知與異步IO

一、linux異步通知編程 1、信號的接收 void (*signal(int signum,coid (*handler))(int)))(int); 可分解爲 typedef void (*sigha

原创 linux GDB調試

原文位於:http://www.cnblogs.com/shipfi/archive/2008/08/04/1260293.html 1: 對於在應用程序中加入參數進行調試的方法:    直接用 gdb app -p1 -p2 這樣進行調

原创 嵌入式開發環境搭建

交叉編譯環境的搭建 1、在/usr/local/下建立交叉編譯器的安裝目錄arm sudo  mkdir /usr/local/arm 2、將下載的交叉編譯器包解壓到/usr/local/arm目錄下 sudo tar jxvf cro

原创 Linux GCC常用命令

原文位於:http://www.cnblogs.com/ggjucheng/archive/2011/12/14/2287738.html 1簡介 GCC 的意思也只是 GNU C Compiler 而已。經過了這麼多年的發展,GCC

原创 linux3.0.1內核啓動分析

一、第一階段:(arch/arm/boot/compressed/head.S) 1、獲得zImage的起始地址和結束地址,體系結構ID.word 0x016f2818 @ Magic numbers t

原创 文件操作三(select、poll多路複用)

1、select()和poll()的I/O 多路轉接模型是處理I/O 複用的一個高效的方法。它可以具體設置程序中每一個所關心的文件描述符的條件、希望等待的時間等,從select()和poll()函數返回時,內核會通知用戶已準備好的文件描述