nvram 驱动和应用

1、/kernel/drivers/mtd/maps添加文件

nvram.c 

nvram_kernel.c

nvram_linux.h 

wrapper.h

驱动代码下载地址

https://download.csdn.net/download/u011425939/87786837

 2、修改/kernel/drivers/mtd/maps/makefile

3、修改/kernel/drivers/mtd/maps/kconfig

 

3、或者直接修改 /kernel/arch/arm64/configs/rockchip_linux_defconfig

 添加CONFIG_MTD_NVRAM=y

4、应用代码如下

/* NVRAM utility */
int main(int argc, char **argv)
{
	char *name, *value, buf[NVRAM_SPACE];
	int size;

	/* Skip program name */
	--argc;
	++argv;

	if (!*argv)
		usage();

	/* Process the remaining arguments. */
	for (; *argv; argv++) {
		if (!strncmp(*argv, "get", 3)) {
			if (*++argv) {				
				if ((value = nvram_get(*argv)))
					puts(value);
			}
		} else if (!strncmp(*argv, "set", 3)) {
			if (*++argv) {
				strncpy(value = buf, *argv, sizeof(buf));
				name = strsep(&value, "=");
				nvram_set(name, value);
			}
		} else if (!strncmp(*argv, "unset", 5)) {
			if (*++argv)
				nvram_unset(*argv);
		} else if (!strncmp(*argv, "commit", 5)) {
			nvram_commit();
		} else if (!strncmp(*argv, "show", 4)
			   || !strncmp(*argv, "getall", 6)) {
			nvram_getall(buf, sizeof(buf));
			for (name = buf; *name; name += strlen(name) + 1)
				puts(name);
			size =
			    sizeof(struct nvram_header) + (long)name - (long)buf;
			fprintf(stderr, "size: %d bytes (%d left)\n", size,
				NVRAM_SPACE - size);
		}
		if (!*argv)
			break;
	}

	return 0;
}

运用下载地址

https://download.csdn.net/download/u011425939/87786839

5、测试

[root@RK356X:/]# 
[root@RK356X:/]# nvram set my=123456
[root@RK356X:/]# 
[root@RK356X:/]# nvram get my
123456
[root@RK356X:/]# 
[root@RK356X:/]# nvram show
wpa_passphrase=12345678
file_log_en=0
wifi_enable=1
wifi_mode_select=1
wifidev=ra0
my=123456
ssid=wifi_ap123
g_trace_print_level=1
size: 151 bytes (130921 left)
[root@RK356X:/]# 
[root@RK356X:/]# 
[root@RK356X:/userdata]# nvram commit
nvram:[normal  2023-05-15 19:41:51] FILE:nvram_linux.c, FUN:nvram_commit, LINE:280, PID:20369 @:nvram_commit sizeof buffer=131072
[root@RK356X:/userdata]# 
[root@RK356X:/userdata]# ls
bin  cfg  nvram.bin
[root@RK356X:/userdata]# 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值