當前位置:首頁 » 安卓系統 » android40驅動

android40驅動

發布時間: 2023-07-05 06:30:28

⑴ 如何向android添加內核驅動模塊

1,同目錄下的makefile,如
#
# Makefile for instrial I/O Magnetometer sensors
#

obj-$(CONFIG_SENSORS_AK8975) += ak8975.o
obj-$(CONFIG_SENSORS_HMC5843) += hmc5843.o

2,同目錄下的kconfig

#
# Magnetometer sensors
#
comment "Magnetometer sensors"

config SENSORS_AK8975
tristate "Asahi Kasei AK8975 3-Axis Magnetometer"
depends on I2C
help
Say yes here to build support for Asahi Kasei AK8975 3-Axis
Magnetometer.

To compile this driver as a mole, choose M here: the mole
will be called ak8975.

3,總的config(配置變數為Y)
各項目配置文件的位置不同,
coffee:kernel/arch/arm/configs/M7023Q-debug-perf_defconfig
juice:common/customer/configs
配置信息如下:
# CONFIG_CFG80211 is not set
CONFIG_EXPERIMENTAL=y
CONFIG_LOCALVERSION="$(KERNEL_LOCAL_VERSION)-perf"
CONFIG_SWAP=y
CONFIG_ZRAM=m
CONFIG_SYSVIPC=y
CONFIG_SENSORS_AK8975=y
......

查看變數是否在編譯時配置成功:
out/target/proct/m7023q/obj/KERNEL_OBJ/include/generated/Autoconf.h
查找CONFIG_SENSORS_AK8975
若在編譯時有配置成功,將找到這一行:
#define CONFIG_SENSORS_AK8975 1

4、修改板級文件:
4.0及後續項目統一在:kernel/arch/arm/mach-msm/board-qrd7627a.c
注意juice中,很多配置(如tp)寫在kernel/arch/arm/mach-msm/board-msm7627a-io.c
在代碼中增加新模塊的內容,應該有兩處,第一處設置函數和結構體,第二處實際調用,注意引用上述第3步新增的編譯開關將代碼限制起來。
這些內容大多可以拷貝其它模塊,但是名字要和driver中的相同,注意要改的地方除了名字之外,還有中斷腳和I2C腳。其中固定模塊的中斷腳大部分時候不會改變(如tp就是int:48,reset:26),除非板子的datasheet特別註明才需要改變。但是I2C腳是會隨著slaver device的改變而改變的,需要查清楚。
配置platform_data:
一般需要初始化一個xxx_platform_data結構體(這個結構體的聲明應該讓驅動文件可視,probe中才知道去讀某個platformdata.yyy),並在i2c_board_info結構體中用.platform_data指向它,然後這個i2c_board_info將在板級文件中被注冊(作為函數i2c_register_board_info()的參數)。而這個.platform_data很有可能在驅動的probe函數中調用到,例如:
static struct msg2133_ts_platform_data msg2133_platformdata= {
.irq = 0,
.reset = GPIO_TP_RESET,
};

static struct i2c_board_info i2c_info_msg2133_dpt = {
I2C_BOARD_INFO("msg2133", 0x27),
.platform_data = &msg2133_platformdata,
};
i2c_info_msg2133_dpt.platform_data->irq = gpio_to_irq(GPIO_TP_INT);//結構體初始化的時候只能以常量賦值,因為此處需要做GPIO到irq的映射,所以要在此處賦值。
i2c_register_board_info(MSM_GSBI1_QUP_I2C_BUS_ID, &i2c_info_msg2133_dpt, 1);
在驅動的probe中:pdata =client->dev.platform_data;
...... = pdata.yyy; ......//(msg2133_ts_platform_data在該文件中可見)

⑵ android Android4.0中是不是已經加入對UVC及UAC的驅動支持

android Android4.0中已經加入對UVC及UAC的驅動支持。Android4.0可以接上外置的USB攝像頭及MIC使用。
符合UVC規格的硬體設備在不需要安裝任何的驅動程序下即可在主機中正常使用。使用UVC技術的包括攝像頭、數碼相機、類比影像轉換器、電視棒及靜態影像相機等設備。
UAC(USB Audio Class)USB音頻類,是USB眾多設備類中的一種。

⑶ 做Android驅動開發需要了解哪些方面的知識

匯流排知識,比如PCI、USB匯流排。晶元知識。驅動其實就是對設備上一些寄存器的配置、CPU與設備本身的通訊以及對不同命令的處理。

⑷ android 下如何動態載入觸摸屏驅動

TP驅動實現
1 修改ProjectConfig.mk
修改mediatek\config\prj\ProjectConfig.mk下的CUSTOM_KERNEL_TOUCHPANEL
其值由GT818B改為msg2133

