PIXNET Logo登入

Welkin小窩

跳到主文

柴米油鹽的平淡生活

部落格全站分類:不設分類

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 9月 06 週五 201310:22
  • Printk 的 log level 問題

printk的訊息優先權定義在linux/kernel.h

節錄在下面:
1 KERN_EMERG
2 KERN_ALET
3 KERN_CRIT
4 KERN_ERR
5 KERN_WARNIN
6 KERN_NOTICE
7 KERN_INFO
8 KERN_DEBUG
(繼續閱讀...)
文章標籤

BB 發表在 痞客邦 留言(0) 人氣(11,768)

  • 個人分類:Linux Kernel
▲top
  • 5月 30 週四 201313:58
  • signal_pending(current) 用法

 
經常我們在睡眠的代碼中會看到這樣的例子:

    if (signal_pending(current)) {
     ret = - ERESTARTSYS ;
     return ret;
    }
    關於  - ERESTARTSYS 到底是什麼意思?  
    -ERESTARTSYS表示信號函數處理完畢後重新執行信號函數前的某個系統調用。

也就是說,如果信號函數前有發生系統調用,在調度用戶信號函數之前,內核會檢查系統調用的返回值,看看是不是因為這個信號而中斷了系統調用。

如果返回值-ERESTARTSYS,並且當前調度的信號具備-ERESTARTSYS屬性,系統就會在用戶信號函數返回之後再執行該系統調用。


 
這個過程,不必深究,你就知道上層的庫函數,當收到 -ERESTARTSYS 這個返回值後,linux來講,會自動的重新調用這個調用就可以了。
 
(繼續閱讀...)
文章標籤

BB 發表在 痞客邦 留言(0) 人氣(2,345)

  • 個人分類:Linux Kernel
▲top
  • 10月 03 週三 201219:43
  • spinlock & mutex & semaphore 的作用和區別

REF:
http://www.hitripod.com/blog/2012/03/synchronization-mechanism-comparison-spinlock-mutex/

spinlock,mutex,semaphore,critical section的作用和區別

(繼續閱讀...)
文章標籤

BB 發表在 痞客邦 留言(3) 人氣(67,704)

  • 個人分類:Linux Kernel
▲top
  • 9月 25 週二 201217:04
  • Linux驅動程序開發- 設備驅動模型初探

序言
從這一章開始,我們將詳細的介紹Linux的設備驅動模型。Linux設備驅動模型是一個相當複雜的系統,對於初學者來說真有些無從入手。而且更加困難的是,隨著新的Linux Kernel的release,Linux的設備驅動模型總會有或大或小的變化,我們將盡量展現Linux Kernel 的這種變化。
早期的Linux內核(版本2.4之前)並沒有實現一個統一的設備模型,設備節點的創建一般是mknod命令手動創建或利用devfs文件系統創建。早期的Linux發行版一般會採用手動創建的方式預先把通常用到的節點都創建出來,而嵌入式系統則會採用devfs的方式。起初Linux 2.6內核還支持devfs,但從2.6.18開始,內核完全移除了devfs系統而採用的udev的方式動態的創建設備節點。因此,新的Linux發行版都採用udev的方式管理設備節點文件。(關於udev的詳細信息,請參考: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html )。
Linux2.6設備驅動模型的基本元素是Class、Bus、Device、Driver,下面我們分別介紹各個部分。
Class和Class Device
(繼續閱讀...)
文章標籤

BB 發表在 痞客邦 留言(0) 人氣(12,567)

  • 個人分類:Linux Kernel
▲top
  • 9月 25 週二 201216:49
  • 驅動註冊 platform_driver

驅動註冊platform_driver(一)

從linux-2.6開始引入了一套新的驅動管理和註冊機制:platform_device和platform_driver.

linux中的大部分設備驅動,都可以使用該機制,設備用platform_device表示,驅動用platform_deriver進行註冊。
(繼續閱讀...)
文章標籤

BB 發表在 痞客邦 留言(0) 人氣(2,138)

  • 個人分類:Linux Kernel
