日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【嵌入式开发教程7】手把手教你做平板电脑-音频驱动实验教程

發布時間:2023/12/20 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【嵌入式开发教程7】手把手教你做平板电脑-音频驱动实验教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

音頻驅動實驗教程
——瘋殼·嵌入式平板開發
? ??

??
? ?圖1?
? ? 如上圖是音頻模塊 codec 和 cpu 連接框圖,主要由三部分組成:
? ? I2C 總線 - cpu 通過它實現對 Codec 寄存器數據的讀寫。
? ? I2S 總線 - 實現音頻數據在 CPU 和 Codec 間的通信。
? ? HP_DEC - 實現檢測是否有 HeadSet 設備插入。
? ??
? ? 第二節 linux workqueue 工作原理
? ? 音頻子系統的源代碼中用到了一個概念:workqueue。對于不了解的朋友,讀代碼可能會引起疑惑,所以這里做一個簡單介紹。Linux 中的 Workqueue 機制就是為了簡化內核線程的創建,只是通過調用 workqueue 的接口就能創建內核線程;并且可以根據當前系統 CPU 的個數創建線程的數量,使得線程處理的事務能夠并行化;workqueue 是內核中實現簡單而有效的機制,它顯然簡化了內核 Daemon 的創建,方便了用戶的編程。工作隊列(workqueue) 是另外一種將工作推后執行的形式。它把工作推后,交由一個內核線程去執行,也就是說, ? 這個下半部分可以在進程上下文中執行。最重要的就是工作隊列允許被重新調度甚至是睡眠。 ?舉個栗子:
? ??
? ??
? ? 代碼1
? ??
? ? 第三節 電路原理圖介紹
? ? 下圖來源于文檔 3128_sdk_a02_20170325.pdf 中第 18 頁。
? ? 圖一、綠色框中是 codec 芯片自己檢測是否有 HeadSet 設備插入的電路原理圖,它是通過 HP_HOOK(HP_HOOK 和 HP_DEC 是連在一條線上)與 cpu 的 ADC_IN0 連接,這個有點類似于 AD 按鍵檢測的功能;音頻 Codec 模塊是數據與控制分開的,所以有 I2c 來控制 Codec 的寄存器的讀寫,數據通過 I2s 總線進行傳輸。
? ??
? ??
? ? 圖2
? ??
? ? 第四節 音頻驅動代碼結構
? ??
? ??
? ? 代碼2
? ??
? ? 第五節 dts 文件講解
? ??
? ??
? ? 代碼3
? ??
? ? HeadSet 配置文件
? ??
? ??
? ? 代碼4
? ??
? ? I2c 配置文件
? ??
? ??
? ? 代碼5
? ? I2s 配置文件
? ? rockchip-rt3224 {
? ??
? ??
? ? 代碼6
? ??
? ? 第六節 實驗代碼
? ? 1.HeadSet 檢測
? ? 原理類似于一個 ad 按鍵的功能。
? ? 注意:這里如果要測試這個功能必須在 codec 中設置一個值:
? ? codec_hp_det = <0>; ===> codec_hp_det = <1>;
? ? 增加兩條測試信息到如下代碼中。
? ??
? ??
? ? 代碼7
? ? 耳機檢測狀態的調試:
? ? cat sys/class/switch/h2w/state 0:無耳機插入
? ? 1:帶Mic 耳機插入(四段耳機)
? ? 2:不帶 Mic 耳機插入(三段耳機)
? ? 2.測試命令?? ?amix
? ? 用 amix 命令來調節音量
? ? amix 11 0
? ? amix 11 120
? ??

?

?

?

配套資料:https://www.fengke.club
套件地址:http://shop115904315.taobao.com?
?

總結

以上是生活随笔為你收集整理的【嵌入式开发教程7】手把手教你做平板电脑-音频驱动实验教程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。