MTK平台调试

【sccb.h】 #define SCCB_SERIAL_CLK_PIN 8 #define SCCB_SERIAL_DATA_PIN 9
4. TouchPanel 在文件Touch_panel_spi.h中参照原理图进行对应GPIO的修改
#define SPI_DIN_PIN 1 //17 /*1GPO*/ #define SPI_CLK_PIN 8 //20 /*8GPO*/ #define SPI_DOUT_PIN 38 //22 /*18GPI*/ #define SPI_CS_PIN 9 //23 /*9GPO*/ #define SPI_BUSY_PIN 5 //21 /*5GPI*/
#define BT_GPIO_POWER 4//12 //GPIO_12: Power #define BT_GPIO_DATASELECT 0//;3 //GPIO_3: DataSelect
3. Camera 在文件Camera_hw.c和sccb.h中参照原理图进行对应GPIO的修改。
【Camera_hw.c】 #define MODULE_POWER_PIN 6 // GPIO NO. #define MODULE_RESET_PIN 12 // GPIO NO. #define MODULE_CMPDN_PIN 13 // GPIO NO.
port:GPIO的pin脚 3.GPIO_ReadIO 函数原型:char GPIO_ReadIO(char port) 功能:从GPIO读取数据
参数: port:GPIO的pin脚 4.GPIO_WriteIO 函数原型:void GPIO_WriteIO(kal_char data, kal_char port) 功能:往GPIO写数据
四、总结 GPIO的设置相对来讲比较简单,只要仔细参对原理图,基本上 就可以将GPIO配置好。当然有些时候GPIO配置好了也达不到效果,就 需要和硬件工程师一起来进行检测分析,测量对应电路的工作电压或电 流,来判断工作是否正常。总之在前期的调试方面,多跟硬件工程师沟
通、讨论、分析,会很快解决问题。 Ø 中断调试篇
GPIO_WriteIO(GPIO_OFF, custom_cfg_outward_gpio_port(GPIO_LABEL_LCD_BACKLIGHT) );
else GPIO_WriteIO(GPIO_ON, custom_cfg_outward_gpio_port(GPIO_LABEL_LCD_BACKLIGHT) ); PWM2_level(gpio_dev_level);
break; 2. 蓝牙 在文件bt_hw_define.h中参照原理图进行对应GPIO的修改。 #define BT_GPIO_RESET 52//39 //GPIO_39 : PMIC reset #define BT_GPIO_DSC 36//;4 //GPIO_4 : to disconnect RFComm link
参数: data: 1表示给高电平,0表示给低电平
port:GPIO的pin脚 备注:这些函数在Gpio.C中可以找到。
二、GPIO模式设置 GPIO口在系统上电的时候,有的是默认高电平,有的是默认低 电平,这是MCU内部决定的,软件无法更改,但是在系统开机过程 中,会对GPIO进行初始化,MCU中有几个GPIO模式初始化寄存器,
0,就需要修改。 另外,因为中断触发分电平触发和边沿触发,电平触发又分高电平 触发和低电平触发,边沿触发又分为上升沿触发和下降沿触发,因此先
需要跟硬件工程师了解对应的中断触发方式,然后在对应的中断初始化 的地方修改触发方式。 3. 中断处理流程调试
有时候中断设置好了,对应功能也不能正常使用,那么就需要调试 中断处理流程了,需要增加trace,一般我们会用系统带的trace函数 kal_prompt_trace,有时候调试这个函数不能正常工作,那么我们就用 这个文件中的函数sys_print打印trace信息,要使用这个函数,需要在 系统最开始启动的时候,调用sys_uart_init进行初始化。这个函数库是 在6228平台上做的,可能在其他平台上寄存器因为不同,需要进行修
通过这个寄存器给GPIO设置初始模式。 例如:以下这个寄存器就是用来设置0-7号GPIO的模工作模式
的。 这个初始化过程在Gpio_源自rv.C中的函数GPIO_init()中,项目开始
的时候,先要检查这个部分的模式设置是否正确。 三、各个功能模块的GPIO设置 1. LCD背光,马达
有的LCD背光是靠GPIO进行控制的,有的则靠PMIC进行控制。但 不管那个方式进行控制,都只需修改Custom_equipment.c中的相关部
改。 往往在调试的过程中,经常发现是给芯片供电方面出了问题。因为 有时候MTK给过来的代码,在他们的参考设计上是一种供电方式,但是 在我们的设计上可能就是不一样了。所以在找到芯片供电部分代码的时
候,查找对应资料,看是否调用正常。
的GPIO标号 conf_dada:值有0~3。其中0是表示作为GPIO模式,其他根据专有
功能的不同进行设置。 2.GPO_InitIO
函数原型:void GPIO_InitIO(char direction, char port) 功能:初始化GPIO的工作方向是作为输入,还是作为输出
参数: direction:工作方向,0表示输入,1表示输出
MTK平台驱动调试指南 Ø GPIO设置篇
一、GPIO有关的函数 1.GPIO_ModeSetup: 函数原型:void GPIO_ModeSetup(kal_uint16 pin, kal_uint16
conf_dada) 功能:设置GPIO的工作模式是作为GPIO,还是作为专有功能接
口。
参数: pin:GPIO 的pin脚号,对应于原理图上MTK62XX 主CPU芯片的上
中断调试一般来说包括以下几个方面,一一做简单介绍: 1. 中断号匹配
这个部分在文件eint_def.c中进行设置,参照原理图设置即可。
2. 中断触发方式的设置 在文件eint_def.c中,首先要对中断的触发响应时间进行设置,是在 数组变量custom_eint_sw_debounce_time_delay中。一般情况下这个 部分是不用动的,但有时候中断触发有问题的时候,这就是一个调试 点。比如对于Touchpanel的中断,对应的响应时间一般是0,如果不是
分就可以了,具体如下:
首先,检查数组 GPIO_MAP_ENTRY gpio_map_tbl[] = { /*GPIO_LABEL_LCD_BACKLIGHT */ {GPIO_VAILD, GPIO_PORT_24, netname[GPIO_LABEL_LCD_BACKLIGHT], NULL
}, 。

。 }; 将没有使用的GPIO,用GPIO_INVALID给屏蔽掉。 然后,修改函数custom_cfg_gpio_set_level,在对应的GPIO类型上 将控制函数添加进去即可。比如: switch(gpio_dev_type)
{ case GPIO_DEV_LED_MAINLCD: if( gpio_dev_level == LED_LIGHT_LEVEL0)// LEVEL0LEVEL5是背光由若到强的控制,LEVEL0表示关闭背光
合集下载

MTK平台驱动调试介绍

MTK平台驱动调试介绍

• 步骤3:
• • • • • • • • • • • 加入背光控制代码; Mcu\custom\drv\misc_drv\custom_equipment.c kal_bool custom_cfg_gpio_set_level(kal_uint8 gpio_dev_type, kal_uint8 gpio_dev_level ) { //用SUNRISE_0255_LCM来控制代码 } GPIO模式和PWM模式;(函数默认是PWM模式) 如果是GPIO模式;则在上述函数中加入模拟代码; 如果是PWM模式;则需要根据实际情况在 Mcu\custom\drv\misc_drv\custom_hw_default.c文件中修改 PWM1_Level_Info;即频率和占空比; 另外在 mcu\plutommi\mmi\gpio\gpioSrc\GeneralDeviceInterface.c中有 详细的MMI对背光的控制代码; 另外还需熟悉lcd_if.c(mcu\drv\src)对上述接口的调用;
MTK平台驱动调试介绍
模块事业部
GPRS Solution Block Diagram
各模块调试介绍
• 主要包括: • GPIO/GPO • Backlight、LCM • Vibrator • Touch panel • Keypad • AFE • ADC • EINT • Charger • Audio • Flash • BT • Others
• 步骤1:
• 步骤2:
• • • • • • • • • • • • • Mcu\custom\drv\LCD目录下添加SUNRISE_0255_LCM模块;目录以 SUNRISE_0255_LCM为名。 可以参考其他LCM;加入和修改5个文件分别为: lcd.c lcd_hw.h lcd_sw.h lcd_sw_inc.h lcd_sw_rnd.h lcd.c:实现LCD的驱动接口 一般有init; sleep in;sleep out; block write等 lcd_hw.h: 一般不需要修改; lcd_sw.h: 配置data address;command address和output format; lcd_sw_inc.h:配置LCD WIDTH和HEIGHT; lcd_sw_rnd.h: 一般不需修改;

mtk平台软件调试方法与技巧

mtk平台软件调试方法与技巧

mtk 模拟器调试前篇文章介绍了手机调试的TRACE技巧,MTK手机调试是比较简单的,除了打TRACE,找ASSERT,分析DUMP外,剩下的就是经验了,有经验的人看到现象就能猜到问题出在什么地方,简单看一下TRACE只是为了确认自己的猜测.初涉此道的朋友往往需要时间,慢慢积累经验.要达到熟练,就需要有空的时候多读多研究代码.熟练的掌握了代码,解决问题就会熟能生巧.MTK的模拟器调试说没技巧也是对的,说有技巧也不错.因为模拟器的技术与其说是MTK经验,不如说是VC经验.由于模拟器能在没有样机的情况做大量的UI方面的开发,同时模拟器具有快捷,所见即所改等优点,因此,受到很多开发老手的青睐.熟练掌握模拟器使用技巧,对于提高工作效率,节省资源具有很积极的意义.工欲善其事,必先利其器.欲了解模拟器调试,就要先了解VC使用.VC调试过程中经常使用的快捷键如下:vc++断点的使用:按F9(设置断点),F5调试,F10单步调试,shift+F5退出调试F10单语句执行,F11单指令执行,Ctrl+F10执行至光标处;F9按行设置/取消断点, Alt+F9可按行,按数据或按消息设置断点;调试时,按Alt+3打开跟踪窗口,Alt+4打开变量窗口,Alt+5打开寄存器窗口,Alt+6打开内存窗口,Alt+7打开堆栈窗口,Alt+8打开汇编指令窗口;1.只要你有源代码,拥有一个模拟器是一件很容易的事.当然,有些情况下,这对于初入MTK的人来说,也是困难的,特别是在一些代码管理不善,公司人员众多,员工流动频繁的公司,你永远想象不出他们的代码会有多糟.不过一般情况下,我到一个新公司,都会试着去使用他们的代码编译得到模拟器,不管他们的代码多么糟,我总能快速的编出模拟器来.只要三个步骤: a.在编译模拟器前请关掉所有SP的宏,这是很重要的,很多SP都不提供在模拟器下运行的库,所以一个项目SP越多,在模拟器下,他无法识别的函数也会越多b.在编译过程中遇到错误,可以把所有与显示无关的代码全部使用#ifdef WIN32宏括起来,把所有不认识的类型使用typedef int xxx;重定义.把一些不能识别的宏定义使用WIN32括起来重定义一下c.在生成MODIS时,会遇到大量不认识的函数,如果少于50个,全部建成void xxx(){}类型的空函数.如果多于一百个,尝试查找这些函数的来源,如果是相关SP的,就再次补充关掉相关SP.当然如果你不怕麻烦,也可以把这一百个函数建成空函数.一般来说,把所有第三方功能和与MTK无关的功能关掉的话,不能识别的函数一般不会超过十个.经过这样三步,一般情况下你都能得一个差不多可以使用的模拟器.有了模拟器,你就可以进行下面的工作了.如果你仍然无法获得模拟器,建议咨询你的项目领导,如果你的领导也无法解决,说明这个软件组是一个组员变动很快,或者说缺乏条理性的部门,当然也有可能这个部门的程序员都是一些MTK的顶尖层高手,他们的程序从来不需要调试.总之这是会让人疯狂的部门.2.如果你顺利到到一个模拟器,那么就可以开始调试了.首先说一下断点,VC中的断点分三大类,一类是本地断点,一类是数据断点(也称之为条件断点,有人称之为高级断点),还是一类是消息断点;这三类断点分别对应于快捷键"ALT+F9"打开的对话框中三个选项卡.由于消息断点是用于跟踪WIN的消息,所以在MTK中用不着.在模拟器中一般我们只使用本地断点与数据断点.本地断点和数据断点在BUG调试中举足轻重,熠熠生辉。

MTK平台软件开发调试工具使用说明

MTK平台软件开发调试工具使用说明

MTK平台软件开发调试工具使用说明
MTK平台软件开发调试工具
使用说明
仅提示工具的基本操作流程
2014年08月
目录
一、体验准备 (3)
二、FlashTool软件下载 (4)
三、sscom32串口调试 (6)
四、Meta设备数据编辑 (7)
五、Catcher系统日志 (8)
一、体验准备
软件发布一般包括下面三个部分:
软件下载工具如下:
使用串口或者USB下载均需提前安装驱动,本文仅针对串口进行说明,先安装PL2303_Prolific_DriverInstaller_v1417.exe
二、FlashTool软件下载
设备关机后,通过串口线连接计算机,启动FlashT ool准备下载,界面如下:
软件下载进度如下:
3、说明
软件小改动,为方便调试,一般选择下载;若软件前后版本差异大,需要格式化升级,然后重新写入IMEI串号、配置参数。

三、sscom32串口调试
四、Meta设备数据编辑
在关机状态下操作设备内的参数,先关机连接计算机:
设备与Meta连接成功后界面如下:
五、Catcher系统日志
Catcher工具一般是在设备运行异常,需要分析软件bug时使用,该工具与前面串口调试工具冲突。

软件运行日志信息默认以设备UART1输出到串口,使用catcher之前,可以手动使用Meta修改日志输出模式,将信息输出到Catcher,也可使用指令自动完成。

按如下步骤将日志默认的串口输出改为catcher输出:
配置完成后不能再使用串口工具,按如下方法加载dataBase启动catcher:
配置端口:
查看日志信息:。

MTK平台手机Atedemo校准调试的原理及方法

MTK平台手机Atedemo校准调试的原理及方法
• 硬件需求:
MTK-atedemo工具的基本使用
MTK-atedemo工具的基本使用
MTK-atedemo工具的基本使用
• Database文件: Database是在手机软件编译生成时候自动生成的 对应文件。在设置的此项内容的时候,一定要要 选择与此手机软件版本对应的,否则容易出问题, 比如:校准完以后的数据写不进手机等等。 Database文件就好比是地址译码器。所有手机上 的内容都会在手机内存中有个固定的物理地址, 就通过此文件把需要从手机读或者写的时候能从 正确的位置上读或者写。
校准原理
然后计算出每一等级的误差功率: Error[V]= Targer_power[V]-Measured_power[V] 计算出每一功率等级对应的offset值: PL_offset=Erro[V]/slope 把PL_offset 保存到EEP中
MTK-atedemo工具的基本使用
MTK-atedemo工具的基本使用
校准原理
• 对应的具体电路图:
校准原理
校准原理
• 26MHz AFC校准: 1、目的:使得在室温下TCXO稳定工作在 26MHz情况的ADC值和斜率slope (Hz/ADC) 由于TCXO本身就有误差,再加上老化等 原因,TCXO的输出不会在26MHz,因此需 要通过适当改变基带IC控制信号AFC的电 压(ADC值),使得TCXO能工作在 26MHz,满足ETSI规范要求
MTK-atedemo工具的基本使用
• 校准初始化文件(*.ini): 在校准的时候,需要有个初始值,然后对 此初始值进行校准,校准到需要的值上去。 此初始化文件就是在校准的时候把此文件 的内容写入到手机中去。 如果把此文件正确的写入到手机相应的内 存中去,就需要Database

MTK 平台校准原理

MTK 平台校准原理

MTK 平台校准原理一.AFC(自动频率控制)校准校准目的:校准AFC DAC 值与TCVCXO 输出频率(26MHz)之间的对应关系,使得测试接收信号的频率误差在允许范围之内。

校准步骤:1. 控制综测仪Agilent 8960 或者R&S CMU200 设定在BCCH(广播控制信道)中的某一个信道arfcn_C0_GSM(可以为1-124 中的一个,由板测软件初始设定),并设定发射功率为PDL(dBm)(由板测软件初始设定);2. 设定手机中频部分的接收增益为:-35-PDL(dB),AFC_DAC值为DAC1(由板测软件初始设定),软件发出AFC测试请求,在arfcn_C0_GSM信道上得到N_AFC个采样值;3. 等待CPU计算出接收I/Q信号的频率平均误差:△f1;4. 再设定手机中频部分的接收增益为:-35-PDL(dB),AFC_DAC值为DAC2(由板测软件初始设定),这里DAC2>DAC1,软件发出AFC测试请求,在测量信道上的到N_AFC个采样值;5. 等待CPU计算出接收I/Q信号的频率平均误差:△f2;6. 计算AFC DAC 斜率为:Slope=(△f1-△f2)/(DAC2-DAC1);由得到的Slope 值及DAC1 再计算得到初始ADC 值:INIT_AFC_DAC 为:Use Default Value=△f1/ Slope+DAC1;注:arfcn_C0_GSM、PDL、DAC1、DAC2、N_AFC均在板测配置文件meta_6218B.CFG中初始设定,如下:arfcn_C0_GSM = 70;定义用于AFC 测试的信道为70;P_DL = -60;定义综测仪发射功率为-60dBm;N_AFC = 15;定义AFC 测量此时为15 次;DAC1=4000;定义DAC1 初始值为4000;DAC1=5000;定义DAC2 初始值为5000;判断该项板测结果是否通过,即看得到测量结果值:Slope、INIT_AFC_DAC 是否在上下限值之内,该限值亦在板测配置文件meta_6218B.CFG 中设定,如下:[AFC table] //AFC DAC 参数表MAX_INIT_AFC_DAC = 7000MIN_INIT_AFC_DAC = 2000;(即定义INIT_AFC_DAC最大不超过7000,最小不小于2000)MAX_AFC_SLOPE = 4.0MIN_AFC_SLOPE =2.3;(即定义Slope 值最大不超过4.0,最小不小于2.3)下图为测量频率平均误差对DAC 值曲线,呈线性关系,直线的斜率为Slope。

MtK平台驱动调试指南

MtK平台驱动调试指南

MtK平台驱动调试指南GPIO设置篇一、GPIO有关的函数1.GPIO_ModeSetup:函数原型:void GPIO_ModeSetup(kal_uint16 pin, kal_uint16 conf_dada)功能:设置GPIO的工作模式是作为GPIO,还是作为专有功能接口。

参数:pin:GPIO 的pin脚号,对应于原理图上MTK62XX 主CPU芯片的上的GPIO标号conf_dada:值有0~3。

其中0是表示作为GPIO模式,其他根据专有功能的不同进行设置。

2.GPiO_InitIO函数原型:void GPIO_InitIO(char direction, char port)功能:初始化GPIO的工作方向是作为输入,还是作为输出参数:direction:工作方向,0表示输入,1表示输出port:GPIO的pin脚3.GPIO_ReadIO函数原型:char GPIO_ReadIO(char port)功能:从GPIO读取数据参数:port:GPIO的pin脚4.GPIO_WriteIO函数原型:void GPIO_WriteIO(kal_char data, kal_char port)功能:往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进行控制。

MTK平台射频校准文件说明


[Frequency Bank] bank = 0x1C ; GSM450 0x01 ; GSM850 0x02 ; GSM900 0x04 ; DCS1800 0x08 ; PCS1900 0x10
校准GSM900\1800\1900:0x1C=0x04+0x08+0x10 校准GSM900\1800:0x0C=0x04+0x08 (GSM频段选择)
MTK平台校准文件说明

MTK校准文件包括: 1 .cfg文件:设置仪器、设置校准项、目标值和
check限值等
2 .ini文件:给出校准参数的初始值、给出射频固定参
数值(比如ramp和温度补偿等)
.CFG文件
CFG文件内容:
0、仪器设置和某些固定参数设置 1、AFC校准设置 2、RX校准设置 3、TX校准设置 4、NSFT综测设置
[CMU200 Initialization] CMU200 GPIB Address =GPIB0::20::INSTR Time Out =5000 GSM400 input cable loss = 0.5 GSM850 input cable loss = 0.5 GSM900 input cable loss = 0.5 DCS1800 input cable loss = 0.8 PCS1900 input cable loss = 0.8 GSM400 output cable loss = 0.5 GSM850 output cable loss = 0.5 GSM900 output cable loss = 0.5 DCS1800 output cable loss = 0.8 PCS1900 output cable loss = 0.8 [SP6010 Initialization] GPIB Address = GPIB0::14::INSTR Uplink cable loss = 1 Downlink cable loss = 1 (注意不同仪器线损的正负,只有安捷伦的仪器补偿为负,其他仪器都是正)

mtk平台LCD驱动调试

TAG:一.常见LCD接口规范介绍,二.MTK LCD驱动相关的主要文件路径三.怎样在MTK平台新建一个LCD驱动四.驱动程序(rm68120.c)主要任务实现五.主要调试经验总结一.常见LCD接口规范介绍,目前主流的LCD接口主要分为三种,DBI, DPI, DSI。

其中DBI又分为parallel DBI 和serial DBI。

DPI 与DBI的主要区别,简单说来就是:DPI接口的LCD,从AP端接收的数据已经解析成RGB的,只要直接显示就行了,刷新的频率也由AP控制;DBI接口的LCD, 从AP端接收的数据还要经过自己的处理,并自己控制刷新的频率。

而DSI采用的是目前较新的MIPI接口,MIPI接口的传输速度会快很多,主要用在一些分辨率较高的LCD上,目前在我们的平台上还未使用过,不做过多的介绍parallel DBI(B型DBI)的命令和数据都在数据总线D[17:0]上传输。

CSX为低时数据有效。

WRX 线控制D[17:0]为写时序,RDX控制D[17:0]为读时序。

D/CX指示D[17:0]上传输的是命令还是数据。

注:mt6575使用LP A0线作为D/CX线,LPCE线作为CSX线,LWRB线作为WRX线,LRDB线作为RDX线。

serial DBI(C型DBI)的命令和数据都在SPI接口上传输。

所以传输的速度较慢,一般用在分辨率较低的LCD上,在feature phone上用的较多,在smart phone上基本上已经淘汰DPI的命令在SPI上传输,数据(RGB data)在D[23:0]上传输。

其信号的控制方式也和DBI有很大的区别,在数据线上传输的是直接可以显示color data(RGB data),需要自己的4条控制线:DPICK_PIN(时钟) 、DPIDE_PIN(数据有效位)、DPIVSYNC(场同步)、DPIHSYNC(行同步) 。

二.与LCD驱动相关的主要文件路径\mediatek\platform\mt6575\uboot\mt6575_disp_drv.c\mediatek\platform\mt6575\uboot\mt6575_disp_drv_dpi.c\mediatek\platform\mt6575\uboot \mt6575_disp_drv_dbi.c\mediatek\platform\mt6575\uboot \mt6575_dpi_drv.c\mediatek\platform\mt6575\uboot \mt6575_dsi_drv.c\mediatek\platform\mt6575\uboot \mt6575_lcd_drv.c\mediatek\source\kernel\drivers\video\mtkfb.c\mediatek\source\kernel\drivers\video\disp_drv.c\mediatek\source\kernel\drivers\video\disp_drv_dpi.c\mediatek\source\kernel\drivers\video\disp_drv_dbi.c\mediatek\platform\mt6575\kernel\drivers\video\lcd_drv.c\mediatek\platform\mt6575\kernel\drivers\video\dpi_drv.c\mediatek\platform\mt6575\kernel\drivers\video\dsi_drv.c\mediatek\custom\common\kernel\lcm\LCM_NAME\LCM_NAME.c\mediatek\custom\common\uboot\lcm\LCM_NAME\LCM_NAME.c三.怎样新建一个LCD驱动LCD模组主要包括LCD显示屏和驱动IC,我们需要控制的是就是这个驱动IC。

MTK平台驱动调试笔记

分类:LINUX一、【一】调试串口的设置驱动的调式过程经常需要通过trace工具看log的,trace前需要修改手机串口,有以下三种方法设置串口1 通过手机进入工程模式设置2 修改代码,修改Nvram_user_config.c中的NVRAM_EF_PORT_SETTING_DEFAULT[]3.通过META工具修改在连上meta:左上角选中NVRAM Editor,在跳出的对话框里选择other LID,再选择NVRAM_EF_PORT_SETTING_LID,接下来read from nvram,对话框右边就会出现串口的设置情况,对调tst_port_ps(输入0)和ps_port(输入99)的值,二【【二】关于gpio口Gpio的初始化在文件gpio_drv.c里,可以用MTK提供的工具配置也可以用代码在程序里直接操作,二者的选择要看有没有定义宏__CUST_NEW__工具初始化时要注意配置codegen.dws,该文件里配置的只是对gpio口的初始化,并不是所有的gpio口都要设置成工作时的模式,尤其是当作时钟和蓝牙部分的gpiio口,初始化时就设置成工作模式的话会造成电机电流过大的。

代码初始化时DRV_WriteReg()、DRV_Reg对gpio口寄存器操作,分别定义gpio口的模式,和方向(0:输入;1:输出),对单个gpio口操作用到以下函数(以gpio25为例):GPIO_ModeSetup(25, 0);设置GPIO25为模式0GPIO_InitIO(1,25);初始化GPIO25方向为输出GPIO_WriteIO(0, 25 );设值GPIO25输入低电平0三、【三】键盘设置1)键盘定义Keypad_def.c如果定义CUST_NEW,工具中的键盘定义对应在改文件里的KEYPAD_MAPPING(keypad_drv.h);2)硬件键盘定义与软件mmi键盘的对应nKeyPadMap[](Keybrd.c)3)工程模式键盘测试函数EntryFMKeypadTest()修改键盘测试时界面显示的键的名称1. 做好上面的第一第二两步2. FactoryModeSrc.c开始部分定义添加的键所要显示的名称,值,分别应用到keypad_layout[](确定要显示的位置),keypad_value[]3.在EntryFMKeypadTest()函数中的数组IdleScreenDigits[]里添加要显示的键4)如果要设置一个键不管在什么界面下都起作用的话(如手电筒开关或则其他需求)就需要在键盘的事件响应函数static voidKeyEventHandler(KEYBRD_MESSAGE *eventKey)里设置,根据键值条用相应的响应函数,不过该函数及时在锁屏状态下也会执行的,需要根据需要添加条件语句四、关于LCDlcm背光驱动分为两种控制方式:1. pwm这个是通过调占空比来调节亮度的持续信号;2. PFM这个是通过脉冲的个数来控制LCM背光亮度。

