Files
luckfox-pico/project/app/uvc_app_tiny/uvc_app/param/param.c
luckfox-eng29 485f09ece6 Pullrequest mis5001 clear patch 0305 (#242)
* project/app : Add uvc_app_tiny application

Signed-off-by: luckfox-eng29 <eng29@luckfox.com>

* project/cfg/BoardConfig_IPC/overlay : Add Ubuntu system support for Rockit and RKNN libraries

Signed-off-by: luckfox-eng29 <eng29@luckfox.com>

* sysdrv/source/kernel/drivers/of : Add support for dynamic device tree

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/kernel/drivers/usb/serial : Add CH343 driver support

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/kernel/drivers/staging : Disable partial logging of fbtft

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/kernel/drivers/pinctrl/pinctrl-rockchip.h : Fix pinctrl configuration failure issue

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/kernel/include/dt-bindings/soc/rockchip,boot-mode.h : Add support for the reboot U-Boot command in the BusyBox system

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/kernel/drivers/video : Add logo display support for LF40-480480-ARK and LF40-720720-ARK

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/kernel/arch/arm/boot/dts : Add device tree files for the Luckfox RV1103/RV1106 series boards

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/kernel/arch/arm/configs : Add device tree files for the Luckfox RV1103/RV1106 series boards

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/uboot/u-boot/drivers/mmc/mmc.c : Fix the issue where some Micro SD cards fail to boot

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/uboot/u-boot/common/image-fit.c : Add U-Boot support for luckfox-config

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/uboot/rkbin/bin/rv11 : Add firmware with a serial baud rate of 115200 and back up the original firmware

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/uboot/u-boot/arch/arm/dts : Add device tree files for the Luckfox RV1103/RV1106 series boards

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/uboot/u-boot/configs : Add defconfig files for the Luckfox RV1103/RV1106 series boards

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/uboot/u-boot : Add support for the reboot U-Boot command in the BusyBox system

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/kernel/drivers/media/i2c : Add MIS5001 driver support

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/source/kernel/arch/arm : Add default support for MIS5001 on Luckfox RV1106 series boards

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/tools/board : Delete irrelevant overwrite files and patch files

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/drv_ko/insmod_ko.sh : Register mis5001 driver during boot process

Signed-off-by: luckfox-eng29 <eng29@luckfox.com>

* media/isp/release_camera_engine_rkaiq_rv1106_arm-rockchip830-linux-uclibcgnueabihf/isp_iqfiles : Add mis5001 iqfile

Signed-off-by: luckfox-eng29 <eng29@luckfox.com>

* project/app/rkipc/rkipc/src/rv1106_ipc : Add rkipc application support for mis5001 sensor

Signed-off-by: eng29 <eng29@luckfox.com>

* project/cfg/BoardConfig_IPC : Enable default retrieval of mis5001 iqfile and include ROCKIT and RKNN libraries of RV1106 series board

Signed-off-by: luckfox-eng29 <eng29@luckfox.com>

* project/build.sh : Remove operations related to applying and deleting patches

Signed-off-by: eng29 <eng29@luckfox.com>

* project/build.sh : Modify build system menu description; Apply lightweight system processing only during Buildroot and BusyBox system compilation

Signed-off-by: eng29 <eng29@luckfox.com>

* sysdrv/tools/board/buildroot/luckfox_pico_w_defconfig : Add pppd and pgrep for 4G module

Signed-off-by: luckfox-eng29 <eng29@luckfox.com>

* sysdrv/tools/board/kernel/rv1106-luckfox-pico-ultra-ipc.dtsi : Add uart4m1 support for lastest luckfox-config tool

Signed-off-by: eng29 <eng29@luckfox.com>

---------

Signed-off-by: luckfox-eng29 <eng29@luckfox.com>
Signed-off-by: eng29 <eng29@luckfox.com>
2025-03-05 17:21:58 +08:00

140 lines
3.3 KiB
C

// Copyright 2021 Rockchip Electronics Co., Ltd. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "iniparser.h"
#include "uvc_log.h"
#include <pthread.h>
#ifdef LOG_TAG
#undef LOG_TAG
#endif
#define LOG_TAG "param.c"
char g_ini_path_[256];
dictionary *g_ini_d_;
static pthread_mutex_t g_param_mutex = PTHREAD_MUTEX_INITIALIZER;
int rk_param_dump() {
const char *section_name;
const char *keys[32];
int section_keys;
int section_num = iniparser_getnsec(g_ini_d_);
LOG_INFO("section_num is %d\n", section_num);
for (int i = 0; i < section_num; i++) {
section_name = iniparser_getsecname(g_ini_d_, i);
LOG_INFO("section_name is %s\n", section_name);
section_keys = iniparser_getsecnkeys(g_ini_d_, section_name);
for (int j = 0; j < section_keys; j++) {
iniparser_getseckeys(g_ini_d_, section_name, keys);
LOG_INFO("%s = %s\n", keys[j],
iniparser_getstring(g_ini_d_, keys[j], ""));
}
}
return 0;
}
int rk_param_save() {
FILE *fp = fopen(g_ini_path_, "w");
if (fp == NULL) {
LOG_ERROR("%s, fopen error!\n", g_ini_path_);
iniparser_freedict(g_ini_d_);
g_ini_d_ = NULL;
return -1;
}
iniparser_dump_ini(g_ini_d_, fp);
fflush(fp);
fclose(fp);
return 0;
}
int rk_param_get_int(const char *entry, int default_val) {
int ret;
pthread_mutex_lock(&g_param_mutex);
ret = iniparser_getint(g_ini_d_, entry, default_val);
pthread_mutex_unlock(&g_param_mutex);
return ret;
}
int rk_param_set_int(const char *entry, int val) {
char tmp[8];
sprintf(tmp, "%d", val);
pthread_mutex_lock(&g_param_mutex);
iniparser_set(g_ini_d_, entry, tmp);
rk_param_save();
pthread_mutex_unlock(&g_param_mutex);
return 0;
}
const char *rk_param_get_string(const char *entry, const char *default_val) {
const char *ret;
pthread_mutex_lock(&g_param_mutex);
ret = iniparser_getstring(g_ini_d_, entry, default_val);
pthread_mutex_unlock(&g_param_mutex);
return ret;
}
int rk_param_set_string(const char *entry, const char *val) {
pthread_mutex_lock(&g_param_mutex);
iniparser_set(g_ini_d_, entry, val);
rk_param_save();
pthread_mutex_unlock(&g_param_mutex);
return 0;
}
int rk_param_init(char *ini_path) {
LOG_INFO("%s\n", __func__);
pthread_mutex_lock(&g_param_mutex);
g_ini_d_ = NULL;
if (ini_path)
memcpy(g_ini_path_, ini_path, strlen(ini_path));
else
memcpy(g_ini_path_, "/oem/usr/share/rkuvc.ini", strlen("/oem/usr/share/rkuvc.ini"));
LOG_INFO("g_ini_path_ is %s\n", g_ini_path_);
g_ini_d_ = iniparser_load(g_ini_path_);
if (g_ini_d_ == NULL) {
LOG_ERROR("iniparser_load error!\n");
return -1;
}
rk_param_dump();
pthread_mutex_unlock(&g_param_mutex);
return 0;
}
int rk_param_deinit() {
LOG_INFO("%s\n", __func__);
if (g_ini_d_ == NULL)
return 0;
pthread_mutex_lock(&g_param_mutex);
rk_param_save();
if (g_ini_d_)
iniparser_freedict(g_ini_d_);
pthread_mutex_unlock(&g_param_mutex);
return 0;
}
int rk_param_reload() {
LOG_INFO("%s\n", __func__);
pthread_mutex_lock(&g_param_mutex);
if (g_ini_d_)
iniparser_freedict(g_ini_d_);
g_ini_d_ = iniparser_load(g_ini_path_);
if (g_ini_d_ == NULL) {
LOG_ERROR("iniparser_load error!\n");
return -1;
}
rk_param_dump();
pthread_mutex_unlock(&g_param_mutex);
return 0;
}