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设计。
  • 相关阅读:
    核心动画-关键帧动画易混淆属性记录
    CALayer的隐式动画
    const位置上的不同代表哪些不同的意义
    又是一年国庆假期最后一天
    你做微商赚到钱了吗?
    为什么你不看好家教O2O
    【算法】基数排序
    【算法】快速排序/数组第K小的元素
    【算法】归并排序
    【算法】插入排序/冒泡排序/选择排序
  • 原文地址:https://www.cnblogs.com/sierllen/p/2498837.html
Copyright © 2011-2022 走看看