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