我在MTK平台下调试音频ALSA

我在MTK平台下调试⾳频ALSA#硬件原理图因为是我们公司的项⽬,我就不能把完整的原理图给出来。

因为两个MIC不涉及机密,跟MTK的公版是⼀样的。

可以给出来⼤家看看。

这个MIC是⼀个数字MIC,直接输出的就是数字信号,接在MTK8167S的⼀个数字通路上。

#MTK⾳频通路框图嵌⼊式设备和平台关系很⼤,所以做什么平台⼀定要弄清楚平台设备的框图。

MTK8167s⾳频的框图如下不同平台的差异也有不同,不要硬套,需要确认清楚。

图⽚上看到很多通路没?这些通路⾥⾯的东西都是需要根据tinymix来设置的,当然也有其他办法设置。

#通过tinymix配置通路我们正常的tinymix查看配置39 BOOL 1 O00 I05 Switch Off40 BOOL 1 O00 I07 Switch Off41 BOOL 1 O01 I06 Switch Off42 BOOL 1 O01 I08 Switch Off43 BOOL 1 O02 I05 Switch Off44 BOOL 1 O02 I06 Switch Off45 BOOL 1 O03 I05 Switch On46 BOOL 1 O03 I07 Switch On47 BOOL 1 O03 I10 Switch Off48 BOOL 1 O04 I06 Switch On49 BOOL 1 O04 I08 Switch On50 BOOL 1 O04 I11 Switch Off51 BOOL 1 O05 I00 Switch On52 BOOL 1 O05 I03 Switch Off53 BOOL 1 O05 I05 Switch Off54 BOOL 1 O05 I07 Switch Off55 BOOL 1 O05 I15 Switch Off56 BOOL 1 O06 I01 Switch On57 BOOL 1 O06 I04 Switch Off58 BOOL 1 O06 I06 Switch Off59 BOOL 1 O06 I08 Switch Off60 BOOL 1 O06 I16 Switch Off61 BOOL 1 O09 I00 Switch Off62 BOOL 1 O09 I03 Switch On63 BOOL 1 O10 I01 Switch Off64 BOOL 1 O10 I04 Switch On65 BOOL 1 O11 I02 Switch On66 BOOL 1 O11 I05 Switch Off67 BOOL 1 O13 I15 Switch Off68 BOOL 1 O14 I16 Switch Off69 ENUM 1 AIN Mux INT ADC70 ENUM 1 DAIBT Mux MRG71 BOOL 1 I2S O03_O04 Switch Off72 BOOL 1 INT ADDA O03_O04 Switch On73 BOOL 1 MRG BT O02 Switch On74 BOOL 1 PCM0 O02 Switch Off75 ENUM 1 Left PGA Mux OPEN76 ENUM 1 Right PGA Mux OPEN77 ENUM 1 AIF TX Mux Digital MIC78 ENUM 1 HPOUT Mux OPEN79 ENUM 1 LINEOUT Mux OPEN80 BOOL 1 DMIC Data Gen Switch Off81 BOOL 1 AMIC Data Gen Switch Off82 BOOL 1 SDM Tone Gen Switch Offaiv8167sm3_bsp:/ #⾥⾯已经有很多开关了,我们要做的时候通过tinymix把in 和 out对接起来。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档