- 声卡没有枚举
(1)添加宏
+CONFIG_SND_HWDEP=y
+CONFIG_SND_RAWMIDI=y
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=y
(2)确认连接是否ok
(2.1)usb是否插入到主机
(2.2)外挂小板电源只接bat 12v和gnd,acc不要接。
(3)正常设备连接如下
2.libdabplugin.so找不到spi_init
现象:dlsym sym spi_init error undefined symbol: spi_init
使用:nm -Do system/lib/libdabplug.so 查看符号表确实没有符号表(c++为了实现多态,把函数编译加上不同的前缀或者后缀)
解决方法:
在Peripherals.cpp加上
#ifdef __cplusplus
extern "C" {
#endif
...
... //codes
...
#ifdef __cplusplus
}
#endif
处理后的符号表如下:
另外,编译静态库需要在android.mk中添加include $(BUILD_SHARED_LIBRARY),如果该库中需要引用另外的第三方库,那么需要预编译一下该so,避免引用者找不到该库,Android.mk参考如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libft4222
LOCAL_SRC_FILES := libs/32/libft4222.so
LOCAL_MODULE_TAGS := optional
#LOCAL_MODULE_OWNER := hello
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
OVERRIDE_BUILT_MODULE_PATH := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)
include $(BUILD_PREBUILT)
3.权限问题
现象:无法正常的读写数据,使用命令行demo,spitest,spimain可以正常的读到usb设备
正常的打印信息
原因:ftdi的库有访问usb设备的方法,需要权限
临时解决方案:chmod-R 777 /dev/bus/usb/
版本上解决方案参看如下提交:
commit b1bc6beeec58197279ef0269eddbadbb86c62e05
Author: shanaibing <shanaibing@igentai.com>
Date: Thu Jul 13 11:50:23 2023 +0800
[DAB-BOX]通过init.usb.rc的方式改写/dev/bus/usb/002/下文件的权限,否则libdabplugin.so无法open usb设备
Change-Id: I2996b882d9baf7f8a7c200c0b2faba190a8341fd
4.read不到数据
现象:write数据可以过去,SPI_MOSI有数据,SPI_MISO始终为低,4000_RESET为低
通过走查代码,发现external spi_init没有被调用
5.声音问题
DAB播放的声音送到/dev/snd/pcmC4D0c
通过tinycap /sdcard/dab.wav -D 4 -d 0 -c 2 -r 48000
tinyplay /sdcard/dab.wav -D 2 有声音