K3 Driver

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

HISILICON Confidential
Page 17
更换Camera驱动
• Camera涉及的硬件有两部分: – 图像捕捉单元(ICU):属于芯片模块 – Camera模组:外置模块,不同厂商可能使用不同的模组 Camera驱动在结构上分为三部分: – MDD驱动部分:微软提供的Camera驱动公共控制部分。用户无需修 改 – ICU驱动:封装ICU模块的功能。用户无需修改 – Camera模组驱动:封装模组的功能。用户需针对不同Camera模组 进行修改
Page 2
WM架构
Microsoft OEM Applications Embedded Shell Windows CE Shell Services Remote Connectivity ISV
WIN32 APIs COREDLL, WINSOCK, OLE, COMMCTRL, COMMDLG, WININET, TAPI Kernel Library OAL Bootloader Device Manager Device drivers File Manager File drivers

HISILICON Confidential
Page 15
IPL中的LCM驱动更换
• IPL中的LCM驱动包含3个文件: – Ipl_disp.c:初始化LCM和LDI的源文件 – Ipl_disp_xxx.h:头文件,定义LCM的初始化序列、所有与屏相关的 时序和序列。 修改内容 – 针对特定屏的配置手册,修改Ipl_disp_xxx.h 中的 powerOnDatax 数 组 – 针对特定屏的要求,修改函数void InitLCM(void),完成屏的复位和 初始化

HISILICON Confidential
Page 16
更改系统映象的LCM驱动
• 系统映象中的LCM驱动包含2个文件: – Lcm_ctrl.cpp:实现了LCM控制部分的基类CLCMCtrl。一般情况下 该文件不需要修改 – Lcm_xxx.cpp:定义和实现了针对特定LCM的CLCMCtrl的子类 CXXXLCM。更换LCM时,需要修改该文件 修改内容 – 修改函数LCMQueryInfo():返回LCM的基本信息,包括width、 height和bpp – lcmInit:初始化LCM – lcmPowerOff:将LCM置于省电模式 – clcdcInit:片内LCM Controller的配置操作,以及与LCM相关的时序 – LCM_New:创建CLCMCtrl的一个子类
HISILICON Confidential
Page 20
Page 14
更换LCD驱动
• LCD驱动程序涉及的硬件:芯片LDI、LCM屏 – LCM控制:通过SPI接口配置LCM;通过GPIO控制LCM的复位 – LDI控制:通过直接写寄存器控制,其主要功能是刷新屏幕 更换LCM驱动程序的工作包括2部分: – 更换IPL的LCM驱动:该驱动完成屏的初始化,显示LOGO – 更换系统映象的LCM驱动

Drivers
Network drivers
OEM Hardware
HISILICON Confidential
Page 3
K3 开机流程
HISILICON Confidential
Page 4
K3引导流程
• 系统上电类型
长按键;
短按键(上电后不开机); USB插入(进入关机充电流程);

HISILICON Confidential
Page 18
更换Camera驱动
MDD WM Camera MDD
CCameraControl PDD CHisiICU PDD 硬件 ICU 继承自 模组 PDD I2C/GPIO Camera模组
HISILICON Confidential
Page 19
中断初始化; 系统Tick初始化; RTC初始化;
• •
File System OEM需要适配部分。
FMD驱动;
Device OEM需要适配
电池驱动,音频驱动,SPI流接口驱 动,串口驱动等;
• •
GWES OEM需要适配
主要包括触摸屏,键盘,显示驱动;
开机动画
HISILICON Confidential
sensor.c
编写sources文件 编写Makefile文件 编写Sensor.def 添加驱动到编译工程中 添加驱动到系统映像中; 在启动中加载驱动
sources
makefile
Sensor.def
dir
sensor.bib
sensor.def
HISILICON Confidential
Page 9
hisiliconconfidentialpage11更换flash步骤其他相关问题hisiliconconfidentialpage12更换flash需要修改的相关模块映象区fmd模块主要实现mobile系统运行所需的fmd接口driver目录下fmdcppnandcppboot阶段fmd模块主要ebootipl运行所需的fmd接口common目录下fmdcppnandcpp生产加载模块主要实现生产加载对flash的操作接口dnldr目录下fmdcnandchisiliconconfidentialpage13更换flash需要注意的其他相关问题不同flash可能需要使用不同的地址计算方式和位宽设置请参考nand控制器相关说明进行选择需要注意不同种类flash的初始坏块标志的不同hisiliconconfidentialpage14更换flash需要实现的基本函数flashid读取函数flashuuid读取函数flashlock函数hisiliconconfidentialpage15更换lcd驱动更换系统映象的lcm驱动hisiliconconfidentialpage16ipl中的lcm驱动更换ipldispxxxh

