MTK camera 源代码 Kd_camera_hw.c

Kd_camera_hw.c (custom\viroyal73\kernel\camera\camera)

#include <linux/videodev2.h>
#include <linux/i2c.h>
#include <linux/platform_device.h>
#include <linux/delay.h>
#include <linux/cdev.h>
#include <linux/uaccess.h>
#include <linux/fs.h>
#include <asm/atomic.h>

#include "kd_camera_hw.h"


//#include "kd_cust_image_sensor.h"
#include "kd_imgsensor.h"
#include "kd_imgsensor_define.h"
#include "kd_camera_feature.h"


/******************************************************************************
* Debug configuration
******************************************************************************/
#define PFX "[kd_camera_hw]"
#define PK_DBG_NONE(fmt, arg...) do {} while (0)
#define PK_DBG_FUNC(fmt, arg...) printk(KERN_INFO PFX "%s: " fmt, __FUNCTION__ ,##arg)

#define DEBUG_CAMERA_HW_K
#ifdef DEBUG_CAMERA_HW_K
#define PK_DBG PK_DBG_FUNC
#define PK_ERR(fmt, arg...) printk(KERN_ERR PFX "%s: " fmt, __FUNCTION__ ,##arg)
#else
#define PK_DBG(a,...)
#define PK_ERR(a,...)
#endif

