From: pito <pi...@vo...> - 2010-07-04 14:18:21
|
Hi Matthias, imagine the real situation - I am flying a satellite. The board computer BC is radhard atmega32. All i/outputs are set properly, the satellite provides automatically some measurement from time to time, or perform a taks per link request (to run a word). I communicate via an uplink/downlink 19k2, 8n1. The link is very noisy. I need CRC check. From time to time I need to CRC whole BC memory. If failed I need to reload BC from external EEPROM. The HW reset of the BC is not allowed. We run Amforth 4.0 as we were told amforth is good for space applications. Now I need to change a word - sinus. My communication window is 10sec. I can send few hundred bytes maximum. After the succesful upload I require the BC will guide based o the new sinus. I want to have a possibility to change ANY word in the BC in such a way. I do not have problem with growing the flash volume, so I am not going to use marker. I do not want to use RAM as RAM is prone to change the content when irradiated by Higgs bosone. It is doable? Cheers, Pito ----- PŮVODNÍ ZPRÁVA ----- Od: "Matthias Trute" <mt...@we...> Komu: "Everything around amforth" <amf...@li...> Předmět: Re: [Amforth-devel] Words redefiniton and references Datum: 4.7.2010 - 15:36:38 > Hi Pito, > > > So from all the previous posts - in order to redefine > > sinus I have to > > > upload a new word: > > just start as follows > > \ Rdefer uses the RAM, so it needs to be initialized > \ every time the controller starts > > Rdefer sinus > > \ define a word that uses sinus. note that there is > still > \ no code for calculating sinus ! > : height ... sinus ... ; > > \ now comes the first version of the sinus code > : sinus1 ...... ; > ' sinus1 is sinus > > calling height will indirectly call sinus1 as sinus > > \ define another sinus, probably better > : sinus2 ..... ; > \ and make it active > ' sinus2 is sinus > > calling height _now_ will execute sinus2, sinus1 is > no longer > used. heigth itself is not changed at all. > > > wrt to the initialization: you will have to extend > turnkey > to include the proper ' sinus_x is sinus otherwise > heigth uses some uninitializes pointer that will cause > a crash. > > if you use Edefer instead of Rdefer the settings will > be stored > in the EEPROM. all other code above can remain (esp. > the is ) > > HTH > Matthias |