HISILICON Confidential
Page 13
更换FLASH需要实现的基本函数 需要实现的基本函数 更换
• • • • • •
FLASH ID读取函数 页面读取函数 页面写入函数 块擦除函数 FLASH UUID读取函数 UUID FLASH LOCK函数
HISILICON Confidential
Page 7
驱动开发流程
编 写 代 码 c或 者 cpp
编 写 sources文 件
编 写 makefile文 件
编 写 def文 件
编译驱动
将驱动添加到编译 工程中
将驱动添加到映像 中
HISILICON Confidential
Page 8
增加新驱动如光传感器步骤
• • • • • • • • 创建sensor驱动目录。 编写源代码。
更换Camera驱动
• 更新Camera驱动步骤 – 参考发布包中HiSamsungS5K4BAFX目录下Camera模组驱动的参考 代码 – 参照模组提供的手册,实现CCameraControl子类。 – 根据模组特性,修改注册表,配置白平衡、亮度、ZOOM、拍照分 辨率、摄像分辨率的取值范围。 – ICU内置了JPEG编码功能。如需使用ICU内置功能,则在 CCameraControl::GetVideoFormat()方法中,当PinId等于STILL时, 请按照示例代码,返回类型MEDIASUBTYPE_IJPG
HISILICON Confidential
Page 12
更换FLASH需要注意的其他相关问题 需要注意的其他相关问题 更换
• • BOOT所需的FMD模块中不能使用中断方式 不同FLASH可能需要使用不同的地址计算方式和位宽设置,请参考NAND 控制器相关说明进行选择 需要注意不同种类FLASH的初始坏块标志的不同

EBOOT功能。
CPU初始化; DDR初始化; Flash初始化; 加载IPL; 下载通道;

IPL功能
初始化硬件(PMU,LDO,IO等); 开机类型判断; LOGO显示; 启动类型判断; 加载引导系统内核; 关机充电功能;
HISILICON Confidential
Page 5
WM启动流程
• 内核OEM需要适配部分
更换DDR步骤
• • 确定DDR大小
目前版本支持128MB和64MB
修改hisik3.bat文件
配置set BSP_DDR_SIZE =64或者set
BSP_DDR_SIZE =128
• 根据DDR器件手册配置DDRC
根据DDRC手册和DDR器件手册修改ddrconfig.inc文件
用于WM系统。 修改DdrInit.S(用于生产加载)。
Page 6
K3关机流程
• 系统关机条件
长按键关机; 电池电压低关机;

关机进程功能
关闭正在运行的应用程序; 启动关机动画; 关闭Modem; 使系统进入Suspend流程

Suspend流程
主要完成系统低功耗处理; 保存相关信息,使系统安全下电

芯片下电
HISILICON Confidential
The Right silicon for your next BIG idea
K3 驱动移植介绍
目录
• • • • • • • WM架构介绍 K3手机开关机流程 增加新驱动如光传感器步骤 更换DDR步骤 更换Flash步骤 更换LCD驱动步骤 更换Camera驱动步骤
HISILICON Confidential
HISILICON Confidential
Page 10
更换Flash步骤
• • • 更换FLASH需要修改的相关模块 需要实现的基本函数 其他相关问题
HISILICON Confidential
Page 11
更换FLASH需要修改的相关模块 需要修改的相关模块 更换
• 映象区FMD模块 主要实现Mobile系统运行所需的FMD接口(DRIVER目录下 fmd.cpp,nand.cpp) • BOOT阶段FMD模块 主要EBOOT/IPL运行所需的FMD接口(COMMON目录下 fmd.cpp,nand.cpp) • 生产加载模块 FLASH (DNLDR fmd.c,nand.c) 主要实现生产加载对FLASH的操作接口(DNLDR目录下fmd.c,nand.c)
相关文档
最新文档