From: Wolfgang R. <wol...@ra...> - 2001-01-18 21:58:01
|
Hello, I finished extensions to sdcc.2.2.1 to support Cypress EZUSB controllers with sdcc. Because aslink don't support ABS without Ouverlay some extensions to sdcc are necessary to generate vectored interrupt jump tables at addresses 0xXX80 any 0xX100. I don't find any way to let aslink do the job. Sdcc will now generate these tables with two new options -autovec2 -autovec4 at fixed adresses 0x80 and 0x100 after the normal ISR jump tables. At the moment there are memory gaps between the normal jump tables and 0x80 and 0x100 witch may be filled with normal sdcc 8051 startup code before the main. To generate these interrupt routines a new pragma NOIV is necessary like the Keil compiler to generate interrupt routines without adding them to the normal 8051 interrupt tables. This is done by -noiv switch or pragma NOIV. Because the EZUSB are Dallas 320 cores using dual datapointers at 0x84 and 0x85 also support for those in the ISR like for the 390 flat is include --ddps option. Last but not least two peephole definitions are new. The EZUSB use a lot of memory mapped registers in the XDATA space. These peephole rules reduce code by for actions like XDATA |= 0xXX or XDATA &= 0xXX. With this extensions I ported the Cypress USB developement framework to sdcc. By the way I created a binary rpm file for linux on Redhat 6.x. It seems a lot of newbies have problems building sdcc on linux. So if the developers want to add the extensions to the sdcc distribution please let me know how to come forward with this. Diff files or changes in the CVS? Bye Wolfgang Rapp |