Time of Update: 2018-12-03
1.3 輸入子系統裝置驅動講解1.3.1 開啟和關閉函數struct input_dev中有open和close兩個函數指標。在與handler第一次串連之後會調用open函數,中斷連線會調用close。open中應該完成硬體初始化的相關工作,並且申請用到的其他資源,如中斷號。close函數做相反的工作。1.3.2 事件類型Linux輸入子系統支援的事件類型如程式清單 1.6所示。程式清單 1.6 輸入子系統事件類型/* include/linux/input.h
Time of Update: 2018-12-03
1.4 input_dev的註冊在輸入裝置驅動的初始化函數的最後一步就是調用input_register_device註冊裝置。這個函數如程式清單 1.9所示。程式清單 1.9 input_register_device/* driver/input/input.c */int input_register_device(struct input_dev *dev){ staticatomic_t input_no = ATOMIC_INIT(0);
Time of Update: 2018-12-03
1.5 附隨報告的傳遞輸入子系統裝置報告各種事件通過input_report_XXX族函數,例如程式清單 1.5中報告按鍵事件。按鍵、相對座標、絕對座標和同步附隨報告的函數如程式清單 1.12所示。 程式清單 1.12 附隨報告函數/* include/linux/input.h */static inline void input_report_key(struct input_dev*dev, unsigned int code, int value){
Time of Update: 2018-12-03
聲明:本博內容均由http://blog.csdn.net/droidphone原創,轉載請註明出處,謝謝!一. 概述 ALSA是Advanced Linux Sound Architecture 的縮寫,目前已經成為了linux的主流音頻體繫結構,想瞭解更多的關於ALSA的這一開源項目的資訊和知識,請查看以下網址:http://www.alsa-project.org/。
Time of Update: 2018-12-03
這幾天把一個網路流量採集器程式基本改好了,原來在main函數中把幾個子線程啟動後就睡10分鐘後開始清理子線程後退出。現在想改成子線程啟動後主線程進入無限睡眠,直到收到SIGTERM或SIGINT。主程式如下:其他標頭檔#include <signal.h>//訊號處理所需要的標頭檔int main(int argc, char * argv[]){ //其他所需要的變數聲明 sigset_t sig_set,sig_pending; //
Time of Update: 2018-12-03
特 別 聲 明 本系列文章bingqingsuimeng著作權所有,轉載請註明出處 http://blog.csdn.net/bingqingsuimeng/ 21世紀不缺什麼了?不缺程式員了,不缺屌絲程式員了,滿山遍野的程式員,各種培訓機構,每個月都有n多個程式員橫空出世,他們一代代的替換著那些遠離這個行業的人。話說程式員有很多境界,比如像我這種,就屬於比較浮躁的程式員,以為自己會的東西不少,其實什麼都不會。
Time of Update: 2018-12-03
1.kobject, ktype, ksetkobject代表sysfs中的目錄。ktype代表kobject的類型,主要包含release函數和attr的讀寫函數。比如,所有的bus都有同一個bus_type;所有的class都有同一個class_type。kset包含了subsystem概念,kset本身也是一個kobject,所以裡麵包含了一個kobject對象。另外,kset中包含kset_uevent_ops,裡面主要定義了三個函數 int
Time of Update: 2018-12-03
著作權聲明請尊重原創作品。轉載請保持文章完整性,並以超連結形式註明原始作者“tingsking18”和主要站台地址,方便其他朋友提問和指正。 前提條件: 至少空餘3.5G磁碟空間,還要有充足的時間和耐心哦! 我的安裝環境:Redhat Enterprise Linux 一.從網上下載源檔案包qt-x11-opensource-src-4.4.3.tar.gz, 推薦:ftp://ftp.trolltech.com/qt/source/qt-x11-opensource-src-4.4.3.
Time of Update: 2018-12-03
著作權聲明請尊重原創作品。轉載請保持文章完整性,並以超連結形式註明原始作者“tingsking18”和主要站台地址,方便其他朋友提問和指正。 下載了qt-sdk-linux-x86-opensource-2009.02.bin,在redhat linux as5 下安裝後,可以正常啟動qt creator了。可是編譯qt內建的example程式的時候卻發現連結有錯誤:/opt/qtsdk-2009.02/qt/lib/libQtGui.so:undefined reference to
Time of Update: 2018-12-03
1. 中斷流控層簡介早期的核心版本中,幾乎所有的中斷都是由__do_IRQ函數進行處理,但是,因為各種插斷要求的電氣特性會有所不同,又或者中斷控制器的特性也不同,這會導致以下這些處理也會有所不同:何時對中斷控制器發出ack回應;mask_irq和unmask_irq的處理;中斷控制器是否需要eoi回應?何時開啟cpu的本地irq中斷?以便允許irq的嵌套;中斷資料結構的同步和保護;/********************************************************
Time of Update: 2018-12-03
聲明:本博內容均由http://blog.csdn.net/droidphone原創,轉載請註明出處,謝謝!1. struct snd_card 1.1. snd_card是什麼snd_card可以說是整個ALSA音頻驅動最頂層的一個結構,整個音效卡的軟體邏輯結構開始於該結構,幾乎所有與聲音相關的邏輯裝置都是在snd_card的管理之下,音效卡驅動的第一個動作通常就是建立一個snd_card結構體。正因為如此,本節中,我們也從 struct cnd_card開始吧。 1.2.
Time of Update: 2018-12-03
聲明:本博內容均由http://blog.csdn.net/droidphone原創,轉載請註明出處,謝謝!1. PCM是什麼PCM是英文Pulse-code
Time of Update: 2018-12-03
聲明:本博內容均由http://blog.csdn.net/droidphone原創,轉載請註明出處,謝謝!Control介面Control介面主要讓使用者空間的應用程式(alsa-lib)可以訪問和控制音頻codec晶片中的多路開關,滑動控制項等。對於Mixer(混音)來說,Control介面顯得尤為重要,從ALSA
Time of Update: 2018-12-03
2.3 evdev_handler的實現Linux輸入子系統已經建立好了幾個handler,用來處理幾類常見的事件,如滑鼠、鍵盤、搖杆等。其中最為基礎的是evdev_handler,它是在driver/input/evdev.c中實現的。它能夠接收任意類型的事件,任意id的裝置都可以和它匹配串連,它對應的裝置節點為/dev/eventX,次裝置號的範圍為64~95。2.3.1 初始化和input_device_id如程式清單 2.6所示。程式清單 2.6 evdev_handler/
Time of Update: 2018-12-03
1. ASoC的由來ASoC--ALSA System on Chip ,是建立在標準ALSA驅動層上,為了更好地支援嵌入式處理器和行動裝置中的音頻Codec的一套軟體體系。在ASoc出現之前,核心對於SoC中的音頻已經有部分的支援,不過會有一些局限性: Codec驅動與SoC CPU的底層耦合過於緊密,這種不理想會導致代碼的重複,例如,僅是wm8731的驅動,當時Linux中有分別針對4個平台的驅動代碼。
Time of Update: 2018-12-03
如果要將該程式應用於具體工程中,建議將中斷處理函數“button_irq()”中的“__udelay(50000)“需要改為使用核心定時器。按鍵原理圖//------------------------------------------驅動程式-----------------------------------------------------//#include <linux/config.h>#include <linux/module.h>#include &
Time of Update: 2018-12-03
前面一節的內容我們提到,ASoC被分為Machine、Platform和Codec三大部分,其中的Machine驅動負責Platform和Codec之間的耦合以及部分和裝置或板子特定的代碼,再次引用上一節的內容:Machine驅動負責處理機器特有的一些控制項和音頻事件(例如,當播放音頻時,需要先行開啟一個放大器);單獨的Platform和Codec驅動是不能工作的,它必須由Machine驅動把它們結合在一起才能完成整個裝置的音頻處理工作。ASoC的一切都從Machine驅動開始,包括音效卡的註冊
Time of Update: 2018-12-03
1.
Time of Update: 2018-12-03
1、直接用export命令:#export PATH=$PATH:自訂路徑查看是否已經設好,可用命令export查看:[root@localhost bin]# exportPATH=$PATH:自訂路徑2、修改profile檔案: #vi /etc/profile 在裡面加入:export PATH="$PATH:/opt/au1200_rm/build_tools/bin"3. 修改.bashrc檔案:# vi /root/.bashrc在裡面加入:export
Time of Update: 2018-12-03
GCC 和 Linux 是出色的組合。儘管它們是獨立的軟體,但是 Linux 完全依靠 GCC 在新的體繫結構上運行。Linux 還利用 GCC 中的特性(稱為擴充)實現更多功能和最佳化。本文討論一些重要的擴充,講解如何在 Linux 核心中使用它們。GCC 當前的穩定版本(版本 4.3.2)支援 C 標準的三個版本:International Organization for Standardization (ISO) 最初的 C 語言標準(ISO C89 或 C90)帶修正 1 的 ISO