2 增加ms2133驅動文件夾
根據TP廠家提供的驅動,我們在\mediatek\custom\common\kernel\touchpanel增加msg2133觸摸屏驅動文件夾msg2133,並做下面一些簡單修改正常使用。

(1) Msg2133介面的初始化
1) CHIP_EN片選使能引腳
mt_set_gpio_mode(GPIO_CTP_MSG2133_EN_PIN,GPIO_CTP_MSG2133_EN_PIN_M_GPIO);
mt_set_gpio_dir(GPIO_CTP_MSG2133_EN_PIN,GPIO_DIR_OUT);
mt_set_gpio_out(GPIO_CTP_MSG2133_EN_PIN,GPIO_OUT_ONE);</span>
msg2133晶元使能引腳配置為GPIO模式、輸出高電平使能。

2) INT中斷引腳
mt_set_gpio_mode(GPIO_CTP_MSG2133_EINT_PIN,GPIO_CTP_MSG2133_EINT_PIN_M_EINT);
mt_set_gpio_dir(GPIO_CTP_MSG2133_EINT_PIN,GPIO_DIR_IN);
mt_set_gpio_pull_enable(GPIO_CTP_MSG2133_EINT_PIN,GPIO_PULL_ENABLE);
mt_set_gpio_pull_select(GPIO_CTP_MSG2133_EINT_PIN,GPIO_PULL_UP);</span>

配置為中斷模式、輸入、使能上下拉功能和設置為上拉。

(2) IIC地址
Msg2133的iic讀寫地址,我從數據手冊上沒有找到是如何確定這兩個地址的,驅動廠家在驅動代碼中提供,如果想要具體是怎麼確定的,可咨詢廠家。
#defineFW_ADDR_MSG21XX (0xC4>>1)
#defineFW_ADDR_MSG21XX_TP (0x4C>>1)//write,0x26
#defineFW_UPDATE_ADDR_MSG21XX (0x92>>1)//read,0x49</span>
(3) 增加TP的虛擬按鍵(virtual key)

要在TP上增加虛擬按鍵,需要在tp對應的頭文件添加下面的設置:

1) 定義TPD_HAVE_BUTTON
2) 定義TPD_BUTTON_HEIGHT、TPD_KEY_COUNT、TPD_KEYS和TPD_KEYS_DIM,分別用於定義button被識別的縱向坐標、虛擬按鍵個數、對應的功能鍵和每個功能鍵的坐標
#defineTPD_HAVE_BUTTON

#defineTPD_BUTTON_HEIGHT 800
#defineTPD_KEY_COUNT 4
#defineTPD_KEYS { KEY_BACK, KEY_SEARCH,KEY_MENU, KEY_HOMEPAGE }
#define TPD_KEYS_DIM {{200,900,10,10},{260,900,10,10},{40,900,10,10},{120,900,10,10}}</span>

其中,{200,900,10,10}對應了KEY_BACK的坐標, (200,900)是該key center的坐標,10是該鍵的寬度,10是該鍵的高度。

3) 根據顯示屏解析度修改相關的宏定義
#defineTPD_RES_X 480 // (320)
#defineTPD_RES_Y 800 //(480)</span>

把常用的實體按鍵(導航按鍵)映射到觸屏區域的快捷方式,不強制要求一定要有物理按鍵來支持用戶操作,這對開發全觸摸屏的產品非常有利。

⑸ 關於android phone驅動

Android phone 驅動問題的解決辦法:
1.重新下載一個Android phone 驅動,重裝一次;

2.更新驅動程序;

3.重啟一次手機;
Android phone驅動是android系統的進程,代表的是電話程序。如果出現android.phone異常停止,表示打電話的程序掛掉了。

熱點內容
mysql解壓縮版安裝 發布:2025-02-06 17:26:33 瀏覽:177
phpgd圖片 發布:2025-02-06 17:24:34 瀏覽:204
php代碼整理 發布:2025-02-06 17:24:31 瀏覽:475
java可執行文件 發布:2025-02-06 17:18:59 瀏覽:247
衛士相當於現在什麼配置 發布:2025-02-06 17:05:04 瀏覽:409
項目編譯慢 發布:2025-02-06 16:53:48 瀏覽:382
python處理excel文件 發布:2025-02-06 16:36:09 瀏覽:443
演算法相對定位 發布:2025-02-06 16:32:42 瀏覽:728
java程序的編譯和執行 發布:2025-02-06 16:21:45 瀏覽:420
什麼是淘寶帳號和密碼 發布:2025-02-06 16:21:36 瀏覽:498