[Oberon] FPGA - Memory Map

Andreas Pirklbauer andreas_pirklbauer at yahoo.com
Mon Dec 11 14:06:45 CET 2017

> Of course, the final question is, why does the bootloader
> choose as its limit something below 0E7F00H, ie 0E7EF0H,
> as you point out?
> I think a clue here is given in the simplified serial-only
> version of the bootloader, where StackOrg is set to 0E7EF0H,
> rather than 80000H in the disk (SD-Card) case.

Perhaps it was originally thought to store the 4 variables
list0, list1, list2, list3 of module Kernel (which occupy
4 bytes each for a total of 16 bytes) in that little space
of 16 bytes between 0E7EF0H and  0E7F00H.

In Oberon 2013 on RISC, the area before the framebuffer
is the heap, located between heapOrg = 08000H = 524’288
and heapLim = MemLim = 0E7EF0H = 950’000.

It is not done though in Oberon 2013. But if it *were*
done, it would effectively make the heap a completely
“self-contained” data area, allowing one, for instance:

- to allow other modules to access and manage the heap
- to save and restore the heap to disk (system snapshot)
- to reload module Kernel without touching the heap
  (“live update”)
- etc.

It is not currently done though. But I have seen that
way of implementing the heap on some systems.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.inf.ethz.ch/pipermail/oberon/attachments/20171211/ae69c3ca/attachment.html>

More information about the Oberon mailing list