搜索
bottom↓
回复: 24

请教linux板子如何存储初始化参数

[复制链接]

出0入0汤圆

发表于 2017-8-13 10:16:43 | 显示全部楼层 |阅读模式
本帖最后由 yangzi8000 于 2017-8-13 10:20 编辑

以前做单片机,运行需要的参数一般存在外挂的存储芯片里面,l初始化读出来用,能方便修改再写入,linux板子一般如何处理这个问题?? 比如4-20ma量程参数。。。。。 这些怎么处理最好,有哪些哪个板子有相关的程序可以参考下

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入33汤圆

发表于 2017-8-13 10:19:49 来自手机 | 显示全部楼层
linux应该更方便啊,以文件方式保存不就可以了?

出0入0汤圆

 楼主| 发表于 2017-8-13 10:21:20 | 显示全部楼层
本帖最后由 yangzi8000 于 2017-8-13 10:23 编辑
vtte 发表于 2017-8-13 10:19
linux应该更方便啊,以文件方式保存不就可以了?


请教下,如果好几十个参数怎么写呢,写到文本里面?还是二进制文件里面


如果修改其中一个参数,如何再次写入呢?

出0入84汤圆

发表于 2017-8-13 10:35:17 | 显示全部楼层
不要用单片机的思维来考虑。。。

以前遇到个客户 我是做核心板的,他做的底板上专门放了个EEPROM和SPIFLASH和一个语音芯片,我问干什么用的,他说存eeprom存IP地址等参数,spiflash存事件历史记录的,还有语音提示,我说不是你用文件存起来不就行了,客户才想到核心板跑linux的emmc上也可以存数据。。。。。。音频也是,他说用惯单片机了。。。

还遇到过一次客户linux非要用以太网转串口的。。。 最后才知道他不会socket编程。。

出0入84汤圆

发表于 2017-8-13 10:37:47 | 显示全部楼层
yangzi8000 发表于 2017-8-13 10:21
请教下,如果好几十个参数怎么写呢,写到文本里面?还是二进制文件里面

你几十个参数哪怕几百个,弄个文本存起来就可以了,最简单的一行一个参数。
修改的时候按文件读写或者最简单用sed就可以了。

出0入0汤圆

 楼主| 发表于 2017-8-13 10:46:06 | 显示全部楼层
本帖最后由 yangzi8000 于 2017-8-13 11:00 编辑
boyiee 发表于 2017-8-13 10:37
你几十个参数哪怕几百个,弄个文本存起来就可以了,最简单的一行一个参数。
修改的时候按文件读写或者最 ...


谢谢解释,我想问下如果一行一个参数,如何只修改其中一个参数呢,你们提供核心板,给个链接看下,我们公司想升级产品,加个QQ

出0入84汤圆

发表于 2017-8-13 11:40:18 | 显示全部楼层
yangzi8000 发表于 2017-8-13 10:46
谢谢解释,我想问下如果一行一个参数,如何只修改其中一个参数呢,你们提供核心板,给个链接看下,我们公 ...

你可以把文件按行读出来,自己修改,或者整个读出来,搜索字符串,然后替换,或者明确每行的定义直接替换就可以了。
跑linux了用文本最方便。

出0入17汤圆

发表于 2017-8-13 11:46:23 来自手机 | 显示全部楼层
参数一般都 ini 文件

出0入0汤圆

发表于 2017-8-13 11:54:49 | 显示全部楼层
Linux很多开源的配置   找一个 交叉编译  就能用了   

出0入0汤圆

发表于 2017-8-13 12:51:16 来自手机 | 显示全部楼层
这个简单啊,,结构体会把,指针会吧,你把参数用结构体保存,再转为指针,以二进制保存到文件,,读取时再,逆操作。别说你几十个参数,就是上万个参数,只要配置跟得上,也都不是问题!

出0入442汤圆

发表于 2017-8-13 13:03:15 | 显示全部楼层
boyiee 发表于 2017-8-13 11:40
你可以把文件按行读出来,自己修改,或者整个读出来,搜索字符串,然后替换,或者明确每行的定义直接替换 ...

干吗都来诱导LZ?直接放env里面不得了

出0入0汤圆

 楼主| 发表于 2017-8-13 13:18:45 | 显示全部楼层
本帖最后由 yangzi8000 于 2017-8-13 13:22 编辑
wye11083 发表于 2017-8-13 13:03
干吗都来诱导LZ?直接放env里面不得了


是env环境变量文件,能举个例子吗,刚开始弄,比如我要设置一个可以读写的long型的量a

出0入442汤圆

发表于 2017-8-13 13:26:43 | 显示全部楼层
yangzi8000 发表于 2017-8-13 13:18
是env环境变量文件,能举个例子吗,刚开始弄,比如我要设置一个可以读写的long型的量a
...

env是字符串。读写你要上网去找,我想不起来了。另外,如果要保存到flash里面去,你可能还得找接口。

