嵌入式INI配置文件

1.引言

1.1编写目的

ini文件是initialization file的缩写,即初始化文件,是windows系统配置文件所采用的存储格式,但在嵌入式系统下缺少ini文件解析库,需要自己去编写解析库。本文档描述的是minIni开源库,用于指导在嵌入式系Times New Roman统下使用ini文件解析库。

1.2概述

minIni是一种用于读取和写入INI文件的库,minIni占用很少的资源,具有确定的内存占用空间。minIni的主要用途是在运行ROTS(甚至没用任何操作系统)的嵌入式系统上使用。MinIni要求这样的系统提供一种存储和文件I/O系统,但是不需要此文件I/O系统与标准C/C++库兼容。

1.3特点

1)minIni大约是950行代码(包含注释),是一种真正的“迷你”INI文件解析器,非常容易移植到各种嵌入式平台。

2)minIni不需要标准C/C++库的文件I/O函数,且允许通过宏配置配置文件I/O接口。

3)minIni仅使用stack,完全不使用动态内存(malloc)。

4)有C++ binding,能够很好地配合C++使用。

2.使用方法

2.1下载链接

http://GitHub - compuphase/minIni: A small and portable INI file library with read/write support

2.2语法描述

ini配置文件由节、键值对和注释组成,例如:

[section1]

Keyname1=value1

Keyname2=value2

[section2]#section name

Keyname3=value3

Keyname4=value4

1.节(section):

1)所有的键值对都是以节为单位结合在一起的。

2)所有的section名称都是独占一行,且section名字被方括号包围。

3)在section声明后的所有键值对都属于这个section。

4)一个section没有明显的结束标识符,一个section的开始就是上一个section的结束

5)section不能重复,数据通过section去查找,每个section下可以有多个key和value的键值对。

2.键值对:

以键值对的形式存在,每个参数都有一个name和一个value,name和value由等号分隔。

3.注释:

注释使用#或分号表示开始,直到改好结尾全部为注解。

举例:

[eth]

ip=192.168.1.100  #ip地址

netmask=255.255.255.0

Gateway=192.168.1.1

2.3移植方法

以下是整个minIni开源库的文件结构,我们的嵌入式系统采用的是FatFS+freeRTOS系统开发,所以我们在移植的时候只需要minGlue-FatFs.h、minIni.h、minIni.c三个文件,其他头文件是根据不同的平台选择不同的头文件。

图 1 minIni文件结构

将以上提到的三个文件添加到工程目录下,需要做以下修改。

1.MinGlue-Fatfs.h:添加包含stdlib.h、stdio.h和string.h头文件,例外如果需要支持处理浮点数,需要添加以下三行#define语句,如果不需要支持处理浮点,可不添加以下三行#define。

图 2 .minGlue-Fatfs添加头文件

图 3 minGlue-Fatfs.h添加支持处理浮点

2.minIni.h文件

添加#include "minGlue-FatFs.h"文件,同时将minIni.c中的

#if !defined sizearray

  #define sizearray(a)    (sizeof(a) / sizeof((a)[0]))

#endif

移植到minIni.h头文件中。

2.4测试记录结果

图 4 测试代码

图 5 测试代码输出结果

图 6 配置文件

3.结论

通过以上测试验证,移植成功,但也不敢保证没有其他问题,还需要更进一步的测试验证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小草xyz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值