Vector table in FLASH

Newcomers to Astrobe and Oberon are welcome to ask any beginner-level questions here

Vector table in FLASH

Postby Marc » Tue Nov 13, 2018 7:01 am

Hi,

since the linker doesn't offer the possibility to customize linking parameters, is there a possibility to keep the whole vector table simple in FLASH instead of VTOR / RAM ?

Thanks,
Marc
Marc
 
Posts: 12
Joined: Thu Oct 04, 2018 3:41 pm

Re: Vector table in FLASH

Postby cfbsoftware » Tue Nov 13, 2018 10:54 am

I don't think so. The trap handlers are assigned in the library module Traps. They trap locations need to be in RAM for this to work as is. Why would you want to keep them in FLASH?
cfbsoftware
Site Admin
 
Posts: 355
Joined: Fri Dec 31, 2010 12:30 pm

Re: Vector table in FLASH

Postby Marc » Tue Nov 13, 2018 11:35 am

Because it would save RAM and I don't see the need why an exception handler MUST be in RAM ?
Further why should it not be possible to keep a "static" vector table in FLASH ?
Marc
 
Posts: 12
Joined: Thu Oct 04, 2018 3:41 pm

Re: Vector table in FLASH

Postby cfbsoftware » Tue Nov 13, 2018 12:02 pm

The vector table currently occupies 256 bytes of RAM. How close is your application to exceeding the available RAM?

How do you you propose you would initialise the vector table if it was in FLASH? All entries are currently populated with address 1 at load time. This will cause a reset for any exception until the table is relocated to RAM and the appropriate handlers assigned to each location in Traps. The way it has been designed allows you to customise the handlers to suit your application without having to know in advance where those handlers are located at runtime.
cfbsoftware
Site Admin
 
Posts: 355
Joined: Fri Dec 31, 2010 12:30 pm

Re: Vector table in FLASH

Postby Marc » Tue Nov 13, 2018 12:41 pm

It' s not a question regarding the application closeness, I just want to know whether it's somehow possible with the current oberon linker, like with "gnu ld".
My propose would be, while linking to omit the first 256 (spare) bytes, so that the relocation (org) counter is aligned and afterwards patch the vector entries with the corresponding procedure addresses ...
Marc
 
Posts: 12
Joined: Thu Oct 04, 2018 3:41 pm

Re: Vector table in FLASH

Postby cfbsoftware » Wed Nov 14, 2018 7:50 am

Would you be interested in a proposed 'Developer Edition' of Astrobe? It would be equivalent to a Professional Edition with the addition of:
a) A source code licence for the Astrobe command-line linker.
b) A single-user Professional Edition licence for CPIde - the tool we used to develop the linker.
The cost would be $US 2500 per user.

If you had this I believe that you could implement the sort of specialised customisation that you are referring to.
cfbsoftware
Site Admin
 
Posts: 355
Joined: Fri Dec 31, 2010 12:30 pm

Re: Vector table in FLASH

Postby Marc » Wed Nov 14, 2018 8:14 am

Thanks for the offer, but if I would really need such a "linker possibility" then i would opt for a more "cost efficient way" like the Component Pascal Cross-Compiler, which includes this feature, from https://www.mikroe.com/mikropascal-arm
Marc
 
Posts: 12
Joined: Thu Oct 04, 2018 3:41 pm

Re: Vector table in FLASH

Postby cfbsoftware » Wed Nov 14, 2018 10:57 am

I can understand the confusion but be aware that Pascal and Component Pascal are as different as C and C#.

Component Pascal is the language we use in association with C# to develop the Astrobe IDE and compiler.
cfbsoftware
Site Admin
 
Posts: 355
Joined: Fri Dec 31, 2010 12:30 pm


Return to Getting Started

cron