Re: Memory initialization (not)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Jim,

How do you access the battery backed RAM?

Is the battery backed RAM part of the heap?  Special section?

On a system that I worked on, which had I/O memory at 0xC0000000, part of
which was battery backed memory, I used this:

char* RawC000Page = (char*)0xC0000000;

I also used this for the same memory:

struct C000Page_t* C000Page = (struct C000Page_t*)0xC0000000;

Note:  some of the C000Page_t was write-only (reading would be BAD), some of
C000Page_t was read-only (writing would be BAD), some was read/write (but
reading and writing semantically meant different things to the I/O
register), and some was battery backed RAM (reading/writing okay).

The memory was not part of the heap, nor was it part of the .data or .bss
sections.  I just wrangled a pointer to point to it.  There was no OS, it
was just the code in EEPROM, bootstrapped from an initialization ROM.  There
was a managed heap using malloc/free, but that heap was no where near the
0xC0000000 page.  The stack was carved out of the heap.

Would something like this work for you?

HTH,
--Eljay


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux