編輯:關於Android編程
在初略介紹sensor的時候,就有講到sensor的架構,在此繼續將其具體化,來看看高通的sensor架構。
我們可以通過下圖看具體sensor是如何進行運作的。
該圖我們可以非常明顯地看到Sensor通過I2C或者是SPI將數據發到Sensor Driver中,drivers通過device driver framework將數據包裝後發給Sensor Manager,然後通過共享內存的方式發給上層。作為一個BSP,當然我所做的是具體來分析adsp這部分的問題了。
SSC: Snapdragon Sensors Core
QMI: Qualcomm Messaging Interface
IDL: Interface description language
CTS: Compatibility Test Suite
SAM: Sensors Algorithm Manager
openSSC: SSC Vendor Ecosystem
SSI: sensor single image
在這裡我提供我手上高通提供的文檔,該文檔詳細描述了如何進行porting的重要信息。
下面我將通過這個文檔來詳細描述如何進行Porting。
在fwcode中qcom_firmware\ADSP.8953.2.8.2\adsp_proc\Sensors\dd\qcom\inc目錄下找到sns_dd.h,添加聲明。
如
extern sns_ddf_driver_if_s sns_dd_mpu6515_if;
在fwcode中qcom_firmware\ADSP.8953.2.8.2\adsp_proc\Sensors\dd\qcom\src添加廠商給的code。並更新qcom_firmware\ADSP.8953.2.8.2\adsp_proc\Sensors\dd\qcom\build\dd_qcom.scons。
如:
在src中添加sns_dd_mpu6515.c、sns_dd_mpu6515_ext.c、 sns_dd_mpu6515_selftest.c,需要在dd_qcom.scons的DD_SOURCES中添加
"${BUILDPATH}/sns_dd_mpu6515.c", "${BUILDPATH}/sns_dd_mpu6515_ext.c", "${BUILDPATH}/sns_dd_mpu6515_selftest.c",
同時要配置編譯檔案進行匹配聲明。
在qcom_firmware\ADSP.8953.2.8.2\adsp_proc\Sensors\build\Sensors.scons申明config名稱。
env.Append(CPPDEFINES = ["CONFIG_SUPPORT_MPU6515"])
那麼如何生成UUID呢?UUID在線生成器拿去不謝。生成後如何使用呢?
請在qcom_firmware\ADSP.8953.2.8.2\adsp_proc\Sensors\common\inc\sns_reg_common.h中
#define SNS_REG_UUID_MPU6515 \ {0xa3,0x87,0x37,0xc5,0x50,0x03,0x43,0xe9,0x84,0x9c,0x6c,0xfb,0xc1,0xaa,0x37,0xe4}
此時adsp已經基本正常porting完成了。
在vender\qcom\proptery\sensors\dsps\reg_defaults中更新sensor_def_qcomdev.conf檔是至關重要的。
在文檔中有一張表詳細藐視了config檔的所代表的意思。
此時UUID就要用上了。
2000 1 0x00010001 2001 2 0x00010001 # SSI SMGR Cfg 0: MPU6881 ACCEL INT {0x68,0x81,0x46,0x7b,0x75,0x75,0x45,0xcc,0xad,0x20,0x48,0x52,0x42,0xae,0x68,0x81} 2002 0xcc4575757b468168 0x00010001 #UUID 2003 0x8168ae42524820ad 0x00010001 #UUID 2004 10000 0x00010001 #off_to_idle 2005 10000 0x00010001 #idle_to_ready 2006 45 0x00010001 #gpio1 2007 1000 0x00010001 #reg_group_id 2008 0 0x00010001 #cal_grp_id 2009 4 0x00010001 #i2c_bus 2010 0x68 0x00010001 #i2c_address 2011 1 0x00010001 #sens_default 2012 0x80 0x00010001 #flags
adb root adb remount adb shell rm /system/etc/sensors/sensor_def_qcomdev.conf adb push sensor_def_qcomdev.conf /system/etc/sensors/sensor_def_qcomdev.conf adb shell chmod 644 /system/etc/sensors/sensor_def_qcomdev.conf adb shell rm /persist/sensor/sns.reg adb shell sync adb reboot
核心類:package test.com.opengles3_1;import android.opengl.GLES20;import android.opengl.M
之前打包的時候直接就用eclipse或者android studio直接生成簽名文件,並沒有關心大小問題,最近有人問我有沒有對APK進行瘦身,對這方面內容一致沒有關注過,
SimpleVrPanorama其實這篇應該寫SimpleVrPanorama和simplevideowidget 兩個,但是由於篇幅過長就分開寫了演示用AS錄的沒有觸摸
Android 中使用代碼動態布局 本文介紹在android中使用代碼動態布局,有時候根據不同的需求,比如需要根據服務器上的條目個數來決定app中頁面布局控件(