hi I want to save my intermediate data into a file. I tried to use fopen, fwrite, it can not even read. how should i use rtl.h ?
int count[10]; FILE *fout; fout = fopen ("Counter.bin","w"); if (fout != NULL) { fwrite (&count[0], sizeof (int), 10, fout); // write an item 10 times to the file fclose (fout);
my keil version 4.6 ARM core is cortex-M0. I am using the startup_MPS_CM0.s startup file to do the work.
Thanks for help!
Thanks for your link. it seems like that I have to set the .ini file with creation of the exec("save") and button.
I understand that "Embedded products normally don't have any fopen(), fread(), ... because there are normally no standard hardware available to store files."
why could not we use potential stream functions (if not fopen, fwrite )in the simulation mode to save the data to a file? should I have to run in specific mode or use some special library?
Keil IDE should be able to do so, theoretically, it is doable .
If you skip fopen() etc, then yes. There are support for having Cortex chips "print" debug data to the debugger. Documentation available on this site.
For other chips, the normal route is to just connect printf() to a serial port and then log all data sent out on that port.
But then we are talking about strict write of data on a stream. You did also mention "read" in your original post. If you need two-way communication, then it's time to implement a server application and use RS232, USB, Ethernet, ... to communicate between your device and the server. Then you can do whatever you want. Including having the server "tunnel" accesses to the file system of a PC.
Another thing to consider, is to have the program store the data you want to save into a RAM buffer or known address. Let the debugger retrieve this data and save to file. On another run, load this file and have the debugger send it to the RAM of your device.
So similar operations as when programming, or reading, the contents of the flash memory.