不过,一个好消息是你可以把要存的东西转成字符串,然后调用系统命令去写——你不需要自己去写flash

出0入0汤圆

发表于 2017-8-13 15:42:16 来自手机 | 显示全部楼层
参数我们都放到config.ini里面

出0入0汤圆

 楼主| 发表于 2017-8-13 15:44:34 | 显示全部楼层
本帖最后由 yangzi8000 于 2017-8-13 15:46 编辑
hexenzhou 发表于 2017-8-13 15:42
参数我们都放到config.ini里面


这个是自己新建的文件,还是系统自带的文件???这个怎么读写呢  用fopen  。。。 还是其他方法,能看下文件里面怎么写的吗?二进制还是ASCII?

出50入10汤圆

发表于 2017-8-13 15:50:33 | 显示全部楼层
boyiee 发表于 2017-8-13 11:40
你可以把文件按行读出来,自己修改,或者整个读出来,搜索字符串,然后替换,或者明确每行的定义直接替换 ...

请教自己做了一块底板,使用AM3358片子,初次上电能启动进入linux系统,超级终端能正常通讯。
然后断掉电源再次上电,就不能启动系统。超级终端无反应,有时会显示几个“”CCCC“”出来。
如果间隔2分钟再上电就可以正常启动和与超级终端正常通讯。
这是什么原因?

出0入84汤圆

发表于 2017-8-13 16:12:33 | 显示全部楼层
our2008 发表于 2017-8-13 15:50
请教自己做了一块底板,使用AM3358片子,初次上电能启动进入linux系统,超级终端能正常通讯。
然后断掉电 ...


这个可能是你DEBUG串口带电,导致AM335部分没有成功复位, 你试试完全断开外部电源和串口等带电的接口,可能就没问题了。 这时候加个门电路就可以搞定了。

所以有些自己做的分立电源专门用mos管搭个放电电路。

出0入0汤圆

发表于 2017-8-13 16:50:26 | 显示全部楼层
楼主可以考虑使用ini, xml, json...这些都有开源的解析库,直接调用库接口就可以读写这些文件中对应的变量,具体怎么用你去搜一下然后试试就知道了。

出50入10汤圆

发表于 2017-8-13 17:03:20 | 显示全部楼层
boyiee 发表于 2017-8-13 16:12
这个可能是你DEBUG串口带电,导致AM335部分没有成功复位, 你试试完全断开外部电源和串口等带电的接口, ...

是裸板测试,只接了调试串口和电源线,电源用的是一个工频变压器出来的线性稳压电源。
断开串口也是一样,至少间隔2分钟上电才能启动。

出0入0汤圆

 楼主| 发表于 2017-8-13 18:05:23 | 显示全部楼层
winterw 发表于 2017-8-13 16:50
楼主可以考虑使用ini, xml, json...这些都有开源的解析库,直接调用库接口就可以读写这些文件中对应的变量 ...

谢谢  我去试试

出0入0汤圆

发表于 2017-8-13 19:00:58 | 显示全部楼层
怎么做取决于需求。

主文件系统内保存是容量最大,最常见的做法。
缺点是文件系统/eMMC/SD崩了设置参数就丢;需要做接口用于在现场/量产时设置。

略微好点的是用SPI Flash等一级引导存储器,RAW或者写在DTB里。
比较适合保存出厂的标定参数等不经常变的配置;否则更新的时候要当心。

IIC的EEPROM是最独立的方案。
优点是和系统独立,在量产/现场用外部接口操作也方便。
缺点是自己不加密,参数是明文;数据读写速度慢。

出0入0汤圆

发表于 2017-8-14 07:56:07 来自手机 | 显示全部楼层
linux带文件系统很方便的,如果参数不多可以放在一个文件里面。

出0入0汤圆

发表于 2017-8-14 09:50:44 | 显示全部楼层
用xml文件方式,随便网上找个开源的xml库,然后就可以指定写参数和内容了很方便。
如果觉得文件不放心,那就sqlite数据库吧。稳妥些。SQL语句也很好写的。

出0入0汤圆

 楼主| 发表于 2017-8-14 14:14:26 | 显示全部楼层
本帖最后由 yangzi8000 于 2017-8-14 14:36 编辑
shijianzhou 发表于 2017-8-14 09:50
用xml文件方式,随便网上找个开源的xml库,然后就可以指定写参数和内容了很方便。
如果觉得文件不放心,那 ...


请教下,这个是不是需要把libxml2库移植到文件系统中,然后再把文件系统重新编译一遍,再把新的文件系统镜像下载到开发板上去??这样继续编程才能用

出0入0汤圆

发表于 2017-8-14 14:40:39 | 显示全部楼层
yangzi8000 发表于 2017-8-14 14:14
请教下,这个是不是需要把libxml2库移植到文件系统中,然后再把文件系统重新编译一遍,再把新的文件系统 ...

不用,xml解析的代码放到你的应用代码里面。对于linux来讲还是操作普通文件而已。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 16:08

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表