原创 【嵌入式Linux學習七步曲之第五篇 Linux內核及驅動編程】Linux內核搶佔實現機制分析

目錄(?)[+] 內核搶佔概述用戶搶佔不可搶佔內核的特點爲什麼需要內核搶佔什麼情況不允許內核搶佔內核搶佔時機如何支持搶佔內核何時需要重新調度參考資料   Linux內核搶佔實現機制分析   Sailor_forever  saili

原创 Linux內核源碼特殊用法

http://ilinuxkernel.com/files/5/Linux_Kernel_Source_Code.htm 1      前言 Linux內核源碼主要以C語言爲主,有一小部分涉及彙編語言,編譯器使用的是Gcc。初次看內核源

原创 Linux 內核堆棧

所有進程(包括內核進程和普通進程)都有一個內核棧,在x86的32位機器上內核棧大小可以爲4KB或8KB,這個可以在編譯內核的時候配置。內核棧的用途有兩個:1)當進程陷入內核態,即內核代表進程執行系統調用時,系統調用的參數就放在內核棧上,

原创 request_irq中斷模型 共享中斷

request_irq中斷模型 原文 :http://blog.csdn.net/hsly_support/article/details/7558913 Kernel中斷處理模型結構圖如下:下面簡單介紹一下:1. Linux

原创 LCD設備驅動 相關結構體

1.fb_info 結構體  幀緩衝設備最關鍵的一個數據結構體是fb_info 結構體(爲了便於記憶,我們把它簡稱爲“FBI”),FBI中包括了關於幀緩衝設備屬性和操作的完整描述,這個結構體的定義如代碼清單 所示。 1  s

原创 Linux內核I2C子系統驅動(三)

I2C子系統驅動(三)               當適配器加載到內核後,就針對具體設備編寫I2C設備驅動。編寫設備驅動有兩種方法,一種是利用系統提供的i2c-dev.c實現,另一種爲i2c編寫一個獨立的設備驅動。 一、i2c-de

原创 Linux內核時間管理

Linux內核時間管理 (1)內核中的時間概念      時間管理在linux內核中佔有非常重要的作用。      相對於事件驅動而言,內核中有大量函數是基於時間驅動的。      有些函數是週期執行的,比如每10毫秒刷新一次

原创 Linux Notifier機制

原文  http://blog.sina.com.cn/s/blog_55465b470100knc0.html 一:數據結構//notifier.h struct notifier_block {     int (*notifie

原创 Linux內核通知鏈notifier

1.內核通知鏈表簡介(引用網絡資料)     大多數內核子系統都是相互獨立的,因此某個子系統可能對其它子系統產生的事件感興趣。爲了滿足這個需求,也即是讓某個子系統在發生某個事件時通知其它的子系統,Linux內核提供了通知鏈的機制。通知鏈表

原创 【嵌入式Linux學習七步曲之第五篇 Linux內核及驅動編程】Linux系統調用的實現機制分析

linuxlinux內核編程嵌入式vectorsocket 目錄(?)[+] 系統調用意義APIPOSIXC庫的關係系統調用的實現 系統調用處理程序系統調用號參數傳遞參數驗證系統調用的返回值添加新系統調用訪問系統調用 系統調用上下文系統

原创 Linux驅動之設備模型(5)

6.設備 6.1  設備 l  Linux設備模型中每一個設備用device結構來表示 struct device {          struct device             *parent;   /* 父設備,

原创 linux時鐘學習__s5pv210 筆記

(1) MACHINE_START         //(mach-smdkv210.c)     smdkv210_map_io(); MACHINE_END (2) smdkv210_map_io——> (3) s5p_init_io

原创 USB驅動程序代碼分析——鼠標用作鍵盤

USB驅動程序代碼分析——鼠標用作鍵盤   /*  * drivers\hid\usbhid\usbmouse.c  */ #include <linux/kernel.h> #include <linux/slab.h> #i

原创 kmalloc vmalloc kzalloc malloc 和 get_free_page()

  kmalloc vmalloc kzalloc malloc 和 get_free_page() kmalloc vmalloc kzalloc get_free_page()是內核空間申請內存空間函數 malloc是

原创 補碼 原碼 反碼

假設有一個 int 類型的數,值爲5,那麼,我們知道它在計算機中表示爲: 00000000 00000000 00000000 00000101 5轉換成二制是101,不過int類型的數佔用4字節(32位),所以前面填了一堆0。 現在想