偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

詳解MTK平臺(tái)驅(qū)動(dòng)調(diào)試指南GPIO設(shè)置篇

移動(dòng)開發(fā)
MTK平臺(tái)驅(qū)動(dòng)調(diào)試指南是本文要介紹的內(nèi)容,主要是來(lái)了解并學(xué)習(xí)MTK應(yīng)用平臺(tái)上驅(qū)動(dòng)調(diào)試的相關(guān)內(nèi)容,具體內(nèi)容來(lái)看本文。

MTK平臺(tái)驅(qū)動(dòng)調(diào)試指南是本文要介紹的內(nèi)容,主要是來(lái)了解并學(xué)習(xí)MTK應(yīng)用平臺(tái)上驅(qū)動(dòng)調(diào)試的相關(guān)內(nèi)容,不多說(shuō),具體內(nèi)容的實(shí)現(xiàn)來(lái)看本文詳解。

GPIO設(shè)置篇

一、GPIO有關(guān)的函數(shù)

1、GPIO_ModeSetup:

函數(shù)原型:voidGPIO_ModeSetup(kal_uint16pin,kal_uint16conf_dada)

功能:設(shè)置GPIO的工作模式是作為GPIO,還是作為專有功能接口。

參數(shù):

pin:GPIO的pin腳號(hào),對(duì)應(yīng)于原理圖上MTK62XX主CPU芯片的上的GPIO標(biāo)號(hào)

conf_dada:值有0~3。其中0是表示作為GPIO模式,其他根據(jù)專有功能的不同進(jìn)行設(shè)置。

2、GPO_InitIO

函數(shù)原型:voidGPIO_InitIO(chardirection,charport)

功能:初始化GPIO的工作方向是作為輸入,還是作為輸出

參數(shù):

direction:工作方向,0表示輸入,1表示輸出

port:GPIO的pin腳

3、GPIO_ReadIO

函數(shù)原型:charGPIO_ReadIO(charport)

功能:從GPIO讀取數(shù)據(jù)

參數(shù):

port:GPIO的pin腳

4、GPIO_WriteIO

函數(shù)原型:voidGPIO_WriteIO(kal_chardata,kal_charport)

功能:往GPIO寫數(shù)據(jù)

參數(shù):

data:1表示給高電平,0表示給低電平

port:GPIO的pin腳

備注:這些函數(shù)在Gpio.C中可以找到。

二、GPIO模式設(shè)置

GPIO口在系統(tǒng)上電的時(shí)候,有的是默認(rèn)高電平,有的是默認(rèn)低電平,這是MCU內(nèi)部決定的,軟件無(wú)法更改,但是在系統(tǒng)開機(jī)過(guò)程中,會(huì)對(duì)GPIO進(jìn)行初始化,MCU中有幾個(gè)GPIO模式初始化寄存器,通過(guò)這個(gè)寄存器給GPIO設(shè)置初始模式。

例如:以下這個(gè)寄存器就是用來(lái)設(shè)置0-7號(hào)GPIO的模工作模式的。

這個(gè)初始化過(guò)程在Gpio_Drv.C中的函數(shù)GPIO_init()中,項(xiàng)目開始的時(shí)候,先要檢查這個(gè)部分的模式設(shè)置是否正確。

三、各個(gè)功能模塊的GPIO設(shè)置

1、LCD背光,馬達(dá)

有的LCD背光是靠GPIO進(jìn)行控制的,有的則靠PMIC進(jìn)行控制。但不管那個(gè)方式進(jìn)行控制,都只需修改Custom_equipment.c中的相關(guān)部分就可以了,具體如下:

首先,檢查數(shù)組

  1. GPIO_MAP_ENTRYgpio_map_tbl[]={  
  2. {GPIO_VAILD,GPIO_PORT_24,netname[GPIO_LABEL_LCD_BACKLIGHT],NULL},  
  3. }; 

將沒(méi)有使用的GPIO,用GPIO_INVALID給屏蔽掉。

