• 电池的一点东西


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

    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 *

  • 相关阅读:
    使用Emacs:生存篇
    编程之美:平面最近点对
    SOA体系结构之基础培训教程-大纲篇
    DNS:域名系统
    IIS7中 ASP.NET授权功能如何实现对静态文件的控制
    JVM内存管理学习总结(一)
    FMX中实现PostMessage的方法
    ddd
    4部门明确软件IC产业企业所得税优惠政策
    不要过分相信虚拟机,特别是网络连接方面
  • 原文地址:https://www.cnblogs.com/chjgongzuo/p/8656627.html
Copyright © 2020-2023  润新知