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设计。
  • 相关阅读:
    npm install遇到的问题
    已经安装了node和npm,输入node -v 未找到命令
    虚拟机VMware搭建代码环境
    使用VMware出现的各种问题
    bind、delegate、on的区别
    软件设计原则
    Qt 模型/视图/委托
    UML类图与类间六种关系表示
    C++内存分配与释放
    SQLite 自定义函数,聚合,排序规则
  • 原文地址:https://www.cnblogs.com/sierllen/p/2498837.html
Copyright © 2011-2022 走看看