Hi,

On STM8, I believe the interrupt table will only ever be as large as the highest IRQ number being handled - e.g. if you define no interrupt handlers in your code, then the table will only contain two entries for reset and trap; if you have a TIM4 handler, then it will be 26 entries; and so forth.

Code should start immediately after the interrupt table, with the reset vector pointing to that location. You don't need to reserve space for the entire interrupt table - is there a particular reason you want to?

Perhaps you could try manually specifying the address of the GSINIT segment with a command line argument: "-Wl-bGSINIT=0x8080".

Regards,
Basil Hussain


On 18/11/2020 22:10, Karsten Langeloh wrote:
Hello everyone,

no this is not the "how do i do interrupts with sdcc" question :)
I have used sdas-stm8 in the past to convert some "old" projects from
STVD to something more usable (aka Makefiles and git) and it worked
great.

For another project I would like to stay away from assembler coding so
I thought I could use sdcc and now have been stuck for a few days
(doing this in my free time).
Maybe someone can give me a hint what I am doing wrong or missing.

The target mcu is a stm8s208.
I have two files: main.c and isr.c
I am using SDCC : hc08/s08/stm8 4.0.0 #11528 (Linux) on Gentoo Linux
Compiling and linking works fine BUT:
In the resulting s19 / lst / map files the vector table only has
entries up to int14 (the one I defined) and directly after that the
_GSINIT code begins - starting somewhere in the vector table ...
I could of course define a service routine for vector 24 (the last
one) but there is still address space 0x806C to 0x807F that is marked
as 'reserved' in the datasheet [1 p.47].
Does anyone know how I can get sdcc to put the code at address 0x8080?

I have looked through the sdcc source code and have a coarse overview
of how this is generated. The number of interrupts is set to 30 (+2
for reset and trap) which would lead to 0x8080. But to find a place in
the code where this can easily be changed would require much more time
I assume (well at least not without really ugly hacks) And I am sure
the must be a better solution since I cannot believe this is the
normal behaviour.

Thanks very much for any hints.

[1] https://www.st.com/resource/en/datasheet/stm8s207mb.pdf


_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to