mirror of
https://github.com/LuckfoxTECH/luckfox-pico.git
synced 2026-01-18 03:28:19 +01:00
* 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>
140 lines
3.3 KiB
C
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;
|
|
}
|