zoukankan      html  css  js  c++  java
  • (转载) MTK驱动开放基础知识

     
    驱动程序主要分散于两个目录
    $PROJECT\custom\drv
    $PROJECT\drv

    很明显,第一个目录是客户化项目的驱动程序,第二目录就是主要的驱动,是比较相对独立的模块。编译时,custom 是个作为一个独立的模块。
    当然,还有一些接口定义的目录,它们在
    $PROJECT\interface\hwdrv
    $PROJECT\interface\drv_def

    运用程序 $PROJECT\custom\drv\Drv_Tool\DrvGen.exe 可以对 GPIO,GPO,ENIT,ADC,KEYPAD进行定制设置. 
    有个默认文件$PROJECT\custom\drv\misc_drv\$PROJECT_NAME\codegen\codegen.dws
    可以用DrvGen直接打开它,然后进行修改,生成的*.h *.c文件与codegen.dws在同一目录下.
    驱动代码里,一个很显著的宏,就是 __CUST_NEW__ ,常常碰到
    #ifndef __CUST_NEW__
    // the default settings
    else
    // user customize
    #endif

    就是由DrvGen产生的代码段. 如果对硬件足够了解,可以从原理图 和PCB板图对照直接改代码。

    驱动离不开操作系统的支持,我们知道,MTK的 kal对 nucleus os 进行了封装,那么KAL相关的定义的头文件kal_release.h 就不能错过了,驱动直接调用系统提供的函数。

    最后,总结一下,手机启动过程如下:
    开机 -> 初始化硬件 -> 初始化软件(读取NV,保存为全局变量) -> 开机动画,搜寻网络,Sim卡等 -> Idle界面。

    附录:
    一些术语

    EMI external memory interface
    UART Universal asynchronous receiver/transmitter,异步收发器,一种串行接口
    UEM 用户设备管理
    MSDC U盘功能
    LCM LCD Module
    Pixtel 一家印度公司,无线通信相关业务已被MTK收买,强项是MMI设计。
  • 相关阅读:
    分布式系统的架构思路
    Dubbo分布式服务框架的简单理解
    Java Worker 设计模式
    进程和线程
    alibaba-Java开发手册心得-一编程规约-6并发处理
    swagger的简单了解
    alibaba-Java开发手册心得-一编程规约-5集合处理
    serialVersionUID的简单理解
    java序列化对象简单理解
    最简单的调用freetype库实现在控制台输出文字显示
  • 原文地址:https://www.cnblogs.com/sierllen/p/2498837.html
Copyright © 2011-2022 走看看