• 电池的一点东西


    电池曲线 : 根据放电曲线,可以判断电池工作性能是否稳定,以及电池在稳定工作时所允许的最大电流

    fuel gauge 电池电量计 具体过程: 硬件 ADC 读取 Battery 的各路信息:包括温度,电压等。 MTK 开发的电量算法分析得到的数据。

    /proc 文件系统是为了提供有关系统中进程的信息

    NTC电阻就是通过与电阻的串联跟并联并且通过电压值来得到的。计算出系统当前NTC电阻的电阻值后,然后就调用BattThermistorConverTemp函数进行查表,对比出当前系统的温度。而BattThermistorConverTemp函数是通过alps/mediatek/custom/mt6582/kernel/battery/battery/cust_battery_meter_table.h中的Batt_Temperature_Table结构体,然后根据电阻值落在哪个区间,根据线性插值的方法求出当前电池的温度。   

     然后在回到table_init函数,MTK的zcv电池参数表格会预先测得的在-100 25 50 摄氏度开路电量跟放电深度之间的关系。结合真实的温度值,系统会自己构建一张当前温度值的ZCV电池曲线表格

    bmd_ctrl_cmd_from_user

    填充所需数据结构,并通过sendmsg()/send()等函数写到套接字里去

    到 此为止,与内核通信的准备工作就完成了,下面要做的工作是,选取适当的数据结构进行填充,并作为sendmsg()的参数发送出去,并recv()收到的 消息。这个数据结构就是nlmsghdr,它只是一个信息头,后面可以接任意长的数据,这些数据实际上又是针对某一需求所采用的特定数据结构。先来看 nlmsghdr:

    struct nlmsghdr {
    _u32 nlmsg_len; /* Length of msg including header */
    _u32 nlmsg_type; /* 操作命令 */
    _u16 nlmsg_flags; /* various flags */
    _u32 nlmsg_seq; /* Sequence number */
    _u32 nlmsg_pid; /* 进程PID *

  • 相关阅读:
    js 字符中 带 函数 再传对象参数
    window server 2012 II8 假陌生 碰到的问题
    IIS 下载文件 报错“401
    easyui使用时出现这个Uncaught TypeError: Cannot read property 'combo' of undefined
    eclipse+gnuarm+使用报错
    mini2440:通过JLink烧写BootLoader到Nor Flash
    在Linux中搭建一个FTP服务器
    SPFA模板
    Bellman_ford模板
    前向星&链式前向星
  • 原文地址:https://www.cnblogs.com/chjgongzuo/p/8656627.html
Copyright © 2020-2023  润新知