▲top
  • 9月 25 週二 201212:10
  • register_chrdev_region()和registe_chrdev()

轉載 http://blog.csdn.net/xie376450483/article/details/5729936

分配設備編號,註冊設備與註銷設備 ​​的函數均在fs.h中申明,如下:

extern int register_chrdev_region(dev_t, unsigned, const char *);//靜態的申請和註冊設備號
(繼續閱讀...)
文章標籤

BB 發表在 痞客邦 留言(0) 人氣(533)

  • 個人分類:Linux Kernel
▲top
  • 9月 25 週二 201212:05
  • udev 強大的device node 管理系統 class_create

udev1
//----------------------------------------------------------------
//==//auto create device node//==//
vpu_dev_class = class_create(THIS_MODULE, VPU_DEV_NAME);
if (IS_ERR(vpu_dev_class)){
INFO("can't create class %s\n", VPU_DEV_NAME);
(繼續閱讀...)
文章標籤

BB 發表在 痞客邦 留言(0) 人氣(2,074)

  • 個人分類:Linux Kernel
▲top
  • 9月 21 週五 201210:47
  • Platform_device 和Platform_driver

從Linux 2.6 起引入了一套新的驅動管理和註冊機制:Platform_device 和Platform_driver 。
Linux 中大部分的設備驅動,都可以使用這套機制, 設備用Platform_device 表示,驅動用Platform_driver 進行註冊。

Linux platform driver 機制和傳統的device driver 機制( 通過driver_register 函數進行註冊) 相比,一個十分明顯的優勢在於platform 機制將設備本身的資源註冊進內核,由內核統一管理,在驅動程序中使用這些資源時通過platform device 提供的標準接口進行申請並使用。這樣提高了驅動和資源管理的獨立性,並且擁有較好的可移植性和安全性( 這些標準接口是安全的) 。

(繼續閱讀...)
文章標籤

BB 發表在 痞客邦 留言(0) 人氣(4,967)

  • 個人分類:Linux Kernel
▲top
  • 9月 21 週五 201210:38
  • platform_driver_register

platform_driver_register
platform_driver_register()是來註冊設備的驅動程序
platform_device_register()是來註冊設備硬件,告訴kernel,當前有什麼裝置。
當某個裝置連結後,必須在device和driver的兩端上都有對應的東西才算是匹配上,
並且開始使用driver的probe等函數進行硬件初始化工作。
(繼續閱讀...)
文章標籤

BB 發表在 痞客邦 留言(0) 人氣(8,702)

  • 個人分類:Linux Kernel
▲top
  • 9月 21 週五 201209:46
  • Platform device

//--------------------------------------------------------------------
#include /include/linux/platform_device.h
struct platform_device {
const char *name;
int id;
(繼續閱讀...)
文章標籤

BB 發表在 痞客邦 留言(0) 人氣(8,967)

  • 個人分類:Linux Kernel
▲top
123»

文章分類

toggle 生活集錦 (3)
  • 影音歌詞 (17)
  • 生活其它 (4)
  • 媽媽寶寶 (25)
toggle SYSTEM (8)
  • Linux-Pre (9)
  • Yocto (1)
  • Linux System (20)
  • Embedded (19)
  • Linux Kernel (24)
  • Ubuntu Manage (8)
  • Linux Debug & Trace (2)
  • Android (21)
toggle Programing (3)
  • Trace&Debug (11)
  • GNU C (12)
  • Programing C & C++ (22)
toggle MultiMedia (3)
  • Video (20)
  • FFmpeg (14)
  • mplayer (13)
toggle Computer (3)
  • 系統安裝 (5)
  • 常見問題 (10)
  • 電腦基礎 (3)
  • 未分類文章 (1)

文章搜尋

個人資訊

BB
暱稱:
BB
分類:
不設分類
好友:
累積中
地區:

參觀人氣

  • 本日人氣:
  • 累積人氣:

Scotch甜蜜貼紙