然后,修改函數(shù)custom_cfg_gpio_set_level,在對(duì)應(yīng)的GPIO類型上將控制函數(shù)添加進(jìn)去即可。比如:

  1. switch(gpio_dev_type)  
  2. {  
  3. caseGPIO_DEV_LED_MAINLCD:  
  4. if(gpio_dev_level==LED_LIGHT_LEVEL0)//LEVEL0-LEVEL5是背光由若到強(qiáng)的控制,LEVEL0表示關(guān)閉背光  
  5. GPIO_WriteIO(GPIO_OFF,custom_cfg_outward_gpio_port(GPIO_LABEL_LCD_BACKLIGHT));  
  6. else  
  7. GPIO_WriteIO(GPIO_ON,custom_cfg_outward_gpio_port(GPIO_LABEL_LCD_BACKLIGHT));  
  8. PWM2_level(gpio_dev_level);  
  9. break; 

2、藍(lán)牙

在文件bt_hw_define.h中參照原理圖進(jìn)行對(duì)應(yīng)GPIO的修改。

  1. #defineBT_GPIO_RESET52//39//GPIO_39:PMICreset  
  2. #defineBT_GPIO_DSC36//;4//GPIO_4:todisconnectRFCommlink  
  3. #defineBT_GPIO_POWER4//12//GPIO_12:Power  
  4. #defineBT_GPIO_DATASELECT0//;3//GPIO_3:DataSelect 

3、Camera

在文件Camera_hw.c和sccb.h中參照原理圖進(jìn)行對(duì)應(yīng)GPIO的修改。

【Camera_hw.c】

  1. #defineMODULE_POWER_PIN6//GPIONO.  
  2. #defineMODULE_RESET_PIN12//GPIONO.  
  3. #defineMODULE_CMPDN_PIN13//GPIONO. 

【sccb.h】

  1. #defineSCCB_SERIAL_CLK_PIN8  
  2. #defineSCCB_SERIAL_DATA_PIN9 

4、TouchPanel

在文件Touch_panel_spi.h中參照原理圖進(jìn)行對(duì)應(yīng)GPIO的修改

  1. #defineSPI_DIN_PIN1//17  
  2. #defineSPI_CLK_PIN8//20  
  3. #defineSPI_DOUT_PIN38//22  
  4. #defineSPI_CS_PIN9//23  
  5. #defineSPI_BUSY_PIN5//21 

四、總結(jié)

GPIO的設(shè)置相對(duì)來(lái)講比較簡(jiǎn)單,只要仔細(xì)參對(duì)原理圖,基本上就可以將GPIO配置好。當(dāng)然有些時(shí)候GPIO配置好了也達(dá)不到效果,就需要和硬件工程師一起來(lái)進(jìn)行檢測(cè)分析,測(cè)量對(duì)應(yīng)電路的工作電壓或電流,來(lái)判斷工作是否正常??傊谇捌诘恼{(diào)試方面,多跟硬件工程師溝通、討論、分析,會(huì)很快解決問(wèn)題。

中斷調(diào)試篇

中斷調(diào)試一般來(lái)說(shuō)包括以下幾個(gè)方面,一一做簡(jiǎn)單介紹:

1、中斷號(hào)匹配

這個(gè)部分在文件eint_def.c中進(jìn)行設(shè)置,參照原理圖設(shè)置即可。

2、中斷觸發(fā)方式的設(shè)置

在文件eint_def.c中,首先要對(duì)中斷的觸發(fā)響應(yīng)時(shí)間進(jìn)行設(shè)置,是在數(shù)組變量custom_eint_sw_debounce_time_delay中。一般情況下這個(gè)部分是不用動(dòng)的,但有時(shí)候中斷觸發(fā)有問(wèn)題的時(shí)候,這就是一個(gè)調(diào)試點(diǎn)。比如對(duì)于Touchpanel的中斷,對(duì)應(yīng)的響應(yīng)時(shí)間一般是0,如果不是0,就需要修改。

另外,因?yàn)橹袛嘤|發(fā)分電平觸發(fā)和邊沿觸發(fā),電平觸發(fā)又分高電平觸發(fā)和低電平觸發(fā),邊沿觸發(fā)又分為上升沿觸發(fā)和下降沿觸發(fā),因此先需要跟硬件工程師了解對(duì)應(yīng)的中斷觸發(fā)方式,然后在對(duì)應(yīng)的中斷初始化的地方修改觸發(fā)方式。

3、中斷處理流程調(diào)試

有時(shí)候中斷設(shè)置好了,對(duì)應(yīng)功能也不能正常使用,那么就需要調(diào)試中斷處理流程了,需要增加trace,一般我們會(huì)用系統(tǒng)帶的trace函數(shù)kal_prompt_trace,有時(shí)候調(diào)試這個(gè)函數(shù)不能正常工作,那么我們就用這個(gè)文件中的函數(shù)sys_print打印trace信息,要使用這個(gè)函數(shù),需要在系統(tǒng)最開始啟動(dòng)的時(shí)候,調(diào)用sys_uart_init進(jìn)行初始化。這個(gè)函數(shù)庫(kù)是在6228平臺(tái)上做的,可能在其他平臺(tái)上寄存器因?yàn)椴煌枰M(jìn)行修改。

