Altera_Forum
Honored Contributor
19 years agoCan you help me
Can you help me view my routine and find the error?
I post my routine here. # include "system.h"# include "altera_avalon_pio_regs.h"# include "alt_types.h"# include "altera_avalon_timer_regs.h" alt_u8 led = 0; static void timer_interrupts(void* context, alt_u32 id) { IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_BASE, 0); if(led==7) led=0; else led=led+1; } int main () { alt_irq_register(TIMER_IRQ, (void*) &led, timer_interrupts); (when finished buiding,An error present at above line) IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER_BASE, 0x20); IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER_BASE, 0xBE); IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER_BASE, 7); while (1) { switch(led) { case 0: IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x01); case 1: IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x02); case 2: IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x04); case 3: IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x08); case 4: IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x10); case 5: IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x20); case 6: IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x40); case 7: IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x80); default: IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE, 0x01); } } return 0; } the error messege list at the console window is: make -s all Linking hello_led_0.elf... /cygdrive/d/tools/altera/kits/nios2/bin/nios2-gnutools/H-i686-pc-cygwin/bin/../lib/gcc/nios2-elf/3.4.1/../../../../nios2-elf/bin/ld: region Chip_Ram is full (hello_led_0.elf section .text). Region needs to be 2704 bytes larger. /cygdrive/d/tools/altera/kits/nios2/bin/nios2-gnutools/H-i686-pc-cygwin/bin/../lib/gcc/nios2-elf/3.4.1/../../../../nios2-elf/bin/ld: section .rodata [00002020 -> 0000206f] overlaps section .exceptions [00002020 -> 000021c7] /cygdrive/d/tools/altera/kits/nios2/bin/nios2-gnutools/H-i686-pc-cygwin/bin/../lib/gcc/nios2-elf/3.4.1/../../../../nios2-elf/bin/ld: section .rwdata [00002070 -> 00003a7b] overlaps section .exceptions [00002020 -> 000021c7] /cygdrive/d/tools/altera/kits/nios2/bin/nios2-gnutools/H-i686-pc-cygwin/bin/../lib/gcc/nios2-elf/3.4.1/../../../../nios2-elf/bin/ld: section .bss [00003a7c -> 00003c8f] overlaps section .text [000021c8 -> 00004a8f] collect2: ld returned 1 exit status make: *** [hello_led_0.elf] Error 1 Build completed In addition, I 'm not very clear about the function alt_irq_register( alt_u32 id, void *context, void (* isr)(void *, alt_u32)) for the viod* context; could anybody give me a clear explanation Thanks very much