pdecsub.pas looks like the place to look for, there I also found the
declarations for the other keywords that work with procedures/functions.
I am still not understanding enough of the inner workings of the
compiler so if anybody feels the urge to implement this please go ahead
;-) , for me this would be something for the longterm to try to do it
myself, first I would like to get support for pic32mx done, this burns
more under my fingernails and I am still not atb the end of the learning
curve there.
Michael
Am 17.06.13 15:54, schrieb Pierre Free Pascal:
Maybe the section keyword that was introduced for embedded systems for
variables
(see compiler/pdecvar.pas unit, look for _SECTION and
try_consume_sectiondirective)
should be extended to function/procedure header parsing.
procedure reset; assembler; nostackframe; public name'_reset'; section
'.reset,"ax",@progbits';
would then do all you want.
Pierre Muller
-----Message d'origine-----
De : [email protected] [mailto:fpc-devel-
[email protected]] De la part de Jeppe Græsdal Johansen
Envoyé : lundi 17 juin 2013 08:54
À : FPC developers' list
Objet : Re: [fpc-devel] How can I distribute code in two different memory
areas? (.section)
Den 17-06-2013 08:20, Sergei Gorelkin skrev:
16.06.2013 23:39, Michael Ring пишет:
I had some time this weekend (while beeing grilled by the sun on my
balcony) to work on another
thing that did not work correct and that I did not understand (Now I
do, I least I hope ;-)
As said before in this thread, I wanted to distribute Code in two
different memory areas because
this needs to be done so that pic32 startup code works correctly.
But when I linked my binary the elf-file had always a startup address
somewhere in the wrong memory
area.
This is what I tried:
procedure reset; assembler; nostackframe; public name'_reset';
asm
.section ".reset,\"ax\",@progbits"
la $k0, _startup
jr $k0 //Jump to startup code
nop
.text
end;
In general, the custom section support in compiler needs a lot of
improvement...
Try the following, maybe it could work:
procedure anyname; assembler; nostackframe;
asm
.section ".reset,\"ax\",@progbits"
.globl _reset
_reset: // <-- correct name here
la $k0, _startup
jr $k0
nop
.text
end;
Regards,
Sergei
I agree that it needs some work. Having a way to specify the section
with a procedure directive would largely be preferable I think. Such a
directive could also be interesting for variables and typed constants
Also, I think
.section ".reset"
should work just fine in most cases
_______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel
_______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel
_______________________________________________
fpc-devel maillist - [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel