Search found 110 matches
- Mon Dec 11, 2023 11:44 pm
- Forum: Bug Reports
- Topic: Traps.GetName Misses Last Procedure
- Replies: 0
- Views: 10073
Traps.GetName Misses Last Procedure
I have been working on catching run-time errors in module bodies during the start-up of programs. To test, I have injected artificial errors, such as 'ASSERT(FALSE)', and the first obvious place was Main.Init, right at the end, after module Traps and the Terminal output have been initialised. Which ...
- Mon Dec 04, 2023 9:03 am
- Forum: Bug Reports
- Topic: Module Storage (1)
- Replies: 3
- Views: 5016
Re: Module Storage (1)
I suggest to replace the above quoted code with
Or remove it and amend 'Storage.StackAvailable()' accordingly, also removing VAR 'stackLimit' from the module.
Code: Select all
stackLimit := heapLimit;
- Sun Dec 03, 2023 5:03 am
- Forum: Bug Reports
- Topic: SYSTEM.ALIGN
- Replies: 2
- Views: 4533
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: 4257
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: 5016
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: 4533
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: 4458
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: 4458
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: 7657
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: 7657
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...