往往在調(diào)試的過(guò)程中,經(jīng)常發(fā)現(xiàn)是給芯片供電方面出了問(wèn)題。因?yàn)橛袝r(shí)候MTK給過(guò)來(lái)的代碼,在他們的參考設(shè)計(jì)上是一種供電方式,但是在我們的設(shè)計(jì)上可能就是不一樣了。所以在找到芯片供電部分代碼的時(shí)候,查找對(duì)應(yīng)資料,看是否調(diào)用正常。

dbg_print怎么打開?

哪個(gè)宏控制呢?

DRV_DEBUG打開后串口還是沒(méi)有信息出來(lái)

  1. make\drv\drv.def 

中加入DRV_DEBUG

我一般在dbgprint.c里面直接修改

  1. #if1//defDRV_DEBUG  
  2. #if1//(!defined(IC_MODULE_TEST))  
  3. {  
  4. charbuffer[50];  
  5. sprintf(buffer,"ERROR");  
  6. rmmi_write_to_uart((kal_uint8*)buffer,strlen(buffer),KAL_TRUE);  

小結(jié):詳解MTK平臺(tái)驅(qū)動(dòng)調(diào)試指南的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)能對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-08-31 10:20:26

MTK驅(qū)動(dòng)開發(fā)

2011-08-31 09:52:55

MTKMT6235驅(qū)動(dòng)

2011-08-30 16:32:41

MTK開發(fā)環(huán)境

2011-08-31 10:26:38

MTK驅(qū)動(dòng)開發(fā)

2011-09-06 09:14:27

MTK平臺(tái)軟件

2023-09-06 15:31:19

GPIO鴻蒙

2011-09-06 09:26:03

2011-08-30 16:22:00

MTK開發(fā)環(huán)境

2011-09-05 17:35:18

MTK啟動(dòng)過(guò)程RTOS

2011-09-06 15:12:39

MTK

2021-08-25 06:33:52

Node.jsVscode調(diào)試工具

2021-11-29 07:55:45

Linux GPIO Linux 系統(tǒng)

2011-09-06 09:37:04

MTK平臺(tái)

2011-09-05 19:02:45

MTK系統(tǒng)字符串

2025-04-28 02:22:00

2011-09-06 09:48:41

MTK平臺(tái)

2011-08-30 16:02:10

MTK開發(fā)環(huán)境

2021-10-28 08:51:53

GPIO軟件框架 Linux

2011-09-01 15:24:22

SQL Server 存儲(chǔ)過(guò)程調(diào)試

2011-08-31 10:23:40

MTK平臺(tái)列表控件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)