修改充电显示
This commit is contained in:
parent
ee2760c7a5
commit
5c1f5d9971
1
Makefile
1
Makefile
@ -381,6 +381,7 @@ c_SRC_FILES := \
|
||||
apps/kaotings/kt_led7.c \
|
||||
apps/kaotings/kt_fan_ac.c \
|
||||
apps/kaotings/kt_light_led.c \
|
||||
apps/kaotings/kt_battery.c \
|
||||
apps/soundbox/app_main.c \
|
||||
apps/soundbox/board/br23/board_ac6083a/board_ac6083a.c \
|
||||
apps/soundbox/board/br23/board_ac6083a/key_table/adkey_table.c \
|
||||
|
||||
@ -5,10 +5,15 @@
|
||||
#include "kt_fan_ac.h"
|
||||
#include "kt_led7.h"
|
||||
#include "kt_light_led.h"
|
||||
#include "kt_battery.h"
|
||||
|
||||
#define KT_VBUS_DEBOUNCE_CNT 3
|
||||
#define KT_VBUS_POLL_MS 200
|
||||
|
||||
/* 在 cpu/br23/setup.c 里早期已经调用过一次,这里在所有 PWM/IO 映射完成后再调一次,
|
||||
* 避免 IO_PORT_DP 被 MCPWM output_channel 复用抢占后导致打印异常 */
|
||||
extern void debug_uart_init(const struct uart_platform_data *data);
|
||||
|
||||
void kt_boot_init(void)
|
||||
{
|
||||
printf("kt_boot_init\n");
|
||||
@ -18,6 +23,13 @@ void kt_boot_init(void)
|
||||
gpio_set_direction(KT_CFG_PA_MUTE_PIN, 0);
|
||||
PA_MUTE();
|
||||
|
||||
// 初始化GPIO Vbat Detect
|
||||
gpio_set_pull_down(KT_CFG_VBAT_DET_PIN, 0);
|
||||
gpio_set_pull_up(KT_CFG_VBAT_DET_PIN, 0);
|
||||
gpio_set_direction(KT_CFG_VBAT_DET_PIN, 1);
|
||||
gpio_set_die(KT_CFG_VBAT_DET_PIN, 0);
|
||||
adc_add_sample_ch(AD_CH_PA12);
|
||||
|
||||
// 初始化GPIO USB Plug Detect
|
||||
gpio_set_pull_down(KT_CFG_USB_PLUG_DET_PIN, 0);
|
||||
gpio_set_pull_up(KT_CFG_USB_PLUG_DET_PIN, 0);
|
||||
@ -63,6 +75,7 @@ static void vbus_detect(void *priv)
|
||||
vbus_high_cnt++;
|
||||
if (vbus_high_cnt >= KT_VBUS_DEBOUNCE_CNT) {
|
||||
vbus_inserted = 1;
|
||||
kt_set_charging(1);
|
||||
kt_led7_usb_charge_set(1);
|
||||
}
|
||||
}
|
||||
@ -72,6 +85,7 @@ static void vbus_detect(void *priv)
|
||||
vbus_low_cnt++;
|
||||
if (vbus_low_cnt >= KT_VBUS_DEBOUNCE_CNT) {
|
||||
vbus_inserted = 0;
|
||||
kt_set_charging(0);
|
||||
kt_led7_usb_charge_set(0);
|
||||
}
|
||||
} else {
|
||||
@ -86,6 +100,16 @@ void start_chk_det_start(void)
|
||||
sys_timer_del(vbus_timer);
|
||||
vbus_timer = 0;
|
||||
}
|
||||
/* 启动周期检测前先做一次"零去抖"判断,避免开机时若 USB 已插入,
|
||||
* 要等 200ms × KT_VBUS_DEBOUNCE_CNT 才能识别到充电状态,
|
||||
* 这段空窗会让 kt_battery 误以为在放电、又用充电中虚高电压初始化 % */
|
||||
if (gpio_read(KT_CFG_USB_PLUG_DET_PIN)) {
|
||||
vbus_inserted = 1;
|
||||
vbus_high_cnt = KT_VBUS_DEBOUNCE_CNT;
|
||||
vbus_low_cnt = 0;
|
||||
kt_set_charging(1);
|
||||
kt_led7_usb_charge_set(1);
|
||||
}
|
||||
vbus_timer = sys_timer_add(NULL, vbus_detect, KT_VBUS_POLL_MS);
|
||||
}
|
||||
|
||||
@ -95,7 +119,16 @@ void kt_init(void)
|
||||
kt_light_led_init();
|
||||
kt_fan_ac_init();
|
||||
kt_led7_init();
|
||||
/* kt_battery_init 必须在 start_chk_det_start 之前:
|
||||
* 充电插入时 vbus_detect 会立即调 kt_set_charging(1),
|
||||
* 这里先把电池模块准备好,种子电压填好,免得首次回调时缓冲为空 */
|
||||
kt_battery_init();
|
||||
start_chk_det_start();
|
||||
|
||||
/* 所有 PWM/IO 映射完成后,重新初始化调试串口,
|
||||
* 防止 TCFG_UART0_TX_PORT(IO_PORT_DP) 被 MCPWM 复用导致打印异常 */
|
||||
debug_uart_init(NULL);
|
||||
printf("kt_init: debug uart re-init done\n");
|
||||
}
|
||||
|
||||
u8 kt_key_event_filter_after(int key_event, int key_value)
|
||||
|
||||
225
apps/kaotings/kt_battery.c
Normal file
225
apps/kaotings/kt_battery.c
Normal file
@ -0,0 +1,225 @@
|
||||
/*
|
||||
* kt_battery.c — 自采集电池电量
|
||||
*
|
||||
* SDK 的 get_vbat_percent() 在本项目实测不准,改用 KT_CFG_VBAT_DET_PIN(PA12)
|
||||
* 经 100K/100K 分压采集 → ADC → 平均 → 线性映射 4.2V/3.2V → 滞回输出百分比。
|
||||
*
|
||||
* 锂电池物理特性带来的算法约束:
|
||||
* 1) 充电中,充电 IC 在 CV 阶段会把电池端电压强制维持在 4.2V,无论电池真实 SOC 多少
|
||||
* 电压计都会读到 ~4.2V,因此充电时**电压完全无法用于估算 SOC**;
|
||||
* 2) 充电刚结束的瞬间,电池存在"极化电压"(电极内离子不平衡导致端电压比 OCV 高
|
||||
* 0.1~0.3V),需要几秒~几十秒通过自身内阻消退到真实 OCV;
|
||||
* 3) 正常放电时,负载突变(如 PA 工作)瞬时拉低端电压并不代表 SOC 真的下降,
|
||||
* 松开负载后电压会回升,因此需要平均 + 单向滞回避免百分比抖动。
|
||||
*
|
||||
* 对应的算法处理:
|
||||
* 1) 充电中(vbat_charging=1):锁住电压不参与 SOC 计算,改用"时间法"模拟爬升
|
||||
* (每 KT_BAT_CHARGE_BUMP_SEC 秒 +1%,封顶 100%),给用户充电进度反馈;
|
||||
* 2) 拔下充电器瞬间:启动 KT_BAT_RECOVERY_MS 的极化消退期,期间继续冻结 %,
|
||||
* 让端电压自然回落到 OCV;
|
||||
* 3) 消退期结束:用此刻电压一次性吸附 %,清空缓冲重新种子化,进入正常滑窗采样;
|
||||
* 4) 正常放电期:16 点滑动平均 + 单向"只许降"滞回 + 1% 门槛,防抖。
|
||||
*
|
||||
* 串口仍然每次打印瞬时电压,便于观察电压回落情况。
|
||||
*/
|
||||
|
||||
#include "kt_battery.h"
|
||||
#include "asm/adc_api.h"
|
||||
#include "system/timer.h"
|
||||
|
||||
/* 采样周期 ms;周期 × 缓冲长度 = 平滑窗口 */
|
||||
#define KT_BAT_SAMPLE_MS 200u
|
||||
/* 滑动平均缓冲长度,值越大越稳越慢 */
|
||||
#define KT_BAT_FILTER_N 16u
|
||||
/* 滞回门槛(百分点),新值与旧值差值需 ≥ 该门槛才采纳 */
|
||||
#define KT_BAT_HYSTERESIS 1u
|
||||
/* 拔下充电器后的极化消退期(ms):锂电池端电压从充电"极化高电压"回落到真实 OCV
|
||||
* 所需时间,典型几秒~几十秒。实测拔出 8s 左右从 4217 → 3924,用 12s 留余量。 */
|
||||
#define KT_BAT_RECOVERY_MS 12000u
|
||||
#define KT_BAT_RECOVERY_TICKS ((u8)(KT_BAT_RECOVERY_MS / KT_BAT_SAMPLE_MS))
|
||||
/* 充电模拟爬升:分两段,贴合锂电池 CC/CV 真实充电速率。
|
||||
* CC 阶段(电池端电压 < 4.2V,SOC 大致 < 80%):充电 IC 维持设定电流,充得快;
|
||||
* CV 阶段(端电压 = 4.2V,SOC 大致 80~100%):电流随 SOC 上升而下降,充得慢。
|
||||
*
|
||||
* 本项目 4000mAh / IP5306 默认 0.8A:
|
||||
* CC: (40 mAh/1%) / 800 mA × 3600 ≈ 180 秒/1% → 0~80% 约 4 小时
|
||||
* CV: 平均电流跌到 ~0.4A,(40 mAh/1%) / 400 mA × 3600 ≈ 360 秒/1% → 80~100% 约 2 小时
|
||||
* 全程约 6 小时充满
|
||||
*
|
||||
* 切换阈值取 80%(锂电池典型 CC→CV 切换点)。换电池/换电流时改这三个宏。 */
|
||||
#define KT_BAT_CC_BUMP_SEC 180u
|
||||
#define KT_BAT_CV_BUMP_SEC 360u
|
||||
#define KT_BAT_CC_CV_THRESHOLD 80u
|
||||
#define KT_BAT_CC_BUMP_TICKS ((u16)(KT_BAT_CC_BUMP_SEC * 1000u / KT_BAT_SAMPLE_MS))
|
||||
#define KT_BAT_CV_BUMP_TICKS ((u16)(KT_BAT_CV_BUMP_SEC * 1000u / KT_BAT_SAMPLE_MS))
|
||||
|
||||
static u16 vbat_buf[KT_BAT_FILTER_N];
|
||||
static u8 vbat_buf_idx;
|
||||
static u8 vbat_buf_filled;
|
||||
static u16 vbat_avg_mv;
|
||||
static u8 vbat_percent_cached = 100u;
|
||||
static u8 vbat_charging;
|
||||
static u8 vbat_recovery_ticks; /* > 0 表示处于"极化消退期",期间不更新 % */
|
||||
static u16 vbat_charge_bump_cnt; /* 充电中累计的 200ms tick 数,达到阈值就 +1% */
|
||||
static u16 vbat_timer_id;
|
||||
|
||||
static u16 kt_battery_read_raw_mv(void)
|
||||
{
|
||||
/* SDK adc_get_voltage 返回引脚电压 (mV),× 分压系数 = 电池电压 (mV) */
|
||||
u32 pin_mv = adc_get_voltage(AD_CH_PA12);
|
||||
u32 bat_mv = pin_mv * KT_BAT_DIVIDER_NUM;
|
||||
if (bat_mv > 0xFFFFu) {
|
||||
bat_mv = 0xFFFFu;
|
||||
}
|
||||
return (u16)bat_mv;
|
||||
}
|
||||
|
||||
static u8 kt_battery_mv_to_percent(u16 mv)
|
||||
{
|
||||
if (mv >= KT_BAT_FULL_MV) {
|
||||
return 100u;
|
||||
}
|
||||
if (mv <= KT_BAT_EMPTY_MV) {
|
||||
return 0u;
|
||||
}
|
||||
return (u8)(((u32)(mv - KT_BAT_EMPTY_MV) * 100u)
|
||||
/ (KT_BAT_FULL_MV - KT_BAT_EMPTY_MV));
|
||||
}
|
||||
|
||||
/* 用即时电压重新种子化整个滑窗缓冲,后续采样从这个值开始平滑 */
|
||||
static void kt_battery_reseed(u16 mv)
|
||||
{
|
||||
for (u8 i = 0; i < KT_BAT_FILTER_N; i++) {
|
||||
vbat_buf[i] = mv;
|
||||
}
|
||||
vbat_buf_idx = 0;
|
||||
vbat_buf_filled = 1;
|
||||
vbat_avg_mv = mv;
|
||||
}
|
||||
|
||||
static void kt_battery_sample_cb(void *priv)
|
||||
{
|
||||
(void)priv;
|
||||
|
||||
u16 raw = kt_battery_read_raw_mv();
|
||||
|
||||
/* 1) 充电中:充电 IC CV 阶段把端电压维持在 4.2V,与真实 SOC 无关。
|
||||
* 电压不参与计算,改用"时间法"模拟爬升给用户充电进度反馈。
|
||||
* CC/CV 两段不同速率,贴合锂电池真实充电曲线。 */
|
||||
if (vbat_charging) {
|
||||
vbat_avg_mv = raw;
|
||||
if (vbat_percent_cached < 100u) {
|
||||
u16 bump_ticks = (vbat_percent_cached < KT_BAT_CC_CV_THRESHOLD)
|
||||
? KT_BAT_CC_BUMP_TICKS /* CC 阶段:快 */
|
||||
: KT_BAT_CV_BUMP_TICKS; /* CV 阶段:慢 */
|
||||
vbat_charge_bump_cnt++;
|
||||
if (vbat_charge_bump_cnt >= bump_ticks) {
|
||||
vbat_charge_bump_cnt = 0;
|
||||
vbat_percent_cached++;
|
||||
printf("kt_battery: charge bump -> %d%% (%s)\n",
|
||||
vbat_percent_cached,
|
||||
(vbat_percent_cached <= KT_BAT_CC_CV_THRESHOLD) ? "CC" : "CV");
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/* 2) 刚拔下充电器:端电压还在"极化电压"阶段(高于真实 OCV),继续锁住 %,
|
||||
* 等极化消退期结束再用此刻电压一次性吸附到真实 OCV 对应的 SOC */
|
||||
if (vbat_recovery_ticks > 0) {
|
||||
vbat_recovery_ticks--;
|
||||
vbat_avg_mv = raw;
|
||||
if (vbat_recovery_ticks == 0) {
|
||||
kt_battery_reseed(raw);
|
||||
vbat_percent_cached = kt_battery_mv_to_percent(raw);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/* 3) 正常放电:滑窗平均 + 单向下降滞回 */
|
||||
vbat_buf[vbat_buf_idx++] = raw;
|
||||
if (vbat_buf_idx >= KT_BAT_FILTER_N) {
|
||||
vbat_buf_idx = 0;
|
||||
vbat_buf_filled = 1;
|
||||
}
|
||||
|
||||
u8 n = vbat_buf_filled ? (u8)KT_BAT_FILTER_N : vbat_buf_idx;
|
||||
if (n == 0) {
|
||||
return;
|
||||
}
|
||||
u32 sum = 0;
|
||||
for (u8 i = 0; i < n; i++) {
|
||||
sum += vbat_buf[i];
|
||||
}
|
||||
vbat_avg_mv = (u16)(sum / n);
|
||||
|
||||
u8 new_p = kt_battery_mv_to_percent(vbat_avg_mv);
|
||||
|
||||
/* 放电只允许 % 下降:负载突变(如 PA 工作)瞬时电压回弹不会让 % 反弹,
|
||||
* 边界 0% 允许直接吸附,避免卡在 1% */
|
||||
if (new_p == 0u) {
|
||||
vbat_percent_cached = 0u;
|
||||
} else if ((u16)new_p + KT_BAT_HYSTERESIS <= vbat_percent_cached) {
|
||||
vbat_percent_cached = new_p;
|
||||
}
|
||||
}
|
||||
|
||||
u8 kt_get_vbat_percent(void)
|
||||
{
|
||||
return vbat_percent_cached;
|
||||
}
|
||||
|
||||
u16 kt_get_vbat_mv(void)
|
||||
{
|
||||
return vbat_avg_mv;
|
||||
}
|
||||
|
||||
void kt_set_charging(u8 charging)
|
||||
{
|
||||
u8 was_charging = vbat_charging;
|
||||
vbat_charging = charging ? 1u : 0u;
|
||||
|
||||
/* 充电 → 不充电 的下降沿:启动极化消退期 */
|
||||
if (was_charging && !vbat_charging) {
|
||||
vbat_recovery_ticks = KT_BAT_RECOVERY_TICKS;
|
||||
/* 消退期内不参与平均,先把缓冲清掉,消退期结束时重新种子化 */
|
||||
vbat_buf_idx = 0;
|
||||
vbat_buf_filled = 0;
|
||||
printf("kt_battery: charging->discharging, polarization recovery %dms\n",
|
||||
KT_BAT_RECOVERY_MS);
|
||||
} else if (!was_charging && vbat_charging) {
|
||||
/* 从插上充电那一刻重新计时,而非累计上一次充电的剩余 tick */
|
||||
vbat_charge_bump_cnt = 0;
|
||||
printf("kt_battery: discharging->charging, freeze at %d%%, bump CC=%ds CV=%ds\n",
|
||||
vbat_percent_cached, KT_BAT_CC_BUMP_SEC, KT_BAT_CV_BUMP_SEC);
|
||||
}
|
||||
}
|
||||
|
||||
void kt_battery_init(void)
|
||||
{
|
||||
/* 用一次即时采样把环形缓冲全部种子化,避免开机瞬间百分比从 100% 跳到真实值 */
|
||||
u16 seed = kt_battery_read_raw_mv();
|
||||
kt_battery_reseed(seed);
|
||||
vbat_recovery_ticks = 0;
|
||||
vbat_charge_bump_cnt = 0;
|
||||
|
||||
/* 开机就用电压算一个起点 %。开机即在充电时,这个值会偏高(电池端电压被充电 IC
|
||||
* 拉到 CC/CV 阶段的水平),但作为"起点"展示无伤大雅——后续充电模拟爬升会让它
|
||||
* 单调向 100% 增长,用户看到的就是"开机当前 N%、慢慢涨到 100%"的自然反馈。
|
||||
* 拔掉充电器后,极化消退期结束会用真实 OCV 重新校准 %。 */
|
||||
vbat_percent_cached = kt_battery_mv_to_percent(seed);
|
||||
|
||||
if (gpio_read(KT_CFG_USB_PLUG_DET_PIN)) {
|
||||
vbat_charging = 1u;
|
||||
printf("kt_battery_init: USB inserted at boot, charging from %d%%, seed_mv=%d\n",
|
||||
vbat_percent_cached, vbat_avg_mv);
|
||||
} else {
|
||||
vbat_charging = 0u;
|
||||
printf("kt_battery_init: seed_mv=%d init_percent=%d\n",
|
||||
vbat_avg_mv, vbat_percent_cached);
|
||||
}
|
||||
|
||||
if (!vbat_timer_id) {
|
||||
vbat_timer_id = sys_timer_add(NULL, kt_battery_sample_cb, KT_BAT_SAMPLE_MS);
|
||||
}
|
||||
}
|
||||
29
apps/kaotings/kt_battery.h
Normal file
29
apps/kaotings/kt_battery.h
Normal file
@ -0,0 +1,29 @@
|
||||
#ifndef __KT_BATTERY_H__
|
||||
#define __KT_BATTERY_H__
|
||||
|
||||
#include "kt.h"
|
||||
|
||||
/*
|
||||
* KT_CFG_VBAT_DET_PIN(IO_PORTA_12 / AD_CH_PA12) 经 100K/100K 分压采集电池电压。
|
||||
* 采样路径: ADC(mV) × KT_BAT_DIVIDER_NUM = 电池真实电压(mV)
|
||||
*
|
||||
* 锂电池满电 4.2V,SDK 的 get_vbat_percent() 测试不准,这里独立做百分比换算 + 滤波 + 滞回。
|
||||
*/
|
||||
|
||||
#define KT_BAT_FULL_MV 4200u /* 100% 对应电压 (mV) */
|
||||
#define KT_BAT_EMPTY_MV 3200u /* 0% 对应电压 (mV);留 0.2V 余量避免低电关机抖 */
|
||||
#define KT_BAT_DIVIDER_NUM 2u /* 100K/100K 分压,实际电压 = ADC 读数 × 2 */
|
||||
|
||||
void kt_battery_init(void);
|
||||
|
||||
/* 当前电池百分比(0~100),已经过滑动平均 + 单向滞回平滑,可以直接喂 UI */
|
||||
u8 kt_get_vbat_percent(void);
|
||||
|
||||
/* 当前平滑后的电池电压(mV),调试/上报用 */
|
||||
u16 kt_get_vbat_mv(void);
|
||||
|
||||
/* 由 USB 插拔检测路径调用(kt.c::vbus_detect),用来切换滞回方向: */
|
||||
/* charging=1 → 只允许百分比上升; charging=0 → 只允许百分比下降 */
|
||||
void kt_set_charging(u8 charging);
|
||||
|
||||
#endif
|
||||
@ -14,6 +14,7 @@
|
||||
#include "system/includes.h"
|
||||
#include "system/timer.h"
|
||||
#include "app_power_manage.h"
|
||||
#include "kt_battery.h"
|
||||
|
||||
struct ui_led7_env
|
||||
{
|
||||
@ -285,11 +286,25 @@ void kt_led7_scan(void *param)
|
||||
}
|
||||
}
|
||||
|
||||
/* 把百/十/个三位段码填入 b[],规则:高位前导 0 不显示。
|
||||
* d0=0 → 百位灭
|
||||
* d0=0 && d1=0 → 百位 + 十位都灭(只显示个位)
|
||||
* 个位无论是否 0 都显示 */
|
||||
static void kt_led7_fill_three_digits(u8 d0, u8 d1, u8 d2)
|
||||
{
|
||||
if (d0 == 0) {
|
||||
b[0] = 0;
|
||||
b[1] = (d1 == 0) ? 0 : LED_NUMBER[d1 % 10];
|
||||
} else {
|
||||
b[0] = LED_NUMBER[d0 % 10];
|
||||
b[1] = LED_NUMBER[d1 % 10];
|
||||
}
|
||||
b[2] = LED_NUMBER[d2 % 10];
|
||||
}
|
||||
|
||||
static void kt_led7_set_digits(u8 d0, u8 d1, u8 d2, u8 dp1, u8 dp2)
|
||||
{
|
||||
b[0] = LED_NUMBER[d0 % 10];
|
||||
b[1] = LED_NUMBER[d1 % 10];
|
||||
b[2] = LED_NUMBER[d2 % 10];
|
||||
kt_led7_fill_three_digits(d0, d1, d2);
|
||||
__this->disp_buf.dp1 = dp1;
|
||||
__this->disp_buf.dp2 = dp2;
|
||||
blink_blank = 0;
|
||||
@ -307,14 +322,21 @@ static void kt_led7_apply_blank(void)
|
||||
|
||||
static void kt_led7_apply_battery_percent(void)
|
||||
{
|
||||
u8 p = get_vbat_percent();
|
||||
//printf("kt_led7_apply_battery_percent: %d\n", p);
|
||||
/* SDK 自带 get_vbat_percent() 在本项目实测不准,改用 kt_battery 模块
|
||||
* (PA12 + 100K/100K 分压采集 + 滑窗平均 + 滞回) */
|
||||
u8 p = kt_get_vbat_percent();
|
||||
//printf("kt_led7_apply_battery_percent: %d (mv=%d)\n", p, kt_get_vbat_mv());
|
||||
if (p > 100)
|
||||
{
|
||||
p = 100;
|
||||
}
|
||||
led7_bat_p_cached = p;
|
||||
kt_led7_set_digits((u8)(p / 100), (u8)((p / 10) % 10), (u8)(p % 10), 0, 0);
|
||||
/* 直接写段码,不调用 kt_led7_set_digits():后者会把 blink_blank 强制清 0,
|
||||
* 而充电闪烁的 blink_blank 由 kt_led7_usb_blink_cb 独占翻转,绝不能在这里被清掉,
|
||||
* 否则每次 cb 退出后 blink_blank 恒为 1,b[2] 在扫描里永远被静默(个位一直熄灭、不闪) */
|
||||
kt_led7_fill_three_digits((u8)(p / 100), (u8)((p / 10) % 10), (u8)(p % 10));
|
||||
__this->disp_buf.dp1 = 0;
|
||||
__this->disp_buf.dp2 = 0;
|
||||
}
|
||||
|
||||
static u8 kt_led7_seg_from_char(u8 c)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
cpu/br23/tools/download/standard/update_HTFAN03_7003.ufw
Normal file
BIN
cpu/br23/tools/download/standard/update_HTFAN03_7003.ufw
Normal file
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -1682,18 +1682,22 @@ objs/apps/kaotings/kt.c.o
|
||||
-r=objs/apps/kaotings/kt.c.o,gpio_set_direction,l
|
||||
-r=objs/apps/kaotings/kt.c.o,gpio_set_output_value,l
|
||||
-r=objs/apps/kaotings/kt.c.o,gpio_set_die,l
|
||||
-r=objs/apps/kaotings/kt.c.o,adc_add_sample_ch,l
|
||||
-r=objs/apps/kaotings/kt.c.o,start_chk_det_start,pl
|
||||
-r=objs/apps/kaotings/kt.c.o,sys_timer_del,l
|
||||
-r=objs/apps/kaotings/kt.c.o,gpio_read,l
|
||||
-r=objs/apps/kaotings/kt.c.o,kt_set_charging,l
|
||||
-r=objs/apps/kaotings/kt.c.o,kt_led7_usb_charge_set,l
|
||||
-r=objs/apps/kaotings/kt.c.o,sys_timer_add,l
|
||||
-r=objs/apps/kaotings/kt.c.o,kt_init,pl
|
||||
-r=objs/apps/kaotings/kt.c.o,kt_light_led_init,l
|
||||
-r=objs/apps/kaotings/kt.c.o,kt_fan_ac_init,l
|
||||
-r=objs/apps/kaotings/kt.c.o,kt_led7_init,l
|
||||
-r=objs/apps/kaotings/kt.c.o,kt_battery_init,l
|
||||
-r=objs/apps/kaotings/kt.c.o,debug_uart_init,l
|
||||
-r=objs/apps/kaotings/kt.c.o,kt_key_event_filter_after,pl
|
||||
-r=objs/apps/kaotings/kt.c.o,kt_fan_level_change,l
|
||||
-r=objs/apps/kaotings/kt.c.o,kt_light_led_level_change,l
|
||||
-r=objs/apps/kaotings/kt.c.o,gpio_read,l
|
||||
-r=objs/apps/kaotings/kt.c.o,kt_led7_usb_charge_set,l
|
||||
-r=objs/apps/kaotings/kt.c.o,puts,l
|
||||
objs/apps/kaotings/kt_led7.c.o
|
||||
-r=objs/apps/kaotings/kt_led7.c.o,hw_init,pl
|
||||
@ -1715,7 +1719,7 @@ objs/apps/kaotings/kt_led7.c.o
|
||||
-r=objs/apps/kaotings/kt_led7.c.o,gpio_set_pull_down,l
|
||||
-r=objs/apps/kaotings/kt_led7.c.o,gpio_set_pull_up,l
|
||||
-r=objs/apps/kaotings/kt_led7.c.o,gpio_set_direction,l
|
||||
-r=objs/apps/kaotings/kt_led7.c.o,get_vbat_percent,l
|
||||
-r=objs/apps/kaotings/kt_led7.c.o,kt_get_vbat_percent,l
|
||||
-r=objs/apps/kaotings/kt_led7.c.o,puts,l
|
||||
-r=objs/apps/kaotings/kt_led7.c.o,led7_pin,pl
|
||||
objs/apps/kaotings/kt_fan_ac.c.o
|
||||
@ -1745,6 +1749,15 @@ objs/apps/kaotings/kt_light_led.c.o
|
||||
-r=objs/apps/kaotings/kt_light_led.c.o,gpio_set_pull_up,l
|
||||
-r=objs/apps/kaotings/kt_light_led.c.o,gpio_set_direction,l
|
||||
-r=objs/apps/kaotings/kt_light_led.c.o,light_led_level_tone,pl
|
||||
objs/apps/kaotings/kt_battery.c.o
|
||||
-r=objs/apps/kaotings/kt_battery.c.o,kt_get_vbat_percent,pl
|
||||
-r=objs/apps/kaotings/kt_battery.c.o,kt_get_vbat_mv,pl
|
||||
-r=objs/apps/kaotings/kt_battery.c.o,kt_set_charging,pl
|
||||
-r=objs/apps/kaotings/kt_battery.c.o,printf,l
|
||||
-r=objs/apps/kaotings/kt_battery.c.o,kt_battery_init,pl
|
||||
-r=objs/apps/kaotings/kt_battery.c.o,gpio_read,l
|
||||
-r=objs/apps/kaotings/kt_battery.c.o,sys_timer_add,l
|
||||
-r=objs/apps/kaotings/kt_battery.c.o,adc_get_voltage,l
|
||||
objs/apps/soundbox/app_main.c.o
|
||||
-r=objs/apps/soundbox/app_main.c.o,app_entry_idle,pl
|
||||
-r=objs/apps/soundbox/app_main.c.o,app_task_switch_to,l
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user