2015/11/13

snd_pcm_playback_ioctl1        : do_vfs_ioctl+0x80/0x5bc
snd_pcm_common_ioctl1          : snd_pcm_playback_ioctl1+0x158/0x44c
snd_pcm_playback_ioctl1        : do_vfs_ioctl+0x80/0x5bc
snd_pcm_common_ioctl1          : snd_pcm_playback_ioctl1+0x158/0x44c
snd_pcm_hw_params              : snd_pcm_common_ioctl1+0x478/0xdc0
soc_pcm_hw_params              : snd_pcm_hw_params+0xc0/0x390
imx_cs42888_surround_hw_params : soc_pcm_hw_params+0x14c/0x47c
snd_soc_dai_set_tdm_slot       : imx_cs42888_surround_hw_params+0x90/0xb4
fsl_esai_set_dai_tdm_slot      : snd_soc_dai_set_tdm_slot+0x60/0x78

2015/11/12

Worklog : imx. tdm

soc/fsl/imx-cs42888.c -- imx_cs42888_surround_hw_params
        /* set i.MX active slot mask */
        snd_soc_dai_set_tdm_slot(cpu_dai, 0x3, 0x3, 2, 32);
soc/soc-core.c
int snd_soc_dai_set_tdm_slot(struct snd_soc_dai *dai,
        unsigned int tx_mask, unsigned int rx_mask, int slots, int slot_width)
所以 ..
  • slots = 2
  • slot_width=32

BCLK 是 data 的 freqx2, 這樣,在 CLK rising 時 sample Data 的資料。
data 每 32 bit 視為一個 slot.
實際上slot 內的資料,可以是 8, 16, 24 bit, 不一定要將 32bit 用完。
LRCLK 是用來區分 L, R 的資料。

2015/11/10

2015/11/9

Wandboard

結果很小一塊,connector 也是小的,所以有點不方便。


官方的 server 好像有問題,所以沒有git server 可以使用。
目前source 是用 download tar 的方式。

ref: http://coldnew.github.io/blog/2015/wandboard_android_4.4.2/
所以是故意的?

build android from source: https://embeddedandroidsystem.wordpress.com/

$tar xvf wandboard_lp-5.0.2-ga_fullsource_20150630.tar.xz

$cd android5/
$source build/envsetup.sh
$lunch wandboard-userdebug
$make -j4
結果 fail:
install: cannot stat ‘bootable/bootloader/uboot-imx/SPL’: No such file or directory
install: cannot stat ‘bootable/bootloader/uboot-imx/SPL’: No such file or directory
make: *** [out/target/product/wandboard/SPL] Error 1
make: *** Waiting for unfinished jobs....
看來是dependency 問題。
用 single thread make 就 OK
--- 其實中途就又用 j10 來 build , 也 OK, 只要確認 uboot 已經 build 過了。

製作開機 sdcard 和 freescale bsp 的作法不同。
ref: http://android.serverbox.ch/?p=899

wandboard 的 root 是 real partition
--- freescale 是 rootfs

wandboard 把 root 和 system 放在同一個 partition
kernel uImage 另外用一個ext2 的 partition

這個好像也不是 wandboard 5.0 bsp 的作法,是該blogger 自己的作法。

2015/11/5

machine -- jobs.

jessie431
aosp, emulator - OK
make sdk --failed
should...
lunch sdk-eng
make sdk

3rd
aosp, master. new compilation tool test. - android-6.0.1 branch/tag OK
run "emulator -no-window" OK

vbjessie
gitlab installation

jr
test build sdk - px3
lack of goldfish device.
aosp -b android-4.4.4_r2 (follow px3), test build sdk in first

lunch ... all in build/target/product

lunch 之後要選擇 product type.
並不是所有都有列出來。
一般 vendor bsp product 都會在 device/ 下。...

Android 原有的會在 build/target/product 下...
隨著支援平台增加,var 也變多了...
像以往的 sdk (arm). 現在多了:
sdk_arm64, ask_mips, sdk_x86, sdk_x86_64..

2015/11/4

android WITH_DEXPREOPT=true

在BoardConfig.mk 中加入
WITH_DEXPREOPT=true
這樣,開機的 read apk , optimize then save on /data/dalvik-cache 的動作會在 compile time 就做了。
所以首次開機會快一點。
而且 /data/dalvik-cache 會是空的。

但是原來的 .jar, .apk 都會多一個 .odex 檔。