[RK3288][Android6.0] 除錯筆記 --- Audio錄音PCM資料抓取
OS: Android 6.0
Kernel: 3.10.92
當錄音異常時需要把資料dump出來判斷問題出在哪一層,RK雖然在HAL層已經提供了dump方法,但有點問題:
static ssize_t read_frames(struct stream_in *in, void *buffer, ssize_t frames)
{
......
while (frames_wr < frames) {
size_t frames_rd = frames - frames_wr;
if (in->resampler != NULL) {
......//流程1
} else {
......
#ifdef ALSA_IN_DEBUG
fwrite(buffer,frames_wr * frame_size,1,in_debug);
#endif
......
}
}
由於上層錄音的取樣率和硬體實際採的不一樣,因此會走流程一,這樣即使ALSA_IN_DEBUG巨集打開了也不會有效,因此可以將讀取資料的過程放在read_frames()外:
static ssize_t in_read(struct audio_stream_in *stream, void* buffer,
size_t bytes)
{
......
ret = read_frames(in, buffer, frames_rq);
if (ret > 0)
ret = 0;
#ifdef ALSA_IN_DEBUG
fwrite(buffer,bytes ,1,in_debug);
#endif
......
}
另外,要先在/data/下建立debug.pcm,否則無法開機。
static int adev_open_input_stream(......)
{
......
#ifdef ALSA_IN_DEBUG
in_debug = fopen("/data/debug.pcm","wb");//please touch /data/debug.pcm first
#endif
......
}
抓出來的資料如果無法判定是否正常,用正弦波作為錄音資料測試。
相關推薦
[RK3288][Android6.0] 除錯筆記 --- Audio錄音PCM資料抓取
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 當錄音異常時需要把資料dump出來判斷問題出在哪一層,RK雖然在HAL層已經提供了dump方法,但
[RK3288][Android6.0] 除錯筆記 --- Audio驅動層判斷錄音資料是否異常
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 之前有提到上層可以通過dump pcm資料檢視波形來確定錄音取樣的資料是否正常,這裡給出驅動層檢視
[RK3288][Android6.0] 除錯筆記 --- 命令列錄音方法
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 錄製wav檔案: 使用tinycap [email protected
[RK3288][Android6.0] 除錯筆記 --- 普通串列埠的新增
Platform: ROCKCHIP OS: Android 6.0 Kernel: 3.10.92 uart0,1,3,4 (普通串列埠) 用的是同一個串列埠驅動. uart2(除錯串列埠)的驅動程式碼嵌在fiq debugger的code中. 相關的配置在rk3288.dtsi中:
[RK3288][Android6.0] 除錯筆記 --- hwclock命令無法使用
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 現象: 使用hwclock,提示找不到檔案 [email protected]:/ # hwclock
[RK3288][Android6.0] 除錯筆記 --- I2C通訊失敗問題
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 使用rk3288的i2c5讀寫時,會出現以下error log: [email prot
[RK3288][Android6.0] 除錯筆記 --- 測試I2C裝置正常傳輸方法
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 rk在驅動層做了一個通用i2c測試程式碼提供給上層快速測試i2c外設是否傳輸正常. 測試使用方法
[RK3288][Android6.0] 除錯筆記 --- eMMC分割槽號和名字的對應
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 有時候需要知道mmcblk對應的分割槽是哪一個,其實驅動已經完成這個功能了,如下: [email protected]:/dev/blo
[RK3288][Android6.0] 除錯筆記 --- user版本串列埠只有輸出不能輸入
Platform: ROCKCHIP OS: Android 6.0 Kernel: 3.10.92現象: 編譯成user版本之後串列埠只有輸出沒有輸入.原因: 編譯user版本之後 ro.debug
[RK3288][Android6.0] 除錯筆記 --- 系統自帶預置第三方APK方法
Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 Rockchip預設提供了機制來預置第三方APK, 方法很簡單: 1. 在device/rockchip/rk3288建立preinstall目錄(如果
[RK3288][Android6.0] 除錯筆記 --- 除錯串列埠的更換
Platform: ROCKCHIP OS: Android 6.0 Kernel: 3.10.92 假設專案有需求要將除錯串列埠uart2 改成 uart1, 改動如下 (還未驗證,先分享給大家,
[RK3288][Android6.0] 除錯筆記 --- pmu(rk818)暫存器讀寫
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 rk的pmu模組只提供了每次單個暫存器的讀寫,驅動提供了這個節點供使用:/sys/rk818/rk818_test 舉例: 讀取: echo r
[RK3288][Android6.0] 除錯筆記 --- 遮蔽系統下拉選單顯示
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 [email protected]:~/rk3288/frameworks/base/
[RK3288][Android6.0] 除錯筆記 --- ro.serialno的獲取
Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 rk3288平臺的serial number是由drmservice寫進去的,drmservice在rc檔案中定義啟動: init.rk30board.
[RK3288][Android6.0] 除錯筆記 --- 螢幕顯示旋轉方法
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 顯示模組提供了一個property供修改旋轉方向,名為”ro.sf.hwrotation”,有四個值可選 Surface.java /** *
[RK3288][Android6.0] 除錯筆記 --- eMMC壞塊測試
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 網上搜到一個叫eMMC Brickbug Check的apk 啟動后里面的Check Memory一項提示要root,但是系統已經是root過的了,
[RK3288][Android6.0] 除錯筆記 --- CPU溫度降頻控制
rk3288平臺關於溫度調節cpu頻率有個bug. 在rk3288.dtsi中,有: temp-limit-enable = <1>; target-temp = <80>; min_temp_limit = <48>
[RK3288][Android6.0] 除錯筆記 --- 移除uboot和kernel開機logo
Platform: RockchipOS: Android 6.0Kernel: 3.10.92diff --git a/arch/arm/boot/dts/rk3288-b.dts b/arch/arm/boot/dts/rk3288-b.dtsindex ad3bc1a.
[RK3288][Android6.0] 除錯筆記 --- 電池電量一直顯示100%
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 跟蹤發現Android6.0相比之前的Android4.4會判斷Charger是否存在,不
[RK3288][Android6.0] 除錯筆記 --- RT5640 I2S對應的ADC/DAC通路
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 Audio Codec RT5640 有兩路I2S,如下圖: 原本以為I2S1對應的就是ADCLR1/DACLR1,I2S2對應的就是ADCLR