Search found 108 matches
- Sun Dec 03, 2023 5:03 am
- Forum: Bug Reports
- Topic: SYSTEM.ALIGN
- Replies: 2
- Views: 2591
Re: SYSTEM.ALIGN
Thanks for the fixes and updates with v9.0.3.
- Sun Dec 03, 2023 4:24 am
- Forum: Bug Reports
- Topic: Module Storage (2)
- Replies: 1
- Views: 2288
Module Storage (2)
The Astrobe docs say about module Storage: However, you must not change the interface definition of the module as the compiler expects it to be as shown above. I am a bit confused here. As per the documentation about module MAU, each 'NEW' call is converted into a call to MUA.New, and for 'DISPOSE' ...
- Sun Dec 03, 2023 4:19 am
- Forum: Bug Reports
- Topic: Module Storage (1)
- Replies: 3
- Views: 3015
Module Storage (1)
I need to write my own heap memory allocator, and I am studying module Storage, which of course is a good starting point. I have trouble understanding this part in the module initialisation: IF heapLimit = 0 THEN stackLimit := 0 ELSE (* Separate heap / stack *) stackLimit := 010000200H END; As far a...
- Mon Nov 27, 2023 1:49 pm
- Forum: Bug Reports
- Topic: SYSTEM.ALIGN
- Replies: 2
- Views: 2591
SYSTEM.ALIGN
I am having troubles using SYSTEM.ALIGN. My use case was this. Traps.mod contains several distinct exceptions handlers for the different MCU faults, such as Hard Fault, and some more for the M3, which are identical, mutatis mutandis the hard-coded fault number. Below is an attempt to use the same fa...
- Wed Nov 22, 2023 1:59 am
- Forum: Bug Reports
- Topic: Stack Trace Considerations (M0)
- Replies: 2
- Views: 2494
Re: Stack Trace Considerations (M0)
Thanks! That's exactly the flag to test to decide for either the +36 or the +40 offset, ie. solve the "gap" problem in 'SVCTrap'. My two "gap"-related test cases now show correct results with the corresponding changes in 'SVCTrap'. To be fair, the flag is described in the M0 programming manual (PM02...
- Tue Nov 21, 2023 11:18 am
- Forum: Bug Reports
- Topic: Stack Trace Considerations (M0)
- Replies: 2
- Views: 2494
Stack Trace Considerations (M0)
With Astrobe version 9.0, the useful stack trace functionality of can show false positives, ie. list procedure calls that don't belong in the call chain leading up to the run-time error. Consider this test code: MODULE TestError1; IMPORT Main; VAR x, y: INTEGER; PROCEDURE p1; VAR z: INTEGER; BEGIN y...
- Fri Nov 17, 2023 9:54 am
- Forum: Astrobe for ARM Cortex-M0, M3, M4 and M7
- Topic: Interrupt Handlers
- Replies: 2
- Views: 5687
Re: Interrupt Handlers
Wow. Smart. I am impressed. Thanks for that.
- Thu Nov 16, 2023 12:26 pm
- Forum: Astrobe for ARM Cortex-M0, M3, M4 and M7
- Topic: Interrupt Handlers
- Replies: 2
- Views: 5687
Interrupt Handlers
For the Cortex-M0, the prologue and epilogue generated for interrupt handlers is the same as for normal parameterless procedures. That is, they are the same for PROCEDURE p0; END p0; 0B500H push { lr } 046C0H nop 0BD00H pop { pc } 046C0H nop and PROCEDURE p1[0]; END p1; 0B500H push { lr } 046C0H nop...
- Sat Jun 17, 2023 4:41 am
- Forum: Astrobe for FPGA RISC5
- Topic: SYSTEM.LDREG
- Replies: 4
- Views: 85123
Re: SYSTEM.LDREG
SYSTEM.LDREG is also used in Oberon.Mod, and its sibling SYSTEM.REG in Kernel.Mod, Modules.Mod, System.Mod, as well as in the bootloader. SYSTEM.H, probably another undocumented feature, is used in Kernel.Mod. Hence, without undocumented features, no Oberon system as we know it.
- Wed Jun 14, 2023 1:08 pm
- Forum: Astrobe for FPGA RISC5
- Topic: SYSTEM.LDREG
- Replies: 4
- Views: 85123
Re: SYSTEM.LDREG
Just re-reading some old forum posts... and it occurred to me that, undocumented or not, SYSTEM.LDREG is arguably the most central feature of the compiler. Without it, the system would not even boot. See the bootloader, it's literally the first instruction the system executes. :)