成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解MTK平臺驅動調試指南GPIO設置篇

移動開發
MTK平臺驅動調試指南是本文要介紹的內容,主要是來了解并學習MTK應用平臺上驅動調試的相關內容,具體內容來看本文。

MTK平臺驅動調試指南是本文要介紹的內容,主要是來了解并學習MTK應用平臺上驅動調試的相關內容,不多說,具體內容的實現來看本文詳解。

GPIO設置篇

一、GPIO有關的函數

1、GPIO_ModeSetup:

函數原型:voidGPIO_ModeSetup(kal_uint16pin,kal_uint16conf_dada)

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

參數:

pin:GPIO的pin腳號,對應于原理圖上MTK62XX主CPU芯片的上的GPIO標號

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

2、GPO_InitIO

函數原型:voidGPIO_InitIO(chardirection,charport)

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

參數:

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

port:GPIO的pin腳

3、GPIO_ReadIO

函數原型:charGPIO_ReadIO(charport)

功能:從GPIO讀取數據

參數:

port:GPIO的pin腳

4、GPIO_WriteIO

函數原型:voidGPIO_WriteIO(kal_chardata,kal_charport)

功能:往GPIO寫數據

參數:

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

port:GPIO的pin腳

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

二、GPIO模式設置

GPIO口在系統上電的時候,有的是默認高電平,有的是默認低電平,這是MCU內部決定的,軟件無法更改,但是在系統開機過程中,會對GPIO進行初始化,MCU中有幾個GPIO模式初始化寄存器,通過這個寄存器給GPIO設置初始模式。

例如:以下這個寄存器就是用來設置0-7號GPIO的模工作模式的。

這個初始化過程在Gpio_Drv.C中的函數GPIO_init()中,項目開始的時候,先要檢查這個部分的模式設置是否正確。

三、各個功能模塊的GPIO設置

1、LCD背光,馬達

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

首先,檢查數組

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

將沒有使用的GPIO,用GPIO_INVALID給屏蔽掉。

然后,修改函數custom_cfg_gpio_set_level,在對應的GPIO類型上將控制函數添加進去即可。比如:

  1. switch(gpio_dev_type)  
  2. {  
  3. caseGPIO_DEV_LED_MAINLCD:  
  4. if(gpio_dev_level==LED_LIGHT_LEVEL0)//LEVEL0-LEVEL5是背光由若到強的控制,LEVEL0表示關閉背光  
  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、藍牙

在文件bt_hw_define.h中參照原理圖進行對應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中參照原理圖進行對應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中參照原理圖進行對應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 

四、總結

GPIO的設置相對來講比較簡單,只要仔細參對原理圖,基本上就可以將GPIO配置好。當然有些時候GPIO配置好了也達不到效果,就需要和硬件工程師一起來進行檢測分析,測量對應電路的工作電壓或電流,來判斷工作是否正常。總之在前期的調試方面,多跟硬件工程師溝通、討論、分析,會很快解決問題。

中斷調試篇

中斷調試一般來說包括以下幾個方面,一一做簡單介紹:

1、中斷號匹配

這個部分在文件eint_def.c中進行設置,參照原理圖設置即可。

2、中斷觸發方式的設置

在文件eint_def.c中,首先要對中斷的觸發響應時間進行設置,是在數組變量custom_eint_sw_debounce_time_delay中。一般情況下這個部分是不用動的,但有時候中斷觸發有問題的時候,這就是一個調試點。比如對于Touchpanel的中斷,對應的響應時間一般是0,如果不是0,就需要修改。

另外,因為中斷觸發分電平觸發和邊沿觸發,電平觸發又分高電平觸發和低電平觸發,邊沿觸發又分為上升沿觸發和下降沿觸發,因此先需要跟硬件工程師了解對應的中斷觸發方式,然后在對應的中斷初始化的地方修改觸發方式。

3、中斷處理流程調試

有時候中斷設置好了,對應功能也不能正常使用,那么就需要調試中斷處理流程了,需要增加trace,一般我們會用系統帶的trace函數kal_prompt_trace,有時候調試這個函數不能正常工作,那么我們就用這個文件中的函數sys_print打印trace信息,要使用這個函數,需要在系統最開始啟動的時候,調用sys_uart_init進行初始化。這個函數庫是在6228平臺上做的,可能在其他平臺上寄存器因為不同,需要進行修改。

往往在調試的過程中,經常發現是給芯片供電方面出了問題。因為有時候MTK給過來的代碼,在他們的參考設計上是一種供電方式,但是在我們的設計上可能就是不一樣了。所以在找到芯片供電部分代碼的時候,查找對應資料,看是否調用正常。

dbg_print怎么打開?

哪個宏控制呢?

DRV_DEBUG打開后串口還是沒有信息出來

  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);  

小結:詳解MTK平臺驅動調試指南的內容介紹完了,希望通過本文的學習能對你有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-08-31 10:20:26

MTK驅動開發

2011-08-31 09:52:55

MTKMT6235驅動

2011-08-30 16:32:41

MTK開發環境

2011-08-31 10:26:38

MTK驅動開發

2011-09-06 09:14:27

MTK平臺軟件

2023-09-06 15:31:19

GPIO鴻蒙

2011-09-06 09:26:03

2011-08-30 16:22:00

MTK開發環境

2011-09-05 17:35:18

MTK啟動過程RTOS

2011-09-06 15:12:39

MTK

2021-08-25 06:33:52

Node.jsVscode調試工具

2021-11-29 07:55:45

Linux GPIO Linux 系統

2011-09-06 09:37:04

MTK平臺

2011-09-05 19:02:45

MTK系統字符串

2025-04-28 02:22:00

2011-09-06 09:48:41

MTK平臺

2011-08-30 16:02:10

MTK開發環境

2021-10-28 08:51:53

GPIO軟件框架 Linux

2011-09-01 15:24:22

SQL Server 存儲過程調試

2011-08-31 10:23:40

MTK平臺列表控件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 红色av社区| 欧美日韩手机在线观看 | 国产高清视频在线观看播放 | 国产精品18久久久 | 国产精品色婷婷久久58 | 国产91丝袜在线播放 | 国产成人综合在线 | 欧美激情va永久在线播放 | 国产精品国产三级国产a | 久久久久成人精品 | 97精品国产97久久久久久免费 | 国产精品二区三区 | 日本精品久久 | 欧美黄色性生活视频 | 日韩在线视频一区二区三区 | av大片在线观看 | 国产一区二区三区视频 | 亚洲精品二区 | 日日碰狠狠躁久久躁婷婷 | 在线国产一区二区 | 亚洲第一成年免费网站 | 日韩在线免费视频 | 精品一区电影 | 粉色午夜视频 | 精品国产一区二区在线 | 亚洲国产精品一区二区三区 | 欧美在线视频一区 | 亚洲国产精品久久久久秋霞不卡 | 成人小视频在线观看 | 久久tv在线观看 | 成人小视频在线观看 | 午夜久久久久久久久久一区二区 | 亚洲一区二区三区在线视频 | 亚洲欧美自拍偷拍视频 | 97成人精品 | 特级丰满少妇一级aaaa爱毛片 | 成人免费视频在线观看 | 精品视频国产 | 色www精品视频在线观看 | 亚洲精品欧美精品 | 毛片在线免费 |