[Oberon] FPGA - System Crash

Andreas Pirklbauer andreas_pirklbauer at yahoo.com
Sat May 12 10:44:05 CEST 2018

   > Could it also fail on blank card?
   > It does some init of the root directory.
   >   PROCEDURE Init*; (*initialize the file system if needed*)
   >     VAR a: FileDir.DirPage;
   >   BEGIN Kernel.GetSector(FileDir.DirRootAdr, a);
   >     IF a.mark # FileDir.DirMark THEN
   >       a.mark := FileDir.DirMark; a.m := 0; a.p0 := 0;
   >       Kernel.PutSector(FileDir.DirRootAdr, a)
   >   END
   > END Init;

Several comments:

1. You may want to get the latest version of the Oberon system building
tools from: http://github.com/andreaspirklbauer/Oberon-building-tools

2. The above procedure ‘Oberon0.Init’ does what it is supposed to do,
i.e. if the pre-linked binary file Oberon0.bin (containing the six modules
Kernel, FileDir, Files, Modules, RS232, Oberon0) is downloaded over
the serial line to the target system for the very first time (i.e. onto the
bare metal after the target system has been rebooted over the
serial line), the file system of the target system is initialized.

3. If it is downloaded again, the file system already exists and contains
whatever previous builds have left behind. In that case, no action is taken.
But one can always execute the command ORS.SR 101 ~ on the host
system to clear the file system on the target system again.

See the following tool text for the correct execution order:



More information about the Oberon mailing list