| | Persistent globals
|
| Whew, I've been writing here a lot. I guess now that things work, it's a lot more enjoyable! :) Anyway, here goes.... I recall that with older versions of legOS, global variables were only initialized once, when the program was downloaded. (...) (24 years ago, 16-Jul-00, to lugnet.robotics.rcx.legos)
| | | | Re: Persistent globals
|
| (...) It is correct. Everytime you reload a program it re-initializes everything, including a specific program's memory, so all that kind of information is lost. I'm not sure that there is a way to duplicate that behavior, as things stand. The only (...) (24 years ago, 16-Jul-00, to lugnet.robotics.rcx.legos)
| | | | Re: Persistent globals
|
| (...) legOS 0.2.3 or 0.2.4 will load .strings and .rodata sections just like the .text section. With this you can achive persistent data by storing your variables into the .strings section. There are some nice features in gcc to help with this. Just (...) (24 years ago, 16-Jul-00, to lugnet.robotics.rcx.legos)
| | | | Re: Persistent globals
|
| (...) [snip great gobs of neat info] (...) Assuming it works, it helps a lot! Thanks much. -- "Do not go gentle into that good night. Rage, rage against the dying of the light." - Dylan Thomas Mike Ash - (URL), <mailto:mail@mikeash.com> (24 years ago, 17-Jul-00, to lugnet.robotics.rcx.legos)
| | | | Re: Persistent globals
|
| (...) Mike, I don't really have time to test this tonight, but if you find that it does work, please let me know- I'd love to add this to the HOWTO. It's an interesting trick to know. Luis ---...--- "Summertime... and the living is easy... fish are (...) (24 years ago, 17-Jul-00, to lugnet.robotics.rcx.legos)
| | | | Re: Persistent globals
|
| (...) <example code> This worked great for us using legOS 0.2.4. Thanks Eddie! Regards Tobias (24 years ago, 18-Jul-00, to lugnet.robotics.rcx.legos)
| | | | Re: Persistent globals
|
| (...) Do you think that is possible to change the behavier of legOS loading to obtain the expected behavier for static data without the trick? Bye, Paolo. --- "Do not follow where the path my lead Go instead where there is no path and leave a (...) (24 years ago, 24-Jul-00, to lugnet.robotics.rcx.legos)
| | | | Re: Persistent globals
|
| (...) No. You can not easily see the difference between static and non static data in the linker scripts to decide into which section to put the data. I would recomment a header file "persistent.h" and some documentation about that. We could modify (...) (24 years ago, 25-Jul-00, to lugnet.robotics.rcx.legos)
| | | | Re: Persistent globals
|
| (...) I just committed a header file persistent.h with comment on how to use __persistent in your files. I also updated genlds.c to move the persistent data to the right place. Eddie C. Dost ecd@skynet.be (24 years ago, 25-Jul-00, to lugnet.robotics.rcx.legos)
| | | | Re: Persistent globals
|
| (...) Wonderful! (Oh, and good morning, Eddie ;) I'm putting some stuff into the HOWTO as we speak- I'll mention that. Luis ---...--- "Summertime... and the living is easy... fish are jumping and the cotton is high... So hush, little baby, baby (...) (24 years ago, 25-Jul-00, to lugnet.robotics.rcx.legos)
| | | | Re: Persistent globals
|
| (...) Hi again! I have found that this works with scalar variables. However, I need to make an array persistent. More specifically, I have a 100x100 matrix containing a population for use with genetic programming and I need to be able to keep this (...) (24 years ago, 31-Jul-00, to lugnet.robotics.rcx.legos)
| | | | Re: Persistent globals
|
| (...) Shure: static unsigned char matrix[100][100] __persistent = { { 0, }, }; Eddie C. Dost ecd@skynet.be (24 years ago, 31-Jul-00, to lugnet.robotics.rcx.legos)
| |