int kdCISModulePowerOn(CAMERA_DUAL_CAMERA_SENSOR_ENUM SensorIdx, char *currSensorName, BOOL On, char* mode_name)
{
u32 pinSetIdx = 0;//default main sensor

#define IDX_PS_CMRST 0
#define IDX_PS_CMPDN 4

#define IDX_PS_MODE 1
#define IDX_PS_ON 2
#define IDX_PS_OFF 3
u32 pinSet[2][8] = {
//for main sensor
{GPIO_CAMERA_CMRST_PIN,
GPIO_CAMERA_CMRST_PIN_M_GPIO, /* mode */
GPIO_OUT_ONE, /* ON state */
GPIO_OUT_ZERO, /* OFF state */
GPIO_CAMERA_CMPDN_PIN,
GPIO_CAMERA_CMPDN_PIN_M_GPIO,
/*modified for OV5642, by tyd-lg, 2011-08-05*/
#if !defined(SID130B_YUV)
GPIO_OUT_ZERO,
GPIO_OUT_ONE,
#else
GPIO_OUT_ONE,
GPIO_OUT_ZERO,
#endif
},
//for sub sensor
{GPIO_CAMERA_CMRST1_PIN,
GPIO_CAMERA_CMRST1_PIN_M_GPIO,
GPIO_OUT_ONE,
GPIO_OUT_ZERO,
GPIO_CAMERA_CMPDN1_PIN,
GPIO_CAMERA_CMPDN1_PIN_M_GPIO,
GPIO_OUT_ZERO,
GPIO_OUT_ONE,
}
};

if (DUAL_CAMERA_MAIN_SENSOR == SensorIdx){
pinSetIdx = 0;
}
else if (DUAL_CAMERA_SUB_SENSOR == SensorIdx) {
pinSetIdx = 1;
}

//power ON
if (On) {
//in case
printk("Set CAMERA_POWER_PULL_PIN for power \n");
if (mt_set_gpio_pull_enable(GPIO_CAMERA_LDO_EN_PIN, GPIO_PULL_DISABLE)) {PK_DBG("[[CAMERA SENSOR] Set CAMERA_POWER_PULL_PIN DISABLE ! \n"); }
if(mt_set_gpio_mode(GPIO_CAMERA_LDO_EN_PIN, GPIO_CAMERA_LDO_EN_PIN_M_GPIO)){PK_DBG("[[CAMERA SENSOR] set CAMERA_POWER_PULL_PIN mode failed!! \n");}
if(mt_set_gpio_dir(GPIO_CAMERA_LDO_EN_PIN,GPIO_DIR_OUT)){PK_DBG("[[CAMERA SENSOR] set CAMERA_POWER_PULL_PIN dir failed!! \n");}
if(mt_set_gpio_out(GPIO_CAMERA_LDO_EN_PIN,GPIO_OUT_ONE)){PK_DBG("[[CAMERA SENSOR] set CAMERA_POWER_PULL_PIN failed!! \n");}

if (currSensorName && (0 == strcmp(SENSOR_DRVNAME_OV3640_YUV,currSensorName)))
{
PK_DBG("[ON_OV3640YUV case 1.5V]sensorIdx:%d \n",SensorIdx);
if(TRUE != hwPowerOn(CAMERA_POWER_VCAM_D, VOL_1500,mode_name))
{
PK_DBG("[CAMERA SENSOR] Fail to enable digital power\n");
//return -EIO;
goto _kdCISModulePowerOn_exit_;
}
}
else if (currSensorName && (0 == strcmp(SENSOR_DRVNAME_OV5642_RAW, currSensorName))) {
PK_DBG("[OV5642Raw Workaround,!!!!!!!!!!!!!!!!\n");
PK_DBG("[ON_OV5642Raw case 2.8V IO_Temperal Workaround]sensorIdx:%d \n",SensorIdx);
if(TRUE != hwPowerOn(CAMERA_POWER_VCAM_D2, VOL_2800,mode_name)) {
PK_DBG("[CAMERA SENSOR] Fail to enable digital power\n");
//return -EIO;
goto _kdCISModulePowerOn_exit_;
}
}
else //general case on
{
PK_DBG("[ON_general 1.8V]sensorIdx:%d \n",SensorIdx);
if(TRUE != hwPowerOn(CAMERA_POWER_VCAM_D2, VOL_1800,mode_name))
{
PK_DBG("[CAMERA SENSOR] Fail to enable digital power\n");
//return -EIO;
goto _kdCISModulePowerOn_exit_;
}
}

if(TRUE != hwPowerOn(CAMERA_POWER_VCAM_A, VOL_2800,mode_name))
{
PK_DBG("[CAMERA SENSOR] Fail to enable analog power\n");
//return -EIO;
goto _kdCISModulePowerOn_exit_;
}

if (currSensorName && (0 == strcmp(SENSOR_DRVNAME_IMX073_MIPI_RAW,currSensorName))){
PK_DBG("[ON_general 1.3V]sensorIdx:%d \n",SensorIdx);
if(TRUE != hwPowerOn(CAMERA_POWER_VCAM_D, VOL_1300,mode_name))
{
PK_DBG("[CAMERA SENSOR] Fail to enable digital power\n");
//return -EIO;
goto _kdCISModulePowerOn_exit_;
}
}
else if (currSensorName && (0 == strcmp(SENSOR_DRVNAME_SIV121D_YUV,currSensorName))){
PK_DBG("[ON_general 1.8V]sensorIdx:%d \n",SensorIdx);
if(TRUE != hwPowerOn(CAMERA_POWER_VCAM_D, VOL_1800,mode_name))
{
PK_DBG("[CAMERA SENSOR] Fail to enable digital power\n");
//return -EIO;
goto _kdCISModulePowerOn_exit_;
}
}
else if (currSensorName && (0 == strcmp(SENSOR_DRVNAME_SID130B_YUV,currSensorName))){
PK_DBG("[ON_general 1.8V]sensorIdx:%d \n",SensorIdx);
if(TRUE != hwPowerOn(CAMERA_POWER_VCAM_D, VOL_1800,mode_name))
{
PK_DBG("[CAMERA SENSOR] Fail to enable digital power\n");
//return -EIO;
goto _kdCISModulePowerOn_exit_;
}
}
else if (currSensorName && (0 == strcmp(SENSOR_DRVNAME_GC0329_YUV,currSensorName))){
PK_DBG("[ON_general 1.8V]sensorIdx:%d \n",SensorIdx);
if(TRUE != hwPowerOn(CAMERA_POWER_VCAM_D, VOL_1800,mode_name))
{
PK_DBG("[CAMERA SENSOR] Fail to enable digital power\n");
//return -EIO;
goto _kdCISModulePowerOn_exit_;
}
}
else
{ // general case on
PK_DBG("[ON_general 1.5V]sensorIdx:%d \n",SensorIdx);
if(TRUE != hwPowerOn(CAMERA_POWER_VCAM_D, VOL_1500,mode_name))
{
PK_DBG("[CAMERA SENSOR] Fail to enable digital power\n");
//return -EIO;
goto _kdCISModulePowerOn_exit_;
}
}

if(TRUE != hwPowerOn(CAMERA_POWER_VCAM_A2, VOL_2800,mode_name))
{
PK_DBG("[CAMERA SENSOR] Fail to enable analog power\n");
//return -EIO;
goto _kdCISModulePowerOn_exit_;
}

// wait power to be stable
mdelay(5);
//disable inactive sensor
if (GPIO_CAMERA_INVALID != pinSet[1-pinSetIdx][IDX_PS_CMRST]) {
printk("A6-camera: disable inactive sensor, pinSetIdx = %d\n", pinSetIdx);
printk("A6-camera: operate CMRST = GPIO_%d, PS_OFF = %d\n", pinSet[1-pinSetIdx][IDX_PS_CMRST], pinSet[1-pinSetIdx][IDX_PS_CMRST+IDX_PS_OFF]);
printk("A6-camera: operate CMPDN = GPIO_%d, PS_OFF = %d\n", pinSet[1-pinSetIdx][IDX_PS_CMPDN], pinSet[1-pinSetIdx][IDX_PS_CMPDN+IDX_PS_OFF]);

if(mt_set_gpio_mode(pinSet[1-pinSetIdx][IDX_PS_CMRST],pinSet[1-pinSetIdx][IDX_PS_CMRST+IDX_PS_MODE])){PK_DBG("[CAMERA SENSOR] set gpio mode failed!! \n");}
if(mt_set_gpio_mode(pinSet[1-pinSetIdx][IDX_PS_CMPDN],pinSet[1-pinSetIdx][IDX_PS_CMPDN+IDX_PS_MODE])){PK_DBG("[CAMERA LENS] set gpio mode failed!! \n");}
if(mt_set_gpio_dir(pinSet[1-pinSetIdx][IDX_PS_CMRST],GPIO_DIR_OUT)){PK_DBG("[CAMERA SENSOR] set gpio dir failed!! \n");}
if(mt_set_gpio_dir(pinSet[1-pinSetIdx][IDX_PS_CMPDN],GPIO_DIR_OUT)){PK_DBG("[CAMERA LENS] set gpio dir failed!! \n");}
if(mt_set_gpio_out(pinSet[1-pinSetIdx][IDX_PS_CMRST],pinSet[1-pinSetIdx][IDX_PS_CMRST+IDX_PS_OFF])){PK_DBG("[CAMERA SENSOR] set gpio failed!! \n");} //low == reset sensor
if(mt_set_gpio_out(pinSet[1-pinSetIdx][IDX_PS_CMPDN],pinSet[1-pinSetIdx][IDX_PS_CMPDN+IDX_PS_OFF])){PK_DBG("[CAMERA LENS] set gpio failed!! \n");} //high == power down lens module
}

//enable active sensor
//RST pin
if (GPIO_CAMERA_INVALID != pinSet[pinSetIdx][IDX_PS_CMRST]) {
//PDN pin
printk("A6-camera: enable inactive sensor, pinSetIdx = %d\n", pinSetIdx);
printk("A6-camera: operate CMRST = GPIO_%d, PS_OFF = %d\n", pinSet[pinSetIdx][IDX_PS_CMRST], pinSet[pinSetIdx][IDX_PS_CMRST+IDX_PS_OFF]);
printk("A6-camera: operate CMPDN = GPIO_%d, PS_OFF = %d\n", pinSet[pinSetIdx][IDX_PS_CMPDN], pinSet[pinSetIdx][IDX_PS_CMPDN+IDX_PS_OFF]);
if(mt_set_gpio_mode(pinSet[pinSetIdx][IDX_PS_CMPDN],pinSet[pinSetIdx][IDX_PS_CMPDN+IDX_PS_MODE])){PK_DBG("[CAMERA LENS] set gpio mode failed!! \n");}
if(mt_set_gpio_dir(pinSet[pinSetIdx][IDX_PS_CMPDN],GPIO_DIR_OUT)){PK_DBG("[CAMERA LENS] set gpio dir failed!! \n");}
if(mt_set_gpio_out(pinSet[pinSetIdx][IDX_PS_CMPDN],pinSet[pinSetIdx][IDX_PS_CMPDN+IDX_PS_ON])){PK_DBG("[CAMERA LENS] set gpio failed!! \n");}

if(mt_set_gpio_mode(pinSet[pinSetIdx][IDX_PS_CMRST],pinSet[pinSetIdx][IDX_PS_CMRST+IDX_PS_MODE])){PK_DBG("[CAMERA SENSOR] set gpio mode failed!! \n");}
if(mt_set_gpio_dir(pinSet[pinSetIdx][IDX_PS_CMRST],GPIO_DIR_OUT)){PK_DBG("[CAMERA SENSOR] set gpio dir failed!! \n");}
if(mt_set_gpio_out(pinSet[pinSetIdx][IDX_PS_CMRST],pinSet[pinSetIdx][IDX_PS_CMRST+IDX_PS_OFF])){PK_DBG("[CAMERA SENSOR] set gpio failed!! \n");}
mdelay(5);
if(mt_set_gpio_out(pinSet[pinSetIdx][IDX_PS_CMRST],pinSet[pinSetIdx][IDX_PS_CMRST+IDX_PS_ON])){PK_DBG("[CAMERA SENSOR] set gpio failed!! \n");}
mdelay(5);

}
#ifdef GPIO_CAMERA_AF_EN_PIN
//@ for main to enable AF
if (pinSetIdx == 0) {
if(mt_set_gpio_mode(GPIO_CAMERA_AF_EN_PIN, GPIO_MODE_00)){PK_DBG("[CAMERA SENSOR AF ] set gpio mode failed!! \n");}
if(mt_set_gpio_dir(GPIO_CAMERA_AF_EN_PIN,GPIO_DIR_OUT)){PK_DBG("[CAMERA SENSOR] set gpio dir failed!! \n");}
if(mt_set_gpio_out(GPIO_CAMERA_AF_EN_PIN,GPIO_OUT_ONE)){PK_DBG("[CAMERA SENSOR] set gpio failed!! \n");} //low == reset sensor
}
#endif
}
else {//power OFF
printk("Set GPIO 94 for power OFF\n");
if (mt_set_gpio_pull_enable(GPIO_CAMERA_LDO_EN_PIN, GPIO_PULL_DISABLE)) {PK_DBG("[CAMERA SENSOR] Set GPIO94 PULL DISABLE ! \n"); }
if(mt_set_gpio_mode(GPIO_CAMERA_LDO_EN_PIN, GPIO_CAMERA_LDO_EN_PIN_M_GPIO)){PK_DBG("[CAMERA SENSOR] set gpio mode failed!! \n");}
if(mt_set_gpio_dir(GPIO_CAMERA_LDO_EN_PIN,GPIO_DIR_OUT)){PK_DBG("[CAMERA SENSOR] set gpio dir failed!! \n");}
if(mt_set_gpio_out(GPIO_CAMERA_LDO_EN_PIN,GPIO_OUT_ZERO)){PK_DBG("[CAMERA SENSOR] set gpio failed!! \n");}

//PK_DBG("[OFF]sensorIdx:%d \n",SensorIdx);
if (GPIO_CAMERA_INVALID != pinSet[pinSetIdx][IDX_PS_CMRST]) {
printk("A6-camera: off sensor, pinSetIdx = %d\n", pinSetIdx);
printk("A6-camera: operate CMRST = GPIO_%d, PS_OFF = %d\n", pinSet[pinSetIdx][IDX_PS_CMRST], pinSet[pinSetIdx][IDX_PS_CMRST+IDX_PS_OFF]);
printk("A6-camera: operate CMPDN = GPIO_%d, PS_OFF = %d\n", pinSet[pinSetIdx][IDX_PS_CMPDN], pinSet[pinSetIdx][IDX_PS_CMPDN+IDX_PS_OFF]);
if(mt_set_gpio_mode(pinSet[pinSetIdx][IDX_PS_CMRST],pinSet[pinSetIdx][IDX_PS_CMRST+IDX_PS_MODE])){PK_DBG("[CAMERA SENSOR] set gpio mode failed!! \n");}
if(mt_set_gpio_mode(pinSet[pinSetIdx][IDX_PS_CMPDN],pinSet[pinSetIdx][IDX_PS_CMPDN+IDX_PS_MODE])){PK_DBG("[CAMERA LENS] set gpio mode failed!! \n");}
if(mt_set_gpio_dir(pinSet[pinSetIdx][IDX_PS_CMRST],GPIO_DIR_OUT)){PK_DBG("[CAMERA SENSOR] set gpio dir failed!! \n");}
if(mt_set_gpio_dir(pinSet[pinSetIdx][IDX_PS_CMPDN],GPIO_DIR_OUT)){PK_DBG("[CAMERA LENS] set gpio dir failed!! \n");}
if(mt_set_gpio_out(pinSet[pinSetIdx][IDX_PS_CMRST],pinSet[pinSetIdx][IDX_PS_CMRST+IDX_PS_OFF])){PK_DBG("[CAMERA SENSOR] set gpio failed!! \n");} //low == reset sensor
if(mt_set_gpio_out(pinSet[pinSetIdx][IDX_PS_CMPDN],pinSet[pinSetIdx][IDX_PS_CMPDN+IDX_PS_OFF])){PK_DBG("[CAMERA LENS] set gpio failed!! \n");} //high == power down lens module
}

#ifdef GPIO_CAMERA_AF_EN_PIN
//@ for main to disable AF
if (pinSetIdx == 0) {
if(mt_set_gpio_mode(GPIO_CAMERA_AF_EN_PIN, GPIO_MODE_00)){PK_DBG("[CAMERA SENSOR AF ] set gpio mode failed!! \n");}
if(mt_set_gpio_dir(GPIO_CAMERA_AF_EN_PIN,GPIO_DIR_OUT)){PK_DBG("[CAMERA SENSOR] set gpio dir failed!! \n");}
if(mt_set_gpio_out(GPIO_CAMERA_AF_EN_PIN,GPIO_OUT_ZERO)){PK_DBG("[CAMERA SENSOR] set gpio failed!! \n");} //low == reset sensor
}
#endif

if(TRUE != hwPowerDown(CAMERA_POWER_VCAM_A,mode_name)) {
PK_DBG("[CAMERA SENSOR] Fail to OFF analog power\n");
//return -EIO;
goto _kdCISModulePowerOn_exit_;
}
if(TRUE != hwPowerDown(CAMERA_POWER_VCAM_A2,mode_name))
{
PK_DBG("[CAMERA SENSOR] Fail to enable analog power\n");
//return -EIO;
goto _kdCISModulePowerOn_exit_;
}
if(TRUE != hwPowerDown(CAMERA_POWER_VCAM_D, mode_name)) {
PK_DBG("[CAMERA SENSOR] Fail to OFF digital power\n");
//return -EIO;
goto _kdCISModulePowerOn_exit_;
}
if(TRUE != hwPowerDown(CAMERA_POWER_VCAM_D2,mode_name))
{
PK_DBG("[CAMERA SENSOR] Fail to enable digital power\n");
//return -EIO;
goto _kdCISModulePowerOn_exit_;
}
}//

return 0;

_kdCISModulePowerOn_exit_:
return -EIO;
}

