Mary-Ann,

This is not possible in C with SDCC.

I'd recommend to use a jumptable written in (inline) 
assembly. And to call the function use a function 
pointer.

Maarten

> I'm porting some 8051 assembler into C, and I need to locate some
> functions at specific memory locations.  In assembler, it's something
> like the following:
> 
> ----------------------------------
>       .area   MAIN    (ABS, CODE)
> 
>       .org    BASE + VECT
> vect:
> ----------------------------------
> 
> Can I do the same thing in C and, if so, how?  I tried the following as
> a test, but that didn't work - it ended up at address 0x03B2.
> 
> __code __at 0x4000 void test_func(void)
> {
> ...
> }
> 
> Any ideas welcomed...
> 
> -- 
> Mary-Ann Johnson


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to