- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 muchLink Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Well my idea is, that your program is to big (the hal library makes it really big). First, try to reduce the program size by setting the optimize size compiler option.
Provide more on chip memory. Actually there is project template "Hello world small" for small memory footprints. Or use sdram instead of on chip memory. maybe there are already some solutions in the forum... you try the search function.
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page