EXPORT_SYMBOL(kdCISModulePowerOn);

一、 手机 CAMERA 的物理结构: ........................................................................................ - 4 二、 CAMERA 的成像原理: ................................................................................................. - 4 三、 CAMERA 常见的数据输出格式: .................................................................................. - 5 四、 阅读 CAMERA 的规格书(以 TRULY 模组 OV5647_RAW 为例): ........................... - 6 五、 CAMERA 的硬件原理图及引脚 ..................................................................................... - 7 1、 电源部分: .................................................................................................................... - 7 2、 SENSOR I NPUT 部分: ................................................................................................... - 7 3、 SENSOR OUTPUT 部分: ............................................................................................... - 7 4、 I2C 部分: SCL,I2C 时钟信号线和 SDA ,I2C 数据信号线。 .................................. - 7 六、 MTK 平台 CAMERA 驱动架构: .................................................................................. - 8 七、 MTK 平台 CAMERA 相关代码文件(以下代码均为 MTK6575 平台): .................... - 9 1、 CAMERA SENSOR 驱动相关文件 .................................................................................... - 9 2、 SENSOR ID 和一些枚举类型的定义 ............................................................................. - 9 3、 SENSOR 供电 .................................................................................................................. - 9 4、 KERNEL SPACE 的 SENSORLIST ,IMGSENSOR 模块注册 ............................................... - 9 5、 USER SPACE 的 SENSORL IST,向用户空间提供支持的 SENSOR L IST ......................... - 10 6、 SENSOR 效果调整的接口 ............................................................................................ - 10 八、 CAMERA 模块驱动、设备与总线结构: ..................................................................... - 11 A) 驱动的注册: .................................................................................................................. - 11 B) 设备的注册: .................................................................................................................. - 11 C) 总线的匹配: .................................................................................................................. - 12 九、 CAMERA 驱动工作流程: ............................................................................................ - 13 十、 CAMERA 驱动添加、调试流程: ................................................................................. - 17 Ghong
MTK6225 6226 6223 6235 6253手机开发平台资料光盘使用手册 谁要问 当今中国最火爆的电子产业是什么:那毫无疑问是手机产业。当 前世界上所有手机的40%是在中国设计生产的,世界几乎所有大型IT企业都涉足或者准备涉足手机行业,其中包括微软(手机操作系统提供商),intel(手机中央处理器提供商),中 国推出的3G标准之一的TD-SCDMA网络在我国正准备大规模推广,中国拥有世界最大的手机市 场,这一切,都将继续有利的推动手机产业在中国的发展。 所以, 无论您是即将毕业的学生,还是刚入门的电子工程师,能进入手机行业对您以后的职业发展是十分有利的。首先就职业前途讲,手机产业就业机会相当大,而且待遇 好。手机行业是高技术行业,要求相当功底的硬件,软件,高频等技术做支持,能在手机行业摸爬滚打,能相当 的锻炼个人能力,为以后个人更深层的发展积累经验。现在手机是正成为通吃一切机器,现在的手机不仅仅是通话工具了,它可以做MP3,MP4等多媒体处理 机,它还可以是个人掌上电脑PDA,它还可以是GPS卫星导航器,还可以是液晶 电视机,这些当今最流行,先进的技术不断的集成在手机中,对手机领域的工程师要求进一步提高,无疑将进一步提高手机领域工程师们的待遇。手机行业的技术可充分应用在 其他行业领域,这进一步拓展了工程们以后的就业空间,例如手机的电路板很多是6层板,这种技术要求换在 其他任何产业比如PMP,电视等等都是行得通的,手机的软体复杂程度也比PMP,电视高过很多,手机领域的射频工程师积累的经验同样可以广泛应用到其他行 业中。 但是, 您怎么进入到怎么一个如此充满吸引力的产业里来呢?如果您是一个即将毕业的学生,或者刚入门的工程师,你从何下手呢?去培训机构培训么?不!我们现在给您 提供一个机会,让您省去昂贵的培训费用,却能直接接触到手机开发最核心领域的知识。 我们提 供占中国市场40%的手机中央处理器提供商的最流行手机开发平台的所有资料,包括原代码,电路图,各种辅助开发测试工具等一整套完整的 SDK(soft development kit)。 这个手 机开发平台的主控芯片叫MT6235(25 26 23 53系列套件).是现在最流行的多媒体手机开发平台,您现在手中的国产手机就很有可能是用它做的的哦(连上电脑USB,弹出 MT6226就是这个平台)他包含MP3,MP4,蓝牙等模块。 通过这 个光盘的资料,您可以建立一个PC端的模拟开发环境(真实硬件环境成本确实太高,不适合入门使用)学习手机的工作原理,软件结构模块,操作系统,文件系统,MMI开发等等一系列知识。其中还有各种测试 测量工具,如果你有整套的硬件环境,你完全可以DIY一个你自己的手机(欢迎黑手机制造商联系。。。。。。。)。 另外,通过这个光盘,你还能有其他收获,例如,你可以把源代码中的MMI层移植到其他的嵌入式环境中去,你也可以把它的 文件系统部分剥离出去,你可以随心所欲利用其中的绝好资源。。。 让我们带您走进高端多媒体手机开发者的行列把,你只需要花费300人民币,购买一张含有MTK平台的完整SDK的 光盘,您将成为手机产业一员,享受最新的技术,最好的职业待遇,干着最有挑战性的技术活。。。。。。。呵呵 如有任何问题可以登录www.Mrtos.com.cn咨询。 1. 怎么联 系购买本光盘: 通过以下两个联系方式,可以联系到我们购买到光盘: 联系邮箱:john2141662@163.com QQ : 676797311 2. 光盘的价格,付款及交货方式: 本光盘 有2种不同类型: 学生用光盘:区别在于学生盘不含有场 测,产线测试工具,但是同样包含了下载等工具的源代码。价格225元每套,每套2个 盘。(因为源代码非常大) 工程师 用光盘:包含所有场测,产线用工具,完整代码。价格325元每套,每套2个盘。(因为源代码非常大) 付款方式:银行电汇,快递**。具体的帐号邮件联系。 交货方式:快递,EMS(邮费请自付)。 3. 其他说 明: 本光盘内容属于绝密资料,请购买者购得后勿肆意传播,否则后果自负 4. 光盘内 容 本光盘包含MTK各手机平台所有的开发软体资料(配套的EVB板因为造价过大无法提供,购买者可在黑手机市场 购买一个MTK平台的黑手机替代),具体包括:MTK平台的参考电路设计、各器件的SPEC、生产测试工具、用户工具、各种配套工具的使用手册、PC仿真开发环境、MTK平台源代码、MT6226编译开发工具、 UI制作工具、MTK各种开发文档、RF测试等。 光盘内容列表: 本套光盘共两张,1.2G,源代码非常大 MTK 手机开发套件 www.mrtos.com.cn QQ:676797311 Email:john2141662@163.com 6225 6223 6226 6235 6253 MTK量产版系列开发套件: 硬件 特性: 1.3.0寸超大液晶显示屏TFT,支持触摸 2.130万像素摄像头 3.立体声蓝牙 4.FM 5.支持甩歌(预留接口) 6.支持手写 7.双SIM卡 8.支持永不断电功能(无电池情况下仍然可以通话) 9.支持4频GSM 10 立体声喇叭 器材清单: 1.开发用手机板 2.程序下载线一条 3.USB线一条 4.旅行充电器一个 5.锂电池一个 软件特性: 完整手机代码 Mtk Java虚拟机源码 支持mrp文件扩展安装 支持MP4,MP3等 初步提供监控解决方案 提供完整的scoket操作实例,加速应用开发 提供完整的SP的整合实例,加速应用开发 环境工具: 1.烧写程序下载工具 flashtool 2 ads1.2 ,ads1.2update,activeperl:编译工具和辅助工具 3.Trace 工具: Catcher_V3.12.07.rar 4.手机工程测试工具: META 5.UI制作工具: MCT 文档清单: 1 mtk 软件培训 (MTK_Training) 2 mtk 软件系统和调试 (SW System and Debug ) 3.mtk 软件MMI设计(MMI Design Doc) 4.mtk 软件设备驱动(Device Driver) 5.Mtk手机校准(Factory) 6.Mtk手机工具使用说明(Tool Document)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值