Home/Support/Support Forum/How store data of an aplicattion in the non-volatile memory??
New and improved user forum site going live on 12/6 (All users will need to reset their password when the new forum is active)
Welcome to Digi Forum, where you can ask questions and receive answers from other members of the community.

How store data of an aplicattion in the non-volatile memory??

0 votes
Hello all!!!

I'm working with software DIGI ESP FOR NET+OS 7.4 for me CONNNET ME with Jtag.

I created a website, but I need to store some data from my page in the non-volatile memory of my Connect ME.

I can store this data in NVRAM???
how can I store this data???

There is some example that stored some data private in the memory non- volatile????


Message was edited by: isaac
asked Oct 20, 2009 in NET+OS by isaac New to the Community (8 points)
recategorized Dec 18, 2013 by tuxembb

Please log in or register to answer this question.

7 Answers

0 votes
I've moved your question to a more appropriate forum to get it answered.
answered Oct 20, 2009 by Admin Veteran of the Digi Community (732 points)
0 votes
HI,

I believe there are a couple of ways to do what you are trying to do.

The first is to go into the BSP and start to add fields to the BoardParams structure. This involves updating a number of files in the BSP and means that you need to ensure that the bootloader is updated each time you change anything.

The second an I believe simpler way is to simply define a number of structures to contain the data that you need and to then save them in the NV area using the NVRAM Drive API. This has a number of functions that help you out.

THe attached file is what I use for storing a few values that are used to set up my system. The structures will need to be modified to contain the data you need to store but the overall outline with my NVRCFG_Init() and NVRCFG_Save() functions should work for you.

Hope this helps

Roy
answered Oct 21, 2009 by rdeabill Community Contributor (142 points)
0 votes
Roy's ideas are good, but complex. Just save your parameters to a file. Unless you have disabled the filesystem of course.
answered Oct 21, 2009 by egawtry Veteran of the Digi Community (349 points)
0 votes
The first way (adding to the devBoardParamsType structure in boardParams.h) is not really a way you'd want to go because you're modifying the default NVRAM structure, and that could cause NVRAM corruption issues in the future (porting forward, for example, to a new NET+OS version).

The second way is good so long as the values you want to change aren't changed that frequently. Keep in mind you're writing to the NVRAM sector, and the way NOR flash works is to read it all into RAM, make the changes to the Flash sector, erase the sector, and then write it all back. If your user powers off the unit while it's doing that, you will not only corrupt your settings, but those stored in the default NVRAM structure. I would say it's ok if it's being changed as much as your IP settings (which is stored in the default NVRAM structure).

A third method would to be to create a file in the Flash File System, and read/write to that. The up side is that if it gets corrupt, it at worst corrupts the file, or at best, the file system can recover and use the last file saved before the corruption. The down side is that you have to allocate a number of sectors of flash for this that may be more useful in application storage space.
answered Oct 22, 2009 by charliek Veteran of the Digi Community (408 points)
0 votes
thanks you rdeabill by the file that you send to me !!!!


Message was edited by: isaac
answered Oct 22, 2009 by isaac New to the Community (8 points)
0 votes
I'm working with the software DIGI ENG FOR NET + OS 7.4 for my Digi Connect ME with JTAG

I need create a project to change the configuration between DHCP and static IP of my CONNECT ME!

I have read several functions, but I can not analyze


you will have a sample project to change the configuration between DHCP and static IP?
answered Oct 22, 2009 by isaac New to the Community (8 points)
0 votes
Hello

I am including a root.c that I put together some time ago. I believe it does something close to what you want to do. Since I have had it around for a while I checked and all of the APIs and data structures used are described in the API reference guide. I'd advise you use it as a GUIDE only.

Good luck
answered Oct 22, 2009 by sparkys_dad Community Contributor (99 points)
...