Multiple programs.
FORD
Posts: 221
Hello All,
Assuming I am going to·use a 128Kb Eeprom, with the lower 32Kb for the Prop, and I have loaded my program into the Propeller,
Will it be possible to copy a new program (or·part of a program) from higher (above 32Kb)·in memory into the program space without crashing it ?
Or to copy new / different objects into the program space from higher in memory ?
I guess I am also asking is it possible to know the start and end address of each object in memory so that it can be done ?
If so, this would be extremely flexible with optional programs, language sets etc.
Cheers,
Chris
West Oz.
Assuming I am going to·use a 128Kb Eeprom, with the lower 32Kb for the Prop, and I have loaded my program into the Propeller,
Will it be possible to copy a new program (or·part of a program) from higher (above 32Kb)·in memory into the program space without crashing it ?
Or to copy new / different objects into the program space from higher in memory ?
I guess I am also asking is it possible to know the start and end address of each object in memory so that it can be done ?
If so, this would be extremely flexible with optional programs, language sets etc.
Cheers,
Chris
West Oz.
Comments
as the Propeller releases the I²C bus lines to the EEPROM after copying the lower 32Kb from the EEPROM to the RAM, you can access other (higher) parts of the EEPROM later by your own I²C routines. One brute-force method would be copying a higher 32Kb block into the lower 32kB block of the EEPROM, and then issue a reset. This causes the Propeller to read the new contents of the lower 32Kb block into RAM, and run this modified application.
Another way would be to read certain blocks of upper memory from the EEPROM, and writing them directly to areas in the RAM. There is no need to reset the Propeller in this case but you need precise information about what is stored where in the RAM. I'm pretty sure that it is possble to retrieve such information at run-time but it is up to the "Propeller Gurus" to tell us more about it.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Greetings from Germany,
Günther
I should have thought of that, I was thinking that the program would crash, but of course it won't, as it is running from RAM, until it is reloaded on reset.
Well that is a fantastic way to just have say 4 different programs on an extra 128Kb Eeprom, and just load the correct program when required.
Thanks again,
I should have thought more deeply about that.
Cheers,
Chris
(You need a small Spin program to kick-start the Assembly routines, but after that you can recover that bit of RAM.)
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Don't visit my new website...
Are you saying that I can't read / write any location in the Eeprom using Spin ?
Thanks,
Chris
But if your program is completely in Assembler, you can use the entire HUB RAM as you see fit.
no worry about overwriting programs accidentally or any of that.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Don't visit my new website...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
·1+1=10
I sort of see what you mean... well not really.
I think when the documentation is released it will help, and I will rethink it all then.'
Start at the Start - if you know what I mean.
Thanks,
Chris
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
·1+1=10