[Oberon] Volatile variables in Oberon
Aubrey.McIntosh at alumni.utexas.net
Aubrey.McIntosh at alumni.utexas.net
Sat Jul 30 08:22:20 CEST 2016
>From very old memory, I think that Modula-2 had a construct to allow
reading and writing from absolute memory addresses. I don't know if a
Wirth compiler had this, or if it was from someone else.
Something similar to
VAR memmap [ 100B ] : ARRAY 3 OF INTEGER;
On Sat, Jul 30, 2016 at 1:06 AM, Skulski, Wojciech <
skulski at pas.rochester.edu> wrote:
> Chris:
>
> > But Oberon variables are not mapped to registers that can be changed
> "from
> > the other end". The explicit operations SYSTEM.GET and SYSTEM.PUT are
> used
> > when you want to transfer data between a peripheral register (mapped to
> an
> > absolute memory location) and Oberon variables.
>
> Pardon my C on this mailing list. The point I want to make is that it is
> ugly.
>
> Here is a sample of my C program where I am reading from an absolute
> memory location mapped to an FPGA register. The "target" is an integer,
> which is then used to retrieve a value from the FPGA. The address is not
> constant, but I can make it constant using a #define.
>
> long target; /* long int holds addr, needs a typecast */
> short value;
> short *virt_saddr; /* typed pointer to 16-bit short */
>
> virt_saddr = (short *) target; /* convert target to pointer */
> value = * virt_saddr; /* read value from address */
>
> I would prefer to write in C something like the following:
>
> short value at address; /* address is constant, which is most often the
> case*/
>
> In Oberon it would be something like this:
>
> CONST address = ....;
> VAR value: INTEGER AT address; (* address must be constant*)
>
> Now the question, is this unreasonable?
>
> Wojtek
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>
--
(email is my preferred communication media)
Aubrey McIntosh, Ph.D.
1502 Devon Circle
Austin TX 78723-1814
(512)-348-7401
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.inf.ethz.ch/pipermail/oberon/attachments/20160730/b34a1b0a/attachment.html>
More information about the Oberon
mailing list