Search found 443 matches

by cfbsoftware
Mon Oct 21, 2013 11:14 am
Forum: Oberon Language
Topic: Nested procedures
Replies: 23
Views: 128361

Re: Nested procedures

I suspect things would be much clearer to readers of the Language Report if "non-global" would be added to the following paragraph: Revision 1.10.2013 of the Language Report now says: All constants, variables, types, and procedures declared within a procedure body are local to the procedure. The va...
by cfbsoftware
Mon Oct 21, 2013 7:44 am
Forum: Oberon Language
Topic: Updated Oberon Language Report (Revision 1.10.2013)
Replies: 21
Views: 128765

Updated Oberon Language Report (Revision 1.10.2013)

The latest version of the Oberon Language Report (Revision 1.10.2013) can now be downloaded from Niklaus Wirth's website. We will be updating the Astrobe Oberon compiler to conform to this report for the next major release. A summary of the changes follows: Features Added: A new standard data type B...
by cfbsoftware
Sun Oct 06, 2013 4:18 am
Forum: Astrobe for ARM Cortex-M0, M3, M4 and M7
Topic: is support for cortex M4 based boards possible / planned
Replies: 11
Views: 77500

Re: is support for cortex M4 based boards possible / planned

Yes - the Oberon compiler used in Astrobe is intended to be used for developing "hard realtime" applications. There isn't a "runtime system" in the traditional sense of the word. Any processing overhead that does exist is related to features that help debugging. These can be disabled in v4.5 Astrobe...
by cfbsoftware
Sat Oct 05, 2013 12:16 pm
Forum: Astrobe for ARM Cortex-M0, M3, M4 and M7
Topic: is support for cortex M4 based boards possible / planned
Replies: 11
Views: 77500

Re: is support for cortex M4 based boards possible / planned

The Cortex-M4 instruction set is a superset of the Cortex-M3 instruction set so it should not be too difficult to get Oberon code working on the Cortex-M4. Do you have a particular development board in mind? Is there anything in particular that you are hoping to do with a Cortex-M4 board that you ca...
by cfbsoftware
Mon Sep 30, 2013 1:28 pm
Forum: Astrobe for ARM Cortex-M0, M3, M4 and M7
Topic: Using the additional 2kB of RAM on LPC131x / LPC134x MCUs
Replies: 0
Views: 16985

Using the additional 2kB of RAM on LPC131x / LPC134x MCUs

LPC131x/134x MCUs with 10kB of more of SRAM are similar to LPC175x/176x MCUs in that the SRAM is not in one contiguous block. The main CPU SRAM is 8kB and the separate SRAM1 and USB SRAM blocks are 2kB each. When you use the default Astrobe Linker options your application will only use the 8kB of CP...
by cfbsoftware
Mon Sep 30, 2013 8:23 am
Forum: Oberon Language
Topic: New language extension: BYTE data type
Replies: 6
Views: 58738

Re: New language extension: BYTE data type

I deliberately omitted the case where the programmer does not explicitly specify what type the constant is i.e. SYSTEM.PUT(addr, 0) It is not obvious / could easily be forgotten that this will result in a byte-transfer only. This can lead to obscure errors e.g. SYSTEM.PUT(LPC.VICVectAddr, 0) An alte...
by cfbsoftware
Sun Sep 29, 2013 12:54 am
Forum: Oberon Language
Topic: New language extension: BYTE data type
Replies: 6
Views: 58738

Re: New language extension: BYTE data type

Note that SYSTEM.PUT generates either the STRB instruction to store an 8-bit BYTE value or the STR instruction to store a 32-bit word value depending on whether the parameter passed is a byte-sized (e.g. BYTE, CHAR etc.) or word-sized (e.g. INTEGER, SET etc). Hence, when using SYSTEM.PUT to store a ...
by cfbsoftware
Mon Sep 16, 2013 1:29 pm
Forum: General
Topic: Fast ARRAY and RECORD moves
Replies: 1
Views: 119658

Fast ARRAY and RECORD moves

The auto-increment / auto-decrement versions of SYSTEM.GET and SYSTEM.PUT in v4.5 Astrobe and later allow you to implement very efficient array processing functions. For example, the following are useful general-purpose functions for moving /copying blocks of data: PROCEDURE* MoveWords*(fromAdr, toA...
by cfbsoftware
Thu Aug 22, 2013 2:12 pm
Forum: Oberon Language
Topic: New SYSTEM functions
Replies: 0
Views: 13164

New SYSTEM functions

v4.5 and later versions of Astrobe for Cortex-M3 has some new in-line SYSTEM functions which make use of Thumb-2 instructions that aren't exploited in the Oberon language. Two such instructions are CLZ (count leading zeros) and RBIT (reverse the bits in a word) which both execute in a single cycle. ...
by cfbsoftware
Mon Aug 19, 2013 12:40 pm
Forum: Oberon Language
Topic: Nested procedures
Replies: 23
Views: 128361

Re: Nested procedures

Intermediate objects are items which are listed in CONST, TYPE, VAR and PROCEDURE declarations in a procedure which also contains a nested procedure. Intermediate variables are items which are listed in a VAR declaration in a procedure which also contains a nested procedure. The objects and variable...