[Tinyos-help] InternalFlash question
Aurélien Francillon
aurelien.francillon at inrialpes.fr
Tue May 29 06:03:21 PDT 2007
hi Raj,
Le mardi 29 mai 2007 14:08, raj raj a écrit :
> Dear all,
>
>I am resending this email again as there has been no response to it. Please
> help me with the following:
http://www.catb.org/~esr/faqs/smart-questions.html
> raj raj <rajtos at yahoo.com> wrote: Dear all,
>
> In tinyos 1.1.x, there is a component called InternalFlashC which provides
> the interface InernalFlash. the avr platform has 128KB of program memory
> (flash memory), 4 KB of SRAM and 4 KB of EEPROM memory. The InternalFlashC
> componet can read from and write to internal Flash.My question is : What is
> internal Flash? Is it 4 KB of EEPROM or 128 KB of program memory. I think
> it should be 128KB of program memory. Am I right? I am getting confused
> with these terms.
>
> My next question is : What is the purpose of 4 KB of EEPROM ? Where is it
> used? Is there any component that can write to or read from 4 KB of EEPROM?
It's the 4 KB of EEPROM internal to the atmega 128 (it's different from the
external flash chip 512KB on serial port ), you can see all of them on the
general block diagram (figure 2 ) of atmega 128 at:
http://www.atmel.com/dyn/resources/prod_documents/doc2467.pdf
Access to the 128KB of program memory is more complex because you are
potentially writing the code you are executing, If it's what you want, there
is lots of details about this in the section "Boot Loader Support –
Read-While-Write Self-Programming" .
You can also have a look at the TOSBoot /Deluge which is doing just that ...
If you really want to access the internal 4KB EEPROM:
1) Writing to it is _very_ slow
2) Deluge is also using it, a few bytes for storing "permanent" data take care
of that is you are using it see ps
3) Use InternalFlashC to access it ...
In a way InternalFlashC should have been called InternalEEPROMC on mica
platforms, but it may not be true for any platform ...
Cheers
Aurélien
PS: deluge "iflash" usage
$0000 IFLASH_BOUND_LOW <- begin of free space
$0FE0 IFLASH_TOS_INFO_ADDR <- end of free space , begin of deluge usage
$0FE6 IFLASH_NODE_DESC_ADDR
$0FF0 TOSBOOT_ARGS_ADDR
$0FFF IFLASH_BOUND_HIGH
More information about the Tinyos-help
mailing list