原创 Linux驅動--併發控制

1、信號量      struct semaphore sem    定義信號量      void sema_init(struct semaphore *sem, int val)用於初始化設置信號量的值爲val      void

原创 設備與驅動模型

第一步:初始化要註冊的結構            struct device xxx             {bus type xxx               bus_id    xxx 設備名               pare

原创 運放基本應用

要圖,下次傳

原创 Linux驅動--Ioctl

第一步:定義命令(可以在頭文件中定義,也可以在驅動函數中定義),驅動自已定義,不是系統帶的              _IO(幻數(對應的一類設備),命令序號)   不帶參數              _IOR(幻數(對應的一類設備),命

原创 混雜設備

設備描述 struct miscdevice {    int mimor;    const char *name;    ocnst struct file_operation;    struct list_head list;  

原创 Linux字符驅動--結構分析

1、aloc_cdev分配、init_cdev初始化、add_cdev設備註冊 2、三個結構體node、file_operation、file,前兩個在驅動中自已定義,最後一個在打開時內核幫你定義的(我覺得是)。 3、open打開時需要提

原创 電源相關總結

電源分開關電源和線性電源兩種 開關電源提供的電流大(幾安培),效率高,FPGA中適合給核電壓供電。 線性電源提供的電流小(500mA以下),紋波小,FPGA中適合給IO、輔助電壓供電。

原创 總線模型

總線描述 struct busy_type { struct bus_attribute,    match,    uevent,.... 總線屬性 struct busy_attribute { struct attribute at

原创 電源去耦

電源去耦:電源輸出一般用兩個電容旁路到地,靠近電源的那個有比較大的電容,旁路頻率比較小的交流噪聲,靠近用電芯片的一端用較小的電容,旁路掉芯片耦合進來的高頻噪聲。

原创 自動創建設備文件

用戶空間應用程序udev(mdev)驅動初始化代碼裏調用class_create爲設備創建一個class,在調用device_create創建class類中的一個設備驅動被加載時,udev(mdev)就會自動在/dev下創建相應的設備文件

原创 硬件訪問

除x86外,ARM均只有內存空間,沒有IO空間(區別在於不同的地址線) IO端口:        當一個寄存器或設備內存位於IO空間時,稱其爲IO端口 IO內存:         當一個寄存器或設備內存位於IO空間時,稱其爲IO內存 怎麼

原创 阻塞

阻塞 可以在打開文件時指定標誌file->flag爲O_NONBLOCK,則在沒有準備就緒就讀寫設備時返回-EAGAIN,而不會阻塞進程。 阻塞方式是文件讀寫操作的默認方式。 read中數據沒準備好時進行阻塞,並在write中寫完數據後改

原创 應用程序設計

1 linux中文件編程兩種方法:linux系統調用(依賴具體的操作系統)、C語言庫函數 庫函數方式訪問文件(2-1-1):庫函數獨立於操作系統;訪問文件的庫函數fopen fread fwrite fgetc fputc fprintf

原创 基於2.6.28.6內核的SPI驅動總結

參考: PowerPC+Linux2.6.25 平臺下的SPI驅動構架分析    1、SPI總體構架       SPI的驅動分爲三個層次:硬件抽象層、平臺依賴層和用戶接口層。  1.1、硬件抽象層(核心層)       drivers/

原创 曾經的讀書記錄

《菜根譚》 欲做精金美玉的人品,定從烈火中煅來;思立掀天揭地的事功,須向薄冰上履過可見名爲招禍之本,欲乃散志之媒,學者不可不力爲掃除也學者動靜殊操、喧寂異趣,還是鍛鍊未熟,心神混淆故耳。須是操存涵養,定雲止水中,有鳶飛魚躍的景象;風狂雨驟