先show代码, 原本在idf2_dio_demo.cpp展示版本信息:
zs@sr658:~/rk3562-optmv-idd1/external/opt_idf2_dio_lib$ git show 943bfd02c3f59d779fd1bf1c4b15c496fb88ee8d
commit 943bfd02c3f59d779fd1bf1c4b15c496fb88ee8d (HEAD)
Author: hzs <hzs@optmv.com>
Date: Wed Apr 8 17:27:30 2026 +0800
nav1: update OPTController_GetVersion() API to get version: 2026040865010230
diff --git a/OPTController.cpp b/OPTController.cpp
index 8db10ac..1790c37 100755
--- a/OPTController.cpp
+++ b/OPTController.cpp
@@ -28,10 +28,8 @@ using namespace std;
// #define new DEBUG_NEW
// #endif
-#define OPT_VERSION "202408100701010"
-//#define OPT_VERSION "202211120401230" //idf1 ar0234 200w
-//#define OPT_VERSION "20220721040105" //idf1 ar0521 500w
-//#define OPT_VERSION "20220726040108" //idf1 ar0822 800w
+#define OPT_VERSION "2026040865010230"
+
/*****************************全局变量*****************************************/
int g_dio_fd = 0;
int g_spi_fd = 0;
@@ -759,10 +757,15 @@ long OPTController_ReadIPConfigBySN(char *SN, char *IP, char *subnetMask, char *
long OPTController_GetVersion(char *version)
{
- version = strcpy(version,OPT_VERSION);
- return 0;
+ char source[] = "2026040865010230"; //2026040865010230
+ // strncpy(destination, source, sizeof(destination) - 1);
+ //strncpy(version, source, sizeof(version) - 1);
+ // version = strcpy(version,OPT_VERSION);
+ version = strcpy(version,source);
+ return 0;
}
+
long OPTController_Get_Battery_capacity(char *capacity)
{
int ret = 0;
@@ -809,7 +812,6 @@ long OPTController_Get_Battery_capacity(char *capacity)
pclose(battery_fp);
- //capacity = strcpy(capacity,OPT_VERSION);
capacity = strcpy(capacity,buffer);
printf("to get battery capacity_buffer = %s, battery_cap = %d v \n", buffer, battery_cap);
//printf("to get battery buffer capacity = %s, capacity = %d v \n", buffer, capacity);
diff --git a/idf2_dio_demo.cpp b/idf2_dio_demo.cpp
index c78c2c6..17ad22d 100755
--- a/idf2_dio_demo.cpp
+++ b/idf2_dio_demo.cpp
@@ -31,7 +31,7 @@ void menu(void)
"28:设置wifi使能 29:读取wifi使能状态\n"
"31:设置wifi未连接指示灯 32:读取wifi未连接指示灯状态 33:设置正常电量指示灯 34:读取正常电量指示灯状态\n"
"35:设置低电量指示灯 36:读取低电量指示灯状态 37:读取充电状态 38:读取当前电池电量值 39:读取当前电池电压值\n"
- "40:进入系统关机 41:读取固件版本号 100:菜单 其他: 退出\n"
+ "40:进入系统关机 100:菜单 其他: 退出\n"
"=======================================================================================\n");
}
@@ -58,7 +58,7 @@ int main(int argc, char *argv[])
struct input_event inputevent;
int dac_value = 0;
const char *filename = "xxx";
- char cur_version[40] = {0};
+ //char cur_version[40] = {0};
char battery_capacity[10] = {0};
int cn3927e_back_flag = 0;
int cn3927e_adc = 0;
@@ -699,10 +699,10 @@ int main(int argc, char *argv[])
// "====================================================\n");
// }
break;
- case 41:
- OPTController_GetVersion(cur_version);
- printf("当前固件版本号:%s\n",cur_version);
- break;
+ // case 41:
+ // OPTController_GetVersion(cur_version);
+ // printf("当前固件版本号:%s\n",cur_version);
+ // break;
case 100:
menu();
diff --git a/main.cpp b/main.cpp
index e3c9143..0775fba 100755
--- a/main.cpp
+++ b/main.cpp
@@ -16,6 +16,7 @@ void menue()
printf("6.读取工作状态\n");
printf("20.设置IAP/APP启动(0:APP,1:IAP)\n");
printf("40.读取MCU版本号\n");
+ printf("41.读取固件版本号\n");
printf("100 菜单\n");
printf("其他 退出\n");
}
@@ -23,7 +24,7 @@ void menue()
int main(int argc, char *argv[])
{
/* code */
-
+ char buf2[200]={0};
OPTController_Handle handle;
const char* filename="/dev/opt_idf2_spi";
long re=OPTController_OpenSPI((char *)filename, &handle);
@@ -102,6 +103,12 @@ int main(int argc, char *argv[])
else
printf("读取MCU版本号失败 ret:%d\n",ret);
break;
+ case 41:
+ printf("获取固件版本\n");
+ ret = OPTController_GetVersion(buf2);
+ printf("ret=%ld\n", ret);
+ printf("version: %s\n", buf2);
+ break;
case 100:
menue();
break;
hzs@sr658:~/rk3562-optmv-idd1/external/opt_idf2_dio_lib$
根据CMakeLists.txt


将编译生成的库文件和idf2_dio_demo通过adb push到系统的/usr/lib/下面,测试还是未能读取正常

但修改idf2_dio_demo.cpp字符增加printf打印,则是可以变化,说明push也都是到位生效的,
中间也都尝试删除buildroot的out目录下面的生成文件尝试验证,也都验证未能生效

但里面的内容未和还没变动,百思不得其解,接着尝试对比其他rk3588平台代码,验证了代码的写法也都是大同小异,基本一致性的.接着我尝试将此demo移植到main代码来显示,修改方式如下:
后来改为main:

接口的代码:

通过adb push进行验证是奏效的,然后就先给出去了

但给到应用开发中,发现还是未能改动, version字符获取回来还是version "2025122930010000)", 什么原因呢 ?
最后发现: libIDDIOSDK.so这个库被应用打包到这里来了,在环境变量引用到估计引导到这个库导致的,实际应该是采用了/usr/lib/libIDDIOSDK.so

知道原因猜想,马上将/root/xxx/libIDDIOSDK.so下面的库给rm掉测试, 发现依旧还是不行
接着发现系统设备还没重新,马上重启设备再次测试即可ok正常获取回来,问题得到了解决.
因为rm掉libIDDIOSDK.so后,系统并没有马上生效,需要重启系统一下,这个也都相当注意.
真是老司机也都有大意的时候,时刻需要警醒着.
扩展一个linux命令实用的功能:
find -name "*defconfig" |xargs -I {} sed -i s/rockchip_rk3562_scd1/rockchip_rk3562_aaa/g {}
hzs@sr658:~/rk3562-v1.2.0-sdk/device/rockchip/.chips/rk3562$ find -name "*defconfig" |xargs -I {} sed -i s/rockchip_rk3562_scd1/rockchip_rk3562_aaa/g {}
hzs@sr658:~/rk3562-v1.2.0-sdk/device/rockchip/.chips/rk3562$
hzs@sr658:~/rk3562-v1.2.0-sdk/device/rockchip/.chips/rk3562$ gst
On branch optmv-idr2
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
typechange: rockchip_defconfig
modified: rockchip_rk3562_rt_scd1_color_defconfig
modified: rockchip_rk3562_rt_scd1_mono_defconfig
modified: rockchip_rk3562_scd1_color_defconfig
modified: rockchip_rk3562_scd1_mono_defconfig
Untracked files:
(use "git add <file>..." to include in what will be committed)
rockchip_rk3562_rt_scd1_lib_mono_defconfig
no changes added to commit (use "git add" and/or "git commit -a")
hzs@sr658:~/rk3562-v1.2.0-sdk/device/rockchip/.chips/rk3562$ git diff
diff --git a/.chips/rk3562/rockchip_defconfig b/.chips/rk3562/rockchip_defconfig
deleted file mode 120000
index 94967d7..0000000
--- a/.chips/rk3562/rockchip_defconfig
+++ /dev/null
@@ -1 +0,0 @@
-rockchip_rk3562_evb2_ddr4_v10_defconfig
\ No newline at end of file
diff --git a/.chips/rk3562/rockchip_defconfig b/.chips/rk3562/rockchip_defconfig
new file mode 100644
index 0000000..8f7ebe0
--- /dev/null
+++ b/.chips/rk3562/rockchip_defconfig
@@ -0,0 +1,5 @@
+RK_WIFIBT_CHIP="AP6275S"
+RK_UBOOT_SPL=y
+RK_KERNEL_DTS_NAME="rk3562-evb2-ddr4-v10-linux"
+RK_PARAMETER="parameter-buildroot-fit.txt"
+RK_USE_FIT_IMG=y
diff --git a/.chips/rk3562/rockchip_rk3562_rt_scd1_color_defconfig b/.chips/rk3562/rockchip_rk3562_rt_scd1_color_defconfig
index 46ecb47..42eefb2 100644
--- a/.chips/rk3562/rockchip_rk3562_rt_scd1_color_defconfig
+++ b/.chips/rk3562/rockchip_rk3562_rt_scd1_color_defconfig
@@ -17,7 +17,7 @@ RK_KERNEL_DTS_NAME="rk3562-scd1-color"
RK_PARAMETER="parameter-buildroot-fit-rootfs-grow.txt"
RK_USE_FIT_IMG=y
-RK_BUILDROOT_CFG="rockchip_rk3562_scd1_defconfig"
+RK_BUILDROOT_CFG="rockchip_rk3562_aaa_defconfig"
RK_ROOTFS_HOSTNAME_ORIGINAL=y
diff --git a/.chips/rk3562/rockchip_rk3562_rt_scd1_mono_defconfig b/.chips/rk3562/rockchip_rk3562_rt_scd1_mono_defconfig
index 269052b..7ff8ab5 100644
--- a/.chips/rk3562/rockchip_rk3562_rt_scd1_mono_defconfig
+++ b/.chips/rk3562/rockchip_rk3562_rt_scd1_mono_defconfig
@@ -17,7 +17,7 @@ RK_KERNEL_DTS_NAME="rk3562-scd1-mono"
RK_PARAMETER="parameter-buildroot-fit-rootfs-grow.txt"
RK_USE_FIT_IMG=y
-RK_BUILDROOT_CFG="rockchip_rk3562_scd1_defconfig"
+RK_BUILDROOT_CFG="rockchip_rk3562_aaa_defconfig"