diff --git a/lights.qsf b/lights.qsf index 33167d9..e273230 100644 --- a/lights.qsf +++ b/lights.qsf @@ -1100,8 +1100,10 @@ set_instance_assignment -name IO_STANDARD LVDS -to HSMC_CLKOUT_N2 set_location_assignment PIN_G24 -to HSMC_CLKOUT_N1 set_instance_assignment -name IO_STANDARD LVDS -to HSMC_CLKOUT_N1 +set_global_assignment -name QIP_FILE software/DE2_115_ASM3_release/mem_init/meminit.qip set_global_assignment -name QSYS_FILE nios_system.qsys set_global_assignment -name SOURCE_FILE nios_system.cmp set_global_assignment -name VHDL_FILE lights.vhd set_global_assignment -name VERILOG_FILE nios_system/synthesis/nios_system.v -set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top \ No newline at end of file +set_instance_assignment -name PARTITION_HIERARCHY root_partition -to | -section_id Top +set_global_assignment -name CDF_FILE output_files/lights.cdf \ No newline at end of file diff --git a/output_file.map b/output_file.map new file mode 100644 index 0000000..86095a4 --- /dev/null +++ b/output_file.map @@ -0,0 +1,11 @@ +BLOCK START ADDRESS END ADDRESS + +Page_0 0x00000000 0x00367F05 + + + +Notes: + +- Data checksum for this conversion is 0xC97DDCE0 + +- All the addresses in this file are byte addresses \ No newline at end of file diff --git a/software/DE2_115_ASM/.cproject b/software/DE2_115_ASM/.cproject deleted file mode 100644 index 7c21de5..0000000 --- a/software/DE2_115_ASM/.cproject +++ /dev/null @@ -1,508 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - make - - mem_init_install - true - false - false - - - make - - mem_init_generate - true - false - false - - - make - - help - true - false - false - - - - diff --git a/software/DE2_115_ASM/.force_relink b/software/DE2_115_ASM/.force_relink deleted file mode 100644 index e69de29..0000000 --- a/software/DE2_115_ASM/.force_relink +++ /dev/null diff --git a/software/DE2_115_ASM/DE2_115_ASM.elf b/software/DE2_115_ASM/DE2_115_ASM.elf deleted file mode 100644 index aaefd07..0000000 --- a/software/DE2_115_ASM/DE2_115_ASM.elf +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM/DE2_115_ASM.map b/software/DE2_115_ASM/DE2_115_ASM.map deleted file mode 100644 index a258896..0000000 --- a/software/DE2_115_ASM/DE2_115_ASM.map +++ /dev/null @@ -1,2510 +0,0 @@ -Archive member included because of file (symbol) - -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) - obj/default/hex_out.o (__divsi3) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) - obj/default/inst_decoder.o (__mulsi3) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) - obj/default/hex_encoder.o (__ctype_ptr) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) - obj/default/hello_world_small.o (sprintf) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) - obj/default/LCD.o (strlen) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) (___vfprintf_internal_r) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__swsetup_r) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (_dtoa_r) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (_fflush_r) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__sinit) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) (_free_r) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__sfvwrite_r) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) (_fwalk_reent) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) (_impure_ptr) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (_localeconv_r) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) (__smakebuf_r) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) (_malloc_r) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (memchr) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (memcpy) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) (memmove) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) (memset) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (_Bfree) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) (_realloc_r) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__isinfd) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__isnand) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) (_sbrk_r) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) (__sclose) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) (strcmp) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) (_write_r) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) (_calloc_r) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) (_close_r) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) (fclose) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) (_fstat_r) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) (errno) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) (_isatty_r) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) (_lseek_r) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) (_read_r) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__udivdi3) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__umoddi3) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__subdf3) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__muldf3) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__divdf3) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__eqdf2) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__nedf2) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__gtdf2) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__gedf2) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__ltdf2) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__floatsidf) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__fixdfsi) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) (__thenan_df) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__floatunsidf) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) (__muldi3) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) (__clz_tab) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) (__clzsi2) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) (__pack_d) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) (__unpack_d) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) (__fpcmp_parts_d) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_close.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) (close) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_close.o) (alt_fd_list) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_errno.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_close.o) (alt_errno) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_fstat.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) (fstat) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_isatty.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) (isatty) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_load.o) - ../DE2_115_ASM_bsp//obj/HAL/src/crt0.o (alt_load) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_lseek.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) (lseek) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) - ../DE2_115_ASM_bsp//obj/HAL/src/crt0.o (alt_main) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_malloc_lock.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) (__malloc_lock) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_read.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) (read) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_release_fd.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_close.o) (alt_release_fd) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sbrk.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) (sbrk) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_usleep.o) - obj/default/LCD.o (usleep) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_write.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) (write) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sys_init.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) (alt_irq_init) -../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_avalon_jtag_uart_read_fd) -../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_avalon_jtag_uart_init) -../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) (altera_avalon_jtag_uart_ioctl) -../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) (altera_avalon_jtag_uart_read) -../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) (altera_avalon_jtag_uart_write) -../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_avalon_lcd_16207_init) -../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_avalon_lcd_16207_write_fd) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_alarm_start.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) (alt_alarm_start) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_busy_sleep.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_usleep.o) (alt_busy_sleep) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_load.o) (alt_dcache_flush_all) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sys_init.o) (alt_dev_llist_insert) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_ctors.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) (_do_ctors) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_dtors.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) (_do_dtors) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_icache_flush_all.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_load.o) (alt_icache_flush_all) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) (alt_ic_isr_register) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic_isr_register.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic.o) (alt_iic_isr_register) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_io_redirect.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) (alt_io_redirect) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_entry.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic_isr_register.o) (alt_irq_entry) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_handler.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic_isr_register.o) (alt_irq_handler) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_vars.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic.o) (alt_irq_active) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_open.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_io_redirect.o) (open) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_tick.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) (_alt_tick_rate) -../DE2_115_ASM_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_nios2_qsys_irq_init) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exception_entry.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_entry.o) (alt_exception) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_dev.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_open.o) (alt_find_dev) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_file.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_open.o) (alt_find_file) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_get_fd.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_open.o) (alt_get_fd) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) (atexit) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) (exit) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) - ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_dev.o) (memcmp) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) (__register_exitproc) -c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) (__call_exitprocs) -../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exit.o) - c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) (_exit) - -Allocating common symbols -Common symbol size file - -alt_irq 0x100 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_handler.o) -errno 0x4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) -stack 0x5 obj/default/hello_world_small.o -global_registers 0xf obj/default/sys_register.o -_atexit0 0x190 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) - -Memory Configuration - -Name Origin Length Attributes -reset 0x00000000 0x00000020 -onchip_memory 0x00000020 0x00031fe0 -*default* 0x00000000 0xffffffff - -Linker script and memory map - -LOAD ../DE2_115_ASM_bsp//obj/HAL/src/crt0.o -LOAD obj/default/LCD.o -LOAD obj/default/hello_world_small.o -LOAD obj/default/hex_encoder.o -LOAD obj/default/hex_out.o -LOAD obj/default/input_int.o -LOAD obj/default/inst_decoder.o -LOAD obj/default/lcd_out.o -LOAD obj/default/sys_debug.o -LOAD obj/default/sys_except.o -LOAD obj/default/sys_memory.o -LOAD obj/default/sys_prog.o -LOAD obj/default/sys_register.o -LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libstdc++.a -LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libm.a -LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a -START GROUP -LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a -LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a -LOAD ../DE2_115_ASM_bsp/\libhal_bsp.a -END GROUP -LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a - 0x00000000 __alt_mem_onchip_memory = 0x0 - -.entry 0x00000000 0x20 - *(.entry) - .entry 0x00000000 0x20 ../DE2_115_ASM_bsp//obj/HAL/src/crt0.o - 0x00000000 __reset - -.exceptions 0x00000020 0x194 - 0x00000020 PROVIDE (__ram_exceptions_start, ABSOLUTE (.)) - 0x00000020 . = ALIGN (0x20) - *(.irq) - *(.exceptions.entry.label) - .exceptions.entry.label - 0x00000020 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_entry.o) - 0x00000020 alt_irq_entry - .exceptions.entry.label - 0x00000020 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exception_entry.o) - 0x00000020 alt_exception - *(.exceptions.entry.user) - *(.exceptions.entry) - .exceptions.entry - 0x00000020 0x54 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exception_entry.o) - *(.exceptions.irqtest.user) - *(.exceptions.irqtest) - .exceptions.irqtest - 0x00000074 0x10 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_entry.o) - *(.exceptions.irqhandler.user) - *(.exceptions.irqhandler) - .exceptions.irqhandler - 0x00000084 0x4 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_entry.o) - *(.exceptions.irqreturn.user) - *(.exceptions.irqreturn) - .exceptions.irqreturn - 0x00000088 0x4 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_entry.o) - *(.exceptions.notirq.label) - .exceptions.notirq.label - 0x0000008c 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_entry.o) - *(.exceptions.notirq.user) - *(.exceptions.notirq) - .exceptions.notirq - 0x0000008c 0x8 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exception_entry.o) - *(.exceptions.soft.user) - *(.exceptions.soft) - *(.exceptions.unknown.user) - *(.exceptions.unknown) - .exceptions.unknown - 0x00000094 0x4 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exception_entry.o) - *(.exceptions.exit.label) - .exceptions.exit.label - 0x00000098 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_entry.o) - .exceptions.exit.label - 0x00000098 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exception_entry.o) - *(.exceptions.exit.user) - *(.exceptions.exit) - .exceptions.exit - 0x00000098 0x54 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exception_entry.o) - *(.exceptions) - .exceptions 0x000000ec 0xc8 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_handler.o) - 0x000000ec alt_irq_handler - 0x000001b4 PROVIDE (__ram_exceptions_end, ABSOLUTE (.)) - 0x00000020 PROVIDE (__flash_exceptions_start, LOADADDR (.exceptions)) - -.text 0x000001b4 0xfddc - 0x000001b4 PROVIDE (stext, ABSOLUTE (.)) - *(.interp) - *(.hash) - *(.dynsym) - *(.dynstr) - *(.gnu.version) - *(.gnu.version_d) - *(.gnu.version_r) - *(.rel.init) - *(.rela.init) - *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) - *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) - *(.rel.fini) - *(.rela.fini) - *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) - *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) - *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) - *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) - *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) - *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) - *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) - *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) - *(.rel.ctors) - *(.rela.ctors) - *(.rel.dtors) - *(.rela.dtors) - *(.rel.got) - *(.rela.got) - *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) - *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) - *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) - *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) - *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) - *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) - *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) - *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) - *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) - *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) - *(.rel.plt) - *(.rela.plt) - *(.rel.dyn) - *(.init) - *(.plt) - *(.text .stub .text.* .gnu.linkonce.t.*) - .text 0x000001b4 0x3c ../DE2_115_ASM_bsp//obj/HAL/src/crt0.o - 0x000001b4 _start - .text 0x000001f0 0x1ec obj/default/LCD.o - 0x000001f0 LCD_Init - 0x0000028c LCD_Show_Text - 0x00000314 LCD_Line2 - 0x00000350 LCD_Test - .text 0x000003dc 0x7ac obj/default/hello_world_small.o - 0x0000049c store_value - 0x00000580 store_inst - 0x000006c4 print_change_memory - 0x00000900 main - .text 0x00000b88 0x630 obj/default/hex_encoder.o - 0x00000b88 encodeNumHex - 0x00000d64 encodeLatHex - .text 0x000011b8 0x318 obj/default/hex_out.o - 0x000011b8 print_block - 0x00001348 clear_block - 0x000013d8 print_number - .text 0x000014d0 0x2c0 obj/default/input_int.o - 0x000014d0 in_int - 0x000015e0 push_decode - 0x0000168c push_int - .text 0x00001790 0x75c obj/default/inst_decoder.o - 0x00001790 inst_fetch - 0x000017dc inst_decode - 0x00001a54 inst_jump - 0x00001ab0 inst_output - 0x00001b20 inst_load - 0x00001b58 inst_store - 0x00001b90 inst_delay - 0x00001bec inst_add - 0x00001c48 inst_sub - 0x00001ca4 inst_comp - 0x00001d74 inst_jeq - 0x00001de0 inst_jne - 0x00001e4c inst_jieq - 0x00001e9c inst_jine - .text 0x00001eec 0xc8 obj/default/lcd_out.o - 0x00001eec lcd_init - 0x00001f34 lcd_caret_reset - 0x00001f5c lcd_caret_reset2 - 0x00001f84 lcd_print - .text 0x00001fb4 0x588 obj/default/sys_debug.o - 0x00001fb4 display_inst - 0x00002060 display_mem - 0x000020cc convertRegName - 0x0000223c convertInstName - 0x00002500 delay10ms - .text 0x0000253c 0x40 obj/default/sys_except.o - 0x0000253c panic - .text 0x0000257c 0x240 obj/default/sys_memory.o - 0x0000257c memory_init - 0x000025f8 inst_memory_store - 0x00002648 inst_memory_load - 0x00002690 memory_store - 0x0000272c memory_load - .text 0x000027bc 0x2cc obj/default/sys_prog.o - 0x000027bc inc_pc - 0x00002840 add_pc - 0x00002890 set_pc - 0x000028c8 get_pc - 0x00002938 run_proc - .text 0x00002a88 0x50 obj/default/sys_register.o - 0x00002a88 registers_init - .text 0x00002ad8 0x14c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) - 0x00002b54 __divsi3 - 0x00002bb4 __modsi3 - 0x00002c14 __udivsi3 - 0x00002c1c __umodsi3 - .text 0x00002c24 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) - 0x00002c24 __mulsi3 - .text 0x00002c5c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) - .text 0x00002c5c 0xd4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) - 0x00002c5c sprintf - 0x00002cd0 _sprintf_r - .text 0x00002d30 0x74 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) - 0x00002d30 strlen - .text 0x00002da4 0x1f40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) - 0x00002dfc ___vfprintf_internal_r - 0x00004cc0 __vfprintf_internal - .text 0x00004ce4 0x13c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) - 0x00004ce4 __swsetup_r - .text 0x00004e20 0x17f8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) - 0x00005064 _dtoa_r - .text 0x00006618 0x230 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) - 0x00006618 _fflush_r - 0x00006814 fflush - .text 0x00006848 0x2f4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) - 0x000068a0 __sfp_lock_acquire - 0x000068a4 __sfp_lock_release - 0x000068a8 __sinit_lock_acquire - 0x000068ac __sinit_lock_release - 0x000068b0 __sinit - 0x00006964 __fp_unlock_all - 0x0000697c __fp_lock_all - 0x00006994 _cleanup_r - 0x000069a0 _cleanup - 0x000069b0 __sfmoreglue - 0x00006a4c __sfp - .text 0x00006b3c 0x440 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) - 0x00006b3c _malloc_trim_r - 0x00006c68 _free_r - .text 0x00006f7c 0x49c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) - 0x00006f7c __sfvwrite_r - .text 0x00007418 0x180 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) - 0x00007418 _fwalk_reent - 0x000074e0 _fwalk - .text 0x00007598 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) - .text 0x00007598 0xc4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) - 0x00007598 __locale_charset - 0x000075a0 _localeconv_r - 0x000075ac localeconv - 0x000075bc _setlocale_r - 0x00007640 setlocale - .text 0x0000765c 0x194 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) - 0x0000765c __smakebuf_r - .text 0x000077f0 0x740 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) - 0x000077f0 _malloc_r - .text 0x00007f30 0xe4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) - 0x00007f30 memchr - .text 0x00008014 0xa0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) - 0x00008014 memcpy - .text 0x000080b4 0xe0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) - 0x000080b4 memmove - .text 0x00008194 0x98 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) - 0x00008194 memset - .text 0x0000822c 0x108c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) - 0x0000822c _Bfree - 0x00008254 __hi0bits - 0x000082c4 __lo0bits - 0x00008388 __mcmp - 0x000083e8 __ulp - 0x00008468 __b2d - 0x00008588 __ratio - 0x00008638 _mprec_log10 - 0x000086cc __copybits - 0x00008724 __any_on - 0x000087ac _Balloc - 0x00008868 __d2b - 0x000089e4 __mdiff - 0x00008b70 __lshift - 0x00008cbc __multiply - 0x00008f10 __i2b - 0x00008f4c __multadd - 0x00009078 __pow5mult - 0x00009198 __s2b - .text 0x000092b8 0x5f4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) - 0x000092b8 _realloc_r - .text 0x000098ac 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) - 0x000098ac __isinfd - .text 0x000098ec 0x30 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) - 0x000098ec __isnand - .text 0x0000991c 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) - 0x0000991c _sbrk_r - .text 0x0000998c 0x14c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) - 0x0000998c __sclose - 0x00009994 __sseek - 0x000099fc __swrite - 0x00009a78 __sread - .text 0x00009ad8 0xbc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) - 0x00009ad8 strcmp - .text 0x00009b94 0x78 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) - 0x00009b94 _write_r - .text 0x00009c0c 0xc8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) - 0x00009c0c _calloc_r - .text 0x00009cd4 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) - 0x00009cd4 _close_r - .text 0x00009d44 0x124 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) - 0x00009d44 _fclose_r - 0x00009e54 fclose - .text 0x00009e68 0x74 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) - 0x00009e68 _fstat_r - .text 0x00009edc 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) - .text 0x00009edc 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) - 0x00009edc _isatty_r - .text 0x00009f4c 0x78 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) - 0x00009f4c _lseek_r - .text 0x00009fc4 0x78 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) - 0x00009fc4 _read_r - .text 0x0000a03c 0x66c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) - 0x0000a03c __udivdi3 - .text 0x0000a6a8 0x660 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) - 0x0000a6a8 __umoddi3 - .text 0x0000ad08 0x504 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) - 0x0000b118 __subdf3 - 0x0000b198 __adddf3 - .text 0x0000b20c 0x3c4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) - 0x0000b20c __muldf3 - .text 0x0000b5d0 0x258 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) - 0x0000b5d0 __divdf3 - .text 0x0000b828 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) - 0x0000b828 __eqdf2 - .text 0x0000b8b0 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) - 0x0000b8b0 __nedf2 - .text 0x0000b938 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) - 0x0000b938 __gtdf2 - .text 0x0000b9c0 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) - 0x0000b9c0 __gedf2 - .text 0x0000ba48 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) - 0x0000ba48 __ltdf2 - .text 0x0000bad0 0xf8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) - 0x0000bad0 __floatsidf - .text 0x0000bbc8 0xd8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) - 0x0000bbc8 __fixdfsi - .text 0x0000bca0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) - .text 0x0000bca0 0x194 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) - 0x0000bca0 __floatunsidf - .text 0x0000be34 0x124 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) - 0x0000be34 __muldi3 - .text 0x0000bf58 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) - .text 0x0000bf58 0x80 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) - 0x0000bf58 __clzsi2 - .text 0x0000bfd8 0x314 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) - 0x0000bfd8 __pack_d - .text 0x0000c2ec 0x138 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) - 0x0000c2ec __unpack_d - .text 0x0000c424 0xc8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) - 0x0000c424 __fpcmp_parts_d - .text 0x0000c4ec 0x160 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_close.o) - 0x0000c4ec close - .text 0x0000c64c 0x2c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev.o) - .text 0x0000c678 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_errno.o) - .text 0x0000c678 0x138 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_fstat.o) - 0x0000c678 fstat - .text 0x0000c7b0 0x124 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_isatty.o) - 0x0000c7b0 isatty - .text 0x0000c8d4 0xec ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_load.o) - 0x0000c8d4 alt_load - .text 0x0000c9c0 0x154 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_lseek.o) - 0x0000c9c0 lseek - .text 0x0000cb14 0x6c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) - 0x0000cb14 alt_main - .text 0x0000cb80 0x40 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_malloc_lock.o) - 0x0000cb80 __malloc_lock - 0x0000cba0 __malloc_unlock - .text 0x0000cbc0 0x184 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_read.o) - 0x0000cbc0 read - .text 0x0000cd44 0x78 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_release_fd.o) - 0x0000cd44 alt_release_fd - .text 0x0000cdbc 0xbc ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sbrk.o) - 0x0000cdbc sbrk - .text 0x0000ce78 0x30 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_usleep.o) - 0x0000ce78 usleep - .text 0x0000cea8 0x184 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_write.o) - 0x0000cea8 write - .text 0x0000d02c 0xc8 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sys_init.o) - 0x0000d02c alt_irq_init - 0x0000d060 alt_sys_init - .text 0x0000d0f4 0x148 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) - 0x0000d0f4 altera_avalon_jtag_uart_read_fd - 0x0000d14c altera_avalon_jtag_uart_write_fd - 0x0000d1a4 altera_avalon_jtag_uart_close_fd - 0x0000d1ec altera_avalon_jtag_uart_ioctl_fd - .text 0x0000d23c 0x40c ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) - 0x0000d23c altera_avalon_jtag_uart_init - 0x0000d5d4 altera_avalon_jtag_uart_close - .text 0x0000d648 0xf4 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) - 0x0000d648 altera_avalon_jtag_uart_ioctl - .text 0x0000d73c 0x224 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) - 0x0000d73c altera_avalon_jtag_uart_read - .text 0x0000d960 0x240 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) - 0x0000d960 altera_avalon_jtag_uart_write - .text 0x0000dba0 0xf80 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) - 0x0000e3dc altera_avalon_lcd_16207_write - 0x0000e9e4 altera_avalon_lcd_16207_init - .text 0x0000eb20 0x58 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) - 0x0000eb20 altera_avalon_lcd_16207_write_fd - .text 0x0000eb78 0x154 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_alarm_start.o) - 0x0000eb78 alt_alarm_start - .text 0x0000eccc 0x15c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_busy_sleep.o) - 0x0000eccc alt_busy_sleep - .text 0x0000ee28 0x1c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) - 0x0000ee28 alt_dcache_flush_all - .text 0x0000ee44 0x114 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) - 0x0000ee44 alt_dev_llist_insert - .text 0x0000ef58 0x64 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_ctors.o) - 0x0000ef58 _do_ctors - .text 0x0000efbc 0x64 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_dtors.o) - 0x0000efbc _do_dtors - .text 0x0000f020 0x1c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_icache_flush_all.o) - 0x0000f020 alt_icache_flush_all - .text 0x0000f03c 0x1d4 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic.o) - 0x0000f03c alt_ic_isr_register - 0x0000f08c alt_ic_irq_enable - 0x0000f128 alt_ic_irq_disable - 0x0000f1c8 alt_ic_irq_enabled - .text 0x0000f210 0xf8 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic_isr_register.o) - 0x0000f210 alt_iic_isr_register - .text 0x0000f308 0x150 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_io_redirect.o) - 0x0000f3e0 alt_io_redirect - .text 0x0000f458 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_entry.o) - .text 0x0000f458 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_handler.o) - .text 0x0000f458 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_vars.o) - .text 0x0000f458 0x2e4 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_open.o) - 0x0000f550 open - .text 0x0000f73c 0x1a4 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_tick.o) - 0x0000f73c alt_alarm_stop - 0x0000f7d4 alt_tick - .text 0x0000f8e0 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) - 0x0000f8e0 altera_nios2_qsys_irq_init - .text 0x0000f900 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exception_entry.o) - .text 0x0000f900 0x94 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_dev.o) - 0x0000f900 alt_find_dev - .text 0x0000f994 0x120 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_file.o) - 0x0000f994 alt_find_file - .text 0x0000fab4 0xd0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_get_fd.o) - 0x0000fab4 alt_get_fd - .text 0x0000fb84 0x14 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) - 0x0000fb84 atexit - .text 0x0000fb98 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) - 0x0000fb98 exit - .text 0x0000fbd0 0x74 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) - 0x0000fbd0 memcmp - .text 0x0000fc44 0x134 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) - 0x0000fc44 __register_exitproc - .text 0x0000fd78 0x1b4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) - 0x0000fd7c __call_exitprocs - .text 0x0000ff2c 0x60 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exit.o) - 0x0000ff6c _exit - *(.gnu.warning.*) - *(.fini) - 0x0000ff8c PROVIDE (__etext, ABSOLUTE (.)) - 0x0000ff8c PROVIDE (_etext, ABSOLUTE (.)) - 0x0000ff8c PROVIDE (etext, ABSOLUTE (.)) - *(.eh_frame_hdr) - 0x0000ff8c . = ALIGN (0x4) - 0x0000ff8c PROVIDE (__preinit_array_start, ABSOLUTE (.)) - *(.preinit_array) - 0x0000ff8c PROVIDE (__preinit_array_end, ABSOLUTE (.)) - 0x0000ff8c PROVIDE (__init_array_start, ABSOLUTE (.)) - *(.init_array) - 0x0000ff8c PROVIDE (__init_array_end, ABSOLUTE (.)) - 0x0000ff8c PROVIDE (__fini_array_start, ABSOLUTE (.)) - *(.fini_array) - 0x0000ff8c PROVIDE (__fini_array_end, ABSOLUTE (.)) - *(.eh_frame) - *(.gcc_except_table) - *(.dynamic) - 0x0000ff8c PROVIDE (__CTOR_LIST__, ABSOLUTE (.)) - *(.ctors) - *(SORT(.ctors.*)) - .ctors.65535 0x0000ff8c 0x4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) - 0x0000ff90 PROVIDE (__CTOR_END__, ABSOLUTE (.)) - 0x0000ff90 PROVIDE (__DTOR_LIST__, ABSOLUTE (.)) - *(.dtors) - *(SORT(.dtors.*)) - 0x0000ff90 PROVIDE (__DTOR_END__, ABSOLUTE (.)) - *(.jcr) - 0x0000ff90 . = ALIGN (0x4) - -.rodata 0x0000ff90 0x724 - 0x0000ff90 PROVIDE (__ram_rodata_start, ABSOLUTE (.)) - 0x0000ff90 . = ALIGN (0x4) - *(.rodata .rodata.* .gnu.linkonce.r.*) - .rodata 0x0000ff90 0x28 obj/default/LCD.o - .rodata 0x0000ffb8 0xac obj/default/hello_world_small.o - .rodata 0x00010064 0xc obj/default/hex_out.o - .rodata 0x00010070 0x8 obj/default/inst_decoder.o - .rodata 0x00010078 0x40 obj/default/sys_debug.o - .rodata 0x000100b8 0x8 obj/default/sys_except.o - .rodata 0x000100c0 0x24 obj/default/sys_prog.o - .rodata 0x000100e4 0x281 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) - 0x000100e4 _ctype_ - *fill* 0x00010365 0x3 00 - .rodata.str1.4 - 0x00010368 0x5e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) - 0x60 (size before relaxing) - .rodata 0x000103c6 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) - *fill* 0x000103e6 0x2 00 - .rodata.str1.4 - 0x000103e8 0x10 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) - 0x14 (size before relaxing) - .rodata.str1.4 - 0x000103f8 0x2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) - 0x4 (size before relaxing) - *fill* 0x000103fa 0x2 00 - .rodata.str1.4 - 0x000103fc 0x10 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) - 0x18 (size before relaxing) - .rodata 0x0001040c 0x30 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) - .rodata 0x0001043c 0x124 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) - 0x0001043c __mprec_tens - 0x00010504 __mprec_bigtens - 0x0001052c __mprec_tinytens - .rodata 0x00010560 0x14 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) - 0x00010560 __thenan_df - .rodata 0x00010574 0x100 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) - 0x00010574 __clz_tab - .rodata 0x00010674 0xc ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev.o) - .rodata 0x00010680 0x10 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) - .rodata 0x00010690 0x24 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sys_init.o) - *(.rodata1) - 0x000106b4 . = ALIGN (0x4) - 0x000106b4 PROVIDE (__ram_rodata_end, ABSOLUTE (.)) - 0x0000ff90 PROVIDE (__flash_rodata_start, LOADADDR (.rodata)) - -.rwdata 0x000106b4 0x1b88 load address 0x0001223c - 0x000106b4 PROVIDE (__ram_rwdata_start, ABSOLUTE (.)) - 0x000106b4 . = ALIGN (0x4) - *(.got.plt) - *(.got) - *(.data1) - *(.data .data.* .gnu.linkonce.d.*) - .data 0x000106b4 0x0 ../DE2_115_ASM_bsp//obj/HAL/src/crt0.o - .data 0x000106b4 0x0 obj/default/LCD.o - .data 0x000106b4 0x0 obj/default/hello_world_small.o - .data 0x000106b4 0x0 obj/default/hex_encoder.o - .data 0x000106b4 0x0 obj/default/hex_out.o - .data 0x000106b4 0x0 obj/default/input_int.o - .data 0x000106b4 0x0 obj/default/inst_decoder.o - .data 0x000106b4 0x0 obj/default/lcd_out.o - .data 0x000106b4 0x0 obj/default/sys_debug.o - .data 0x000106b4 0x0 obj/default/sys_except.o - .data 0x000106b4 0x0 obj/default/sys_memory.o - .data 0x000106b4 0x0 obj/default/sys_prog.o - .data 0x000106b4 0x0 obj/default/sys_register.o - .data 0x000106b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) - .data 0x000106b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) - .data 0x000106b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) - .data 0x000106b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) - .data 0x000106b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) - .data 0x000106b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) - .data 0x000106b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) - .data 0x000106b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) - .data 0x000106b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) - .data 0x000106b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) - .data 0x000106b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) - .data 0x000106b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) - .data 0x000106b4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) - .data 0x000106b4 0x400 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) - .data 0x00010ab4 0xc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) - 0x00010ab4 __lc_ctype - .data 0x00010ac0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) - .data 0x00010ac0 0x408 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) - 0x00010ac0 __malloc_av_ - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) - .data 0x00010ec8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) - .data 0x00010ec8 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_close.o) - .data 0x00010ec8 0x1a8 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev.o) - 0x00010ec8 alt_dev_null - 0x00010ef0 alt_fd_list - .data 0x00011070 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_errno.o) - .data 0x00011070 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_fstat.o) - .data 0x00011070 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_isatty.o) - .data 0x00011070 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_load.o) - .data 0x00011070 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_lseek.o) - .data 0x00011070 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) - .data 0x00011070 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_malloc_lock.o) - .data 0x00011070 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_read.o) - .data 0x00011070 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_release_fd.o) - .data 0x00011070 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sbrk.o) - .data 0x00011070 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_usleep.o) - .data 0x00011070 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_write.o) - .data 0x00011070 0x1180 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sys_init.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_alarm_start.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_busy_sleep.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_ctors.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_dtors.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_icache_flush_all.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic_isr_register.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_io_redirect.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_entry.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_handler.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_vars.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_open.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_tick.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exception_entry.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_dev.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_file.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_get_fd.o) - .data 0x000121f0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) - .data 0x000121f0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) - .data 0x000121f0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) - .data 0x000121f0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) - .data 0x000121f0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) - .data 0x000121f0 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exit.o) - 0x0001a1f0 _gp = ABSOLUTE ((. + 0x8000)) - 0x0001a1f0 PROVIDE (gp, _gp) - *(.rwdata .rwdata.*) - *(.sdata .sdata.* .gnu.linkonce.s.*) - .sdata 0x000121f0 0x1 obj/default/input_int.o - 0x000121f0 PUSH_EVENT - *fill* 0x000121f1 0x3 00 - .sdata 0x000121f4 0x4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) - 0x000121f4 __ctype_ptr - .sdata 0x000121f8 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) - 0x000121f8 _impure_ptr - 0x000121fc _global_impure_ptr - .sdata 0x00012200 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) - 0x00012200 __mb_cur_max - .sdata 0x00012208 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) - 0x00012208 __malloc_trim_threshold - 0x0001220c __malloc_sbrk_base - .sdata 0x00012210 0x14 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev.o) - 0x00012210 alt_fs_list - 0x00012218 alt_dev_list - 0x00012220 alt_max_fd - .sdata 0x00012224 0x4 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_errno.o) - 0x00012224 alt_errno - .sdata 0x00012228 0x4 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sbrk.o) - .sdata 0x0001222c 0x4 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) - .sdata 0x00012230 0x4 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_vars.o) - 0x00012230 alt_priority_mask - .sdata 0x00012234 0x8 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_tick.o) - 0x00012234 alt_alarm_list - *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) - 0x0001223c . = ALIGN (0x4) - 0x0001223c _edata = ABSOLUTE (.) - 0x0001223c PROVIDE (edata, ABSOLUTE (.)) - 0x0001223c PROVIDE (__ram_rwdata_end, ABSOLUTE (.)) - 0x0001223c PROVIDE (__flash_rwdata_start, LOADADDR (.rwdata)) - -.bss 0x00013dc4 0x810 - 0x00013dc4 __bss_start = ABSOLUTE (.) - 0x00013dc4 PROVIDE (__sbss_start, ABSOLUTE (.)) - 0x00013dc4 PROVIDE (___sbss_start, ABSOLUTE (.)) - *(.dynsbss) - *(.sbss .sbss.* .gnu.linkonce.sb.*) - .sbss 0x00013dc4 0x5 obj/default/hello_world_small.o - 0x00013dc4 stack - *fill* 0x00013dc9 0x3 00 - .sbss 0x00013dcc 0x8 obj/default/input_int.o - .sbss 0x00013dd4 0x4 obj/default/sys_memory.o - 0x00013dd4 global_current_memory - .sbss 0x00013dd8 0xc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) - 0x00013dd8 __nlocale_changed - 0x00013ddc __mlocale_changed - 0x00013de0 _PathLocale - .sbss 0x00013de4 0xc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) - 0x00013de4 __malloc_top_pad - 0x00013de8 __malloc_max_sbrked_mem - 0x00013dec __malloc_max_total_mem - .sbss 0x00013df0 0x4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) - 0x00013df0 errno - .sbss 0x00013df4 0xc ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) - 0x00013df4 alt_argc - 0x00013df8 alt_argv - 0x00013dfc alt_envp - .sbss 0x00013e00 0x4 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_vars.o) - 0x00013e00 alt_irq_active - .sbss 0x00013e04 0x8 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_tick.o) - 0x00013e04 _alt_tick_rate - 0x00013e08 _alt_nticks - *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) - *(.scommon) - 0x00013e0c PROVIDE (__sbss_end, ABSOLUTE (.)) - 0x00013e0c PROVIDE (___sbss_end, ABSOLUTE (.)) - *(.dynbss) - *(.bss .bss.* .gnu.linkonce.b.*) - .bss 0x00013e0c 0x0 ../DE2_115_ASM_bsp//obj/HAL/src/crt0.o - .bss 0x00013e0c 0x0 obj/default/LCD.o - .bss 0x00013e0c 0x0 obj/default/hello_world_small.o - .bss 0x00013e0c 0x0 obj/default/hex_encoder.o - .bss 0x00013e0c 0x0 obj/default/hex_out.o - .bss 0x00013e0c 0x0 obj/default/input_int.o - .bss 0x00013e0c 0x0 obj/default/inst_decoder.o - .bss 0x00013e0c 0x0 obj/default/lcd_out.o - .bss 0x00013e0c 0x0 obj/default/sys_debug.o - .bss 0x00013e0c 0x0 obj/default/sys_except.o - .bss 0x00013e0c 0x500 obj/default/sys_memory.o - .bss 0x0001430c 0x0 obj/default/sys_prog.o - .bss 0x0001430c 0x0 obj/default/sys_register.o - .bss 0x0001430c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) - .bss 0x0001430c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) - .bss 0x0001430c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) - .bss 0x0001430c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) - .bss 0x0001430c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) - .bss 0x0001430c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) - .bss 0x0001430c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) - .bss 0x0001430c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) - .bss 0x0001430c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) - .bss 0x0001430c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) - .bss 0x0001430c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) - .bss 0x0001430c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) - .bss 0x0001430c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) - .bss 0x0001430c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) - .bss 0x0001430c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) - .bss 0x0001430c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) - .bss 0x0001430c 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) - 0x0001430c __malloc_current_mallinfo - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_close.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_errno.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_fstat.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_isatty.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_load.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_lseek.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_malloc_lock.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_read.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_release_fd.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sbrk.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_usleep.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_write.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sys_init.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_alarm_start.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_busy_sleep.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_ctors.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_dtors.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_icache_flush_all.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic_isr_register.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_io_redirect.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_entry.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_handler.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_vars.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_open.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_tick.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exception_entry.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_dev.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_file.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_get_fd.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) - .bss 0x00014334 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) - .bss 0x00014334 0x0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exit.o) - *(COMMON) - COMMON 0x00014334 0xf obj/default/sys_register.o - 0x00014334 global_registers - *fill* 0x00014343 0x1 00 - COMMON 0x00014344 0x100 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_handler.o) - 0x00014344 alt_irq - COMMON 0x00014444 0x190 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) - 0x00014444 _atexit0 - 0x000145d4 . = ALIGN (0x4) - 0x000145d4 __bss_end = ABSOLUTE (.) - -.onchip_memory 0x000145d4 0x0 - 0x000145d4 PROVIDE (_alt_partition_onchip_memory_start, ABSOLUTE (.)) - *(.onchip_memory. onchip_memory.*) - 0x000145d4 . = ALIGN (0x4) - 0x000145d4 PROVIDE (_alt_partition_onchip_memory_end, ABSOLUTE (.)) - 0x000145d4 _end = ABSOLUTE (.) - 0x000145d4 end = ABSOLUTE (.) - 0x000145d4 __alt_stack_base = ABSOLUTE (.) - 0x000145d4 PROVIDE (_alt_partition_onchip_memory_load_addr, LOADADDR (.onchip_memory)) - -.stab - *(.stab) - -.stabstr - *(.stabstr) - -.stab.excl - *(.stab.excl) - -.stab.exclstr - *(.stab.exclstr) - -.stab.index - *(.stab.index) - -.stab.indexstr - *(.stab.indexstr) - -.comment 0x00000000 0x26 - *(.comment) - .comment 0x00000000 0x26 obj/default/LCD.o - 0x27 (size before relaxing) - .comment 0x00000000 0x27 obj/default/hello_world_small.o - .comment 0x00000000 0x27 obj/default/hex_encoder.o - .comment 0x00000000 0x27 obj/default/hex_out.o - .comment 0x00000000 0x27 obj/default/input_int.o - .comment 0x00000000 0x27 obj/default/inst_decoder.o - .comment 0x00000000 0x27 obj/default/lcd_out.o - .comment 0x00000000 0x27 obj/default/sys_debug.o - .comment 0x00000000 0x27 obj/default/sys_except.o - .comment 0x00000000 0x27 obj/default/sys_memory.o - .comment 0x00000000 0x27 obj/default/sys_prog.o - .comment 0x00000000 0x27 obj/default/sys_register.o - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_close.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_errno.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_fstat.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_isatty.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_load.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_lseek.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_malloc_lock.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_read.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_release_fd.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sbrk.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_usleep.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_write.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sys_init.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_alarm_start.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_busy_sleep.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_ctors.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_dtors.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_icache_flush_all.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic_isr_register.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_io_redirect.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_handler.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_vars.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_open.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_tick.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_dev.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_file.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_get_fd.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) - .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) - .comment 0x00000000 0x27 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exit.o) - -.debug - *(.debug) - -.line - *(.line) - -.debug_srcinfo - *(.debug_srcinfo) - -.debug_sfnames - *(.debug_sfnames) - -.debug_aranges 0x00000000 0xe18 - *(.debug_aranges) - .debug_aranges - 0x00000000 0x28 ../DE2_115_ASM_bsp//obj/HAL/src/crt0.o - .debug_aranges - 0x00000028 0x20 obj/default/LCD.o - .debug_aranges - 0x00000048 0x20 obj/default/hello_world_small.o - .debug_aranges - 0x00000068 0x20 obj/default/hex_encoder.o - .debug_aranges - 0x00000088 0x20 obj/default/hex_out.o - .debug_aranges - 0x000000a8 0x20 obj/default/input_int.o - .debug_aranges - 0x000000c8 0x20 obj/default/inst_decoder.o - .debug_aranges - 0x000000e8 0x20 obj/default/lcd_out.o - .debug_aranges - 0x00000108 0x20 obj/default/sys_debug.o - .debug_aranges - 0x00000128 0x20 obj/default/sys_except.o - .debug_aranges - 0x00000148 0x20 obj/default/sys_memory.o - .debug_aranges - 0x00000168 0x20 obj/default/sys_prog.o - .debug_aranges - 0x00000188 0x20 obj/default/sys_register.o - .debug_aranges - 0x000001a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) - .debug_aranges - 0x000001c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) - .debug_aranges - 0x000001e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) - .debug_aranges - 0x00000208 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) - .debug_aranges - 0x00000228 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) - .debug_aranges - 0x00000248 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) - .debug_aranges - 0x00000268 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) - .debug_aranges - 0x00000288 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) - .debug_aranges - 0x000002a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) - .debug_aranges - 0x000002c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) - .debug_aranges - 0x000002e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) - .debug_aranges - 0x00000308 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) - .debug_aranges - 0x00000328 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) - .debug_aranges - 0x00000348 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) - .debug_aranges - 0x00000368 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) - .debug_aranges - 0x00000388 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) - .debug_aranges - 0x000003a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) - .debug_aranges - 0x000003c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) - .debug_aranges - 0x000003e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) - .debug_aranges - 0x00000408 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) - .debug_aranges - 0x00000428 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) - .debug_aranges - 0x00000448 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) - .debug_aranges - 0x00000468 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) - .debug_aranges - 0x00000488 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) - .debug_aranges - 0x000004a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) - .debug_aranges - 0x000004c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) - .debug_aranges - 0x000004e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) - .debug_aranges - 0x00000508 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) - .debug_aranges - 0x00000528 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) - .debug_aranges - 0x00000548 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) - .debug_aranges - 0x00000568 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) - .debug_aranges - 0x00000588 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) - .debug_aranges - 0x000005a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) - .debug_aranges - 0x000005c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) - .debug_aranges - 0x000005e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) - .debug_aranges - 0x00000608 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) - .debug_aranges - 0x00000628 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) - .debug_aranges - 0x00000648 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) - .debug_aranges - 0x00000668 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) - .debug_aranges - 0x00000688 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) - .debug_aranges - 0x000006a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) - .debug_aranges - 0x000006c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) - .debug_aranges - 0x000006e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) - .debug_aranges - 0x00000708 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) - .debug_aranges - 0x00000728 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) - .debug_aranges - 0x00000748 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) - .debug_aranges - 0x00000768 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) - .debug_aranges - 0x00000788 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) - .debug_aranges - 0x000007a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) - .debug_aranges - 0x000007c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) - .debug_aranges - 0x000007e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) - .debug_aranges - 0x00000808 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) - .debug_aranges - 0x00000828 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_close.o) - .debug_aranges - 0x00000848 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev.o) - .debug_aranges - 0x00000868 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_fstat.o) - .debug_aranges - 0x00000888 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_isatty.o) - .debug_aranges - 0x000008a8 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_load.o) - .debug_aranges - 0x000008c8 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_lseek.o) - .debug_aranges - 0x000008e8 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) - .debug_aranges - 0x00000908 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_malloc_lock.o) - .debug_aranges - 0x00000928 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_read.o) - .debug_aranges - 0x00000948 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_release_fd.o) - .debug_aranges - 0x00000968 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sbrk.o) - .debug_aranges - 0x00000988 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_usleep.o) - .debug_aranges - 0x000009a8 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_write.o) - .debug_aranges - 0x000009c8 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sys_init.o) - .debug_aranges - 0x000009e8 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) - .debug_aranges - 0x00000a08 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) - .debug_aranges - 0x00000a28 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) - .debug_aranges - 0x00000a48 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) - .debug_aranges - 0x00000a68 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) - .debug_aranges - 0x00000a88 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) - .debug_aranges - 0x00000aa8 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) - .debug_aranges - 0x00000ac8 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_alarm_start.o) - .debug_aranges - 0x00000ae8 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_busy_sleep.o) - .debug_aranges - 0x00000b08 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) - .debug_aranges - 0x00000b28 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) - .debug_aranges - 0x00000b48 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_ctors.o) - .debug_aranges - 0x00000b68 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_dtors.o) - .debug_aranges - 0x00000b88 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_icache_flush_all.o) - .debug_aranges - 0x00000ba8 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic.o) - .debug_aranges - 0x00000bc8 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic_isr_register.o) - .debug_aranges - 0x00000be8 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_io_redirect.o) - .debug_aranges - 0x00000c08 0x30 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_entry.o) - .debug_aranges - 0x00000c38 0x28 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_handler.o) - .debug_aranges - 0x00000c60 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_open.o) - .debug_aranges - 0x00000c80 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_tick.o) - .debug_aranges - 0x00000ca0 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) - .debug_aranges - 0x00000cc0 0x38 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exception_entry.o) - .debug_aranges - 0x00000cf8 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_dev.o) - .debug_aranges - 0x00000d18 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_file.o) - .debug_aranges - 0x00000d38 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_get_fd.o) - .debug_aranges - 0x00000d58 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) - .debug_aranges - 0x00000d78 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) - .debug_aranges - 0x00000d98 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) - .debug_aranges - 0x00000db8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) - .debug_aranges - 0x00000dd8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) - .debug_aranges - 0x00000df8 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exit.o) - -.debug_pubnames - 0x00000000 0x17d8 - *(.debug_pubnames) - .debug_pubnames - 0x00000000 0x4c obj/default/LCD.o - .debug_pubnames - 0x0000004c 0x5c obj/default/hello_world_small.o - .debug_pubnames - 0x000000a8 0x34 obj/default/hex_encoder.o - .debug_pubnames - 0x000000dc 0x43 obj/default/hex_out.o - .debug_pubnames - 0x0000011f 0x49 obj/default/input_int.o - .debug_pubnames - 0x00000168 0xd9 obj/default/inst_decoder.o - .debug_pubnames - 0x00000241 0x56 obj/default/lcd_out.o - .debug_pubnames - 0x00000297 0x68 obj/default/sys_debug.o - .debug_pubnames - 0x000002ff 0x1c obj/default/sys_except.o - .debug_pubnames - 0x0000031b 0x88 obj/default/sys_memory.o - .debug_pubnames - 0x000003a3 0x4b obj/default/sys_prog.o - .debug_pubnames - 0x000003ee 0x3a obj/default/sys_register.o - .debug_pubnames - 0x00000428 0x48 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) - .debug_pubnames - 0x00000470 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) - .debug_pubnames - 0x0000048f 0x2e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) - .debug_pubnames - 0x000004bd 0x2d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) - .debug_pubnames - 0x000004ea 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) - .debug_pubnames - 0x00000507 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) - .debug_pubnames - 0x0000054c 0x22 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) - .debug_pubnames - 0x0000056e 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) - .debug_pubnames - 0x0000058c 0x2b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) - .debug_pubnames - 0x000005b7 0xdb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) - .debug_pubnames - 0x00000692 0x31 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) - .debug_pubnames - 0x000006c3 0x23 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) - .debug_pubnames - 0x000006e6 0x2e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) - .debug_pubnames - 0x00000714 0x39 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) - .debug_pubnames - 0x0000074d 0xc3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) - .debug_pubnames - 0x00000810 0x23 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) - .debug_pubnames - 0x00000833 0xce c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) - .debug_pubnames - 0x00000901 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) - .debug_pubnames - 0x0000091e 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) - .debug_pubnames - 0x0000093b 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) - .debug_pubnames - 0x00000959 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) - .debug_pubnames - 0x00000976 0x13a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) - .debug_pubnames - 0x00000ab0 0x21 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) - .debug_pubnames - 0x00000ad1 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) - .debug_pubnames - 0x00000af0 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) - .debug_pubnames - 0x00000b0f 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) - .debug_pubnames - 0x00000b2d 0x44 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) - .debug_pubnames - 0x00000b71 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) - .debug_pubnames - 0x00000b8e 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) - .debug_pubnames - 0x00000bad 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) - .debug_pubnames - 0x00000bcd 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) - .debug_pubnames - 0x00000bec 0x2b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) - .debug_pubnames - 0x00000c17 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) - .debug_pubnames - 0x00000c36 0x1c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) - .debug_pubnames - 0x00000c52 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) - .debug_pubnames - 0x00000c72 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) - .debug_pubnames - 0x00000c91 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) - .debug_pubnames - 0x00000caf 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) - .debug_pubnames - 0x00000ccf 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) - .debug_pubnames - 0x00000cef 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) - .debug_pubnames - 0x00000d1b 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) - .debug_pubnames - 0x00000d3a 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) - .debug_pubnames - 0x00000d59 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) - .debug_pubnames - 0x00000d77 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) - .debug_pubnames - 0x00000d95 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) - .debug_pubnames - 0x00000db3 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) - .debug_pubnames - 0x00000dd1 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) - .debug_pubnames - 0x00000def 0x22 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) - .debug_pubnames - 0x00000e11 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) - .debug_pubnames - 0x00000e31 0x22 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) - .debug_pubnames - 0x00000e53 0x24 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) - .debug_pubnames - 0x00000e77 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) - .debug_pubnames - 0x00000e96 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) - .debug_pubnames - 0x00000eb6 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) - .debug_pubnames - 0x00000ed5 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) - .debug_pubnames - 0x00000ef4 0x21 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) - .debug_pubnames - 0x00000f15 0x26 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) - .debug_pubnames - 0x00000f3b 0x1c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_close.o) - .debug_pubnames - 0x00000f57 0x63 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev.o) - .debug_pubnames - 0x00000fba 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_errno.o) - .debug_pubnames - 0x00000fda 0x1c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_fstat.o) - .debug_pubnames - 0x00000ff6 0x1d ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_isatty.o) - .debug_pubnames - 0x00001013 0x1f ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_load.o) - .debug_pubnames - 0x00001032 0x1c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_lseek.o) - .debug_pubnames - 0x0000104e 0x46 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) - .debug_pubnames - 0x00001094 0x38 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_malloc_lock.o) - .debug_pubnames - 0x000010cc 0x1b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_read.o) - .debug_pubnames - 0x000010e7 0x25 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_release_fd.o) - .debug_pubnames - 0x0000110c 0x1b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sbrk.o) - .debug_pubnames - 0x00001127 0x1d ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_usleep.o) - .debug_pubnames - 0x00001144 0x1c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_write.o) - .debug_pubnames - 0x00001160 0x34 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sys_init.o) - .debug_pubnames - 0x00001194 0xa5 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) - .debug_pubnames - 0x00001239 0x55 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) - .debug_pubnames - 0x0000128e 0x34 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) - .debug_pubnames - 0x000012c2 0x33 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) - .debug_pubnames - 0x000012f5 0x34 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) - .debug_pubnames - 0x00001329 0x55 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) - .debug_pubnames - 0x0000137e 0x37 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) - .debug_pubnames - 0x000013b5 0x26 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_alarm_start.o) - .debug_pubnames - 0x000013db 0x25 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_busy_sleep.o) - .debug_pubnames - 0x00001400 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) - .debug_pubnames - 0x0000142b 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) - .debug_pubnames - 0x00001456 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_ctors.o) - .debug_pubnames - 0x00001476 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_dtors.o) - .debug_pubnames - 0x00001496 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_icache_flush_all.o) - .debug_pubnames - 0x000014c1 0x6e ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic.o) - .debug_pubnames - 0x0000152f 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic_isr_register.o) - .debug_pubnames - 0x0000155a 0x26 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_io_redirect.o) - .debug_pubnames - 0x00001580 0x32 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_handler.o) - .debug_pubnames - 0x000015b2 0x3b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_vars.o) - .debug_pubnames - 0x000015ed 0x1b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_open.o) - .debug_pubnames - 0x00001608 0x68 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_tick.o) - .debug_pubnames - 0x00001670 0x31 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) - .debug_pubnames - 0x000016a1 0x23 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_dev.o) - .debug_pubnames - 0x000016c4 0x24 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_file.o) - .debug_pubnames - 0x000016e8 0x21 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_get_fd.o) - .debug_pubnames - 0x00001709 0x2a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) - .debug_pubnames - 0x00001733 0x1b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) - .debug_pubnames - 0x0000174e 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) - .debug_pubnames - 0x0000176b 0x2a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) - .debug_pubnames - 0x00001795 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) - .debug_pubnames - 0x000017bc 0x1c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exit.o) - -.debug_info 0x00000000 0x251cd - *(.debug_info .gnu.linkonce.wi.*) - .debug_info 0x00000000 0x7b ../DE2_115_ASM_bsp//obj/HAL/src/crt0.o - .debug_info 0x0000007b 0x1e0 obj/default/LCD.o - .debug_info 0x0000025b 0x4d1 obj/default/hello_world_small.o - .debug_info 0x0000072c 0x14d obj/default/hex_encoder.o - .debug_info 0x00000879 0x1d6 obj/default/hex_out.o - .debug_info 0x00000a4f 0x333 obj/default/input_int.o - .debug_info 0x00000d82 0x589 obj/default/inst_decoder.o - .debug_info 0x0000130b 0x1ac obj/default/lcd_out.o - .debug_info 0x000014b7 0x3ac obj/default/sys_debug.o - .debug_info 0x00001863 0x8f obj/default/sys_except.o - .debug_info 0x000018f2 0x37e obj/default/sys_memory.o - .debug_info 0x00001c70 0x2fd obj/default/sys_prog.o - .debug_info 0x00001f6d 0xfe obj/default/sys_register.o - .debug_info 0x0000206b 0x21c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) - .debug_info 0x00002287 0xf3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) - .debug_info 0x0000237a 0xa0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) - .debug_info 0x0000241a 0xa16 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) - .debug_info 0x00002e30 0xdb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) - .debug_info 0x00002f0b 0x10d5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) - .debug_info 0x00003fe0 0x95d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) - .debug_info 0x0000493d 0xd6f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) - .debug_info 0x000056ac 0x9fe c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) - .debug_info 0x000060aa 0xb72 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) - .debug_info 0x00006c1c 0xbc9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) - .debug_info 0x000077e5 0xa88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) - .debug_info 0x0000826d 0xaed c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) - .debug_info 0x00008d5a 0x93d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) - .debug_info 0x00009697 0xb97 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) - .debug_info 0x0000a22e 0xb1a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) - .debug_info 0x0000ad48 0xcd0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) - .debug_info 0x0000ba18 0x138 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) - .debug_info 0x0000bb50 0x106 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) - .debug_info 0x0000bc56 0x13e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) - .debug_info 0x0000bd94 0x113 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) - .debug_info 0x0000bea7 0x143b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) - .debug_info 0x0000d2e2 0xbd7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) - .debug_info 0x0000deb9 0xd7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) - .debug_info 0x0000df90 0xd5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) - .debug_info 0x0000e065 0x962 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) - .debug_info 0x0000e9c7 0xaac c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) - .debug_info 0x0000f473 0xdd c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) - .debug_info 0x0000f550 0x993 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) - .debug_info 0x0000fee3 0xa1b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) - .debug_info 0x000108fe 0x958 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) - .debug_info 0x00011256 0x994 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) - .debug_info 0x00011bea 0xafc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) - .debug_info 0x000126e6 0x8c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) - .debug_info 0x00012772 0x958 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) - .debug_info 0x000130ca 0x981 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) - .debug_info 0x00013a4b 0x98c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) - .debug_info 0x000143d7 0x71c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) - .debug_info 0x00014af3 0x749 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) - .debug_info 0x0001523c 0x493 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) - .debug_info 0x000156cf 0x488 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) - .debug_info 0x00015b57 0x39b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) - .debug_info 0x00015ef2 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) - .debug_info 0x0001618f 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) - .debug_info 0x0001642c 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) - .debug_info 0x000166c9 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) - .debug_info 0x00016966 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) - .debug_info 0x00016c03 0x218 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) - .debug_info 0x00016e1b 0x2cd c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) - .debug_info 0x000170e8 0x164 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) - .debug_info 0x0001724c 0x213 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) - .debug_info 0x0001745f 0x210 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) - .debug_info 0x0001766f 0xc9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) - .debug_info 0x00017738 0x130 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) - .debug_info 0x00017868 0x2fc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) - .debug_info 0x00017b64 0x268 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) - .debug_info 0x00017dcc 0x21b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) - .debug_info 0x00017fe7 0x467 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_close.o) - .debug_info 0x0001844e 0x67f ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev.o) - .debug_info 0x00018acd 0x164 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_errno.o) - .debug_info 0x00018c31 0x660 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_fstat.o) - .debug_info 0x00019291 0x666 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_isatty.o) - .debug_info 0x000198f7 0x28d ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_load.o) - .debug_info 0x00019b84 0x49a ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_lseek.o) - .debug_info 0x0001a01e 0x225 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) - .debug_info 0x0001a243 0xc18 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_malloc_lock.o) - .debug_info 0x0001ae5b 0x68a ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_read.o) - .debug_info 0x0001b4e5 0x3f2 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_release_fd.o) - .debug_info 0x0001b8d7 0x2b7 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sbrk.o) - .debug_info 0x0001bb8e 0x168 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_usleep.o) - .debug_info 0x0001bcf6 0x693 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_write.o) - .debug_info 0x0001c389 0x907 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sys_init.o) - .debug_info 0x0001cc90 0x7d9 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) - .debug_info 0x0001d469 0x601 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) - .debug_info 0x0001da6a 0x443 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) - .debug_info 0x0001dead 0x546 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) - .debug_info 0x0001e3f3 0x53e ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) - .debug_info 0x0001e931 0x8ee ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) - .debug_info 0x0001f21f 0x712 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) - .debug_info 0x0001f931 0x442 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_alarm_start.o) - .debug_info 0x0001fd73 0x1ab ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_busy_sleep.o) - .debug_info 0x0001ff1e 0x15c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) - .debug_info 0x0002007a 0x2b7 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) - .debug_info 0x00020331 0x10f ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_ctors.o) - .debug_info 0x00020440 0x10e ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_dtors.o) - .debug_info 0x0002054e 0x15c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_icache_flush_all.o) - .debug_info 0x000206aa 0x493 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic.o) - .debug_info 0x00020b3d 0x314 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic_isr_register.o) - .debug_info 0x00020e51 0x695 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_io_redirect.o) - .debug_info 0x000214e6 0x84 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_entry.o) - .debug_info 0x0002156a 0x275 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_handler.o) - .debug_info 0x000217df 0x167 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_vars.o) - .debug_info 0x00021946 0x525 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_open.o) - .debug_info 0x00021e6b 0x3fe ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_tick.o) - .debug_info 0x00022269 0x163 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) - .debug_info 0x000223cc 0x8a ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exception_entry.o) - .debug_info 0x00022456 0x418 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_dev.o) - .debug_info 0x0002286e 0x41f ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_file.o) - .debug_info 0x00022c8d 0x460 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_get_fd.o) - .debug_info 0x000230ed 0x181 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) - .debug_info 0x0002326e 0x93f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) - .debug_info 0x00023bad 0x115 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) - .debug_info 0x00023cc2 0x99c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) - .debug_info 0x0002465e 0x9e2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) - .debug_info 0x00025040 0x18d ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exit.o) - -.debug_abbrev 0x00000000 0x8258 - *(.debug_abbrev) - .debug_abbrev 0x00000000 0x12 ../DE2_115_ASM_bsp//obj/HAL/src/crt0.o - .debug_abbrev 0x00000012 0xa7 obj/default/LCD.o - .debug_abbrev 0x000000b9 0x146 obj/default/hello_world_small.o - .debug_abbrev 0x000001ff 0x75 obj/default/hex_encoder.o - .debug_abbrev 0x00000274 0x87 obj/default/hex_out.o - .debug_abbrev 0x000002fb 0x12f obj/default/input_int.o - .debug_abbrev 0x0000042a 0xe4 obj/default/inst_decoder.o - .debug_abbrev 0x0000050e 0x71 obj/default/lcd_out.o - .debug_abbrev 0x0000057f 0xe9 obj/default/sys_debug.o - .debug_abbrev 0x00000668 0x27 obj/default/sys_except.o - .debug_abbrev 0x0000068f 0x101 obj/default/sys_memory.o - .debug_abbrev 0x00000790 0xe5 obj/default/sys_prog.o - .debug_abbrev 0x00000875 0x66 obj/default/sys_register.o - .debug_abbrev 0x000008db 0xe0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) - .debug_abbrev 0x000009bb 0x7b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) - .debug_abbrev 0x00000a36 0x61 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) - .debug_abbrev 0x00000a97 0x191 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) - .debug_abbrev 0x00000c28 0x8b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) - .debug_abbrev 0x00000cb3 0x30a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) - .debug_abbrev 0x00000fbd 0x170 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) - .debug_abbrev 0x0000112d 0x232 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) - .debug_abbrev 0x0000135f 0x1c6 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) - .debug_abbrev 0x00001525 0x24c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) - .debug_abbrev 0x00001771 0x1d9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) - .debug_abbrev 0x0000194a 0x1a3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) - .debug_abbrev 0x00001aed 0x1e3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) - .debug_abbrev 0x00001cd0 0x157 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) - .debug_abbrev 0x00001e27 0x1ed c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) - .debug_abbrev 0x00002014 0x197 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) - .debug_abbrev 0x000021ab 0x216 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) - .debug_abbrev 0x000023c1 0xb5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) - .debug_abbrev 0x00002476 0xb5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) - .debug_abbrev 0x0000252b 0xb5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) - .debug_abbrev 0x000025e0 0xb8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) - .debug_abbrev 0x00002698 0x297 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) - .debug_abbrev 0x0000292f 0x1c3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) - .debug_abbrev 0x00002af2 0x79 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) - .debug_abbrev 0x00002b6b 0x79 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) - .debug_abbrev 0x00002be4 0x18c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) - .debug_abbrev 0x00002d70 0x1c9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) - .debug_abbrev 0x00002f39 0x80 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) - .debug_abbrev 0x00002fb9 0x184 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) - .debug_abbrev 0x0000313d 0x1b8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) - .debug_abbrev 0x000032f5 0x17f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) - .debug_abbrev 0x00003474 0x1a7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) - .debug_abbrev 0x0000361b 0x18e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) - .debug_abbrev 0x000037a9 0x3b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) - .debug_abbrev 0x000037e4 0x17f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) - .debug_abbrev 0x00003963 0x18e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) - .debug_abbrev 0x00003af1 0x17f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) - .debug_abbrev 0x00003c70 0x16b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) - .debug_abbrev 0x00003ddb 0x18e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) - .debug_abbrev 0x00003f69 0x1d2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) - .debug_abbrev 0x0000413b 0x204 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) - .debug_abbrev 0x0000433f 0x1e3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) - .debug_abbrev 0x00004522 0x151 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) - .debug_abbrev 0x00004673 0x151 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) - .debug_abbrev 0x000047c4 0x151 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) - .debug_abbrev 0x00004915 0x151 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) - .debug_abbrev 0x00004a66 0x151 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) - .debug_abbrev 0x00004bb7 0x13f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) - .debug_abbrev 0x00004cf6 0x176 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) - .debug_abbrev 0x00004e6c 0xba c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) - .debug_abbrev 0x00004f26 0x155 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) - .debug_abbrev 0x0000507b 0xfb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) - .debug_abbrev 0x00005176 0x61 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) - .debug_abbrev 0x000051d7 0xb9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) - .debug_abbrev 0x00005290 0x1b1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) - .debug_abbrev 0x00005441 0x149 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) - .debug_abbrev 0x0000558a 0x132 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) - .debug_abbrev 0x000056bc 0xfb ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_close.o) - .debug_abbrev 0x000057b7 0xc7 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev.o) - .debug_abbrev 0x0000587e 0x5e ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_errno.o) - .debug_abbrev 0x000058dc 0xfb ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_fstat.o) - .debug_abbrev 0x000059d7 0xfb ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_isatty.o) - .debug_abbrev 0x00005ad2 0x88 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_load.o) - .debug_abbrev 0x00005b5a 0xfb ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_lseek.o) - .debug_abbrev 0x00005c55 0xb7 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) - .debug_abbrev 0x00005d0c 0x181 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_malloc_lock.o) - .debug_abbrev 0x00005e8d 0xfb ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_read.o) - .debug_abbrev 0x00005f88 0xc1 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_release_fd.o) - .debug_abbrev 0x00006049 0x115 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sbrk.o) - .debug_abbrev 0x0000615e 0x5d ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_usleep.o) - .debug_abbrev 0x000061bb 0x100 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_write.o) - .debug_abbrev 0x000062bb 0x158 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sys_init.o) - .debug_abbrev 0x00006413 0xf7 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) - .debug_abbrev 0x0000650a 0x17c ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) - .debug_abbrev 0x00006686 0xf0 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) - .debug_abbrev 0x00006776 0x191 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) - .debug_abbrev 0x00006907 0x18d ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) - .debug_abbrev 0x00006a94 0x1c3 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) - .debug_abbrev 0x00006c57 0x104 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) - .debug_abbrev 0x00006d5b 0x172 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_alarm_start.o) - .debug_abbrev 0x00006ecd 0x6c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_busy_sleep.o) - .debug_abbrev 0x00006f39 0x3f ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) - .debug_abbrev 0x00006f78 0xf6 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) - .debug_abbrev 0x0000706e 0x76 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_ctors.o) - .debug_abbrev 0x000070e4 0x76 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_dtors.o) - .debug_abbrev 0x0000715a 0x3f ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_icache_flush_all.o) - .debug_abbrev 0x00007199 0x134 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic.o) - .debug_abbrev 0x000072cd 0x14e ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic_isr_register.o) - .debug_abbrev 0x0000741b 0xf0 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_io_redirect.o) - .debug_abbrev 0x0000750b 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_entry.o) - .debug_abbrev 0x0000751d 0x10c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_handler.o) - .debug_abbrev 0x00007629 0x44 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_vars.o) - .debug_abbrev 0x0000766d 0x112 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_open.o) - .debug_abbrev 0x0000777f 0x150 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_tick.o) - .debug_abbrev 0x000078cf 0x3f ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) - .debug_abbrev 0x0000790e 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exception_entry.o) - .debug_abbrev 0x00007920 0xcf ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_dev.o) - .debug_abbrev 0x000079ef 0xcf ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_file.o) - .debug_abbrev 0x00007abe 0xfb ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_get_fd.o) - .debug_abbrev 0x00007bb9 0xb7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) - .debug_abbrev 0x00007c70 0x16e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) - .debug_abbrev 0x00007dde 0x7c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) - .debug_abbrev 0x00007e5a 0x1ae c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) - .debug_abbrev 0x00008008 0x1de c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) - .debug_abbrev 0x000081e6 0x72 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exit.o) - -.debug_line 0x00000000 0x15d82 - *(.debug_line) - .debug_line 0x00000000 0x66 ../DE2_115_ASM_bsp//obj/HAL/src/crt0.o - .debug_line 0x00000066 0x301 obj/default/LCD.o - .debug_line 0x00000367 0x5ee obj/default/hello_world_small.o - .debug_line 0x00000955 0x494 obj/default/hex_encoder.o - .debug_line 0x00000de9 0x195 obj/default/hex_out.o - .debug_line 0x00000f7e 0x1bb obj/default/input_int.o - .debug_line 0x00001139 0x452 obj/default/inst_decoder.o - .debug_line 0x0000158b 0x222 obj/default/lcd_out.o - .debug_line 0x000017ad 0x3f4 obj/default/sys_debug.o - .debug_line 0x00001ba1 0x80 obj/default/sys_except.o - .debug_line 0x00001c21 0x12f obj/default/sys_memory.o - .debug_line 0x00001d50 0x33e obj/default/sys_prog.o - .debug_line 0x0000208e 0x7f obj/default/sys_register.o - .debug_line 0x0000210d 0x24f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) - .debug_line 0x0000235c 0x11a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) - .debug_line 0x00002476 0x81 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) - .debug_line 0x000024f7 0x325 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) - .debug_line 0x0000281c 0x270 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) - .debug_line 0x00002a8c 0x110f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) - .debug_line 0x00003b9b 0x2f3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) - .debug_line 0x00003e8e 0x1309 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) - .debug_line 0x00005197 0x410 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) - .debug_line 0x000055a7 0x60c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) - .debug_line 0x00005bb3 0x5ee c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) - .debug_line 0x000061a1 0x644 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) - .debug_line 0x000067e5 0x34d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) - .debug_line 0x00006b32 0x230 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) - .debug_line 0x00006d62 0x2cb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) - .debug_line 0x0000702d 0x3c6 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) - .debug_line 0x000073f3 0x80d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) - .debug_line 0x00007c00 0x306 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) - .debug_line 0x00007f06 0x1af c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) - .debug_line 0x000080b5 0x30d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) - .debug_line 0x000083c2 0x304 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) - .debug_line 0x000086c6 0x125e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) - .debug_line 0x00009924 0x58d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) - .debug_line 0x00009eb1 0x225 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) - .debug_line 0x0000a0d6 0x21d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) - .debug_line 0x0000a2f3 0x29c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) - .debug_line 0x0000a58f 0x38f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) - .debug_line 0x0000a91e 0x2d8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) - .debug_line 0x0000abf6 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) - .debug_line 0x0000ae93 0x25f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) - .debug_line 0x0000b0f2 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) - .debug_line 0x0000b38f 0x2eb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) - .debug_line 0x0000b67a 0x267 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) - .debug_line 0x0000b8e1 0x1e2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) - .debug_line 0x0000bac3 0x29e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) - .debug_line 0x0000bd61 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) - .debug_line 0x0000bffe 0x29c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) - .debug_line 0x0000c29a 0x2f2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) - .debug_line 0x0000c58c 0x405 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) - .debug_line 0x0000c991 0x430 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) - .debug_line 0x0000cdc1 0x3e5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) - .debug_line 0x0000d1a6 0x301 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) - .debug_line 0x0000d4a7 0x129 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) - .debug_line 0x0000d5d0 0x129 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) - .debug_line 0x0000d6f9 0x129 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) - .debug_line 0x0000d822 0x129 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) - .debug_line 0x0000d94b 0x129 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) - .debug_line 0x0000da74 0x175 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) - .debug_line 0x0000dbe9 0x149 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) - .debug_line 0x0000dd32 0x94 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) - .debug_line 0x0000ddc6 0x189 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) - .debug_line 0x0000df4f 0x14f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) - .debug_line 0x0000e09e 0xaa c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) - .debug_line 0x0000e148 0x105 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) - .debug_line 0x0000e24d 0x222 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) - .debug_line 0x0000e46f 0x1e4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) - .debug_line 0x0000e653 0x187 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) - .debug_line 0x0000e7da 0x299 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_close.o) - .debug_line 0x0000ea73 0x254 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev.o) - .debug_line 0x0000ecc7 0x1aa ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_errno.o) - .debug_line 0x0000ee71 0x2a1 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_fstat.o) - .debug_line 0x0000f112 0x2a2 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_isatty.o) - .debug_line 0x0000f3b4 0x217 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_load.o) - .debug_line 0x0000f5cb 0x2a1 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_lseek.o) - .debug_line 0x0000f86c 0x2ca ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) - .debug_line 0x0000fb36 0x20f ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_malloc_lock.o) - .debug_line 0x0000fd45 0x2c8 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_read.o) - .debug_line 0x0001000d 0xed ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_release_fd.o) - .debug_line 0x000100fa 0x261 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sbrk.o) - .debug_line 0x0001035b 0x202 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_usleep.o) - .debug_line 0x0001055d 0x2c9 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_write.o) - .debug_line 0x00010826 0x2eb ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sys_init.o) - .debug_line 0x00010b11 0x217 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) - .debug_line 0x00010d28 0x4ab ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) - .debug_line 0x000111d3 0x317 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) - .debug_line 0x000114ea 0x3f7 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) - .debug_line 0x000118e1 0x405 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) - .debug_line 0x00011ce6 0x8c1 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) - .debug_line 0x000125a7 0x1b7 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) - .debug_line 0x0001275e 0x2dc ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_alarm_start.o) - .debug_line 0x00012a3a 0x25c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_busy_sleep.o) - .debug_line 0x00012c96 0x1b5 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) - .debug_line 0x00012e4b 0x25a ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) - .debug_line 0x000130a5 0x83 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_ctors.o) - .debug_line 0x00013128 0x83 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_dtors.o) - .debug_line 0x000131ab 0x1b5 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_icache_flush_all.o) - .debug_line 0x00013360 0x2c8 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic.o) - .debug_line 0x00013628 0x249 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic_isr_register.o) - .debug_line 0x00013871 0x2b4 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_io_redirect.o) - .debug_line 0x00013b25 0x6b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_entry.o) - .debug_line 0x00013b90 0x248 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_handler.o) - .debug_line 0x00013dd8 0x72 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_vars.o) - .debug_line 0x00013e4a 0x2ff ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_open.o) - .debug_line 0x00014149 0x2dc ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_tick.o) - .debug_line 0x00014425 0x1ce ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) - .debug_line 0x000145f3 0xab ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exception_entry.o) - .debug_line 0x0001469e 0x26b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_dev.o) - .debug_line 0x00014909 0x27c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_file.o) - .debug_line 0x00014b85 0x297 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_get_fd.o) - .debug_line 0x00014e1c 0x203 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) - .debug_line 0x0001501f 0x23b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) - .debug_line 0x0001525a 0x2a2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) - .debug_line 0x000154fc 0x316 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) - .debug_line 0x00015812 0x36a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) - .debug_line 0x00015b7c 0x206 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exit.o) - -.debug_frame 0x00000000 0x202c - *(.debug_frame) - .debug_frame 0x00000000 0x84 obj/default/LCD.o - .debug_frame 0x00000084 0x10c obj/default/hello_world_small.o - .debug_frame 0x00000190 0x48 obj/default/hex_encoder.o - .debug_frame 0x000001d8 0x64 obj/default/hex_out.o - .debug_frame 0x0000023c 0x80 obj/default/input_int.o - .debug_frame 0x000002bc 0x198 obj/default/inst_decoder.o - .debug_frame 0x00000454 0x80 obj/default/lcd_out.o - .debug_frame 0x000004d4 0x9c obj/default/sys_debug.o - .debug_frame 0x00000570 0x2c obj/default/sys_except.o - .debug_frame 0x0000059c 0x9c obj/default/sys_memory.o - .debug_frame 0x00000638 0x9c obj/default/sys_prog.o - .debug_frame 0x000006d4 0x2c obj/default/sys_register.o - .debug_frame 0x00000700 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) - .debug_frame 0x00000770 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) - .debug_frame 0x00000790 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) - .debug_frame 0x000007d0 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) - .debug_frame 0x000007f0 0x64 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) - .debug_frame 0x00000854 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) - .debug_frame 0x00000880 0x64 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) - .debug_frame 0x000008e4 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) - .debug_frame 0x00000924 0x118 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) - .debug_frame 0x00000a3c 0x4c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) - .debug_frame 0x00000a88 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) - .debug_frame 0x00000ac0 0x60 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) - .debug_frame 0x00000b20 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) - .debug_frame 0x00000b90 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) - .debug_frame 0x00000bbc 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) - .debug_frame 0x00000bf4 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) - .debug_frame 0x00000c14 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) - .debug_frame 0x00000c34 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) - .debug_frame 0x00000c54 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) - .debug_frame 0x00000c74 0x228 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) - .debug_frame 0x00000e9c 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) - .debug_frame 0x00000ed4 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) - .debug_frame 0x00000ef4 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) - .debug_frame 0x00000f14 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) - .debug_frame 0x00000f40 0x78 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) - .debug_frame 0x00000fb8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) - .debug_frame 0x00000fd8 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) - .debug_frame 0x00001004 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) - .debug_frame 0x00001030 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) - .debug_frame 0x0000105c 0x3c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) - .debug_frame 0x00001098 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) - .debug_frame 0x000010c4 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) - .debug_frame 0x000010f0 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) - .debug_frame 0x0000111c 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) - .debug_frame 0x00001148 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) - .debug_frame 0x00001180 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) - .debug_frame 0x000011b8 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) - .debug_frame 0x00001228 0x3c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) - .debug_frame 0x00001264 0x30 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) - .debug_frame 0x00001294 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) - .debug_frame 0x000012c0 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) - .debug_frame 0x000012ec 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) - .debug_frame 0x00001318 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) - .debug_frame 0x00001344 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) - .debug_frame 0x00001370 0x30 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) - .debug_frame 0x000013a0 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) - .debug_frame 0x000013c8 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) - .debug_frame 0x00001400 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) - .debug_frame 0x00001440 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) - .debug_frame 0x00001460 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) - .debug_frame 0x0000148c 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) - .debug_frame 0x000014ac 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) - .debug_frame 0x000014cc 0x48 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_close.o) - .debug_frame 0x00001514 0x2c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev.o) - .debug_frame 0x00001540 0x48 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_fstat.o) - .debug_frame 0x00001588 0x48 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_isatty.o) - .debug_frame 0x000015d0 0x48 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_load.o) - .debug_frame 0x00001618 0x48 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_lseek.o) - .debug_frame 0x00001660 0x2c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) - .debug_frame 0x0000168c 0x48 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_malloc_lock.o) - .debug_frame 0x000016d4 0x48 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_read.o) - .debug_frame 0x0000171c 0x30 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_release_fd.o) - .debug_frame 0x0000174c 0x2c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sbrk.o) - .debug_frame 0x00001778 0x2c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_usleep.o) - .debug_frame 0x000017a4 0x48 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_write.o) - .debug_frame 0x000017ec 0x64 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sys_init.o) - .debug_frame 0x00001850 0x80 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) - .debug_frame 0x000018d0 0x80 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) - .debug_frame 0x00001950 0x2c ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) - .debug_frame 0x0000197c 0x2c ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) - .debug_frame 0x000019a8 0x2c ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) - .debug_frame 0x000019d4 0x124 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) - .debug_frame 0x00001af8 0x2c ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) - .debug_frame 0x00001b24 0x2c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_alarm_start.o) - .debug_frame 0x00001b50 0x2c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_busy_sleep.o) - .debug_frame 0x00001b7c 0x2c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) - .debug_frame 0x00001ba8 0x48 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) - .debug_frame 0x00001bf0 0x2c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_ctors.o) - .debug_frame 0x00001c1c 0x2c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_dtors.o) - .debug_frame 0x00001c48 0x2c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_icache_flush_all.o) - .debug_frame 0x00001c74 0x80 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic.o) - .debug_frame 0x00001cf4 0x2c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic_isr_register.o) - .debug_frame 0x00001d20 0x4c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_io_redirect.o) - .debug_frame 0x00001d6c 0x2c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_handler.o) - .debug_frame 0x00001d98 0x68 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_open.o) - .debug_frame 0x00001e00 0x48 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_tick.o) - .debug_frame 0x00001e48 0x2c ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) - .debug_frame 0x00001e74 0x2c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_dev.o) - .debug_frame 0x00001ea0 0x2c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_file.o) - .debug_frame 0x00001ecc 0x30 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_get_fd.o) - .debug_frame 0x00001efc 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) - .debug_frame 0x00001f1c 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) - .debug_frame 0x00001f44 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) - .debug_frame 0x00001f64 0x34 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) - .debug_frame 0x00001f98 0x4c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) - .debug_frame 0x00001fe4 0x48 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exit.o) - -.debug_str 0x00000000 0x23b5 - *(.debug_str) - .debug_str 0x00000000 0x12 obj/default/LCD.o - .debug_str 0x00000012 0x1c obj/default/hello_world_small.o - .debug_str 0x0000002e 0x1f obj/default/inst_decoder.o - .debug_str 0x0000004d 0x12 obj/default/lcd_out.o - .debug_str 0x0000005f 0x25 obj/default/sys_debug.o - .debug_str 0x00000084 0x9 obj/default/sys_memory.o - .debug_str 0x0000008d 0x12 obj/default/sys_prog.o - .debug_str 0x0000009f 0x167 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) - 0x1b4 (size before relaxing) - .debug_str 0x00000206 0x37 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) - 0x175 (size before relaxing) - .debug_str 0x0000023d 0xf0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) - 0x113 (size before relaxing) - .debug_str 0x0000032d 0x457 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) - 0x539 (size before relaxing) - .debug_str 0x00000784 0xe9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) - 0x18b (size before relaxing) - .debug_str 0x0000086d 0x1c4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) - 0x706 (size before relaxing) - .debug_str 0x00000a31 0x49 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) - 0x51a (size before relaxing) - .debug_str 0x00000a7a 0x19c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) - 0x60f (size before relaxing) - .debug_str 0x00000c16 0x68 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) - 0x540 (size before relaxing) - .debug_str 0x00000c7e 0x105 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) - 0x602 (size before relaxing) - .debug_str 0x00000d83 0x15e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) - 0x651 (size before relaxing) - .debug_str 0x00000ee1 0x69 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) - 0x571 (size before relaxing) - .debug_str 0x00000f4a 0x61 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) - 0x543 (size before relaxing) - .debug_str 0x00000fab 0xdf c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) - 0x528 (size before relaxing) - .debug_str 0x0000108a 0x233 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) - 0x6b7 (size before relaxing) - .debug_str 0x000012bd 0x126 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) - 0x614 (size before relaxing) - .debug_str 0x000013e3 0xef c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) - 0x6ff (size before relaxing) - .debug_str 0x000014d2 0x5f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) - 0x199 (size before relaxing) - .debug_str 0x00001531 0x6c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) - 0x136 (size before relaxing) - .debug_str 0x0000159d 0x50 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) - 0x1ab (size before relaxing) - .debug_str 0x000015ed 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) - 0x18c (size before relaxing) - .debug_str 0x00001632 0xfb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) - 0x61c (size before relaxing) - .debug_str 0x0000172d 0x59 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) - 0x5d1 (size before relaxing) - .debug_str 0x00001786 0xea c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) - 0x198 (size before relaxing) - .debug_str 0x00001870 0x49 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) - 0x198 (size before relaxing) - .debug_str 0x000018b9 0x53 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) - 0x519 (size before relaxing) - .debug_str 0x0000190c 0x65 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) - 0x53f (size before relaxing) - .debug_str 0x00001971 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) - 0x171 (size before relaxing) - .debug_str 0x000019b6 0x4f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) - 0x51c (size before relaxing) - .debug_str 0x00001a05 0x19 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) - 0x550 (size before relaxing) - .debug_str 0x00001a1e 0x46 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) - 0x50c (size before relaxing) - .debug_str 0x00001a64 0x4e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) - 0x524 (size before relaxing) - .debug_str 0x00001ab2 0x4c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) - 0x5ff (size before relaxing) - .debug_str 0x00001afe 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) - 0x171 (size before relaxing) - .debug_str 0x00001b3e 0x48 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) - 0x50e (size before relaxing) - .debug_str 0x00001b86 0x46 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) - 0x51a (size before relaxing) - .debug_str 0x00001bcc 0x44 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) - 0x51a (size before relaxing) - .debug_str 0x00001c10 0xb2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) - 0x1f7 (size before relaxing) - .debug_str 0x00001cc2 0xa c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) - 0x1f7 (size before relaxing) - .debug_str 0x00001ccc 0x137 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) - 0x26f (size before relaxing) - .debug_str 0x00001e03 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) - 0x241 (size before relaxing) - .debug_str 0x00001e43 0x35 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) - 0x231 (size before relaxing) - .debug_str 0x00001e78 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) - 0x1fe (size before relaxing) - .debug_str 0x00001e80 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) - 0x1fe (size before relaxing) - .debug_str 0x00001e88 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) - 0x1fe (size before relaxing) - .debug_str 0x00001e90 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) - 0x1fe (size before relaxing) - .debug_str 0x00001e98 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) - 0x1fe (size before relaxing) - .debug_str 0x00001ea0 0x18 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) - 0x1de (size before relaxing) - .debug_str 0x00001eb8 0xa c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) - 0x207 (size before relaxing) - .debug_str 0x00000000 0x1a3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) - .debug_str 0x00001ec2 0x14 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) - 0x1da (size before relaxing) - .debug_str 0x00001ed6 0x9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) - 0x1ac (size before relaxing) - .debug_str 0x00000000 0x161 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) - .debug_str 0x00001edf 0x9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) - 0x17e (size before relaxing) - .debug_str 0x00001ee8 0x10 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) - 0x206 (size before relaxing) - .debug_str 0x00001ef8 0xb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) - 0x1e8 (size before relaxing) - .debug_str 0x00001f03 0x10 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) - 0x1c6 (size before relaxing) - .debug_str 0x00001f13 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_close.o) - .debug_str 0x00001f25 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev.o) - .debug_str 0x00001f37 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_errno.o) - .debug_str 0x00001f49 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_fstat.o) - .debug_str 0x00001f5b 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_isatty.o) - .debug_str 0x00001f6d 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_load.o) - .debug_str 0x00001f7f 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_lseek.o) - .debug_str 0x00001f91 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) - .debug_str 0x00001fa3 0x20 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_malloc_lock.o) - .debug_str 0x00001fc3 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_read.o) - .debug_str 0x00001fd5 0x1a ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sbrk.o) - .debug_str 0x00001fef 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_usleep.o) - .debug_str 0x00002001 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_write.o) - .debug_str 0x00002013 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sys_init.o) - .debug_str 0x00002025 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) - .debug_str 0x00002037 0x1a ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) - .debug_str 0x00002051 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) - .debug_str 0x00002063 0x1a ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) - .debug_str 0x0000207d 0x1a ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) - .debug_str 0x00002097 0x25 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) - .debug_str 0x000020bc 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) - .debug_str 0x000020ce 0x23 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_alarm_start.o) - .debug_str 0x000020f1 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_busy_sleep.o) - .debug_str 0x00002103 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) - .debug_str 0x00002115 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) - .debug_str 0x00002127 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_icache_flush_all.o) - .debug_str 0x00002139 0x18 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic.o) - .debug_str 0x00002151 0x1a ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic_isr_register.o) - .debug_str 0x0000216b 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_io_redirect.o) - .debug_str 0x0000217d 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_handler.o) - .debug_str 0x0000218f 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_open.o) - .debug_str 0x000021a1 0x1a ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_tick.o) - .debug_str 0x000021bb 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) - .debug_str 0x000021cd 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_dev.o) - .debug_str 0x000021df 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_file.o) - .debug_str 0x000021f1 0x12 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_get_fd.o) - .debug_str 0x00002203 0x3e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) - 0x1cd (size before relaxing) - .debug_str 0x00002241 0x41 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) - 0x51a (size before relaxing) - .debug_str 0x00002282 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) - 0x178 (size before relaxing) - .debug_str 0x000022c7 0x54 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) - 0x532 (size before relaxing) - .debug_str 0x0000231b 0x7e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) - 0x55c (size before relaxing) - .debug_str 0x00002399 0x1c ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exit.o) - -.debug_loc 0x00000000 0xc7db - *(.debug_loc) - .debug_loc 0x00000000 0xac obj/default/LCD.o - .debug_loc 0x000000ac 0x183 obj/default/hello_world_small.o - .debug_loc 0x0000022f 0x56 obj/default/hex_encoder.o - .debug_loc 0x00000285 0x81 obj/default/hex_out.o - .debug_loc 0x00000306 0xac obj/default/input_int.o - .debug_loc 0x000003b2 0x25a obj/default/inst_decoder.o - .debug_loc 0x0000060c 0xac obj/default/lcd_out.o - .debug_loc 0x000006b8 0xd7 obj/default/sys_debug.o - .debug_loc 0x0000078f 0x2b obj/default/sys_except.o - .debug_loc 0x000007ba 0xd7 obj/default/sys_memory.o - .debug_loc 0x00000891 0xd7 obj/default/sys_prog.o - .debug_loc 0x00000968 0x2b obj/default/sys_register.o - .debug_loc 0x00000993 0x1d2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) - .debug_loc 0x00000b65 0x4f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) - .debug_loc 0x00000bb4 0xc0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) - .debug_loc 0x00000c74 0x3c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) - .debug_loc 0x00000cb0 0x1dc0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) - .debug_loc 0x00002a70 0x7c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) - .debug_loc 0x00002aec 0x1da7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) - .debug_loc 0x00004893 0x1f6 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) - .debug_loc 0x00004a89 0x1e1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) - .debug_loc 0x00004c6a 0x4a7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) - .debug_loc 0x00005111 0x4e4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) - .debug_loc 0x000055f5 0x1d2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) - .debug_loc 0x000057c7 0xe1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) - .debug_loc 0x000058a8 0x11c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) - .debug_loc 0x000059c4 0xaeb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) - .debug_loc 0x000064af 0x106 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) - .debug_loc 0x000065b5 0xca c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) - .debug_loc 0x0000667f 0x117 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) - .debug_loc 0x00006796 0xa1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) - .debug_loc 0x00006837 0x1547 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) - .debug_loc 0x00007d7e 0x8c0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) - .debug_loc 0x0000863e 0x36 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) - .debug_loc 0x00008674 0x18 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) - .debug_loc 0x0000868c 0x5b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) - .debug_loc 0x000086e7 0x21f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) - .debug_loc 0x00008906 0x65 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) - .debug_loc 0x0000896b 0x97 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) - .debug_loc 0x00008a02 0xff c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) - .debug_loc 0x00008b01 0x5b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) - .debug_loc 0x00008b5c 0xe4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) - .debug_loc 0x00008c40 0x79 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) - .debug_loc 0x00008cb9 0x5b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) - .debug_loc 0x00008d14 0x97 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) - .debug_loc 0x00008dab 0x97 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) - .debug_loc 0x00008e42 0xc12 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) - .debug_loc 0x00009a54 0xbcc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) - .debug_loc 0x0000a620 0x47a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) - .debug_loc 0x0000aa9a 0x3b4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) - .debug_loc 0x0000ae4e 0x1df c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) - .debug_loc 0x0000b02d 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) - .debug_loc 0x0000b09d 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) - .debug_loc 0x0000b10d 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) - .debug_loc 0x0000b17d 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) - .debug_loc 0x0000b1ed 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) - .debug_loc 0x0000b25d 0x9a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) - .debug_loc 0x0000b2f7 0x8b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) - .debug_loc 0x0000b382 0x5b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) - .debug_loc 0x0000b3dd 0x103 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) - .debug_loc 0x0000b4e0 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) - .debug_loc 0x0000b4fe 0x184 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) - .debug_loc 0x0000b682 0xe5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) - .debug_loc 0x0000b767 0x56 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_close.o) - .debug_loc 0x0000b7bd 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev.o) - .debug_loc 0x0000b7e8 0x56 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_fstat.o) - .debug_loc 0x0000b83e 0x57 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_isatty.o) - .debug_loc 0x0000b895 0x56 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_load.o) - .debug_loc 0x0000b8eb 0x56 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_lseek.o) - .debug_loc 0x0000b941 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_main.o) - .debug_loc 0x0000b96c 0x56 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_malloc_lock.o) - .debug_loc 0x0000b9c2 0x56 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_read.o) - .debug_loc 0x0000ba18 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_release_fd.o) - .debug_loc 0x0000ba43 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sbrk.o) - .debug_loc 0x0000ba6e 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_usleep.o) - .debug_loc 0x0000ba99 0x56 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_write.o) - .debug_loc 0x0000baef 0x81 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_sys_init.o) - .debug_loc 0x0000bb70 0xac ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) - .debug_loc 0x0000bc1c 0xac ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) - .debug_loc 0x0000bcc8 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) - .debug_loc 0x0000bcf3 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) - .debug_loc 0x0000bd1e 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) - .debug_loc 0x0000bd49 0x184 ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) - .debug_loc 0x0000becd 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) - .debug_loc 0x0000bef8 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_alarm_start.o) - .debug_loc 0x0000bf23 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_busy_sleep.o) - .debug_loc 0x0000bf4e 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) - .debug_loc 0x0000bf79 0x56 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) - .debug_loc 0x0000bfcf 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_ctors.o) - .debug_loc 0x0000bffa 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_do_dtors.o) - .debug_loc 0x0000c025 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_icache_flush_all.o) - .debug_loc 0x0000c050 0xac ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic.o) - .debug_loc 0x0000c0fc 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_iic_isr_register.o) - .debug_loc 0x0000c127 0x56 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_io_redirect.o) - .debug_loc 0x0000c17d 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_handler.o) - .debug_loc 0x0000c1a8 0x81 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_open.o) - .debug_loc 0x0000c229 0x56 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_tick.o) - .debug_loc 0x0000c27f 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) - .debug_loc 0x0000c2aa 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_dev.o) - .debug_loc 0x0000c2d5 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_find_file.o) - .debug_loc 0x0000c300 0x2b ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_get_fd.o) - .debug_loc 0x0000c32b 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) - .debug_loc 0x0000c349 0x3d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) - .debug_loc 0x0000c386 0x114 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) - .debug_loc 0x0000c49a 0x120 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) - .debug_loc 0x0000c5ba 0x1cb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) - .debug_loc 0x0000c785 0x56 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exit.o) - -.debug_macinfo - *(.debug_macinfo) - -.debug_weaknames - *(.debug_weaknames) - -.debug_funcnames - *(.debug_funcnames) - -.debug_typenames - *(.debug_typenames) - -.debug_varnames - *(.debug_varnames) - -.debug_alt_sim_info - 0x00000000 0x40 - *(.debug_alt_sim_info) - .debug_alt_sim_info - 0x00000000 0x10 ../DE2_115_ASM_bsp//obj/HAL/src/crt0.o - .debug_alt_sim_info - 0x00000010 0x30 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_busy_sleep.o) - 0x00032000 __alt_data_end = 0x32000 - 0x00032000 PROVIDE (__alt_stack_pointer, __alt_data_end) - 0x000145d4 PROVIDE (__alt_stack_limit, __alt_stack_base) - 0x000145d4 PROVIDE (__alt_heap_start, end) - 0x00032000 PROVIDE (__alt_heap_limit, 0x32000) -OUTPUT(DE2_115_ASM.elf elf32-littlenios2) - -.debug_ranges 0x00000000 0x9e0 - .debug_ranges 0x00000000 0x20 ../DE2_115_ASM_bsp//obj/HAL/src/crt0.o - .debug_ranges 0x00000020 0x168 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) - .debug_ranges 0x00000188 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) - .debug_ranges 0x000001a8 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) - .debug_ranges 0x000001d0 0xa0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) - .debug_ranges 0x00000270 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) - .debug_ranges 0x000002e0 0x110 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) - .debug_ranges 0x000003f0 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) - .debug_ranges 0x00000428 0x190 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) - .debug_ranges 0x000005b8 0x1c0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) - .debug_ranges 0x00000778 0x30 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) - .debug_ranges 0x000007a8 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) - .debug_ranges 0x00000830 0x50 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) - .debug_ranges 0x00000880 0x18 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) - .debug_ranges 0x00000898 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) - .debug_ranges 0x00000920 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) - .debug_ranges 0x00000948 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) - .debug_ranges 0x00000970 0x28 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_irq_entry.o) - .debug_ranges 0x00000998 0x30 ../DE2_115_ASM_bsp/\libhal_bsp.a(alt_exception_entry.o) - .debug_ranges 0x000009c8 0x18 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) diff --git a/software/DE2_115_ASM/DE2_115_ASM.objdump b/software/DE2_115_ASM/DE2_115_ASM.objdump deleted file mode 100644 index 6936a86..0000000 --- a/software/DE2_115_ASM/DE2_115_ASM.objdump +++ /dev/null @@ -1,20932 +0,0 @@ - -DE2_115_ASM.elf: file format elf32-littlenios2 -DE2_115_ASM.elf -architecture: nios2, flags 0x00000112: -EXEC_P, HAS_SYMS, D_PAGED -start address 0x000001b4 - -Program Header: - LOAD off 0x00001000 vaddr 0x00000000 paddr 0x00000000 align 2**12 - filesz 0x00000020 memsz 0x00000020 flags r-x - LOAD off 0x00001020 vaddr 0x00000020 paddr 0x00000020 align 2**12 - filesz 0x00010694 memsz 0x00010694 flags r-x - LOAD off 0x000116b4 vaddr 0x000106b4 paddr 0x0001223c align 2**12 - filesz 0x00001b88 memsz 0x00001b88 flags rw- - LOAD off 0x00013dc4 vaddr 0x00013dc4 paddr 0x00013dc4 align 2**12 - filesz 0x00000000 memsz 0x00000810 flags rw- - -Sections: -Idx Name Size VMA LMA File off Algn - 0 .entry 00000020 00000000 00000000 00001000 2**5 - CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .exceptions 00000194 00000020 00000020 00001020 2**2 - CONTENTS, ALLOC, LOAD, READONLY, CODE - 2 .text 0000fddc 000001b4 000001b4 000011b4 2**2 - CONTENTS, ALLOC, LOAD, READONLY, CODE - 3 .rodata 00000724 0000ff90 0000ff90 00010f90 2**2 - CONTENTS, ALLOC, LOAD, READONLY, DATA - 4 .rwdata 00001b88 000106b4 0001223c 000116b4 2**2 - CONTENTS, ALLOC, LOAD, DATA, SMALL_DATA - 5 .bss 00000810 00013dc4 00013dc4 00013dc4 2**2 - ALLOC, SMALL_DATA - 6 .comment 00000026 00000000 00000000 0001323c 2**0 - CONTENTS, READONLY - 7 .debug_aranges 00000e18 00000000 00000000 00013268 2**3 - CONTENTS, READONLY, DEBUGGING - 8 .debug_pubnames 000017d8 00000000 00000000 00014080 2**0 - CONTENTS, READONLY, DEBUGGING - 9 .debug_info 000251cd 00000000 00000000 00015858 2**0 - CONTENTS, READONLY, DEBUGGING - 10 .debug_abbrev 00008258 00000000 00000000 0003aa25 2**0 - CONTENTS, READONLY, DEBUGGING - 11 .debug_line 00015d82 00000000 00000000 00042c7d 2**0 - CONTENTS, READONLY, DEBUGGING - 12 .debug_frame 0000202c 00000000 00000000 00058a00 2**2 - CONTENTS, READONLY, DEBUGGING - 13 .debug_str 000023b5 00000000 00000000 0005aa2c 2**0 - CONTENTS, READONLY, DEBUGGING - 14 .debug_loc 0000c7db 00000000 00000000 0005cde1 2**0 - CONTENTS, READONLY, DEBUGGING - 15 .debug_alt_sim_info 00000040 00000000 00000000 000695bc 2**2 - CONTENTS, READONLY, DEBUGGING - 16 .debug_ranges 000009e0 00000000 00000000 00069600 2**3 - CONTENTS, READONLY, DEBUGGING - 17 .thread_model 00000003 00000000 00000000 0006d7ff 2**0 - CONTENTS, READONLY - 18 .cpu 0000000f 00000000 00000000 0006d802 2**0 - CONTENTS, READONLY - 19 .qsys 00000001 00000000 00000000 0006d811 2**0 - CONTENTS, READONLY - 20 .simulation_enabled 00000001 00000000 00000000 0006d812 2**0 - CONTENTS, READONLY - 21 .stderr_dev 00000009 00000000 00000000 0006d813 2**0 - CONTENTS, READONLY - 22 .stdin_dev 00000009 00000000 00000000 0006d81c 2**0 - CONTENTS, READONLY - 23 .stdout_dev 00000009 00000000 00000000 0006d825 2**0 - CONTENTS, READONLY - 24 .sopc_system_name 0000000b 00000000 00000000 0006d82e 2**0 - CONTENTS, READONLY - 25 .quartus_project_dir 00000030 00000000 00000000 0006d839 2**0 - CONTENTS, READONLY - 26 .sopcinfo 0007d2ad 00000000 00000000 0006d869 2**0 - CONTENTS, READONLY -SYMBOL TABLE: -00000000 l d .entry 00000000 .entry -00000020 l d .exceptions 00000000 .exceptions -000001b4 l d .text 00000000 .text -0000ff90 l d .rodata 00000000 .rodata -000106b4 l d .rwdata 00000000 .rwdata -00013dc4 l d .bss 00000000 .bss -00000000 l d .comment 00000000 .comment -00000000 l d .debug_aranges 00000000 .debug_aranges -00000000 l d .debug_pubnames 00000000 .debug_pubnames -00000000 l d .debug_info 00000000 .debug_info -00000000 l d .debug_abbrev 00000000 .debug_abbrev -00000000 l d .debug_line 00000000 .debug_line -00000000 l d .debug_frame 00000000 .debug_frame -00000000 l d .debug_str 00000000 .debug_str -00000000 l d .debug_loc 00000000 .debug_loc -00000000 l d .debug_alt_sim_info 00000000 .debug_alt_sim_info -00000000 l d .debug_ranges 00000000 .debug_ranges -000001ec l .text 00000000 alt_after_alt_main -00000000 l df *ABS* 00000000 alt_irq_handler.c -00000000 l df *ABS* 00000000 LCD.c -00000000 l df *ABS* 00000000 hello_world_small.c -000003dc l F .text 000000c0 init -00000734 l F .text 00000044 reset_mem_cancel -00000778 l F .text 000000b4 reset_mem -0000082c l F .text 00000044 reset_pc_cancel -00000870 l F .text 00000090 reset_pc -00000000 l df *ABS* 00000000 hex_encoder.c -00000000 l df *ABS* 00000000 hex_out.c -00000000 l df *ABS* 00000000 input_int.c -000014f8 l F .text 000000e8 update_sw_reg -00013dcc l O .bss 00000004 event_code.1400 -00013dd0 l O .bss 00000001 status.1399 -00000000 l df *ABS* 00000000 inst_decoder.c -00000000 l df *ABS* 00000000 lcd_out.c -00000000 l df *ABS* 00000000 sys_debug.c -00000000 l df *ABS* 00000000 sys_except.c -00000000 l df *ABS* 00000000 sys_memory.c -00013e0c l O .bss 00000100 memory -00013f0c l O .bss 00000400 inst_memory -00000000 l df *ABS* 00000000 sys_prog.c -00000000 l df *ABS* 00000000 sys_register.c -00000000 l df *ABS* 00000000 lib2-divmod.c -00002ad8 l F .text 0000007c udivmodsi4 -00000000 l df *ABS* 00000000 lib2-mul.c -00000000 l df *ABS* 00000000 ctype_.c -000101e5 l O .rodata 00000180 _ctype_b -00000000 l df *ABS* 00000000 sprintf.c -00000000 l df *ABS* 00000000 strlen.c -00000000 l df *ABS* 00000000 vfprintf.c -00002da4 l F .text 00000058 __sprint_r -000103d6 l O .rodata 00000010 blanks.3452 -000103c6 l O .rodata 00000010 zeroes.3453 -00000000 l df *ABS* 00000000 wsetup.c -00000000 l df *ABS* 00000000 dtoa.c -00004e20 l F .text 00000244 quorem -00000000 l df *ABS* 00000000 fflush.c -00000000 l df *ABS* 00000000 findfp.c -00006848 l F .text 00000058 std -00006954 l F .text 00000008 __fp_lock -0000695c l F .text 00000008 __fp_unlock -00000000 l df *ABS* 00000000 mallocr.c -00000000 l df *ABS* 00000000 fvwrite.c -00000000 l df *ABS* 00000000 fwalk.c -00000000 l df *ABS* 00000000 impure.c -000106b4 l O .rwdata 00000400 impure_data -00000000 l df *ABS* 00000000 locale.c -00012204 l O .rwdata 00000004 charset -0001040c l O .rodata 00000030 lconv -00000000 l df *ABS* 00000000 makebuf.c -00000000 l df *ABS* 00000000 mallocr.c -00000000 l df *ABS* 00000000 memchr.c -00000000 l df *ABS* 00000000 memcpy.c -00000000 l df *ABS* 00000000 memmove.c -00000000 l df *ABS* 00000000 memset.c -00000000 l df *ABS* 00000000 mprec.c -00010554 l O .rodata 0000000c p05.2458 -00000000 l df *ABS* 00000000 mallocr.c -00000000 l df *ABS* 00000000 s_isinfd.c -00000000 l df *ABS* 00000000 s_isnand.c -00000000 l df *ABS* 00000000 sbrkr.c -00000000 l df *ABS* 00000000 stdio.c -00000000 l df *ABS* 00000000 strcmp.c -00000000 l df *ABS* 00000000 writer.c -00000000 l df *ABS* 00000000 mallocr.c -00000000 l df *ABS* 00000000 closer.c -00000000 l df *ABS* 00000000 fclose.c -00000000 l df *ABS* 00000000 fstatr.c -00000000 l df *ABS* 00000000 int_errno.c -00000000 l df *ABS* 00000000 isattyr.c -00000000 l df *ABS* 00000000 lseekr.c -00000000 l df *ABS* 00000000 readr.c -00000000 l df *ABS* 00000000 libgcc2.c -00000000 l df *ABS* 00000000 libgcc2.c -00000000 l df *ABS* 00000000 dp-bit.c -0000ad08 l F .text 00000410 _fpadd_parts -00000000 l df *ABS* 00000000 dp-bit.c -00000000 l df *ABS* 00000000 dp-bit.c -00000000 l df *ABS* 00000000 dp-bit.c -00000000 l df *ABS* 00000000 dp-bit.c -00000000 l df *ABS* 00000000 dp-bit.c -00000000 l df *ABS* 00000000 dp-bit.c -00000000 l df *ABS* 00000000 dp-bit.c -00000000 l df *ABS* 00000000 dp-bit.c -00000000 l df *ABS* 00000000 dp-bit.c -00000000 l df *ABS* 00000000 dp-bit.c -00000000 l df *ABS* 00000000 dp-bit.c -00000000 l df *ABS* 00000000 libgcc2.c -00000000 l df *ABS* 00000000 libgcc2.c -00000000 l df *ABS* 00000000 libgcc2.c -00000000 l df *ABS* 00000000 dp-bit.c -00000000 l df *ABS* 00000000 dp-bit.c -00000000 l df *ABS* 00000000 dp-bit.c -00000000 l df *ABS* 00000000 alt_close.c -0000c5ec l F .text 00000060 alt_get_errno -00000000 l df *ABS* 00000000 alt_dev.c -0000c64c l F .text 0000002c alt_dev_null_write -00000000 l df *ABS* 00000000 alt_errno.c -00000000 l df *ABS* 00000000 alt_fstat.c -0000c750 l F .text 00000060 alt_get_errno -00000000 l df *ABS* 00000000 alt_isatty.c -0000c874 l F .text 00000060 alt_get_errno -00000000 l df *ABS* 00000000 alt_load.c -0000c954 l F .text 0000006c alt_load_section -00000000 l df *ABS* 00000000 alt_lseek.c -0000cab4 l F .text 00000060 alt_get_errno -00000000 l df *ABS* 00000000 alt_main.c -00000000 l df *ABS* 00000000 alt_malloc_lock.c -00000000 l df *ABS* 00000000 alt_read.c -0000cce4 l F .text 00000060 alt_get_errno -00000000 l df *ABS* 00000000 alt_release_fd.c -00000000 l df *ABS* 00000000 alt_sbrk.c -00012228 l O .rwdata 00000004 heap_end -00000000 l df *ABS* 00000000 alt_usleep.c -00000000 l df *ABS* 00000000 alt_write.c -0000cfcc l F .text 00000060 alt_get_errno -00000000 l df *ABS* 00000000 alt_sys_init.c -00011070 l O .rwdata 00001060 jtag_uart -000120d0 l O .rwdata 00000120 lcd_16207_0 -0000d0bc l F .text 00000038 alt_dev_reg -00000000 l df *ABS* 00000000 altera_avalon_jtag_uart_fd.c -00000000 l df *ABS* 00000000 altera_avalon_jtag_uart_init.c -0000d2fc l F .text 00000228 altera_avalon_jtag_uart_irq -0000d524 l F .text 000000b0 altera_avalon_jtag_uart_timeout -00000000 l df *ABS* 00000000 altera_avalon_jtag_uart_ioctl.c -00000000 l df *ABS* 00000000 altera_avalon_jtag_uart_read.c -00000000 l df *ABS* 00000000 altera_avalon_jtag_uart_write.c -00000000 l df *ABS* 00000000 altera_avalon_lcd_16207.c -0001222c l O .rwdata 00000004 colstart -0000dba0 l F .text 000000b8 lcd_write_command -0000dc58 l F .text 000000d4 lcd_write_data -0000dd2c l F .text 000000d8 lcd_clear_screen -0000de04 l F .text 00000214 lcd_repaint_screen -0000e018 l F .text 000000e0 lcd_scroll_up -0000e0f8 l F .text 000002e4 lcd_handle_escape -0000e918 l F .text 000000cc alt_lcd_16207_timeout -00000000 l df *ABS* 00000000 altera_avalon_lcd_16207_fd.c -00000000 l df *ABS* 00000000 alt_alarm_start.c -00000000 l df *ABS* 00000000 alt_busy_sleep.c -00000000 l df *ABS* 00000000 alt_dcache_flush_all.c -00000000 l df *ABS* 00000000 alt_dev_llist_insert.c -0000eef8 l F .text 00000060 alt_get_errno -00000000 l df *ABS* 00000000 alt_do_ctors.c -00000000 l df *ABS* 00000000 alt_do_dtors.c -00000000 l df *ABS* 00000000 alt_icache_flush_all.c -00000000 l df *ABS* 00000000 alt_iic.c -00000000 l df *ABS* 00000000 alt_iic_isr_register.c -00000000 l df *ABS* 00000000 alt_io_redirect.c -0000f308 l F .text 000000d8 alt_open_fd -00000000 l df *ABS* 00000000 alt_irq_vars.c -00000000 l df *ABS* 00000000 alt_open.c -0000f458 l F .text 000000f8 alt_file_locked -0000f6dc l F .text 00000060 alt_get_errno -00000000 l df *ABS* 00000000 alt_tick.c -00000000 l df *ABS* 00000000 altera_nios2_qsys_irq.c -00000000 l df *ABS* 00000000 alt_find_dev.c -00000000 l df *ABS* 00000000 alt_find_file.c -00000000 l df *ABS* 00000000 alt_get_fd.c -00000000 l df *ABS* 00000000 atexit.c -00000000 l df *ABS* 00000000 exit.c -00000000 l df *ABS* 00000000 memcmp.c -00000000 l df *ABS* 00000000 __atexit.c -00000000 l df *ABS* 00000000 __call_atexit.c -0000fd78 l F .text 00000004 register_fini -00000000 l df *ABS* 00000000 alt_exit.c -0000ff2c l F .text 00000040 alt_sim_halt -00008638 g F .text 00000094 _mprec_log10 -00008724 g F .text 00000088 __any_on -00009edc g F .text 00000070 _isatty_r -0001052c g O .rodata 00000028 __mprec_tinytens -00001b20 g F .text 00000038 inst_load -0000cb14 g F .text 0000006c alt_main -00014344 g O .bss 00000100 alt_irq -00009f4c g F .text 00000078 _lseek_r -0001223c g *ABS* 00000000 __flash_rwdata_start -0000b828 g F .text 00000088 __eqdf2 -000145d4 g *ABS* 00000000 __alt_heap_start -000028c8 g F .text 00000070 get_pc -00009994 g F .text 00000068 __sseek -000068b0 g F .text 000000a4 __sinit -000027bc g F .text 00000084 inc_pc -00001348 g F .text 00000090 clear_block -000075bc g F .text 00000084 _setlocale_r -0000049c g F .text 000000e4 store_value -000069b0 g F .text 0000009c __sfmoreglue -0000cba0 g F .text 00000020 __malloc_unlock -00001bec g F .text 0000005c inst_add -00001e9c g F .text 00000050 inst_jine -000080b4 g F .text 000000e0 memmove -000069a0 g F .text 00000010 _cleanup -000087ac g F .text 000000bc _Balloc -00000350 g F .text 0000008c LCD_Test -0000b938 g F .text 00000088 __gtdf2 -00000000 w *UND* 00000000 __errno -00000000 g F .entry 0000000c __reset -00000020 g *ABS* 00000000 __flash_exceptions_start -00009e68 g F .text 00000074 _fstat_r -00013df0 g O .bss 00000004 errno -00013df8 g O .bss 00000004 alt_argv -0001a1f0 g *ABS* 00000000 _gp -0000ce78 g F .text 00000030 usleep -00010ef0 g O .rwdata 00000180 alt_fd_list -00001a54 g F .text 0000005c inst_jump -00002500 g F .text 0000003c delay10ms -0000f900 g F .text 00000094 alt_find_dev -00008014 g F .text 000000a0 memcpy -00006994 g F .text 0000000c _cleanup_r -0000bad0 g F .text 000000f8 __floatsidf -0000f3e0 g F .text 00000078 alt_io_redirect -0000ba48 g F .text 00000088 __ltdf2 -0000ff90 g *ABS* 00000000 __DTOR_END__ -00008588 g F .text 000000b0 __ratio -00002938 g F .text 00000150 run_proc -0000d73c g F .text 00000224 altera_avalon_jtag_uart_read -00000000 w *UND* 00000000 malloc -00002c14 g F .text 00000008 __udivsi3 -0000c7b0 g F .text 000000c4 isatty -0001043c g O .rodata 000000c8 __mprec_tens -00007598 g F .text 00000008 __locale_charset -00013de4 g O .bss 00000004 __malloc_top_pad -00012200 g O .rwdata 00000004 __mb_cur_max -000075a0 g F .text 0000000c _localeconv_r -00008f10 g F .text 0000003c __i2b -00006f7c g F .text 0000049c __sfvwrite_r -0000991c g F .text 00000070 _sbrk_r -00001f34 g F .text 00000028 lcd_caret_reset -00001e4c g F .text 00000050 inst_jieq -00009fc4 g F .text 00000078 _read_r -00010ab4 g O .rwdata 0000000c __lc_ctype -00012220 g O .rwdata 00000004 alt_max_fd -0000c2ec g F .text 00000138 __unpack_d -00009d44 g F .text 00000110 _fclose_r -000020cc g F .text 00000170 convertRegName -00006814 g F .text 00000034 fflush -00013de8 g O .bss 00000004 __malloc_max_sbrked_mem -00001ab0 g F .text 00000070 inst_output -0000b198 g F .text 00000074 __adddf3 -00008468 g F .text 00000120 __b2d -00002690 g F .text 0000009c memory_store -0000a6a8 g F .text 00000660 __umoddi3 -0000c9c0 g F .text 000000f4 lseek -000121fc g O .rwdata 00000004 _global_impure_ptr -000092b8 g F .text 000005f4 _realloc_r -000145d4 g *ABS* 00000000 __bss_end -0000f210 g F .text 000000f8 alt_iic_isr_register -0000f7d4 g F .text 0000010c alt_tick -00013dc4 g O .bss 00000005 stack -0000a03c g F .text 0000066c __udivdi3 -00010504 g O .rodata 00000028 __mprec_bigtens -00009198 g F .text 00000120 __s2b -0000bca0 g F .text 00000194 __floatunsidf -00008388 g F .text 00000060 __mcmp -000121f4 g O .rwdata 00000004 __ctype_ptr -0000697c g F .text 00000018 __fp_lock_all -0000f1c8 g F .text 00000048 alt_ic_irq_enabled -00001c48 g F .text 0000005c inst_sub -0000f73c g F .text 00000098 alt_alarm_stop -00013e00 g O .bss 00000004 alt_irq_active -00001790 g F .text 0000004c inst_fetch -000000ec g F .exceptions 000000c8 alt_irq_handler -00010ec8 g O .rwdata 00000028 alt_dev_null -0000ee28 g F .text 0000001c alt_dcache_flush_all -00008254 g F .text 00000070 __hi0bits -00014334 g O .bss 0000000f global_registers -0000bbc8 g F .text 000000d8 __fixdfsi -00001d74 g F .text 0000006c inst_jeq -0001223c g *ABS* 00000000 __ram_rwdata_end -00000000 g *ABS* 00000000 __alt_mem_onchip_memory -00012218 g O .rwdata 00000008 alt_dev_list -0000cea8 g F .text 00000124 write -000106b4 g *ABS* 00000000 __ram_rodata_end -0000c678 g F .text 000000d8 fstat -00009078 g F .text 00000120 __pow5mult -00013dd8 g O .bss 00000004 __nlocale_changed -00002c1c g F .text 00000008 __umodsi3 -000145d4 g *ABS* 00000000 end -0000e3dc g F .text 0000053c altera_avalon_lcd_16207_write -00002840 g F .text 00000050 add_pc -0000d23c g F .text 000000c0 altera_avalon_jtag_uart_init -0000ff8c g *ABS* 00000000 __CTOR_LIST__ -00032000 g *ABS* 00000000 __alt_stack_pointer -0000bf58 g F .text 00000080 __clzsi2 -0000d960 g F .text 00000240 altera_avalon_jtag_uart_write -000068a0 g F .text 00000004 __sfp_lock_acquire -00007f30 g F .text 000000e4 memchr -00002dfc g F .text 00001ec4 ___vfprintf_internal_r -00002cd0 g F .text 00000060 _sprintf_r -00006c68 g F .text 00000314 _free_r -0000fd7c g F .text 000001b0 __call_exitprocs -00013ddc g O .bss 00000004 __mlocale_changed -000013d8 g F .text 000000f8 print_number -0001220c g O .rwdata 00000004 __malloc_sbrk_base -000001b4 g F .text 0000003c _start -00013e04 g O .bss 00000004 _alt_tick_rate -000011b8 g F .text 00000190 print_block -00008b70 g F .text 0000014c __lshift -00013e08 g O .bss 00000004 _alt_nticks -0000cbc0 g F .text 00000124 read -0000d060 g F .text 0000005c alt_sys_init -0000fc44 g F .text 00000134 __register_exitproc -00008cbc g F .text 00000254 __multiply -00001f84 g F .text 00000030 lcd_print -0000d5d4 g F .text 00000074 altera_avalon_jtag_uart_close -00002c24 g F .text 00000038 __mulsi3 -000106b4 g *ABS* 00000000 __ram_rwdata_start -0000ff90 g *ABS* 00000000 __ram_rodata_start -0001430c g O .bss 00000028 __malloc_current_mallinfo -00008868 g F .text 0000017c __d2b -0000d0f4 g F .text 00000058 altera_avalon_jtag_uart_read_fd -0000fab4 g F .text 000000d0 alt_get_fd -0000253c g F .text 00000040 panic -0000eccc g F .text 0000015c alt_busy_sleep -0000c424 g F .text 000000c8 __fpcmp_parts_d -00009cd4 g F .text 00000070 _close_r -0000fbd0 g F .text 00000074 memcmp -0000d1a4 g F .text 00000048 altera_avalon_jtag_uart_close_fd -000145d4 g *ABS* 00000000 __alt_stack_base -0000d1ec g F .text 00000050 altera_avalon_jtag_uart_ioctl_fd -00001b90 g F .text 0000005c inst_delay -00001b58 g F .text 00000038 inst_store -00001fb4 g F .text 000000ac display_inst -00004ce4 g F .text 0000013c __swsetup_r -0000b5d0 g F .text 00000258 __divdf3 -00006a4c g F .text 000000f0 __sfp -000086cc g F .text 00000058 __copybits -00010ac0 g O .rwdata 00000408 __malloc_av_ -000068ac g F .text 00000004 __sinit_lock_release -0000b20c g F .text 000003c4 __muldf3 -00009a78 g F .text 00000060 __sread -0000f994 g F .text 00000120 alt_find_file -0000ee44 g F .text 000000b4 alt_dev_llist_insert -0000cb80 g F .text 00000020 __malloc_lock -0000cdbc g F .text 000000bc sbrk -00006618 g F .text 000001fc _fflush_r -00009c0c g F .text 000000c8 _calloc_r -00013dc4 g *ABS* 00000000 __bss_start -000001f0 g F .text 0000009c LCD_Init -00008194 g F .text 00000098 memset -00001eec g F .text 00000048 lcd_init -00000900 g F .text 00000288 main -00013dfc g O .bss 00000004 alt_envp -00013dec g O .bss 00000004 __malloc_max_total_mem -0000d14c g F .text 00000058 altera_avalon_jtag_uart_write_fd -0000e9e4 g F .text 0000013c altera_avalon_lcd_16207_init -00000314 g F .text 0000003c LCD_Line2 -00000b88 g F .text 000001dc encodeNumHex -0000998c g F .text 00000008 __sclose -00032000 g *ABS* 00000000 __alt_heap_limit -00009e54 g F .text 00000014 fclose -00014444 g O .bss 00000190 _atexit0 -00005064 g F .text 000015b4 _dtoa_r -000077f0 g F .text 00000740 _malloc_r -00012224 g O .rwdata 00000004 alt_errno -000074e0 g F .text 000000b8 _fwalk -000014d0 g F .text 00000028 in_int -00002b54 g F .text 00000060 __divsi3 -00010560 g O .rodata 00000014 __thenan_df -00006b3c g F .text 0000012c _malloc_trim_r -0000ff90 g *ABS* 00000000 __CTOR_END__ -00009ad8 g F .text 000000bc strcmp -0000ff90 g *ABS* 00000000 __flash_rodata_start -0000ff90 g *ABS* 00000000 __DTOR_LIST__ -0000b8b0 g F .text 00000088 __nedf2 -0000d02c g F .text 00000034 alt_irq_init -0000028c g F .text 00000088 LCD_Show_Text -0000cd44 g F .text 00000078 alt_release_fd -00002c5c g F .text 00000074 sprintf -00010574 g O .rodata 00000100 __clz_tab -00013de0 g O .bss 00000004 _PathLocale -0000fb84 g F .text 00000014 atexit -00002890 g F .text 00000038 set_pc -00009b94 g F .text 00000078 _write_r -00007640 g F .text 0000001c setlocale -000006c4 g F .text 00000070 print_change_memory -0000168c g F .text 00000104 push_int -00002060 g F .text 0000006c display_mem -000121f8 g O .rwdata 00000004 _impure_ptr -00013df4 g O .bss 00000004 alt_argc -00013dd4 g O .bss 00000004 global_current_memory -0000efbc g F .text 00000064 _do_dtors -00000020 g .exceptions 00000000 alt_irq_entry -000083e8 g F .text 00000080 __ulp -000098ac g F .text 00000040 __isinfd -00006964 g F .text 00000018 __fp_unlock_all -0000eb20 g F .text 00000058 altera_avalon_lcd_16207_write_fd -00012210 g O .rwdata 00000008 alt_fs_list -00000020 g *ABS* 00000000 __ram_exceptions_start -000075ac g F .text 00000010 localeconv -00000d64 g F .text 00000454 encodeLatHex -0000223c g F .text 000002c4 convertInstName -0000f03c g F .text 00000050 alt_ic_isr_register -0001223c g *ABS* 00000000 _edata -000145d4 g *ABS* 00000000 _end -000001b4 g *ABS* 00000000 __ram_exceptions_end -0000d648 g F .text 000000f4 altera_avalon_jtag_uart_ioctl -00001f5c g F .text 00000028 lcd_caret_reset2 -0000f128 g F .text 000000a0 alt_ic_irq_disable -0000257c g F .text 0000007c memory_init -000099fc g F .text 0000007c __swrite -00012208 g O .rwdata 00000004 __malloc_trim_threshold -0000f8e0 g F .text 00000020 altera_nios2_qsys_irq_init -0000fb98 g F .text 00000038 exit -0000272c g F .text 00000090 memory_load -00007418 g F .text 000000c8 _fwalk_reent -000089e4 g F .text 0000018c __mdiff -00002bb4 g F .text 00000060 __modsi3 -00032000 g *ABS* 00000000 __alt_data_end -00000020 g F .exceptions 00000000 alt_exception -000068a4 g F .text 00000004 __sfp_lock_release -000017dc g F .text 00000278 inst_decode -000100e4 g O .rodata 00000101 _ctype_ -00001ca4 g F .text 000000d0 inst_comp -0000ff6c g F .text 00000020 _exit -000098ec g F .text 00000030 __isnand -00002a88 g F .text 00000050 registers_init -0000eb78 g F .text 00000154 alt_alarm_start -0000be34 g F .text 00000124 __muldi3 -0000765c g F .text 00000194 __smakebuf_r -00001de0 g F .text 0000006c inst_jne -00002d30 g F .text 00000074 strlen -0000f550 g F .text 0000018c open -0000b9c0 g F .text 00000088 __gedf2 -00000580 g F .text 00000144 store_inst -0000f020 g F .text 0000001c alt_icache_flush_all -00012230 g O .rwdata 00000004 alt_priority_mask -0000f08c g F .text 0000009c alt_ic_irq_enable -00004cc0 g F .text 00000024 __vfprintf_internal -0000b118 g F .text 00000080 __subdf3 -000082c4 g F .text 000000c4 __lo0bits -00012234 g O .rwdata 00000008 alt_alarm_list -0000ef58 g F .text 00000064 _do_ctors -000025f8 g F .text 00000050 inst_memory_store -0000c4ec g F .text 00000100 close -000015e0 g F .text 000000ac push_decode -0000c8d4 g F .text 00000080 alt_load -0000bfd8 g F .text 00000314 __pack_d -000121f0 g O .rwdata 00000001 PUSH_EVENT -00002648 g F .text 00000048 inst_memory_load -00000000 w *UND* 00000000 free -000068a8 g F .text 00000004 __sinit_lock_acquire -00008f4c g F .text 0000012c __multadd -0000822c g F .text 00000028 _Bfree - - - -Disassembly of section .entry: - -00000000 <__reset>: - * Jump to the _start entry point in the .text section if reset code - * is allowed or if optimizing for RTL simulation. - */ -#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) - /* Jump to the _start entry point in the .text section. */ - movhi r1, %hi(_start) - 0: 00400034 movhi at,0 - ori r1, r1, %lo(_start) - 4: 08406d14 ori at,at,436 - jmp r1 - 8: 0800683a jmp at - ... - -Disassembly of section .exceptions: - -00000020 : - * Process an exception. For all exceptions we must preserve all - * caller saved registers on the stack (See the Nios2 ABI - * documentation for details). - */ - - addi sp, sp, -76 - 20: deffed04 addi sp,sp,-76 - -#endif - -#endif - - stw ra, 0(sp) - 24: dfc00015 stw ra,0(sp) - /* - * Leave a gap in the stack frame at 4(sp) for the muldiv handler to - * store zero into. - */ - - stw r1, 8(sp) - 28: d8400215 stw at,8(sp) - stw r2, 12(sp) - 2c: d8800315 stw r2,12(sp) - stw r3, 16(sp) - 30: d8c00415 stw r3,16(sp) - stw r4, 20(sp) - 34: d9000515 stw r4,20(sp) - stw r5, 24(sp) - 38: d9400615 stw r5,24(sp) - stw r6, 28(sp) - 3c: d9800715 stw r6,28(sp) - stw r7, 32(sp) - 40: d9c00815 stw r7,32(sp) - - rdctl r5, estatus - 44: 000b307a rdctl r5,estatus - - stw r8, 36(sp) - 48: da000915 stw r8,36(sp) - stw r9, 40(sp) - 4c: da400a15 stw r9,40(sp) - stw r10, 44(sp) - 50: da800b15 stw r10,44(sp) - stw r11, 48(sp) - 54: dac00c15 stw r11,48(sp) - stw r12, 52(sp) - 58: db000d15 stw r12,52(sp) - stw r13, 56(sp) - 5c: db400e15 stw r13,56(sp) - stw r14, 60(sp) - 60: db800f15 stw r14,60(sp) - stw r15, 64(sp) - 64: dbc01015 stw r15,64(sp) - /* - * ea-4 contains the address of the instruction being executed - * when the exception occured. For interrupt exceptions, we will - * will be re-issue the isntruction. Store it in 72(sp) - */ - stw r5, 68(sp) /* estatus */ - 68: d9401115 stw r5,68(sp) - addi r15, ea, -4 /* instruction that caused exception */ - 6c: ebffff04 addi r15,ea,-4 - stw r15, 72(sp) - 70: dbc01215 stw r15,72(sp) -#else - /* - * Test to see if the exception was a software exception or caused - * by an external interrupt, and vector accordingly. - */ - rdctl r4, ipending - 74: 0009313a rdctl r4,ipending - andi r2, r5, 1 - 78: 2880004c andi r2,r5,1 - beq r2, zero, .Lnot_irq - 7c: 10000326 beq r2,zero,8c - beq r4, zero, .Lnot_irq - 80: 20000226 beq r4,zero,8c - /* - * Now that all necessary registers have been preserved, call - * alt_irq_handler() to process the interrupts. - */ - - call alt_irq_handler - 84: 00000ec0 call ec - - .section .exceptions.irqreturn, "xa" - - br .Lexception_exit - 88: 00000306 br 98 - * upon completion, so we write ea (address of instruction *after* - * the one where the exception occured) into 72(sp). The actual - * instruction that caused the exception is written in r2, which these - * handlers will utilize. - */ - stw ea, 72(sp) /* Don't re-issue */ - 8c: df401215 stw ea,72(sp) - ldw r2, -4(ea) /* Instruction that caused exception */ - 90: e8bfff17 ldw r2,-4(ea) -#ifdef NIOS2_HAS_DEBUG_STUB - /* - * Either tell the user now (if there is a debugger attached) or go into - * the debug monitor which will loop until a debugger is attached. - */ - break - 94: 003da03a break 0 - /* - * Restore the saved registers, so that all general purpose registers - * have been restored to their state at the time the interrupt occured. - */ - - ldw r5, 68(sp) - 98: d9401117 ldw r5,68(sp) - ldw ea, 72(sp) /* This becomes the PC once eret is executed */ - 9c: df401217 ldw ea,72(sp) - ldw ra, 0(sp) - a0: dfc00017 ldw ra,0(sp) - - wrctl estatus, r5 - a4: 2801707a wrctl estatus,r5 - - ldw r1, 8(sp) - a8: d8400217 ldw at,8(sp) - ldw r2, 12(sp) - ac: d8800317 ldw r2,12(sp) - ldw r3, 16(sp) - b0: d8c00417 ldw r3,16(sp) - ldw r4, 20(sp) - b4: d9000517 ldw r4,20(sp) - ldw r5, 24(sp) - b8: d9400617 ldw r5,24(sp) - ldw r6, 28(sp) - bc: d9800717 ldw r6,28(sp) - ldw r7, 32(sp) - c0: d9c00817 ldw r7,32(sp) -#ifdef ALT_STACK_CHECK - ldw et, %gprel(alt_exception_old_stack_limit)(gp) -#endif -#endif - - ldw r8, 36(sp) - c4: da000917 ldw r8,36(sp) - ldw r9, 40(sp) - c8: da400a17 ldw r9,40(sp) - ldw r10, 44(sp) - cc: da800b17 ldw r10,44(sp) - ldw r11, 48(sp) - d0: dac00c17 ldw r11,48(sp) - ldw r12, 52(sp) - d4: db000d17 ldw r12,52(sp) - ldw r13, 56(sp) - d8: db400e17 ldw r13,56(sp) - ldw r14, 60(sp) - dc: db800f17 ldw r14,60(sp) - ldw r15, 64(sp) - e0: dbc01017 ldw r15,64(sp) -#endif - - ldw sp, 76(sp) - -#else - addi sp, sp, 76 - e4: dec01304 addi sp,sp,76 - - /* - * Return to the interrupted instruction. - */ - - eret - e8: ef80083a eret - -000000ec : - * instruction is present if the macro ALT_CI_INTERRUPT_VECTOR defined. - */ - -void alt_irq_handler (void) __attribute__ ((section (".exceptions"))); -void alt_irq_handler (void) -{ - ec: defff904 addi sp,sp,-28 - f0: dfc00615 stw ra,24(sp) - f4: df000515 stw fp,20(sp) - f8: df000504 addi fp,sp,20 -#ifndef NIOS2_EIC_PRESENT -static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void) -{ - alt_u32 active; - - NIOS2_READ_IPENDING (active); - fc: 0005313a rdctl r2,ipending - 100: e0bffc15 stw r2,-16(fp) - - return active; - 104: e0bffc17 ldw r2,-16(fp) - * Consider the case where the high priority interupt is asserted during - * the interrupt entry sequence for a lower priority interrupt to see why - * this is the case. - */ - - active = alt_irq_pending (); - 108: e0bfff15 stw r2,-4(fp) - - do - { - i = 0; - 10c: e03ffd15 stw zero,-12(fp) - mask = 1; - 110: 00800044 movi r2,1 - 114: e0bffe15 stw r2,-8(fp) - * called to clear the interrupt condition. - */ - - do - { - if (active & mask) - 118: e0ffff17 ldw r3,-4(fp) - 11c: e0bffe17 ldw r2,-8(fp) - 120: 1884703a and r2,r3,r2 - 124: 1005003a cmpeq r2,r2,zero - 128: 1000161e bne r2,zero,184 - { -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT - alt_irq[i].handler(alt_irq[i].context); - 12c: e0bffd17 ldw r2,-12(fp) - 130: 00c00074 movhi r3,1 - 134: 18d0d104 addi r3,r3,17220 - 138: 100490fa slli r2,r2,3 - 13c: 10c5883a add r2,r2,r3 - 140: 11400017 ldw r5,0(r2) - 144: e0bffd17 ldw r2,-12(fp) - 148: 00c00074 movhi r3,1 - 14c: 18d0d104 addi r3,r3,17220 - 150: 100490fa slli r2,r2,3 - 154: 10c5883a add r2,r2,r3 - 158: 10800104 addi r2,r2,4 - 15c: 11000017 ldw r4,0(r2) - 160: 283ee83a callr r5 -#ifndef NIOS2_EIC_PRESENT -static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void) -{ - alt_u32 active; - - NIOS2_READ_IPENDING (active); - 164: 0005313a rdctl r2,ipending - 168: e0bffb15 stw r2,-20(fp) - - return active; - 16c: e0bffb17 ldw r2,-20(fp) - mask <<= 1; - i++; - - } while (1); - - active = alt_irq_pending (); - 170: e0bfff15 stw r2,-4(fp) - - } while (active); - 174: e0bfff17 ldw r2,-4(fp) - 178: 1004c03a cmpne r2,r2,zero - 17c: 103fe31e bne r2,zero,10c - 180: 00000706 br 1a0 -#else - alt_irq[i].handler(alt_irq[i].context, i); -#endif - break; - } - mask <<= 1; - 184: e0bffe17 ldw r2,-8(fp) - 188: 1085883a add r2,r2,r2 - 18c: e0bffe15 stw r2,-8(fp) - i++; - 190: e0bffd17 ldw r2,-12(fp) - 194: 10800044 addi r2,r2,1 - 198: e0bffd15 stw r2,-12(fp) - - } while (1); - 19c: 003fde06 br 118 - /* - * Notify the operating system that interrupt processing is complete. - */ - - ALT_OS_INT_EXIT(); -} - 1a0: e037883a mov sp,fp - 1a4: dfc00117 ldw ra,4(sp) - 1a8: df000017 ldw fp,0(sp) - 1ac: dec00204 addi sp,sp,8 - 1b0: f800283a ret - -Disassembly of section .text: - -000001b4 <_start>: -#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) - /* - * Now that the caches are initialized, set up the stack pointer. - * The value provided by the linker is assumed to be correctly aligned. - */ - movhi sp, %hi(__alt_stack_pointer) - 1b4: 06c000f4 movhi sp,3 - ori sp, sp, %lo(__alt_stack_pointer) - 1b8: dec80014 ori sp,sp,8192 - - /* Set up the global pointer. */ - movhi gp, %hi(_gp) - 1bc: 06800074 movhi gp,1 - ori gp, gp, %lo(_gp) - 1c0: d6a87c14 ori gp,gp,41456 - */ -#ifndef ALT_SIM_OPTIMIZE - /* Log that the BSS is about to be cleared. */ - ALT_LOG_PUTS(alt_log_msg_bss) - - movhi r2, %hi(__bss_start) - 1c4: 00800074 movhi r2,1 - ori r2, r2, %lo(__bss_start) - 1c8: 108f7114 ori r2,r2,15812 - - movhi r3, %hi(__bss_end) - 1cc: 00c00074 movhi r3,1 - ori r3, r3, %lo(__bss_end) - 1d0: 18d17514 ori r3,r3,17876 - - beq r2, r3, 1f - 1d4: 10c00326 beq r2,r3,1e4 <_start+0x30> - -0: - stw zero, (r2) - 1d8: 10000015 stw zero,0(r2) - addi r2, r2, 4 - 1dc: 10800104 addi r2,r2,4 - bltu r2, r3, 0b - 1e0: 10fffd36 bltu r2,r3,1d8 <_start+0x24> - * section aren't defined until alt_load() has been called). - */ - mov et, zero -#endif - - call alt_load - 1e4: 000c8d40 call c8d4 - - /* Log that alt_main is about to be called. */ - ALT_LOG_PUTS(alt_log_msg_alt_main) - - /* Call the C entry point. It should never return. */ - call alt_main - 1e8: 000cb140 call cb14 - -000001ec : - - /* Wait in infinite loop in case alt_main does return. */ -alt_after_alt_main: - br alt_after_alt_main - 1ec: 003fff06 br 1ec - -000001f0 : -#include -#include "system.h" -#include "LCD.h" -//------------------------------------------------------------------------- -void LCD_Init() -{ - 1f0: defffe04 addi sp,sp,-8 - 1f4: dfc00115 stw ra,4(sp) - 1f8: df000015 stw fp,0(sp) - 1fc: d839883a mov fp,sp - lcd_write_cmd(LCD_16207_0_BASE,0x38); - 200: 00c00134 movhi r3,4 - 204: 18c40c04 addi r3,r3,4144 - 208: 00800e04 movi r2,56 - 20c: 18800035 stwio r2,0(r3) - usleep(2000); - 210: 0101f404 movi r4,2000 - 214: 000ce780 call ce78 - lcd_write_cmd(LCD_16207_0_BASE,0x0C); - 218: 00c00134 movhi r3,4 - 21c: 18c40c04 addi r3,r3,4144 - 220: 00800304 movi r2,12 - 224: 18800035 stwio r2,0(r3) - usleep(2000); - 228: 0101f404 movi r4,2000 - 22c: 000ce780 call ce78 - lcd_write_cmd(LCD_16207_0_BASE,0x01); - 230: 00c00134 movhi r3,4 - 234: 18c40c04 addi r3,r3,4144 - 238: 00800044 movi r2,1 - 23c: 18800035 stwio r2,0(r3) - usleep(2000); - 240: 0101f404 movi r4,2000 - 244: 000ce780 call ce78 - lcd_write_cmd(LCD_16207_0_BASE,0x06); - 248: 00c00134 movhi r3,4 - 24c: 18c40c04 addi r3,r3,4144 - 250: 00800184 movi r2,6 - 254: 18800035 stwio r2,0(r3) - usleep(2000); - 258: 0101f404 movi r4,2000 - 25c: 000ce780 call ce78 - lcd_write_cmd(LCD_16207_0_BASE,0x80); - 260: 00c00134 movhi r3,4 - 264: 18c40c04 addi r3,r3,4144 - 268: 00802004 movi r2,128 - 26c: 18800035 stwio r2,0(r3) - usleep(2000); - 270: 0101f404 movi r4,2000 - 274: 000ce780 call ce78 -} - 278: e037883a mov sp,fp - 27c: dfc00117 ldw ra,4(sp) - 280: df000017 ldw fp,0(sp) - 284: dec00204 addi sp,sp,8 - 288: f800283a ret - -0000028c : -//------------------------------------------------------------------------- -void LCD_Show_Text(const char* Text) -{ - 28c: defffb04 addi sp,sp,-20 - 290: dfc00415 stw ra,16(sp) - 294: df000315 stw fp,12(sp) - 298: dc000215 stw r16,8(sp) - 29c: df000204 addi fp,sp,8 - 2a0: e13fff15 stw r4,-4(fp) - int i; - for(i=0;i - { - lcd_write_data(LCD_16207_0_BASE,Text[i]); - 2ac: e0bffe17 ldw r2,-8(fp) - 2b0: 1007883a mov r3,r2 - 2b4: e0bfff17 ldw r2,-4(fp) - 2b8: 1885883a add r2,r3,r2 - 2bc: 10800003 ldbu r2,0(r2) - 2c0: 10c03fcc andi r3,r2,255 - 2c4: 18c0201c xori r3,r3,128 - 2c8: 18ffe004 addi r3,r3,-128 - 2cc: 00800134 movhi r2,4 - 2d0: 10840e04 addi r2,r2,4152 - 2d4: 10c00035 stwio r3,0(r2) - usleep(2000); - 2d8: 0101f404 movi r4,2000 - 2dc: 000ce780 call ce78 -} -//------------------------------------------------------------------------- -void LCD_Show_Text(const char* Text) -{ - int i; - for(i=0;i - 2f8: 80bfec36 bltu r16,r2,2ac - { - lcd_write_data(LCD_16207_0_BASE,Text[i]); - usleep(2000); - } -} - 2fc: e037883a mov sp,fp - 300: dfc00217 ldw ra,8(sp) - 304: df000117 ldw fp,4(sp) - 308: dc000017 ldw r16,0(sp) - 30c: dec00304 addi sp,sp,12 - 310: f800283a ret - -00000314 : -//------------------------------------------------------------------------- -void LCD_Line2() -{ - 314: defffe04 addi sp,sp,-8 - 318: dfc00115 stw ra,4(sp) - 31c: df000015 stw fp,0(sp) - 320: d839883a mov fp,sp - lcd_write_cmd(LCD_16207_0_BASE,0xC0); - 324: 00c00134 movhi r3,4 - 328: 18c40c04 addi r3,r3,4144 - 32c: 00803004 movi r2,192 - 330: 18800035 stwio r2,0(r3) - usleep(2000); - 334: 0101f404 movi r4,2000 - 338: 000ce780 call ce78 -} - 33c: e037883a mov sp,fp - 340: dfc00117 ldw ra,4(sp) - 344: df000017 ldw fp,0(sp) - 348: dec00204 addi sp,sp,8 - 34c: f800283a ret - -00000350 : -//------------------------------------------------------------------------- -void LCD_Test() -{ - 350: defff604 addi sp,sp,-40 - 354: dfc00915 stw ra,36(sp) - 358: df000815 stw fp,32(sp) - 35c: df000804 addi fp,sp,32 - char Text1[16] = ""; - 360: 00c00074 movhi r3,1 - 364: 18ffe404 addi r3,r3,-112 - 368: 18800017 ldw r2,0(r3) - 36c: e0bff815 stw r2,-32(fp) - 370: 18800117 ldw r2,4(r3) - 374: e0bff915 stw r2,-28(fp) - 378: 18800217 ldw r2,8(r3) - 37c: e0bffa15 stw r2,-24(fp) - 380: 18800317 ldw r2,12(r3) - 384: e0bffb15 stw r2,-20(fp) - char Text2[16] = "Nice to See You!"; - 388: 00c00074 movhi r3,1 - 38c: 18ffe904 addi r3,r3,-92 - 390: 18800017 ldw r2,0(r3) - 394: e0bffc15 stw r2,-16(fp) - 398: 18800117 ldw r2,4(r3) - 39c: e0bffd15 stw r2,-12(fp) - 3a0: 18800217 ldw r2,8(r3) - 3a4: e0bffe15 stw r2,-8(fp) - 3a8: 18800317 ldw r2,12(r3) - 3ac: e0bfff15 stw r2,-4(fp) - // Initial LCD - LCD_Init(); - 3b0: 00001f00 call 1f0 - // Show Text to LCD - LCD_Show_Text(Text1); - 3b4: e13ff804 addi r4,fp,-32 - 3b8: 000028c0 call 28c - // Change Line2 - LCD_Line2(); - 3bc: 00003140 call 314 - // Show Text to LCD - LCD_Show_Text(Text2); - 3c0: e13ffc04 addi r4,fp,-16 - 3c4: 000028c0 call 28c -} - 3c8: e037883a mov sp,fp - 3cc: dfc00117 ldw ra,4(sp) - 3d0: df000017 ldw fp,0(sp) - 3d4: dec00204 addi sp,sp,8 - 3d8: f800283a ret - -000003dc : -#include "sys_debug.h" -#include "sys_prog.h" - -#define ledrs (volatile int *) LEDRS_BASE - -static void init() { - 3dc: defffe04 addi sp,sp,-8 - 3e0: dfc00115 stw ra,4(sp) - 3e4: df000015 stw fp,0(sp) - 3e8: d839883a mov fp,sp - // lcd - lcd_init(); - 3ec: 0001eec0 call 1eec - lcd_print("Starting now..."); - 3f0: 01000074 movhi r4,1 - 3f4: 213fee04 addi r4,r4,-72 - 3f8: 0001f840 call 1f84 - - registers_init(); - 3fc: 0002a880 call 2a88 - memory_init(); - 400: 000257c0 call 257c - // hex - clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); - 404: 0009883a mov r4,zero - 408: 00013480 call 1348 - 40c: 01000044 movi r4,1 - 410: 00013480 call 1348 - 414: 01000084 movi r4,2 - 418: 00013480 call 1348 - print_block("he", 2, HEX6_7); - 41c: 01000074 movhi r4,1 - 420: 213ff204 addi r4,r4,-56 - 424: 01400084 movi r5,2 - 428: 01800084 movi r6,2 - 42c: 00011b80 call 11b8 - print_block("lo", 2, HEX4_5); - 430: 01000074 movhi r4,1 - 434: 213ff304 addi r4,r4,-52 - 438: 01400084 movi r5,2 - 43c: 01800044 movi r6,1 - 440: 00011b80 call 11b8 - print_block("you1", 4, HEX0_3); - 444: 01000074 movhi r4,1 - 448: 213ff404 addi r4,r4,-48 - 44c: 01400104 movi r5,4 - 450: 000d883a mov r6,zero - 454: 00011b80 call 11b8 - delay10ms(200); - 458: 01003204 movi r4,200 - 45c: 00025000 call 2500 - clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); - 460: 0009883a mov r4,zero - 464: 00013480 call 1348 - 468: 01000044 movi r4,1 - 46c: 00013480 call 1348 - 470: 01000084 movi r4,2 - 474: 00013480 call 1348 - - lcd_caret_reset2(); - 478: 0001f5c0 call 1f5c - lcd_print("Ok!"); - 47c: 01000074 movhi r4,1 - 480: 213ff604 addi r4,r4,-40 - 484: 0001f840 call 1f84 -} - 488: e037883a mov sp,fp - 48c: dfc00117 ldw ra,4(sp) - 490: df000017 ldw fp,0(sp) - 494: dec00204 addi sp,sp,8 - 498: f800283a ret - -0000049c : - -char stack[5]; - -void store_value(){ - 49c: defffb04 addi sp,sp,-20 - 4a0: dfc00415 stw ra,16(sp) - 4a4: df000315 stw fp,12(sp) - 4a8: df000304 addi fp,sp,12 - unsigned int memi = global_registers[Ssw_memi]; - 4ac: 00800074 movhi r2,1 - 4b0: 1090cd04 addi r2,r2,17204 - 4b4: 10800283 ldbu r2,10(r2) - 4b8: 10803fcc andi r2,r2,255 - 4bc: 1080201c xori r2,r2,128 - 4c0: 10bfe004 addi r2,r2,-128 - 4c4: e0bffd15 stw r2,-12(fp) - memory_store(memi, Ssw_data); - 4c8: e13ffd17 ldw r4,-12(fp) - 4cc: 014001c4 movi r5,7 - 4d0: 00026900 call 2690 - - { // �f�o�b�N�\�� - char buf[5]; - sprintf(buf, "%02x", (unsigned char)memi); - 4d4: e0bffd17 ldw r2,-12(fp) - 4d8: 11803fcc andi r6,r2,255 - 4dc: e13ffe04 addi r4,fp,-8 - 4e0: 01400074 movhi r5,1 - 4e4: 297ff704 addi r5,r5,-36 - 4e8: 0002c5c0 call 2c5c - print_block(buf, 2, HEX6_7); - 4ec: e13ffe04 addi r4,fp,-8 - 4f0: 01400084 movi r5,2 - 4f4: 01800084 movi r6,2 - 4f8: 00011b80 call 11b8 - print_block("--", 2, HEX4_5); - 4fc: 01000074 movhi r4,1 - 500: 213ff904 addi r4,r4,-28 - 504: 01400084 movi r5,2 - 508: 01800044 movi r6,1 - 50c: 00011b80 call 11b8 - sprintf(buf, "%04d", global_registers[Ssw_data]); - 510: 00800074 movhi r2,1 - 514: 1090cd04 addi r2,r2,17204 - 518: 108001c3 ldbu r2,7(r2) - 51c: 11803fcc andi r6,r2,255 - 520: 3180201c xori r6,r6,128 - 524: 31bfe004 addi r6,r6,-128 - 528: e13ffe04 addi r4,fp,-8 - 52c: 01400074 movhi r5,1 - 530: 297ffa04 addi r5,r5,-24 - 534: 0002c5c0 call 2c5c - print_block(buf, 4, HEX0_3); - 538: e13ffe04 addi r4,fp,-8 - 53c: 01400104 movi r5,4 - 540: 000d883a mov r6,zero - 544: 00011b80 call 11b8 - - display_mem((unsigned char)memi, global_registers[Ssw_data]); - 548: e0bffd17 ldw r2,-12(fp) - 54c: 11003fcc andi r4,r2,255 - 550: 00800074 movhi r2,1 - 554: 1090cd04 addi r2,r2,17204 - 558: 108001c3 ldbu r2,7(r2) - 55c: 11403fcc andi r5,r2,255 - 560: 2940201c xori r5,r5,128 - 564: 297fe004 addi r5,r5,-128 - 568: 00020600 call 2060 - } -} - 56c: e037883a mov sp,fp - 570: dfc00117 ldw ra,4(sp) - 574: df000017 ldw fp,0(sp) - 578: dec00204 addi sp,sp,8 - 57c: f800283a ret - -00000580 : -void store_inst(){ - 580: defff904 addi sp,sp,-28 - 584: dfc00615 stw ra,24(sp) - 588: df000515 stw fp,20(sp) - 58c: df000504 addi fp,sp,20 - char reg_index; - unsigned int stored_pc; - struct InstRec inst_rec; - - // �K�v�ȏ��̎擾 - inst = global_registers[Ssw_inst]; - 590: 00800074 movhi r2,1 - 594: 1090cd04 addi r2,r2,17204 - 598: 10800203 ldbu r2,8(r2) - 59c: e0bffc85 stb r2,-14(fp) - mem_index = global_registers[Ssw_memi]; - 5a0: 00800074 movhi r2,1 - 5a4: 1090cd04 addi r2,r2,17204 - 5a8: 10800283 ldbu r2,10(r2) - 5ac: e0bffc45 stb r2,-15(fp) - reg_index = global_registers[Ssw_regi]; - 5b0: 00800074 movhi r2,1 - 5b4: 1090cd04 addi r2,r2,17204 - 5b8: 10800243 ldbu r2,9(r2) - 5bc: e0bffc05 stb r2,-16(fp) - inst_rec.inst = (unsigned int)inst; - 5c0: e0bffc83 ldbu r2,-14(fp) - 5c4: 108003cc andi r2,r2,15 - 5c8: 10803fcc andi r2,r2,255 - 5cc: 110003cc andi r4,r2,15 - 5d0: e0fffd17 ldw r3,-12(fp) - 5d4: 00bffc04 movi r2,-16 - 5d8: 1884703a and r2,r3,r2 - 5dc: 1104b03a or r2,r2,r4 - 5e0: e0bffd15 stw r2,-12(fp) - inst_rec.memi = (unsigned int)mem_index; - 5e4: e0bffc43 ldbu r2,-15(fp) - 5e8: 108003cc andi r2,r2,15 - 5ec: 10803fcc andi r2,r2,255 - 5f0: 108003cc andi r2,r2,15 - 5f4: 1008913a slli r4,r2,4 - 5f8: e0fffd17 ldw r3,-12(fp) - 5fc: 00bfc3c4 movi r2,-241 - 600: 1884703a and r2,r3,r2 - 604: 1104b03a or r2,r2,r4 - 608: e0bffd15 stw r2,-12(fp) - inst_rec.regi = (unsigned int)reg_index; - 60c: e0bffc03 ldbu r2,-16(fp) - 610: 108003cc andi r2,r2,15 - 614: 10803fcc andi r2,r2,255 - 618: 108003cc andi r2,r2,15 - 61c: 1008923a slli r4,r2,8 - 620: e0fffd17 ldw r3,-12(fp) - 624: 00bc3fc4 movi r2,-3841 - 628: 1884703a and r2,r3,r2 - 62c: 1104b03a or r2,r2,r4 - 630: e0bffd15 stw r2,-12(fp) - - // �X�g�A���� - stored_pc = get_pc(); - 634: 00028c80 call 28c8 - 638: e0bffb15 stw r2,-20(fp) - inst_memory_store(get_pc(), inst_rec); - 63c: 00028c80 call 28c8 - 640: 1009883a mov r4,r2 - 644: e17ffd17 ldw r5,-12(fp) - 648: 00025f80 call 25f8 - inc_pc(); - 64c: 00027bc0 call 27bc - { // �f�o�b�N�\�� - char buf[5]; - sprintf(buf, "%04d", inst_rec.inst); - 650: e0bffd17 ldw r2,-12(fp) - 654: 108003cc andi r2,r2,15 - 658: 11803fcc andi r6,r2,255 - 65c: e13ffe04 addi r4,fp,-8 - 660: 01400074 movhi r5,1 - 664: 297ffa04 addi r5,r5,-24 - 668: 0002c5c0 call 2c5c - print_block(buf, 4, HEX0_3); - 66c: e13ffe04 addi r4,fp,-8 - 670: 01400104 movi r5,4 - 674: 000d883a mov r6,zero - 678: 00011b80 call 11b8 - sprintf(buf, "%02x", get_pc()); - 67c: 00028c80 call 28c8 - 680: 100d883a mov r6,r2 - 684: e13ffe04 addi r4,fp,-8 - 688: 01400074 movhi r5,1 - 68c: 297ff704 addi r5,r5,-36 - 690: 0002c5c0 call 2c5c - print_block(buf, 2, HEX4_5); - 694: e13ffe04 addi r4,fp,-8 - 698: 01400084 movi r5,2 - 69c: 01800044 movi r6,1 - 6a0: 00011b80 call 11b8 - - display_inst(inst_rec, stored_pc); - 6a4: e13ffd17 ldw r4,-12(fp) - 6a8: e17ffb17 ldw r5,-20(fp) - 6ac: 0001fb40 call 1fb4 - } -} - 6b0: e037883a mov sp,fp - 6b4: dfc00117 ldw ra,4(sp) - 6b8: df000017 ldw fp,0(sp) - 6bc: dec00204 addi sp,sp,8 - 6c0: f800283a ret - -000006c4 : - -void print_change_memory(unsigned int current_memory) { - 6c4: defff804 addi sp,sp,-32 - 6c8: dfc00715 stw ra,28(sp) - 6cc: df000615 stw fp,24(sp) - 6d0: df000604 addi fp,sp,24 - 6d4: e13fff15 stw r4,-4(fp) - char buf[17]; - sprintf(buf, "Current page:%2d", current_memory); - 6d8: e13ffa04 addi r4,fp,-24 - 6dc: 01400074 movhi r5,1 - 6e0: 297ffc04 addi r5,r5,-16 - 6e4: e1bfff17 ldw r6,-4(fp) - 6e8: 0002c5c0 call 2c5c - lcd_caret_reset(); - 6ec: 0001f340 call 1f34 - lcd_print("Change program"); - 6f0: 01000074 movhi r4,1 - 6f4: 21000104 addi r4,r4,4 - 6f8: 0001f840 call 1f84 - lcd_caret_reset2(); - 6fc: 0001f5c0 call 1f5c - lcd_print(buf); - 700: e13ffa04 addi r4,fp,-24 - 704: 0001f840 call 1f84 - clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); - 708: 0009883a mov r4,zero - 70c: 00013480 call 1348 - 710: 01000044 movi r4,1 - 714: 00013480 call 1348 - 718: 01000084 movi r4,2 - 71c: 00013480 call 1348 -} - 720: e037883a mov sp,fp - 724: dfc00117 ldw ra,4(sp) - 728: df000017 ldw fp,0(sp) - 72c: dec00204 addi sp,sp,8 - 730: f800283a ret - -00000734 : - -static void reset_mem_cancel() { - 734: defffe04 addi sp,sp,-8 - 738: dfc00115 stw ra,4(sp) - 73c: df000015 stw fp,0(sp) - 740: d839883a mov fp,sp - lcd_caret_reset(); - 744: 0001f340 call 1f34 - lcd_print("rewrite all 0?"); - 748: 01000074 movhi r4,1 - 74c: 21000504 addi r4,r4,20 - 750: 0001f840 call 1f84 - lcd_caret_reset2(); - 754: 0001f5c0 call 1f5c - lcd_print("push again -> NG"); - 758: 01000074 movhi r4,1 - 75c: 21000904 addi r4,r4,36 - 760: 0001f840 call 1f84 -} - 764: e037883a mov sp,fp - 768: dfc00117 ldw ra,4(sp) - 76c: df000017 ldw fp,0(sp) - 770: dec00204 addi sp,sp,8 - 774: f800283a ret - -00000778 : -static char reset_mem(char confirmed) { - 778: defffb04 addi sp,sp,-20 - 77c: dfc00415 stw ra,16(sp) - 780: df000315 stw fp,12(sp) - 784: df000304 addi fp,sp,12 - 788: e13ffe05 stb r4,-8(fp) - if (confirmed == 0) { - 78c: e0bffe07 ldb r2,-8(fp) - 790: 1004c03a cmpne r2,r2,zero - 794: 10000b1e bne r2,zero,7c4 - lcd_caret_reset(); - 798: 0001f340 call 1f34 - lcd_print("rewrite all 0?"); - 79c: 01000074 movhi r4,1 - 7a0: 21000504 addi r4,r4,20 - 7a4: 0001f840 call 1f84 - lcd_caret_reset2(); - 7a8: 0001f5c0 call 1f5c - lcd_print("push again"); - 7ac: 01000074 movhi r4,1 - 7b0: 21000e04 addi r4,r4,56 - 7b4: 0001f840 call 1f84 - // �m�F�v�� - return 1; - 7b8: 00800044 movi r2,1 - 7bc: e0bfff15 stw r2,-4(fp) - 7c0: 00001406 br 814 - } else { - int i; - for (i = 0; i < MEM_SIZE; i++){ - 7c4: e03ffd15 stw zero,-12(fp) - 7c8: 00000606 br 7e4 - memory_store(i,Szero); - 7cc: e13ffd17 ldw r4,-12(fp) - 7d0: 000b883a mov r5,zero - 7d4: 00026900 call 2690 - lcd_print("push again"); - // �m�F�v�� - return 1; - } else { - int i; - for (i = 0; i < MEM_SIZE; i++){ - 7d8: e0bffd17 ldw r2,-12(fp) - 7dc: 10800044 addi r2,r2,1 - 7e0: e0bffd15 stw r2,-12(fp) - 7e4: e0bffd17 ldw r2,-12(fp) - 7e8: 10800410 cmplti r2,r2,16 - 7ec: 103ff71e bne r2,zero,7cc - memory_store(i,Szero); - } - lcd_caret_reset(); - 7f0: 0001f340 call 1f34 - lcd_print("rewrite all 0?"); - 7f4: 01000074 movhi r4,1 - 7f8: 21000504 addi r4,r4,20 - 7fc: 0001f840 call 1f84 - lcd_caret_reset2(); - 800: 0001f5c0 call 1f5c - lcd_print("push again -> OK"); - 804: 01000074 movhi r4,1 - 808: 21001104 addi r4,r4,68 - 80c: 0001f840 call 1f84 - - // PC���Z�b�g���� - return 0; - 810: e03fff15 stw zero,-4(fp) - 814: e0bfff17 ldw r2,-4(fp) - } -} - 818: e037883a mov sp,fp - 81c: dfc00117 ldw ra,4(sp) - 820: df000017 ldw fp,0(sp) - 824: dec00204 addi sp,sp,8 - 828: f800283a ret - -0000082c : -static void reset_pc_cancel() { - 82c: defffe04 addi sp,sp,-8 - 830: dfc00115 stw ra,4(sp) - 834: df000015 stw fp,0(sp) - 838: d839883a mov fp,sp - lcd_caret_reset(); - 83c: 0001f340 call 1f34 - lcd_print("reset pc?"); - 840: 01000074 movhi r4,1 - 844: 21001604 addi r4,r4,88 - 848: 0001f840 call 1f84 - lcd_caret_reset2(); - 84c: 0001f5c0 call 1f5c - lcd_print("push again -> NG"); - 850: 01000074 movhi r4,1 - 854: 21000904 addi r4,r4,36 - 858: 0001f840 call 1f84 -} - 85c: e037883a mov sp,fp - 860: dfc00117 ldw ra,4(sp) - 864: df000017 ldw fp,0(sp) - 868: dec00204 addi sp,sp,8 - 86c: f800283a ret - -00000870 : -static char reset_pc(char confirmed) { - 870: defffc04 addi sp,sp,-16 - 874: dfc00315 stw ra,12(sp) - 878: df000215 stw fp,8(sp) - 87c: df000204 addi fp,sp,8 - 880: e13ffe05 stb r4,-8(fp) - if (confirmed == 0) { - 884: e0bffe07 ldb r2,-8(fp) - 888: 1004c03a cmpne r2,r2,zero - 88c: 10000b1e bne r2,zero,8bc - lcd_caret_reset(); - 890: 0001f340 call 1f34 - lcd_print("reset pc?"); - 894: 01000074 movhi r4,1 - 898: 21001604 addi r4,r4,88 - 89c: 0001f840 call 1f84 - lcd_caret_reset2(); - 8a0: 0001f5c0 call 1f5c - lcd_print("push again"); - 8a4: 01000074 movhi r4,1 - 8a8: 21000e04 addi r4,r4,56 - 8ac: 0001f840 call 1f84 - // �m�F�v�� - return 1; - 8b0: 00800044 movi r2,1 - 8b4: e0bfff15 stw r2,-4(fp) - 8b8: 00000b06 br 8e8 - } else { - set_pc(0); - 8bc: 0009883a mov r4,zero - 8c0: 00028900 call 2890 - - lcd_caret_reset(); - 8c4: 0001f340 call 1f34 - lcd_print("reset pc?"); - 8c8: 01000074 movhi r4,1 - 8cc: 21001604 addi r4,r4,88 - 8d0: 0001f840 call 1f84 - lcd_caret_reset2(); - 8d4: 0001f5c0 call 1f5c - lcd_print("push again -> OK"); - 8d8: 01000074 movhi r4,1 - 8dc: 21001104 addi r4,r4,68 - 8e0: 0001f840 call 1f84 - - // PC���Z�b�g���� - return 0; - 8e4: e03fff15 stw zero,-4(fp) - 8e8: e0bfff17 ldw r2,-4(fp) - } -} - 8ec: e037883a mov sp,fp - 8f0: dfc00117 ldw ra,4(sp) - 8f4: df000017 ldw fp,0(sp) - 8f8: dec00204 addi sp,sp,8 - 8fc: f800283a ret - -00000900
: - - -int main() -{ - 900: defffc04 addi sp,sp,-16 - 904: dfc00315 stw ra,12(sp) - 908: df000215 stw fp,8(sp) - 90c: df000204 addi fp,sp,8 - init(); - 910: 00003dc0 call 3dc - - enum RunMode fRun = RUN_STOP; - 914: e03fff15 stw zero,-4(fp) - char reset_pc_confirmed = 0; - 918: e03ffec5 stb zero,-5(fp) - char reset_mem_confirmed = 0; - 91c: e03ffe85 stb zero,-6(fp) - 920: 00000006 br 924 - - while(1) { - // interrupt - in_int(); - 924: 00014d00 call 14d0 - - // event - // CANCEL - if (global_registers[Ssw_rw] == 0 - 928: 00800074 movhi r2,1 - 92c: 1090cd04 addi r2,r2,17204 - 930: 10800303 ldbu r2,12(r2) - 934: 10803fcc andi r2,r2,255 - 938: 1080201c xori r2,r2,128 - 93c: 10bfe004 addi r2,r2,-128 - 940: 1005003a cmpeq r2,r2,zero - 944: 10000e1e bne r2,zero,980 - 948: 00800074 movhi r2,1 - 94c: 10887c04 addi r2,r2,8688 - 950: 10800003 ldbu r2,0(r2) - 954: 10803fcc andi r2,r2,255 - 958: 1080008c andi r2,r2,2 - 95c: 1005003a cmpeq r2,r2,zero - 960: 10000c1e bne r2,zero,994 - 964: 00800074 movhi r2,1 - 968: 10887c04 addi r2,r2,8688 - 96c: 10800003 ldbu r2,0(r2) - 970: 10803fcc andi r2,r2,255 - 974: 1080010c andi r2,r2,4 - 978: 1004c03a cmpne r2,r2,zero - 97c: 1000051e bne r2,zero,994 - || ((PUSH_EVENT & PUSH_ANY) && !(PUSH_EVENT & PUSH_VALSTR))) { - if (reset_mem_confirmed == 1) { - 980: e0bffe87 ldb r2,-6(fp) - 984: 10800058 cmpnei r2,r2,1 - 988: 1000021e bne r2,zero,994 - reset_mem_confirmed = 0; //�m�F�L�����Z�� - 98c: e03ffe85 stb zero,-6(fp) - reset_mem_cancel(); - 990: 00007340 call 734 - } - } - if (global_registers[Ssw_rw] == 0 - 994: 00800074 movhi r2,1 - 998: 1090cd04 addi r2,r2,17204 - 99c: 10800303 ldbu r2,12(r2) - 9a0: 10803fcc andi r2,r2,255 - 9a4: 1080201c xori r2,r2,128 - 9a8: 10bfe004 addi r2,r2,-128 - 9ac: 1005003a cmpeq r2,r2,zero - 9b0: 10000e1e bne r2,zero,9ec - 9b4: 00800074 movhi r2,1 - 9b8: 10887c04 addi r2,r2,8688 - 9bc: 10800003 ldbu r2,0(r2) - 9c0: 10803fcc andi r2,r2,255 - 9c4: 1080008c andi r2,r2,2 - 9c8: 1005003a cmpeq r2,r2,zero - 9cc: 10000c1e bne r2,zero,a00 - 9d0: 00800074 movhi r2,1 - 9d4: 10887c04 addi r2,r2,8688 - 9d8: 10800003 ldbu r2,0(r2) - 9dc: 10803fcc andi r2,r2,255 - 9e0: 1080020c andi r2,r2,8 - 9e4: 1004c03a cmpne r2,r2,zero - 9e8: 1000051e bne r2,zero,a00 - || ((PUSH_EVENT & PUSH_ANY) && !(PUSH_EVENT & PUSH_INSSTR))) { - if (reset_pc_confirmed == 1) { - 9ec: e0bffec7 ldb r2,-5(fp) - 9f0: 10800058 cmpnei r2,r2,1 - 9f4: 1000021e bne r2,zero,a00 - reset_pc_confirmed = 0; //�m�F�L�����Z�� - 9f8: e03ffec5 stb zero,-5(fp) - reset_pc_cancel(); - 9fc: 000082c0 call 82c - } - } - // CONFIRM - if (PUSH_EVENT & PUSH_VALSTR) { - a00: 00800074 movhi r2,1 - a04: 10887c04 addi r2,r2,8688 - a08: 10800003 ldbu r2,0(r2) - a0c: 10803fcc andi r2,r2,255 - a10: 1080010c andi r2,r2,4 - a14: 1005003a cmpeq r2,r2,zero - a18: 1000161e bne r2,zero,a74 - // �l�̃X�g�A - if (global_registers[Ssw_rw] == 1) { - a1c: 00800074 movhi r2,1 - a20: 1090cd04 addi r2,r2,17204 - a24: 10800303 ldbu r2,12(r2) - a28: 10803fcc andi r2,r2,255 - a2c: 1080201c xori r2,r2,128 - a30: 10bfe004 addi r2,r2,-128 - a34: 10800058 cmpnei r2,r2,1 - a38: 10000d1e bne r2,zero,a70 - //�폜 - char res = reset_mem(reset_mem_confirmed);//���m�F�̏��F - a3c: e13ffe87 ldb r4,-6(fp) - a40: 00007780 call 778 - a44: e0bffe45 stb r2,-7(fp) - if (1 == res) reset_mem_confirmed = 1; //���m�F - a48: e0bffe47 ldb r2,-7(fp) - a4c: 10800058 cmpnei r2,r2,1 - a50: 1000021e bne r2,zero,a5c - a54: 00800044 movi r2,1 - a58: e0bffe85 stb r2,-6(fp) - if (0 == res) reset_mem_confirmed = 0; //���Z�b�g�̊m�F - a5c: e0bffe47 ldb r2,-7(fp) - a60: 1004c03a cmpne r2,r2,zero - a64: 1000031e bne r2,zero,a74 - a68: e03ffe85 stb zero,-6(fp) - a6c: 00000106 br a74 - } else { - store_value(); - a70: 000049c0 call 49c - } - } - if (PUSH_EVENT & PUSH_INSSTR) { - a74: 00800074 movhi r2,1 - a78: 10887c04 addi r2,r2,8688 - a7c: 10800003 ldbu r2,0(r2) - a80: 10803fcc andi r2,r2,255 - a84: 1080020c andi r2,r2,8 - a88: 1005003a cmpeq r2,r2,zero - a8c: 1000161e bne r2,zero,ae8 - // ���߂̃X�g�A - if (global_registers[Ssw_rw] == 1) { - a90: 00800074 movhi r2,1 - a94: 1090cd04 addi r2,r2,17204 - a98: 10800303 ldbu r2,12(r2) - a9c: 10803fcc andi r2,r2,255 - aa0: 1080201c xori r2,r2,128 - aa4: 10bfe004 addi r2,r2,-128 - aa8: 10800058 cmpnei r2,r2,1 - aac: 10000d1e bne r2,zero,ae4 - //PC�̃��Z�b�g - char res = reset_pc(reset_pc_confirmed);//���m�F�̏��F - ab0: e13ffec7 ldb r4,-5(fp) - ab4: 00008700 call 870 - ab8: e0bffe05 stb r2,-8(fp) - if (1 == res) reset_pc_confirmed = 1; //���m�F - abc: e0bffe07 ldb r2,-8(fp) - ac0: 10800058 cmpnei r2,r2,1 - ac4: 1000021e bne r2,zero,ad0 - ac8: 00800044 movi r2,1 - acc: e0bffec5 stb r2,-5(fp) - if (0 == res) reset_pc_confirmed = 0; //���Z�b�g�̊m�F - ad0: e0bffe07 ldb r2,-8(fp) - ad4: 1004c03a cmpne r2,r2,zero - ad8: 1000031e bne r2,zero,ae8 - adc: e03ffec5 stb zero,-5(fp) - ae0: 00000106 br ae8 - } else { - store_inst(); - ae4: 00005800 call 580 - } - } - // RUN - if (PUSH_EVENT & PUSH_RUN) { - ae8: 00800074 movhi r2,1 - aec: 10887c04 addi r2,r2,8688 - af0: 10800003 ldbu r2,0(r2) - af4: 10803fcc andi r2,r2,255 - af8: 1080040c andi r2,r2,16 - afc: 1005003a cmpeq r2,r2,zero - b00: 10001a1e bne r2,zero,b6c - if (global_current_memory != (unsigned int)global_registers[Ssw_psel]) { - b04: 00800074 movhi r2,1 - b08: 1090cd04 addi r2,r2,17204 - b0c: 108002c3 ldbu r2,11(r2) - b10: 10c03fcc andi r3,r2,255 - b14: 18c0201c xori r3,r3,128 - b18: 18ffe004 addi r3,r3,-128 - b1c: 00800074 movhi r2,1 - b20: 108f7504 addi r2,r2,15828 - b24: 10800017 ldw r2,0(r2) - b28: 18800e26 beq r3,r2,b64 - global_current_memory = (unsigned int)global_registers[Ssw_psel]; - b2c: 00800074 movhi r2,1 - b30: 1090cd04 addi r2,r2,17204 - b34: 108002c3 ldbu r2,11(r2) - b38: 10c03fcc andi r3,r2,255 - b3c: 18c0201c xori r3,r3,128 - b40: 18ffe004 addi r3,r3,-128 - b44: 00800074 movhi r2,1 - b48: 108f7504 addi r2,r2,15828 - b4c: 10c00015 stw r3,0(r2) - print_change_memory(global_current_memory); - b50: 00800074 movhi r2,1 - b54: 108f7504 addi r2,r2,15828 - b58: 11000017 ldw r4,0(r2) - b5c: 00006c40 call 6c4 - b60: 00000206 br b6c - } - else { - // �v���O�����������ݒ� - fRun = RUN_INIT; - b64: 00800044 movi r2,1 - b68: e0bfff15 stw r2,-4(fp) - } - } - if (fRun != RUN_STOP) { - b6c: e0bfff17 ldw r2,-4(fp) - b70: 1005003a cmpeq r2,r2,zero - b74: 103f6b1e bne r2,zero,924 - // �v���O�������s���荞�� & ���s���[�h�X�V - fRun = run_proc(fRun); - b78: e13fff17 ldw r4,-4(fp) - b7c: 00029380 call 2938 - b80: e0bfff15 stw r2,-4(fp) - } - } - b84: 003f6706 br 924 - -00000b88 : - */ - -#include "hex_encoder.h" -#include - -void encodeNumHex(int hex_i, int num) { - b88: defffc04 addi sp,sp,-16 - b8c: df000315 stw fp,12(sp) - b90: df000304 addi fp,sp,12 - b94: e13ffe15 stw r4,-8(fp) - b98: e17fff15 stw r5,-4(fp) - char encoded = 0; - b9c: e03ffd05 stb zero,-12(fp) - switch (num) { - ba0: e0bfff17 ldw r2,-4(fp) - ba4: 108002a8 cmpgeui r2,r2,10 - ba8: 10002f1e bne r2,zero,c68 - bac: e0bfff17 ldw r2,-4(fp) - bb0: 1085883a add r2,r2,r2 - bb4: 1087883a add r3,r2,r2 - bb8: 00800034 movhi r2,0 - bbc: 1082f304 addi r2,r2,3020 - bc0: 1885883a add r2,r3,r2 - bc4: 10800017 ldw r2,0(r2) - bc8: 1000683a jmp r2 - bcc: 00000bf4 movhi zero,47 - bd0: 00000c00 call c0 <__flash_exceptions_start+0xa0> - bd4: 00000c0c andi zero,zero,48 - bd8: 00000c18 cmpnei zero,zero,48 - bdc: 00000c24 muli zero,zero,48 - be0: 00000c30 cmpltui zero,zero,48 - be4: 00000c3c xorhi zero,zero,48 - be8: 00000c48 cmpgei zero,zero,49 - bec: 00000c54 movui zero,49 - bf0: 00000c5c xori zero,zero,49 - case 0: - encoded = (char)0x40; // 100 0000 - bf4: 00801004 movi r2,64 - bf8: e0bffd05 stb r2,-12(fp) - break; - bfc: 00001b06 br c6c - case 1: - encoded = (char)0xF9; // 111 1001 - c00: 00bffe44 movi r2,-7 - c04: e0bffd05 stb r2,-12(fp) - break; - c08: 00001806 br c6c - case 2: - encoded = (char)0x24; // 010 0100 - c0c: 00800904 movi r2,36 - c10: e0bffd05 stb r2,-12(fp) - break; - c14: 00001506 br c6c - case 3: - encoded = (char)0x30; // 011 0000 - c18: 00800c04 movi r2,48 - c1c: e0bffd05 stb r2,-12(fp) - break; - c20: 00001206 br c6c - case 4: - encoded = (char)0x19; // 001 1001 - c24: 00800644 movi r2,25 - c28: e0bffd05 stb r2,-12(fp) - break; - c2c: 00000f06 br c6c - case 5: - encoded = (char)0x12; // 001 0010 - c30: 00800484 movi r2,18 - c34: e0bffd05 stb r2,-12(fp) - break; - c38: 00000c06 br c6c - case 6: - encoded = (char)0x02; // 000 0010 - c3c: 00800084 movi r2,2 - c40: e0bffd05 stb r2,-12(fp) - break; - c44: 00000906 br c6c - case 7: - encoded = (char)0x58; // 101 1000 - c48: 00801604 movi r2,88 - c4c: e0bffd05 stb r2,-12(fp) - break; - c50: 00000606 br c6c - case 8: - encoded = (char)0x00; // 000 0000 - c54: e03ffd05 stb zero,-12(fp) - break; - c58: 00000406 br c6c - case 9: - encoded = (char)0x10; // 001 0000 - c5c: 00800404 movi r2,16 - c60: e0bffd05 stb r2,-12(fp) - break; - c64: 00000106 br c6c - default: - encoded = 0; - c68: e03ffd05 stb zero,-12(fp) - break; - } - - switch (hex_i) { - c6c: e0bffe17 ldw r2,-8(fp) - c70: 10800228 cmpgeui r2,r2,8 - c74: 1000371e bne r2,zero,d54 - c78: e0bffe17 ldw r2,-8(fp) - c7c: 1085883a add r2,r2,r2 - c80: 1087883a add r3,r2,r2 - c84: 00800034 movhi r2,0 - c88: 10832604 addi r2,r2,3224 - c8c: 1885883a add r2,r3,r2 - c90: 10800017 ldw r2,0(r2) - c94: 1000683a jmp r2 - c98: 00000cb8 rdprs zero,zero,50 - c9c: 00000ccc andi zero,zero,51 - ca0: 00000ce0 cmpeqi zero,zero,51 - ca4: 00000cf4 movhi zero,51 - ca8: 00000d08 cmpgei zero,zero,52 - cac: 00000d1c xori zero,zero,52 - cb0: 00000d30 cmpltui zero,zero,52 - cb4: 00000d44 movi zero,53 - case 0: - *hex0 = encoded; - cb8: 00c00134 movhi r3,4 - cbc: 18c42c04 addi r3,r3,4272 - cc0: e0bffd03 ldbu r2,-12(fp) - cc4: 18800005 stb r2,0(r3) - break; - cc8: 00002206 br d54 - case 1: - *hex1 = encoded; - ccc: 00c00134 movhi r3,4 - cd0: 18c42804 addi r3,r3,4256 - cd4: e0bffd03 ldbu r2,-12(fp) - cd8: 18800005 stb r2,0(r3) - break; - cdc: 00001d06 br d54 - case 2: - *hex2 = encoded; - ce0: 00c00134 movhi r3,4 - ce4: 18c42404 addi r3,r3,4240 - ce8: e0bffd03 ldbu r2,-12(fp) - cec: 18800005 stb r2,0(r3) - break; - cf0: 00001806 br d54 - case 3: - *hex3 = encoded; - cf4: 00c00134 movhi r3,4 - cf8: 18c42004 addi r3,r3,4224 - cfc: e0bffd03 ldbu r2,-12(fp) - d00: 18800005 stb r2,0(r3) - break; - d04: 00001306 br d54 - case 4: - *hex4 = encoded; - d08: 00c00134 movhi r3,4 - d0c: 18c41c04 addi r3,r3,4208 - d10: e0bffd03 ldbu r2,-12(fp) - d14: 18800005 stb r2,0(r3) - break; - d18: 00000e06 br d54 - case 5: - *hex5 = encoded; - d1c: 00c00134 movhi r3,4 - d20: 18c41804 addi r3,r3,4192 - d24: e0bffd03 ldbu r2,-12(fp) - d28: 18800005 stb r2,0(r3) - break; - d2c: 00000906 br d54 - case 6: - *hex6 = encoded; - d30: 00c00134 movhi r3,4 - d34: 18c41404 addi r3,r3,4176 - d38: e0bffd03 ldbu r2,-12(fp) - d3c: 18800005 stb r2,0(r3) - break; - d40: 00000406 br d54 - case 7: - *hex7 = encoded; - d44: 00c00134 movhi r3,4 - d48: 18c41004 addi r3,r3,4160 - d4c: e0bffd03 ldbu r2,-12(fp) - d50: 18800005 stb r2,0(r3) - break; - default: - break; - } -} - d54: e037883a mov sp,fp - d58: df000017 ldw fp,0(sp) - d5c: dec00104 addi sp,sp,4 - d60: f800283a ret - -00000d64 : - -void encodeLatHex(int hex_i, char c) { - d64: defffa04 addi sp,sp,-24 - d68: dfc00515 stw ra,20(sp) - d6c: df000415 stw fp,16(sp) - d70: df000404 addi fp,sp,16 - d74: e13ffd15 stw r4,-12(fp) - d78: e17ffe05 stb r5,-8(fp) - char encoded = 0; - d7c: e03ffc05 stb zero,-16(fp) - - if (isdigit(c)) { - d80: e0bffe07 ldb r2,-8(fp) - d84: 1007883a mov r3,r2 - d88: 00800074 movhi r2,1 - d8c: 10887d04 addi r2,r2,8692 - d90: 10800017 ldw r2,0(r2) - d94: 1885883a add r2,r3,r2 - d98: 10800003 ldbu r2,0(r2) - d9c: 10803fcc andi r2,r2,255 - da0: 1080010c andi r2,r2,4 - da4: 1005003a cmpeq r2,r2,zero - da8: 1000051e bne r2,zero,dc0 - encodeNumHex(hex_i, c-'0'); - dac: e0bffe07 ldb r2,-8(fp) - db0: 117ff404 addi r5,r2,-48 - db4: e13ffd17 ldw r4,-12(fp) - db8: 0000b880 call b88 - return; - dbc: 0000f906 br 11a4 - } - - switch (c) { - dc0: e0bffe07 ldb r2,-8(fp) - dc4: 10bff804 addi r2,r2,-32 - dc8: e0bfff15 stw r2,-4(fp) - dcc: e0ffff17 ldw r3,-4(fp) - dd0: 188016e8 cmpgeui r2,r3,91 - dd4: 1000b81e bne r2,zero,10b8 - dd8: e13fff17 ldw r4,-4(fp) - ddc: e13fff17 ldw r4,-4(fp) - de0: 2105883a add r2,r4,r4 - de4: 1087883a add r3,r2,r2 - de8: 00800034 movhi r2,0 - dec: 10837f04 addi r2,r2,3580 - df0: 1885883a add r2,r3,r2 - df4: 10800017 ldw r2,0(r2) - df8: 1000683a jmp r2 - dfc: 00000f68 cmpgeui zero,zero,61 - e00: 000010b8 rdprs zero,zero,66 - e04: 000010b8 rdprs zero,zero,66 - e08: 000010b8 rdprs zero,zero,66 - e0c: 000010b8 rdprs zero,zero,66 - e10: 000010b8 rdprs zero,zero,66 - e14: 000010b8 rdprs zero,zero,66 - e18: 000010b8 rdprs zero,zero,66 - e1c: 000010b8 rdprs zero,zero,66 - e20: 000010b8 rdprs zero,zero,66 - e24: 000010b8 rdprs zero,zero,66 - e28: 000010b8 rdprs zero,zero,66 - e2c: 000010b8 rdprs zero,zero,66 - e30: 00000f74 movhi zero,61 - e34: 000010b8 rdprs zero,zero,66 - e38: 000010b8 rdprs zero,zero,66 - e3c: 000010b8 rdprs zero,zero,66 - e40: 000010b8 rdprs zero,zero,66 - e44: 000010b8 rdprs zero,zero,66 - e48: 000010b8 rdprs zero,zero,66 - e4c: 000010b8 rdprs zero,zero,66 - e50: 000010b8 rdprs zero,zero,66 - e54: 000010b8 rdprs zero,zero,66 - e58: 000010b8 rdprs zero,zero,66 - e5c: 000010b8 rdprs zero,zero,66 - e60: 000010b8 rdprs zero,zero,66 - e64: 000010b8 rdprs zero,zero,66 - e68: 000010b8 rdprs zero,zero,66 - e6c: 000010b8 rdprs zero,zero,66 - e70: 000010b8 rdprs zero,zero,66 - e74: 000010b8 rdprs zero,zero,66 - e78: 000010b8 rdprs zero,zero,66 - e7c: 000010b8 rdprs zero,zero,66 - e80: 000010b8 rdprs zero,zero,66 - e84: 000010b8 rdprs zero,zero,66 - e88: 000010b8 rdprs zero,zero,66 - e8c: 000010b8 rdprs zero,zero,66 - e90: 000010b8 rdprs zero,zero,66 - e94: 000010b8 rdprs zero,zero,66 - e98: 000010b8 rdprs zero,zero,66 - e9c: 000010b8 rdprs zero,zero,66 - ea0: 000010b8 rdprs zero,zero,66 - ea4: 000010b8 rdprs zero,zero,66 - ea8: 000010b8 rdprs zero,zero,66 - eac: 000010b8 rdprs zero,zero,66 - eb0: 000010b8 rdprs zero,zero,66 - eb4: 000010b8 rdprs zero,zero,66 - eb8: 000010b8 rdprs zero,zero,66 - ebc: 000010b8 rdprs zero,zero,66 - ec0: 000010b8 rdprs zero,zero,66 - ec4: 000010b8 rdprs zero,zero,66 - ec8: 000010b8 rdprs zero,zero,66 - ecc: 000010b8 rdprs zero,zero,66 - ed0: 000010b8 rdprs zero,zero,66 - ed4: 000010b8 rdprs zero,zero,66 - ed8: 000010b8 rdprs zero,zero,66 - edc: 000010b8 rdprs zero,zero,66 - ee0: 000010b8 rdprs zero,zero,66 - ee4: 000010b8 rdprs zero,zero,66 - ee8: 000010b8 rdprs zero,zero,66 - eec: 000010b8 rdprs zero,zero,66 - ef0: 000010b8 rdprs zero,zero,66 - ef4: 000010b8 rdprs zero,zero,66 - ef8: 000010b8 rdprs zero,zero,66 - efc: 000010b8 rdprs zero,zero,66 - f00: 00000f80 call f8 - f04: 00000f8c andi zero,zero,62 - f08: 00000f98 cmpnei zero,zero,62 - f0c: 00000fa4 muli zero,zero,62 - f10: 00000fb0 cmpltui zero,zero,62 - f14: 00000fbc xorhi zero,zero,62 - f18: 00000fc8 cmpgei zero,zero,63 - f1c: 00000fd4 movui zero,63 - f20: 00000fe0 cmpeqi zero,zero,63 - f24: 00000fec andhi zero,zero,63 - f28: 00000ff8 rdprs zero,zero,63 - f2c: 00001004 movi zero,64 - f30: 00001010 cmplti zero,zero,64 - f34: 0000101c xori zero,zero,64 - f38: 00001028 cmpgeui zero,zero,64 - f3c: 00001034 movhi zero,64 - f40: 00001040 call 104 - f44: 0000104c andi zero,zero,65 - f48: 00001058 cmpnei zero,zero,65 - f4c: 00001064 muli zero,zero,65 - f50: 00001070 cmpltui zero,zero,65 - f54: 0000107c xorhi zero,zero,65 - f58: 00001088 cmpgei zero,zero,66 - f5c: 00001094 movui zero,66 - f60: 000010a0 cmpeqi zero,zero,66 - f64: 000010ac andhi zero,zero,66 - case ' ': - encoded = (char)0xFF; // 111 1111 - f68: 00bfffc4 movi r2,-1 - f6c: e0bffc05 stb r2,-16(fp) - break; - f70: 00005206 br 10bc - case '-': - encoded = (char)0x3F; // 011 1111 - f74: 00800fc4 movi r2,63 - f78: e0bffc05 stb r2,-16(fp) - break; - f7c: 00004f06 br 10bc - case 'a': - encoded = (char)0x08; // 000 1000 - f80: 00800204 movi r2,8 - f84: e0bffc05 stb r2,-16(fp) - break; - f88: 00004c06 br 10bc - case 'b': - encoded = (char)0x03; // 000 0011 - f8c: 008000c4 movi r2,3 - f90: e0bffc05 stb r2,-16(fp) - break; - f94: 00004906 br 10bc - case 'c': - encoded = (char)0x27; // 010 0111 - f98: 008009c4 movi r2,39 - f9c: e0bffc05 stb r2,-16(fp) - break; - fa0: 00004606 br 10bc - case 'd': - encoded = (char)0x21; // 010 0001 - fa4: 00800844 movi r2,33 - fa8: e0bffc05 stb r2,-16(fp) - break; - fac: 00004306 br 10bc - case 'e': - encoded = (char)0x06; // 000 0110 - fb0: 00800184 movi r2,6 - fb4: e0bffc05 stb r2,-16(fp) - break; - fb8: 00004006 br 10bc - case 'f': - encoded = (char)0x0E; // 000 1110 - fbc: 00800384 movi r2,14 - fc0: e0bffc05 stb r2,-16(fp) - break; - fc4: 00003d06 br 10bc - case 'g': - encoded = (char)0x42; // 100 0010 - fc8: 00801084 movi r2,66 - fcc: e0bffc05 stb r2,-16(fp) - break; - fd0: 00003a06 br 10bc - case 'h': - encoded = (char)0x0B; // 000 1011 - fd4: 008002c4 movi r2,11 - fd8: e0bffc05 stb r2,-16(fp) - break; - fdc: 00003706 br 10bc - case 'i': - encoded = (char)0xFB; // 111 1011 - fe0: 00bffec4 movi r2,-5 - fe4: e0bffc05 stb r2,-16(fp) - break; - fe8: 00003406 br 10bc - case 'j': - encoded = (char)0x61; // 110 0001 - fec: 00801844 movi r2,97 - ff0: e0bffc05 stb r2,-16(fp) - break; - ff4: 00003106 br 10bc - case 'k': - encoded = (char)0x0A; // 000 1010 - ff8: 00800284 movi r2,10 - ffc: e0bffc05 stb r2,-16(fp) - break; - 1000: 00002e06 br 10bc - case 'l': - encoded = (char)0x47; // 100 0111 - 1004: 008011c4 movi r2,71 - 1008: e0bffc05 stb r2,-16(fp) - break; - 100c: 00002b06 br 10bc - case 'm': - encoded = (char)0x48; // 100 1000 - 1010: 00801204 movi r2,72 - 1014: e0bffc05 stb r2,-16(fp) - break; - 1018: 00002806 br 10bc - case 'n': - encoded = (char)0x2B; // 010 1011 - 101c: 00800ac4 movi r2,43 - 1020: e0bffc05 stb r2,-16(fp) - break; - 1024: 00002506 br 10bc - case 'o': - encoded = (char)0x23; // 010 0011 - 1028: 008008c4 movi r2,35 - 102c: e0bffc05 stb r2,-16(fp) - break; - 1030: 00002206 br 10bc - case 'p': - encoded = (char)0x0C; // 000 1100 - 1034: 00800304 movi r2,12 - 1038: e0bffc05 stb r2,-16(fp) - break; - 103c: 00001f06 br 10bc - case 'q': - encoded = (char)0x04; // 000 0100 - 1040: 00800104 movi r2,4 - 1044: e0bffc05 stb r2,-16(fp) - break; - 1048: 00001c06 br 10bc - case 'r': - encoded = (char)0x2F; // 010 1111 - 104c: 00800bc4 movi r2,47 - 1050: e0bffc05 stb r2,-16(fp) - break; - 1054: 00001906 br 10bc - case 's': - encoded = (char)0x13; // 001 0011 - 1058: 008004c4 movi r2,19 - 105c: e0bffc05 stb r2,-16(fp) - break; - 1060: 00001606 br 10bc - case 't': - encoded = (char)0x07; // 000 0111 - 1064: 008001c4 movi r2,7 - 1068: e0bffc05 stb r2,-16(fp) - break; - 106c: 00001306 br 10bc - case 'u': - encoded = (char)0x63; // 110 0011 - 1070: 008018c4 movi r2,99 - 1074: e0bffc05 stb r2,-16(fp) - break; - 1078: 00001006 br 10bc - case 'v': - encoded = (char)0x41; // 100 0001 - 107c: 00801044 movi r2,65 - 1080: e0bffc05 stb r2,-16(fp) - break; - 1084: 00000d06 br 10bc - case 'w': - encoded = (char)0x01; // 000 0001 - 1088: 00800044 movi r2,1 - 108c: e0bffc05 stb r2,-16(fp) - break; - 1090: 00000a06 br 10bc - case 'x': - encoded = (char)0x09; // 000 1001 - 1094: 00800244 movi r2,9 - 1098: e0bffc05 stb r2,-16(fp) - break; - 109c: 00000706 br 10bc - case 'y': - encoded = (char)0x11; // 001 0001 - 10a0: 00800444 movi r2,17 - 10a4: e0bffc05 stb r2,-16(fp) - break; - 10a8: 00000406 br 10bc - case 'z': - encoded = (char)0x64; // 110 0100 - 10ac: 00801904 movi r2,100 - 10b0: e0bffc05 stb r2,-16(fp) - break; - 10b4: 00000106 br 10bc - default: - encoded = 0; - 10b8: e03ffc05 stb zero,-16(fp) - break; - } - - switch (hex_i) { - 10bc: e0bffd17 ldw r2,-12(fp) - 10c0: 10800228 cmpgeui r2,r2,8 - 10c4: 1000371e bne r2,zero,11a4 - 10c8: e0bffd17 ldw r2,-12(fp) - 10cc: 1085883a add r2,r2,r2 - 10d0: 1087883a add r3,r2,r2 - 10d4: 00800034 movhi r2,0 - 10d8: 10843a04 addi r2,r2,4328 - 10dc: 1885883a add r2,r3,r2 - 10e0: 10800017 ldw r2,0(r2) - 10e4: 1000683a jmp r2 - 10e8: 00001108 cmpgei zero,zero,68 - 10ec: 0000111c xori zero,zero,68 - 10f0: 00001130 cmpltui zero,zero,68 - 10f4: 00001144 movi zero,69 - 10f8: 00001158 cmpnei zero,zero,69 - 10fc: 0000116c andhi zero,zero,69 - 1100: 00001180 call 118 - 1104: 00001194 movui zero,70 - case 0: - *hex0 = encoded; - 1108: 00c00134 movhi r3,4 - 110c: 18c42c04 addi r3,r3,4272 - 1110: e0bffc03 ldbu r2,-16(fp) - 1114: 18800005 stb r2,0(r3) - break; - 1118: 00002206 br 11a4 - case 1: - *hex1 = encoded; - 111c: 00c00134 movhi r3,4 - 1120: 18c42804 addi r3,r3,4256 - 1124: e0bffc03 ldbu r2,-16(fp) - 1128: 18800005 stb r2,0(r3) - break; - 112c: 00001d06 br 11a4 - case 2: - *hex2 = encoded; - 1130: 00c00134 movhi r3,4 - 1134: 18c42404 addi r3,r3,4240 - 1138: e0bffc03 ldbu r2,-16(fp) - 113c: 18800005 stb r2,0(r3) - break; - 1140: 00001806 br 11a4 - case 3: - *hex3 = encoded; - 1144: 00c00134 movhi r3,4 - 1148: 18c42004 addi r3,r3,4224 - 114c: e0bffc03 ldbu r2,-16(fp) - 1150: 18800005 stb r2,0(r3) - break; - 1154: 00001306 br 11a4 - case 4: - *hex4 = encoded; - 1158: 00c00134 movhi r3,4 - 115c: 18c41c04 addi r3,r3,4208 - 1160: e0bffc03 ldbu r2,-16(fp) - 1164: 18800005 stb r2,0(r3) - break; - 1168: 00000e06 br 11a4 - case 5: - *hex5 = encoded; - 116c: 00c00134 movhi r3,4 - 1170: 18c41804 addi r3,r3,4192 - 1174: e0bffc03 ldbu r2,-16(fp) - 1178: 18800005 stb r2,0(r3) - break; - 117c: 00000906 br 11a4 - case 6: - *hex6 = encoded; - 1180: 00c00134 movhi r3,4 - 1184: 18c41404 addi r3,r3,4176 - 1188: e0bffc03 ldbu r2,-16(fp) - 118c: 18800005 stb r2,0(r3) - break; - 1190: 00000406 br 11a4 - case 7: - *hex7 = encoded; - 1194: 00c00134 movhi r3,4 - 1198: 18c41004 addi r3,r3,4160 - 119c: e0bffc03 ldbu r2,-16(fp) - 11a0: 18800005 stb r2,0(r3) - break; - default: - break; - } -} - 11a4: e037883a mov sp,fp - 11a8: dfc00117 ldw ra,4(sp) - 11ac: df000017 ldw fp,0(sp) - 11b0: dec00204 addi sp,sp,8 - 11b4: f800283a ret - -000011b8 : - */ -#include "hex_out.h" -#include "hex_encoder.h" -#include "sys_except.h" - -void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { - 11b8: defffa04 addi sp,sp,-24 - 11bc: dfc00515 stw ra,20(sp) - 11c0: df000415 stw fp,16(sp) - 11c4: df000404 addi fp,sp,16 - 11c8: e13ffd15 stw r4,-12(fp) - 11cc: e17ffe15 stw r5,-8(fp) - 11d0: e1bfff15 stw r6,-4(fp) - int i; - if (block_i == HEX0_3) { - 11d4: e0bfff17 ldw r2,-4(fp) - 11d8: 1004c03a cmpne r2,r2,zero - 11dc: 10001a1e bne r2,zero,1248 - if (size > 4) panic(); - 11e0: e0bffe17 ldw r2,-8(fp) - 11e4: 10800170 cmpltui r2,r2,5 - 11e8: 1000011e bne r2,zero,11f0 - 11ec: 000253c0 call 253c - for (i = 0; i < size; i++) { - 11f0: e03ffc15 stw zero,-16(fp) - 11f4: 00001006 br 1238 - encodeLatHex(i,str[size-1-i]); - 11f8: e0fffc17 ldw r3,-16(fp) - 11fc: e0bffe17 ldw r2,-8(fp) - 1200: 10c5c83a sub r2,r2,r3 - 1204: 1007883a mov r3,r2 - 1208: e0bffd17 ldw r2,-12(fp) - 120c: 1885883a add r2,r3,r2 - 1210: 10bfffc4 addi r2,r2,-1 - 1214: 10800003 ldbu r2,0(r2) - 1218: 11403fcc andi r5,r2,255 - 121c: 2940201c xori r5,r5,128 - 1220: 297fe004 addi r5,r5,-128 - 1224: e13ffc17 ldw r4,-16(fp) - 1228: 0000d640 call d64 - -void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { - int i; - if (block_i == HEX0_3) { - if (size > 4) panic(); - for (i = 0; i < size; i++) { - 122c: e0bffc17 ldw r2,-16(fp) - 1230: 10800044 addi r2,r2,1 - 1234: e0bffc15 stw r2,-16(fp) - 1238: e0fffc17 ldw r3,-16(fp) - 123c: e0bffe17 ldw r2,-8(fp) - 1240: 18bfed36 bltu r3,r2,11f8 - 1244: 00003b06 br 1334 - encodeLatHex(i,str[size-1-i]); - } - } - else if (block_i == HEX4_5) { - 1248: e0bfff17 ldw r2,-4(fp) - 124c: 10800058 cmpnei r2,r2,1 - 1250: 10001b1e bne r2,zero,12c0 - if (size > 2) panic(); - 1254: e0bffe17 ldw r2,-8(fp) - 1258: 108000f0 cmpltui r2,r2,3 - 125c: 1000011e bne r2,zero,1264 - 1260: 000253c0 call 253c - for (i = 0; i < size; i++) { - 1264: e03ffc15 stw zero,-16(fp) - 1268: 00001106 br 12b0 - encodeLatHex(i+4,str[size-1-i]); - 126c: e0bffc17 ldw r2,-16(fp) - 1270: 11000104 addi r4,r2,4 - 1274: e0fffc17 ldw r3,-16(fp) - 1278: e0bffe17 ldw r2,-8(fp) - 127c: 10c5c83a sub r2,r2,r3 - 1280: 1007883a mov r3,r2 - 1284: e0bffd17 ldw r2,-12(fp) - 1288: 1885883a add r2,r3,r2 - 128c: 10bfffc4 addi r2,r2,-1 - 1290: 10800003 ldbu r2,0(r2) - 1294: 11403fcc andi r5,r2,255 - 1298: 2940201c xori r5,r5,128 - 129c: 297fe004 addi r5,r5,-128 - 12a0: 0000d640 call d64 - encodeLatHex(i,str[size-1-i]); - } - } - else if (block_i == HEX4_5) { - if (size > 2) panic(); - for (i = 0; i < size; i++) { - 12a4: e0bffc17 ldw r2,-16(fp) - 12a8: 10800044 addi r2,r2,1 - 12ac: e0bffc15 stw r2,-16(fp) - 12b0: e0fffc17 ldw r3,-16(fp) - 12b4: e0bffe17 ldw r2,-8(fp) - 12b8: 18bfec36 bltu r3,r2,126c - 12bc: 00001d06 br 1334 - encodeLatHex(i+4,str[size-1-i]); - } - } - else if (block_i == HEX6_7) { - 12c0: e0bfff17 ldw r2,-4(fp) - 12c4: 10800098 cmpnei r2,r2,2 - 12c8: 10001a1e bne r2,zero,1334 - if (size > 2) panic(); - 12cc: e0bffe17 ldw r2,-8(fp) - 12d0: 108000f0 cmpltui r2,r2,3 - 12d4: 1000011e bne r2,zero,12dc - 12d8: 000253c0 call 253c - for (i = 0; i < size; i++) { - 12dc: e03ffc15 stw zero,-16(fp) - 12e0: 00001106 br 1328 - encodeLatHex(i+6,str[size-1-i]); - 12e4: e0bffc17 ldw r2,-16(fp) - 12e8: 11000184 addi r4,r2,6 - 12ec: e0fffc17 ldw r3,-16(fp) - 12f0: e0bffe17 ldw r2,-8(fp) - 12f4: 10c5c83a sub r2,r2,r3 - 12f8: 1007883a mov r3,r2 - 12fc: e0bffd17 ldw r2,-12(fp) - 1300: 1885883a add r2,r3,r2 - 1304: 10bfffc4 addi r2,r2,-1 - 1308: 10800003 ldbu r2,0(r2) - 130c: 11403fcc andi r5,r2,255 - 1310: 2940201c xori r5,r5,128 - 1314: 297fe004 addi r5,r5,-128 - 1318: 0000d640 call d64 - encodeLatHex(i+4,str[size-1-i]); - } - } - else if (block_i == HEX6_7) { - if (size > 2) panic(); - for (i = 0; i < size; i++) { - 131c: e0bffc17 ldw r2,-16(fp) - 1320: 10800044 addi r2,r2,1 - 1324: e0bffc15 stw r2,-16(fp) - 1328: e0fffc17 ldw r3,-16(fp) - 132c: e0bffe17 ldw r2,-8(fp) - 1330: 18bfec36 bltu r3,r2,12e4 - encodeLatHex(i+6,str[size-1-i]); - } - } -} - 1334: e037883a mov sp,fp - 1338: dfc00117 ldw ra,4(sp) - 133c: df000017 ldw fp,0(sp) - 1340: dec00204 addi sp,sp,8 - 1344: f800283a ret - -00001348 : - -void clear_block(enum BLOCK_N block_i) { - 1348: defffd04 addi sp,sp,-12 - 134c: dfc00215 stw ra,8(sp) - 1350: df000115 stw fp,4(sp) - 1354: df000104 addi fp,sp,4 - 1358: e13fff15 stw r4,-4(fp) - if (block_i == HEX0_3) { - 135c: e0bfff17 ldw r2,-4(fp) - 1360: 1004c03a cmpne r2,r2,zero - 1364: 1000061e bne r2,zero,1380 - print_block(" ", 4, HEX0_3); - 1368: 01000074 movhi r4,1 - 136c: 21001904 addi r4,r4,100 - 1370: 01400104 movi r5,4 - 1374: 000d883a mov r6,zero - 1378: 00011b80 call 11b8 - 137c: 00001106 br 13c4 - } - else if (block_i == HEX4_5) { - 1380: e0bfff17 ldw r2,-4(fp) - 1384: 10800058 cmpnei r2,r2,1 - 1388: 1000061e bne r2,zero,13a4 - print_block(" ", 2, HEX4_5); - 138c: 01000074 movhi r4,1 - 1390: 21001b04 addi r4,r4,108 - 1394: 01400084 movi r5,2 - 1398: 01800044 movi r6,1 - 139c: 00011b80 call 11b8 - 13a0: 00000806 br 13c4 - } - else if (block_i == HEX6_7) { - 13a4: e0bfff17 ldw r2,-4(fp) - 13a8: 10800098 cmpnei r2,r2,2 - 13ac: 1000051e bne r2,zero,13c4 - print_block(" ", 2, HEX6_7); - 13b0: 01000074 movhi r4,1 - 13b4: 21001b04 addi r4,r4,108 - 13b8: 01400084 movi r5,2 - 13bc: 01800084 movi r6,2 - 13c0: 00011b80 call 11b8 - } -} - 13c4: e037883a mov sp,fp - 13c8: dfc00117 ldw ra,4(sp) - 13cc: df000017 ldw fp,0(sp) - 13d0: dec00204 addi sp,sp,8 - 13d4: f800283a ret - -000013d8 : - -void print_number(char num) { - 13d8: defff904 addi sp,sp,-28 - 13dc: dfc00615 stw ra,24(sp) - 13e0: df000515 stw fp,20(sp) - 13e4: df000504 addi fp,sp,20 - 13e8: e13fff05 stb r4,-4(fp) - int i; - char buf[5]; - char val; - for (i = 0; i < 4; i++) { - 13ec: e03ffc15 stw zero,-16(fp) - 13f0: 00002906 br 1498 - if (num < 0) { - 13f4: e0bfff07 ldb r2,-4(fp) - 13f8: 1004403a cmpge r2,r2,zero - 13fc: 1000061e bne r2,zero,1418 - buf[0] = '-'; - 1400: 00800b44 movi r2,45 - 1404: e0bffd05 stb r2,-12(fp) - val = -num; - 1408: e0bfff03 ldbu r2,-4(fp) - 140c: 0085c83a sub r2,zero,r2 - 1410: e0bffb05 stb r2,-20(fp) - 1414: 00000406 br 1428 - } else { - buf[0] = ' '; - 1418: 00800804 movi r2,32 - 141c: e0bffd05 stb r2,-12(fp) - val = num; - 1420: e0bfff03 ldbu r2,-4(fp) - 1424: e0bffb05 stb r2,-20(fp) - } - buf[1] = val/100%10 + '0'; - 1428: e13ffb07 ldb r4,-20(fp) - 142c: 01401904 movi r5,100 - 1430: 0002b540 call 2b54 <__divsi3> - 1434: 11003fcc andi r4,r2,255 - 1438: 2100201c xori r4,r4,128 - 143c: 213fe004 addi r4,r4,-128 - 1440: 01400284 movi r5,10 - 1444: 0002bb40 call 2bb4 <__modsi3> - 1448: 10800c04 addi r2,r2,48 - 144c: e0bffd45 stb r2,-11(fp) - buf[2] = val/10%10 + '0'; - 1450: e13ffb07 ldb r4,-20(fp) - 1454: 01400284 movi r5,10 - 1458: 0002b540 call 2b54 <__divsi3> - 145c: 11003fcc andi r4,r2,255 - 1460: 2100201c xori r4,r4,128 - 1464: 213fe004 addi r4,r4,-128 - 1468: 01400284 movi r5,10 - 146c: 0002bb40 call 2bb4 <__modsi3> - 1470: 10800c04 addi r2,r2,48 - 1474: e0bffd85 stb r2,-10(fp) - buf[3] = val%10 + '0'; - 1478: e13ffb07 ldb r4,-20(fp) - 147c: 01400284 movi r5,10 - 1480: 0002bb40 call 2bb4 <__modsi3> - 1484: 10800c04 addi r2,r2,48 - 1488: e0bffdc5 stb r2,-9(fp) - -void print_number(char num) { - int i; - char buf[5]; - char val; - for (i = 0; i < 4; i++) { - 148c: e0bffc17 ldw r2,-16(fp) - 1490: 10800044 addi r2,r2,1 - 1494: e0bffc15 stw r2,-16(fp) - 1498: e0bffc17 ldw r2,-16(fp) - 149c: 10800110 cmplti r2,r2,4 - 14a0: 103fd41e bne r2,zero,13f4 - } - buf[1] = val/100%10 + '0'; - buf[2] = val/10%10 + '0'; - buf[3] = val%10 + '0'; - } - clear_block(HEX0_3); - 14a4: 0009883a mov r4,zero - 14a8: 00013480 call 1348 - print_block(buf, 4, HEX0_3); - 14ac: e13ffd04 addi r4,fp,-12 - 14b0: 01400104 movi r5,4 - 14b4: 000d883a mov r6,zero - 14b8: 00011b80 call 11b8 -} - 14bc: e037883a mov sp,fp - 14c0: dfc00117 ldw ra,4(sp) - 14c4: df000017 ldw fp,0(sp) - 14c8: dec00204 addi sp,sp,8 - 14cc: f800283a ret - -000014d0 : -#include "input_int.h" -#include "sys_register.h" - -unsigned char PUSH_EVENT = PUSH_NONE; - -void in_int() { - 14d0: defffe04 addi sp,sp,-8 - 14d4: dfc00115 stw ra,4(sp) - 14d8: df000015 stw fp,0(sp) - 14dc: d839883a mov fp,sp - push_int(); - 14e0: 000168c0 call 168c -} - 14e4: e037883a mov sp,fp - 14e8: dfc00117 ldw ra,4(sp) - 14ec: df000017 ldw fp,0(sp) - 14f0: dec00204 addi sp,sp,8 - 14f4: f800283a ret - -000014f8 : - -static void update_sw_reg(sw_t s) { - 14f8: defffe04 addi sp,sp,-8 - 14fc: df000115 stw fp,4(sp) - 1500: df000104 addi fp,sp,4 - 1504: e13fff15 stw r4,-4(fp) - global_registers[Ssw_data] = (char)s.data.value; - 1508: e0bfff17 ldw r2,-4(fp) - 150c: 1004d2ba srli r2,r2,10 - 1510: 1007883a mov r3,r2 - 1514: 00bfffc4 movi r2,-1 - 1518: 1884703a and r2,r3,r2 - 151c: 1007883a mov r3,r2 - 1520: 00800074 movhi r2,1 - 1524: 1090cd04 addi r2,r2,17204 - 1528: 10c001c5 stb r3,7(r2) - global_registers[Ssw_inst] = (char)s.splited.instruction_code; - 152c: e0bfff17 ldw r2,-4(fp) - 1530: 1004d3ba srli r2,r2,14 - 1534: 108003cc andi r2,r2,15 - 1538: 1007883a mov r3,r2 - 153c: 00800074 movhi r2,1 - 1540: 1090cd04 addi r2,r2,17204 - 1544: 10c00205 stb r3,8(r2) - global_registers[Ssw_memi] = (char)s.splited.memory_index; - 1548: e0bfff17 ldw r2,-4(fp) - 154c: 1004d1ba srli r2,r2,6 - 1550: 108003cc andi r2,r2,15 - 1554: 1007883a mov r3,r2 - 1558: 00800074 movhi r2,1 - 155c: 1090cd04 addi r2,r2,17204 - 1560: 10c00285 stb r3,10(r2) - global_registers[Ssw_regi] = (char)s.splited.register_index; - 1564: e0bfff17 ldw r2,-4(fp) - 1568: 1004d2ba srli r2,r2,10 - 156c: 108003cc andi r2,r2,15 - 1570: 1007883a mov r3,r2 - 1574: 00800074 movhi r2,1 - 1578: 1090cd04 addi r2,r2,17204 - 157c: 10c00245 stb r3,9(r2) - global_registers[Ssw_psel] = (char)s.splited.program_selecter; - 1580: e0bfff17 ldw r2,-4(fp) - 1584: 1004d0ba srli r2,r2,2 - 1588: 108003cc andi r2,r2,15 - 158c: 1007883a mov r3,r2 - 1590: 00800074 movhi r2,1 - 1594: 1090cd04 addi r2,r2,17204 - 1598: 10c002c5 stb r3,11(r2) - global_registers[Ssw_rw] = (char)s.splited.rw_mode; - 159c: e0bfff17 ldw r2,-4(fp) - 15a0: 1004d07a srli r2,r2,1 - 15a4: 1080004c andi r2,r2,1 - 15a8: 1007883a mov r3,r2 - 15ac: 00800074 movhi r2,1 - 15b0: 1090cd04 addi r2,r2,17204 - 15b4: 10c00305 stb r3,12(r2) - global_registers[Ssw_run] = (char)s.splited.run_mode; - 15b8: e0bfff17 ldw r2,-4(fp) - 15bc: 1080004c andi r2,r2,1 - 15c0: 1007883a mov r3,r2 - 15c4: 00800074 movhi r2,1 - 15c8: 1090cd04 addi r2,r2,17204 - 15cc: 10c00345 stb r3,13(r2) -} - 15d0: e037883a mov sp,fp - 15d4: df000017 ldw fp,0(sp) - 15d8: dec00104 addi sp,sp,4 - 15dc: f800283a ret - -000015e0 : - -enum PushEvent push_decode(char psw) { - 15e0: defffc04 addi sp,sp,-16 - 15e4: df000315 stw fp,12(sp) - 15e8: df000304 addi fp,sp,12 - 15ec: e13ffe05 stb r4,-8(fp) - int result = PUSH_NONE; - 15f0: 00800044 movi r2,1 - 15f4: e0bffd15 stw r2,-12(fp) - switch(psw) { - 15f8: e0bffe07 ldb r2,-8(fp) - 15fc: e0bfff15 stw r2,-4(fp) - 1600: e0ffff17 ldw r3,-4(fp) - 1604: 18800160 cmpeqi r2,r3,5 - 1608: 10000e1e bne r2,zero,1644 - 160c: e0ffff17 ldw r3,-4(fp) - 1610: 188001a0 cmpeqi r2,r3,6 - 1614: 1000121e bne r2,zero,1660 - 1618: e0ffff17 ldw r3,-4(fp) - 161c: 188000e0 cmpeqi r2,r3,3 - 1620: 1000011e bne r2,zero,1628 - 1624: 00001406 br 1678 - case 0x3: - result += PUSH_ANY; - 1628: e0bffd17 ldw r2,-12(fp) - 162c: 10800084 addi r2,r2,2 - 1630: e0bffd15 stw r2,-12(fp) - result += PUSH_VALSTR; - 1634: e0bffd17 ldw r2,-12(fp) - 1638: 10800104 addi r2,r2,4 - 163c: e0bffd15 stw r2,-12(fp) - break; - 1640: 00000d06 br 1678 - case 0x5: - result += PUSH_ANY; - 1644: e0bffd17 ldw r2,-12(fp) - 1648: 10800084 addi r2,r2,2 - 164c: e0bffd15 stw r2,-12(fp) - result += PUSH_INSSTR; - 1650: e0bffd17 ldw r2,-12(fp) - 1654: 10800204 addi r2,r2,8 - 1658: e0bffd15 stw r2,-12(fp) - break; - 165c: 00000606 br 1678 - case 0x6: - result += PUSH_ANY; - 1660: e0bffd17 ldw r2,-12(fp) - 1664: 10800084 addi r2,r2,2 - 1668: e0bffd15 stw r2,-12(fp) - result += PUSH_RUN; - 166c: e0bffd17 ldw r2,-12(fp) - 1670: 10800404 addi r2,r2,16 - 1674: e0bffd15 stw r2,-12(fp) - break; - } - return result; - 1678: e0bffd17 ldw r2,-12(fp) -} - 167c: e037883a mov sp,fp - 1680: df000017 ldw fp,0(sp) - 1684: dec00104 addi sp,sp,4 - 1688: f800283a ret - -0000168c : - -void push_int() { - 168c: defffc04 addi sp,sp,-16 - 1690: dfc00315 stw ra,12(sp) - 1694: df000215 stw fp,8(sp) - 1698: df000204 addi fp,sp,8 - static unsigned char status = 0; - static enum PushEvent event_code; - volatile sw_t s; - s.sw = *switches; - 169c: 00800134 movhi r2,4 - 16a0: 10843404 addi r2,r2,4304 - 16a4: 10800017 ldw r2,0(r2) - 16a8: e0bffe15 stw r2,-8(fp) - - switch (status) { - 16ac: d0a6f803 ldbu r2,-25632(gp) - 16b0: 10803fcc andi r2,r2,255 - 16b4: e0bfff15 stw r2,-4(fp) - 16b8: e0ffff17 ldw r3,-4(fp) - 16bc: 18800060 cmpeqi r2,r3,1 - 16c0: 10001e1e bne r2,zero,173c - 16c4: e0ffff17 ldw r3,-4(fp) - 16c8: 188000a0 cmpeqi r2,r3,2 - 16cc: 1000261e bne r2,zero,1768 - 16d0: e0ffff17 ldw r3,-4(fp) - 16d4: 1805003a cmpeq r2,r3,zero - 16d8: 1000011e bne r2,zero,16e0 - 16dc: 00002606 br 1778 - case 0: - PUSH_EVENT = PUSH_NONE; - 16e0: 00800044 movi r2,1 - 16e4: d0a00005 stb r2,-32768(gp) - if (*push_switches != 7) { - 16e8: 00800134 movhi r2,4 - 16ec: 10843004 addi r2,r2,4288 - 16f0: 10800003 ldbu r2,0(r2) - 16f4: 10803fcc andi r2,r2,255 - 16f8: 1080201c xori r2,r2,128 - 16fc: 10bfe004 addi r2,r2,-128 - 1700: 108001e0 cmpeqi r2,r2,7 - 1704: 10000a1e bne r2,zero,1730 - event_code = push_decode(*push_switches); - 1708: 00800134 movhi r2,4 - 170c: 10843004 addi r2,r2,4288 - 1710: 10800003 ldbu r2,0(r2) - 1714: 11003fcc andi r4,r2,255 - 1718: 2100201c xori r4,r4,128 - 171c: 213fe004 addi r4,r4,-128 - 1720: 00015e00 call 15e0 - 1724: d0a6f715 stw r2,-25636(gp) - status = 1; - 1728: 00800044 movi r2,1 - 172c: d0a6f805 stb r2,-25632(gp) - } - update_sw_reg(s); // �X�C�b�`���W�X�^�X�V - 1730: e13ffe17 ldw r4,-8(fp) - 1734: 00014f80 call 14f8 - break; - 1738: 00001006 br 177c - case 1: - if (*push_switches == 7) status = 2; - 173c: 00800134 movhi r2,4 - 1740: 10843004 addi r2,r2,4288 - 1744: 10800003 ldbu r2,0(r2) - 1748: 10803fcc andi r2,r2,255 - 174c: 1080201c xori r2,r2,128 - 1750: 10bfe004 addi r2,r2,-128 - 1754: 108001d8 cmpnei r2,r2,7 - 1758: 1000081e bne r2,zero,177c - 175c: 00800084 movi r2,2 - 1760: d0a6f805 stb r2,-25632(gp) - break; - 1764: 00000506 br 177c - case 2: - PUSH_EVENT = event_code; - 1768: d0a6f717 ldw r2,-25636(gp) - 176c: d0a00005 stb r2,-32768(gp) - status = 0; - 1770: d026f805 stb zero,-25632(gp) - break; - 1774: 00000106 br 177c - default: - status = 0; - 1778: d026f805 stb zero,-25632(gp) - break; - } -} - 177c: e037883a mov sp,fp - 1780: dfc00117 ldw ra,4(sp) - 1784: df000017 ldw fp,0(sp) - 1788: dec00204 addi sp,sp,8 - 178c: f800283a ret - -00001790 : -#include "hex_out.h" -#include "sys_prog.h" -#include -#include - -struct InstRec inst_fetch(){ - 1790: defffd04 addi sp,sp,-12 - 1794: dfc00215 stw ra,8(sp) - 1798: df000115 stw fp,4(sp) - 179c: df000104 addi fp,sp,4 - struct InstRec rec = inst_memory_load((unsigned int)global_registers[Spc]); - 17a0: 00800074 movhi r2,1 - 17a4: 1090cd04 addi r2,r2,17204 - 17a8: 10800043 ldbu r2,1(r2) - 17ac: 11003fcc andi r4,r2,255 - 17b0: 2100201c xori r4,r4,128 - 17b4: 213fe004 addi r4,r4,-128 - 17b8: 00026480 call 2648 - 17bc: e0bfff15 stw r2,-4(fp) - inc_pc(); - 17c0: 00027bc0 call 27bc - return rec; - 17c4: e0bfff17 ldw r2,-4(fp) -} - 17c8: e037883a mov sp,fp - 17cc: dfc00117 ldw ra,4(sp) - 17d0: df000017 ldw fp,0(sp) - 17d4: dec00204 addi sp,sp,8 - 17d8: f800283a ret - -000017dc : - -void inst_decode(struct InstRec inst_rec){ - 17dc: defffc04 addi sp,sp,-16 - 17e0: dfc00315 stw ra,12(sp) - 17e4: df000215 stw fp,8(sp) - 17e8: df000204 addi fp,sp,8 - 17ec: e13ffe15 stw r4,-8(fp) - switch(inst_rec.inst) { - 17f0: e0bffe17 ldw r2,-8(fp) - 17f4: 108003cc andi r2,r2,15 - 17f8: 10803fcc andi r2,r2,255 - 17fc: e0bfff15 stw r2,-4(fp) - 1800: e0ffff17 ldw r3,-4(fp) - 1804: 18800368 cmpgeui r2,r3,13 - 1808: 10008d1e bne r2,zero,1a40 - 180c: e13fff17 ldw r4,-4(fp) - 1810: e13fff17 ldw r4,-4(fp) - 1814: 2105883a add r2,r4,r4 - 1818: 1087883a add r3,r2,r2 - 181c: 00800034 movhi r2,0 - 1820: 10860c04 addi r2,r2,6192 - 1824: 1885883a add r2,r3,r2 - 1828: 10800017 ldw r2,0(r2) - 182c: 1000683a jmp r2 - 1830: 00001a40 call 1a4 - 1834: 00001864 muli zero,zero,97 - 1838: 0000188c andi zero,zero,98 - 183c: 000018b4 movhi zero,98 - 1840: 000018dc xori zero,zero,99 - 1844: 00001904 movi zero,100 - 1848: 0000192c andhi zero,zero,100 - 184c: 0000197c xorhi zero,zero,101 - 1850: 000019a4 muli zero,zero,102 - 1854: 000019cc andi zero,zero,103 - 1858: 000019f4 movhi zero,103 - 185c: 00001a1c xori zero,zero,104 - 1860: 00001954 movui zero,101 - case INST_END: - break; - case INST_JUMP: - inst_jump(inst_rec.regi, inst_rec.memi); - 1864: e0bffe17 ldw r2,-8(fp) - 1868: 1004d23a srli r2,r2,8 - 186c: 108003cc andi r2,r2,15 - 1870: 11003fcc andi r4,r2,255 - 1874: e0bffe17 ldw r2,-8(fp) - 1878: 1004d13a srli r2,r2,4 - 187c: 108003cc andi r2,r2,15 - 1880: 11403fcc andi r5,r2,255 - 1884: 0001a540 call 1a54 - break; - 1888: 00006d06 br 1a40 - case INST_OUTPUT: - inst_output(inst_rec.regi, inst_rec.memi); - 188c: e0bffe17 ldw r2,-8(fp) - 1890: 1004d23a srli r2,r2,8 - 1894: 108003cc andi r2,r2,15 - 1898: 11003fcc andi r4,r2,255 - 189c: e0bffe17 ldw r2,-8(fp) - 18a0: 1004d13a srli r2,r2,4 - 18a4: 108003cc andi r2,r2,15 - 18a8: 11403fcc andi r5,r2,255 - 18ac: 0001ab00 call 1ab0 - break; - 18b0: 00006306 br 1a40 - case INST_LOAD: - inst_load(inst_rec.regi, inst_rec.memi); - 18b4: e0bffe17 ldw r2,-8(fp) - 18b8: 1004d23a srli r2,r2,8 - 18bc: 108003cc andi r2,r2,15 - 18c0: 11003fcc andi r4,r2,255 - 18c4: e0bffe17 ldw r2,-8(fp) - 18c8: 1004d13a srli r2,r2,4 - 18cc: 108003cc andi r2,r2,15 - 18d0: 11403fcc andi r5,r2,255 - 18d4: 0001b200 call 1b20 - break; - 18d8: 00005906 br 1a40 - case INST_STORE: - inst_store(inst_rec.regi, inst_rec.memi); - 18dc: e0bffe17 ldw r2,-8(fp) - 18e0: 1004d23a srli r2,r2,8 - 18e4: 108003cc andi r2,r2,15 - 18e8: 11003fcc andi r4,r2,255 - 18ec: e0bffe17 ldw r2,-8(fp) - 18f0: 1004d13a srli r2,r2,4 - 18f4: 108003cc andi r2,r2,15 - 18f8: 11403fcc andi r5,r2,255 - 18fc: 0001b580 call 1b58 - break; - 1900: 00004f06 br 1a40 - case INST_DELAY: - inst_delay(inst_rec.regi, inst_rec.memi); - 1904: e0bffe17 ldw r2,-8(fp) - 1908: 1004d23a srli r2,r2,8 - 190c: 108003cc andi r2,r2,15 - 1910: 11003fcc andi r4,r2,255 - 1914: e0bffe17 ldw r2,-8(fp) - 1918: 1004d13a srli r2,r2,4 - 191c: 108003cc andi r2,r2,15 - 1920: 11403fcc andi r5,r2,255 - 1924: 0001b900 call 1b90 - break; - 1928: 00004506 br 1a40 - case INST_ADD: - inst_add(inst_rec.regi, inst_rec.memi); - 192c: e0bffe17 ldw r2,-8(fp) - 1930: 1004d23a srli r2,r2,8 - 1934: 108003cc andi r2,r2,15 - 1938: 11003fcc andi r4,r2,255 - 193c: e0bffe17 ldw r2,-8(fp) - 1940: 1004d13a srli r2,r2,4 - 1944: 108003cc andi r2,r2,15 - 1948: 11403fcc andi r5,r2,255 - 194c: 0001bec0 call 1bec - break; - 1950: 00003b06 br 1a40 - case INST_SUB: - inst_sub(inst_rec.regi, inst_rec.memi); - 1954: e0bffe17 ldw r2,-8(fp) - 1958: 1004d23a srli r2,r2,8 - 195c: 108003cc andi r2,r2,15 - 1960: 11003fcc andi r4,r2,255 - 1964: e0bffe17 ldw r2,-8(fp) - 1968: 1004d13a srli r2,r2,4 - 196c: 108003cc andi r2,r2,15 - 1970: 11403fcc andi r5,r2,255 - 1974: 0001c480 call 1c48 - break; - 1978: 00003106 br 1a40 - case INST_COMP: - inst_comp(inst_rec.regi, inst_rec.memi); - 197c: e0bffe17 ldw r2,-8(fp) - 1980: 1004d23a srli r2,r2,8 - 1984: 108003cc andi r2,r2,15 - 1988: 11003fcc andi r4,r2,255 - 198c: e0bffe17 ldw r2,-8(fp) - 1990: 1004d13a srli r2,r2,4 - 1994: 108003cc andi r2,r2,15 - 1998: 11403fcc andi r5,r2,255 - 199c: 0001ca40 call 1ca4 - break; - 19a0: 00002706 br 1a40 - case INST_JEQ: - inst_jeq(inst_rec.regi, inst_rec.memi); - 19a4: e0bffe17 ldw r2,-8(fp) - 19a8: 1004d23a srli r2,r2,8 - 19ac: 108003cc andi r2,r2,15 - 19b0: 11003fcc andi r4,r2,255 - 19b4: e0bffe17 ldw r2,-8(fp) - 19b8: 1004d13a srli r2,r2,4 - 19bc: 108003cc andi r2,r2,15 - 19c0: 11403fcc andi r5,r2,255 - 19c4: 0001d740 call 1d74 - break; - 19c8: 00001d06 br 1a40 - case INST_JNE: - inst_jne(inst_rec.regi, inst_rec.memi); - 19cc: e0bffe17 ldw r2,-8(fp) - 19d0: 1004d23a srli r2,r2,8 - 19d4: 108003cc andi r2,r2,15 - 19d8: 11003fcc andi r4,r2,255 - 19dc: e0bffe17 ldw r2,-8(fp) - 19e0: 1004d13a srli r2,r2,4 - 19e4: 108003cc andi r2,r2,15 - 19e8: 11403fcc andi r5,r2,255 - 19ec: 0001de00 call 1de0 - break; - 19f0: 00001306 br 1a40 - case INST_JIEQ: - inst_jieq(inst_rec.regi, inst_rec.memi); - 19f4: e0bffe17 ldw r2,-8(fp) - 19f8: 1004d23a srli r2,r2,8 - 19fc: 108003cc andi r2,r2,15 - 1a00: 11003fcc andi r4,r2,255 - 1a04: e0bffe17 ldw r2,-8(fp) - 1a08: 1004d13a srli r2,r2,4 - 1a0c: 108003cc andi r2,r2,15 - 1a10: 11403fcc andi r5,r2,255 - 1a14: 0001e4c0 call 1e4c - break; - 1a18: 00000906 br 1a40 - case INST_JINE: - inst_jine(inst_rec.regi, inst_rec.memi); - 1a1c: e0bffe17 ldw r2,-8(fp) - 1a20: 1004d23a srli r2,r2,8 - 1a24: 108003cc andi r2,r2,15 - 1a28: 11003fcc andi r4,r2,255 - 1a2c: e0bffe17 ldw r2,-8(fp) - 1a30: 1004d13a srli r2,r2,4 - 1a34: 108003cc andi r2,r2,15 - 1a38: 11403fcc andi r5,r2,255 - 1a3c: 0001e9c0 call 1e9c - break; - } -} - 1a40: e037883a mov sp,fp - 1a44: dfc00117 ldw ra,4(sp) - 1a48: df000017 ldw fp,0(sp) - 1a4c: dec00204 addi sp,sp,8 - 1a50: f800283a ret - -00001a54 : - -void inst_jump(enum Register reg, unsigned char memory_index){ - 1a54: defffc04 addi sp,sp,-16 - 1a58: dfc00315 stw ra,12(sp) - 1a5c: df000215 stw fp,8(sp) - 1a60: df000204 addi fp,sp,8 - 1a64: e13ffe15 stw r4,-8(fp) - 1a68: e17fff05 stb r5,-4(fp) - set_pc(global_registers[reg]+memory_index); - 1a6c: e0fffe17 ldw r3,-8(fp) - 1a70: 00800074 movhi r2,1 - 1a74: 1090cd04 addi r2,r2,17204 - 1a78: 10c5883a add r2,r2,r3 - 1a7c: 10800003 ldbu r2,0(r2) - 1a80: 10c03fcc andi r3,r2,255 - 1a84: 18c0201c xori r3,r3,128 - 1a88: 18ffe004 addi r3,r3,-128 - 1a8c: e0bfff03 ldbu r2,-4(fp) - 1a90: 1885883a add r2,r3,r2 - 1a94: 1009883a mov r4,r2 - 1a98: 00028900 call 2890 -} - 1a9c: e037883a mov sp,fp - 1aa0: dfc00117 ldw ra,4(sp) - 1aa4: df000017 ldw fp,0(sp) - 1aa8: dec00204 addi sp,sp,8 - 1aac: f800283a ret - -00001ab0 : -void inst_output(enum Register reg, unsigned char memory_index){ - 1ab0: defffa04 addi sp,sp,-24 - 1ab4: dfc00515 stw ra,20(sp) - 1ab8: df000415 stw fp,16(sp) - 1abc: df000404 addi fp,sp,16 - 1ac0: e13ffe15 stw r4,-8(fp) - 1ac4: e17fff05 stb r5,-4(fp) - //�������̒l��7�Z�O�ɕ\�� - char buf[5]; - memory_load(memory_index, Sseg); - 1ac8: e13fff03 ldbu r4,-4(fp) - 1acc: 01400384 movi r5,14 - 1ad0: 000272c0 call 272c - sprintf(buf, "%04d", global_registers[Sseg]); - 1ad4: 00800074 movhi r2,1 - 1ad8: 1090cd04 addi r2,r2,17204 - 1adc: 10800383 ldbu r2,14(r2) - 1ae0: 11803fcc andi r6,r2,255 - 1ae4: 3180201c xori r6,r6,128 - 1ae8: 31bfe004 addi r6,r6,-128 - 1aec: e13ffc04 addi r4,fp,-16 - 1af0: 01400074 movhi r5,1 - 1af4: 29401c04 addi r5,r5,112 - 1af8: 0002c5c0 call 2c5c - print_block(buf, 4, HEX0_3); - 1afc: e13ffc04 addi r4,fp,-16 - 1b00: 01400104 movi r5,4 - 1b04: 000d883a mov r6,zero - 1b08: 00011b80 call 11b8 -} - 1b0c: e037883a mov sp,fp - 1b10: dfc00117 ldw ra,4(sp) - 1b14: df000017 ldw fp,0(sp) - 1b18: dec00204 addi sp,sp,8 - 1b1c: f800283a ret - -00001b20 : -void inst_load(enum Register reg, unsigned char memory_index){ - 1b20: defffc04 addi sp,sp,-16 - 1b24: dfc00315 stw ra,12(sp) - 1b28: df000215 stw fp,8(sp) - 1b2c: df000204 addi fp,sp,8 - 1b30: e13ffe15 stw r4,-8(fp) - 1b34: e17fff05 stb r5,-4(fp) - memory_load(memory_index, reg); - 1b38: e13fff03 ldbu r4,-4(fp) - 1b3c: e17ffe17 ldw r5,-8(fp) - 1b40: 000272c0 call 272c -} - 1b44: e037883a mov sp,fp - 1b48: dfc00117 ldw ra,4(sp) - 1b4c: df000017 ldw fp,0(sp) - 1b50: dec00204 addi sp,sp,8 - 1b54: f800283a ret - -00001b58 : -void inst_store(enum Register reg, unsigned char memory_index){ - 1b58: defffc04 addi sp,sp,-16 - 1b5c: dfc00315 stw ra,12(sp) - 1b60: df000215 stw fp,8(sp) - 1b64: df000204 addi fp,sp,8 - 1b68: e13ffe15 stw r4,-8(fp) - 1b6c: e17fff05 stb r5,-4(fp) - memory_store(memory_index, reg); - 1b70: e13fff03 ldbu r4,-4(fp) - 1b74: e17ffe17 ldw r5,-8(fp) - 1b78: 00026900 call 2690 -} - 1b7c: e037883a mov sp,fp - 1b80: dfc00117 ldw ra,4(sp) - 1b84: df000017 ldw fp,0(sp) - 1b88: dec00204 addi sp,sp,8 - 1b8c: f800283a ret - -00001b90 : -void inst_delay(enum Register reg, unsigned char memory_index){ - 1b90: defffc04 addi sp,sp,-16 - 1b94: dfc00315 stw ra,12(sp) - 1b98: df000215 stw fp,8(sp) - 1b9c: df000204 addi fp,sp,8 - 1ba0: e13ffe15 stw r4,-8(fp) - 1ba4: e17fff05 stb r5,-4(fp) - //���W�X�^�̒l*10ms�҂� - usleep((int)global_registers[reg]*10000); - 1ba8: e0fffe17 ldw r3,-8(fp) - 1bac: 00800074 movhi r2,1 - 1bb0: 1090cd04 addi r2,r2,17204 - 1bb4: 10c5883a add r2,r2,r3 - 1bb8: 10800003 ldbu r2,0(r2) - 1bbc: 11003fcc andi r4,r2,255 - 1bc0: 2100201c xori r4,r4,128 - 1bc4: 213fe004 addi r4,r4,-128 - 1bc8: 0149c404 movi r5,10000 - 1bcc: 0002c240 call 2c24 <__mulsi3> - 1bd0: 1009883a mov r4,r2 - 1bd4: 000ce780 call ce78 -} - 1bd8: e037883a mov sp,fp - 1bdc: dfc00117 ldw ra,4(sp) - 1be0: df000017 ldw fp,0(sp) - 1be4: dec00204 addi sp,sp,8 - 1be8: f800283a ret - -00001bec : -void inst_add(enum Register reg, unsigned char memory_index){ - 1bec: defffd04 addi sp,sp,-12 - 1bf0: df000215 stw fp,8(sp) - 1bf4: df000204 addi fp,sp,8 - 1bf8: e13ffe15 stw r4,-8(fp) - 1bfc: e17fff05 stb r5,-4(fp) - global_registers[Sacc]+=global_registers[reg]; - 1c00: 00800074 movhi r2,1 - 1c04: 1090cd04 addi r2,r2,17204 - 1c08: 10800143 ldbu r2,5(r2) - 1c0c: 1009883a mov r4,r2 - 1c10: e0fffe17 ldw r3,-8(fp) - 1c14: 00800074 movhi r2,1 - 1c18: 1090cd04 addi r2,r2,17204 - 1c1c: 10c5883a add r2,r2,r3 - 1c20: 10800003 ldbu r2,0(r2) - 1c24: 2085883a add r2,r4,r2 - 1c28: 1007883a mov r3,r2 - 1c2c: 00800074 movhi r2,1 - 1c30: 1090cd04 addi r2,r2,17204 - 1c34: 10c00145 stb r3,5(r2) -} - 1c38: e037883a mov sp,fp - 1c3c: df000017 ldw fp,0(sp) - 1c40: dec00104 addi sp,sp,4 - 1c44: f800283a ret - -00001c48 : -void inst_sub(enum Register reg, unsigned char memory_index){ - 1c48: defffd04 addi sp,sp,-12 - 1c4c: df000215 stw fp,8(sp) - 1c50: df000204 addi fp,sp,8 - 1c54: e13ffe15 stw r4,-8(fp) - 1c58: e17fff05 stb r5,-4(fp) - global_registers[Sacc]-=global_registers[reg]; - 1c5c: 00800074 movhi r2,1 - 1c60: 1090cd04 addi r2,r2,17204 - 1c64: 10800143 ldbu r2,5(r2) - 1c68: 1009883a mov r4,r2 - 1c6c: e0fffe17 ldw r3,-8(fp) - 1c70: 00800074 movhi r2,1 - 1c74: 1090cd04 addi r2,r2,17204 - 1c78: 10c5883a add r2,r2,r3 - 1c7c: 10800003 ldbu r2,0(r2) - 1c80: 2085c83a sub r2,r4,r2 - 1c84: 1007883a mov r3,r2 - 1c88: 00800074 movhi r2,1 - 1c8c: 1090cd04 addi r2,r2,17204 - 1c90: 10c00145 stb r3,5(r2) -} - 1c94: e037883a mov sp,fp - 1c98: df000017 ldw fp,0(sp) - 1c9c: dec00104 addi sp,sp,4 - 1ca0: f800283a ret - -00001ca4 : -void inst_comp(enum Register reg, unsigned char memory_index){ - 1ca4: defffd04 addi sp,sp,-12 - 1ca8: df000215 stw fp,8(sp) - 1cac: df000204 addi fp,sp,8 - 1cb0: e13ffe15 stw r4,-8(fp) - 1cb4: e17fff05 stb r5,-4(fp) - if(global_registers[Sacc]==global_registers[reg]){ - 1cb8: 00800074 movhi r2,1 - 1cbc: 1090cd04 addi r2,r2,17204 - 1cc0: 11000143 ldbu r4,5(r2) - 1cc4: e0fffe17 ldw r3,-8(fp) - 1cc8: 00800074 movhi r2,1 - 1ccc: 1090cd04 addi r2,r2,17204 - 1cd0: 10c5883a add r2,r2,r3 - 1cd4: 10800003 ldbu r2,0(r2) - 1cd8: 20c03fcc andi r3,r4,255 - 1cdc: 18c0201c xori r3,r3,128 - 1ce0: 18ffe004 addi r3,r3,-128 - 1ce4: 10803fcc andi r2,r2,255 - 1ce8: 1080201c xori r2,r2,128 - 1cec: 10bfe004 addi r2,r2,-128 - 1cf0: 1880041e bne r3,r2,1d04 - global_registers[Sflg]=0; - 1cf4: 00800074 movhi r2,1 - 1cf8: 1090cd04 addi r2,r2,17204 - 1cfc: 10000185 stb zero,6(r2) - 1d00: 00001806 br 1d64 - } else if(global_registers[Sacc] > global_registers[reg]){ - 1d04: 00800074 movhi r2,1 - 1d08: 1090cd04 addi r2,r2,17204 - 1d0c: 11000143 ldbu r4,5(r2) - 1d10: e0fffe17 ldw r3,-8(fp) - 1d14: 00800074 movhi r2,1 - 1d18: 1090cd04 addi r2,r2,17204 - 1d1c: 10c5883a add r2,r2,r3 - 1d20: 10800003 ldbu r2,0(r2) - 1d24: 20c03fcc andi r3,r4,255 - 1d28: 18c0201c xori r3,r3,128 - 1d2c: 18ffe004 addi r3,r3,-128 - 1d30: 10803fcc andi r2,r2,255 - 1d34: 1080201c xori r2,r2,128 - 1d38: 10bfe004 addi r2,r2,-128 - 1d3c: 10c0050e bge r2,r3,1d54 - global_registers[Sflg]=-1; - 1d40: 00c00074 movhi r3,1 - 1d44: 18d0cd04 addi r3,r3,17204 - 1d48: 00bfffc4 movi r2,-1 - 1d4c: 18800185 stb r2,6(r3) - 1d50: 00000406 br 1d64 - }else{ - global_registers[Sflg]=1; - 1d54: 00c00074 movhi r3,1 - 1d58: 18d0cd04 addi r3,r3,17204 - 1d5c: 00800044 movi r2,1 - 1d60: 18800185 stb r2,6(r3) - } -} - 1d64: e037883a mov sp,fp - 1d68: df000017 ldw fp,0(sp) - 1d6c: dec00104 addi sp,sp,4 - 1d70: f800283a ret - -00001d74 : -void inst_jeq(enum Register reg, unsigned char memory_index){ - 1d74: defffc04 addi sp,sp,-16 - 1d78: dfc00315 stw ra,12(sp) - 1d7c: df000215 stw fp,8(sp) - 1d80: df000204 addi fp,sp,8 - 1d84: e13ffe15 stw r4,-8(fp) - 1d88: e17fff05 stb r5,-4(fp) - if(global_registers[Sflg]==global_registers[reg]){ - 1d8c: 00800074 movhi r2,1 - 1d90: 1090cd04 addi r2,r2,17204 - 1d94: 11000183 ldbu r4,6(r2) - 1d98: e0fffe17 ldw r3,-8(fp) - 1d9c: 00800074 movhi r2,1 - 1da0: 1090cd04 addi r2,r2,17204 - 1da4: 10c5883a add r2,r2,r3 - 1da8: 10800003 ldbu r2,0(r2) - 1dac: 20c03fcc andi r3,r4,255 - 1db0: 18c0201c xori r3,r3,128 - 1db4: 18ffe004 addi r3,r3,-128 - 1db8: 10803fcc andi r2,r2,255 - 1dbc: 1080201c xori r2,r2,128 - 1dc0: 10bfe004 addi r2,r2,-128 - 1dc4: 1880011e bne r3,r2,1dcc - inc_pc(); - 1dc8: 00027bc0 call 27bc - } -} - 1dcc: e037883a mov sp,fp - 1dd0: dfc00117 ldw ra,4(sp) - 1dd4: df000017 ldw fp,0(sp) - 1dd8: dec00204 addi sp,sp,8 - 1ddc: f800283a ret - -00001de0 : -void inst_jne(enum Register reg, unsigned char memory_index){ - 1de0: defffc04 addi sp,sp,-16 - 1de4: dfc00315 stw ra,12(sp) - 1de8: df000215 stw fp,8(sp) - 1dec: df000204 addi fp,sp,8 - 1df0: e13ffe15 stw r4,-8(fp) - 1df4: e17fff05 stb r5,-4(fp) - if(global_registers[Sflg]!=global_registers[reg]){ - 1df8: 00800074 movhi r2,1 - 1dfc: 1090cd04 addi r2,r2,17204 - 1e00: 11000183 ldbu r4,6(r2) - 1e04: e0fffe17 ldw r3,-8(fp) - 1e08: 00800074 movhi r2,1 - 1e0c: 1090cd04 addi r2,r2,17204 - 1e10: 10c5883a add r2,r2,r3 - 1e14: 10800003 ldbu r2,0(r2) - 1e18: 20c03fcc andi r3,r4,255 - 1e1c: 18c0201c xori r3,r3,128 - 1e20: 18ffe004 addi r3,r3,-128 - 1e24: 10803fcc andi r2,r2,255 - 1e28: 1080201c xori r2,r2,128 - 1e2c: 10bfe004 addi r2,r2,-128 - 1e30: 18800126 beq r3,r2,1e38 - inc_pc(); - 1e34: 00027bc0 call 27bc - } -} - 1e38: e037883a mov sp,fp - 1e3c: dfc00117 ldw ra,4(sp) - 1e40: df000017 ldw fp,0(sp) - 1e44: dec00204 addi sp,sp,8 - 1e48: f800283a ret - -00001e4c : -void inst_jieq(char im, unsigned char memory_index){ - 1e4c: defffc04 addi sp,sp,-16 - 1e50: dfc00315 stw ra,12(sp) - 1e54: df000215 stw fp,8(sp) - 1e58: df000204 addi fp,sp,8 - 1e5c: e13ffe05 stb r4,-8(fp) - 1e60: e17fff05 stb r5,-4(fp) - if(global_registers[Sflg]==im){ - 1e64: 00800074 movhi r2,1 - 1e68: 1090cd04 addi r2,r2,17204 - 1e6c: 10800183 ldbu r2,6(r2) - 1e70: 10c03fcc andi r3,r2,255 - 1e74: 18c0201c xori r3,r3,128 - 1e78: 18ffe004 addi r3,r3,-128 - 1e7c: e0bffe07 ldb r2,-8(fp) - 1e80: 1880011e bne r3,r2,1e88 - inc_pc(); - 1e84: 00027bc0 call 27bc - } -} - 1e88: e037883a mov sp,fp - 1e8c: dfc00117 ldw ra,4(sp) - 1e90: df000017 ldw fp,0(sp) - 1e94: dec00204 addi sp,sp,8 - 1e98: f800283a ret - -00001e9c : -void inst_jine(char im, unsigned char memory_index){ - 1e9c: defffc04 addi sp,sp,-16 - 1ea0: dfc00315 stw ra,12(sp) - 1ea4: df000215 stw fp,8(sp) - 1ea8: df000204 addi fp,sp,8 - 1eac: e13ffe05 stb r4,-8(fp) - 1eb0: e17fff05 stb r5,-4(fp) - if(global_registers[Sflg]!=im){ - 1eb4: 00800074 movhi r2,1 - 1eb8: 1090cd04 addi r2,r2,17204 - 1ebc: 10800183 ldbu r2,6(r2) - 1ec0: 10c03fcc andi r3,r2,255 - 1ec4: 18c0201c xori r3,r3,128 - 1ec8: 18ffe004 addi r3,r3,-128 - 1ecc: e0bffe07 ldb r2,-8(fp) - 1ed0: 18800126 beq r3,r2,1ed8 - inc_pc(); - 1ed4: 00027bc0 call 27bc - } -} - 1ed8: e037883a mov sp,fp - 1edc: dfc00117 ldw ra,4(sp) - 1ee0: df000017 ldw fp,0(sp) - 1ee4: dec00204 addi sp,sp,8 - 1ee8: f800283a ret - -00001eec : -#include -#include "system.h" -#include "LCD.h" - -// LCD�̏����� -void lcd_init() { - 1eec: defffe04 addi sp,sp,-8 - 1ef0: dfc00115 stw ra,4(sp) - 1ef4: df000015 stw fp,0(sp) - 1ef8: d839883a mov fp,sp - *lcd_on = 1; - 1efc: 00c00134 movhi r3,4 - 1f00: 18c40404 addi r3,r3,4112 - 1f04: 00800044 movi r2,1 - 1f08: 18800005 stb r2,0(r3) - *lcd_blon = 1; - 1f0c: 00c00134 movhi r3,4 - 1f10: 18c40804 addi r3,r3,4128 - 1f14: 00800044 movi r2,1 - 1f18: 18800005 stb r2,0(r3) - LCD_Init(); - 1f1c: 00001f00 call 1f0 -} - 1f20: e037883a mov sp,fp - 1f24: dfc00117 ldw ra,4(sp) - 1f28: df000017 ldw fp,0(sp) - 1f2c: dec00204 addi sp,sp,8 - 1f30: f800283a ret - -00001f34 : - -// LCD�̃L�����b�g���P�s�ڂ̂͂��߂Ɉړ����� -void lcd_caret_reset() { - 1f34: defffe04 addi sp,sp,-8 - 1f38: dfc00115 stw ra,4(sp) - 1f3c: df000015 stw fp,0(sp) - 1f40: d839883a mov fp,sp - LCD_Init(); - 1f44: 00001f00 call 1f0 -} - 1f48: e037883a mov sp,fp - 1f4c: dfc00117 ldw ra,4(sp) - 1f50: df000017 ldw fp,0(sp) - 1f54: dec00204 addi sp,sp,8 - 1f58: f800283a ret - -00001f5c : - -// LCD�̃L�����b�g���Q�s�ڂ̂͂��߂Ɉړ����� -void lcd_caret_reset2() { - 1f5c: defffe04 addi sp,sp,-8 - 1f60: dfc00115 stw ra,4(sp) - 1f64: df000015 stw fp,0(sp) - 1f68: d839883a mov fp,sp - LCD_Line2(); - 1f6c: 00003140 call 314 -} - 1f70: e037883a mov sp,fp - 1f74: dfc00117 ldw ra,4(sp) - 1f78: df000017 ldw fp,0(sp) - 1f7c: dec00204 addi sp,sp,8 - 1f80: f800283a ret - -00001f84 : - -// LCD�ɕ�����\������ -void lcd_print(const char *str) { - 1f84: defffd04 addi sp,sp,-12 - 1f88: dfc00215 stw ra,8(sp) - 1f8c: df000115 stw fp,4(sp) - 1f90: df000104 addi fp,sp,4 - 1f94: e13fff15 stw r4,-4(fp) - LCD_Show_Text(str); - 1f98: e13fff17 ldw r4,-4(fp) - 1f9c: 000028c0 call 28c -} - 1fa0: e037883a mov sp,fp - 1fa4: dfc00117 ldw ra,4(sp) - 1fa8: df000017 ldw fp,0(sp) - 1fac: dec00204 addi sp,sp,8 - 1fb0: f800283a ret - -00001fb4 : -#include "sys_debug.h" -#include -#include "lcd_out.h" -#include - -void display_inst(struct InstRec inst, unsigned int pc) { - 1fb4: defff504 addi sp,sp,-44 - 1fb8: dfc00a15 stw ra,40(sp) - 1fbc: df000915 stw fp,36(sp) - 1fc0: df000904 addi fp,sp,36 - 1fc4: e13ffe15 stw r4,-8(fp) - 1fc8: e17fff15 stw r5,-4(fp) - char inst_name[INST_NAME_ARRAY_LEN]; // ���ߖ� - char reg_name[REG_NAME_ARRAY_LEN]; // ���W�X�^�� - char buf[17]; - - // ���߂̖��O�̎擾 - convertInstName(inst_name, inst.inst); - 1fcc: e0bffe17 ldw r2,-8(fp) - 1fd0: 108003cc andi r2,r2,15 - 1fd4: 11403fcc andi r5,r2,255 - 1fd8: e13ff704 addi r4,fp,-36 - 1fdc: 000223c0 call 223c - // ���W�X�^�̖��O�̎擾 - convertRegName(reg_name, inst.regi); - 1fe0: e0bffe17 ldw r2,-8(fp) - 1fe4: 1004d23a srli r2,r2,8 - 1fe8: 108003cc andi r2,r2,15 - 1fec: 11403fcc andi r5,r2,255 - 1ff0: e13ff844 addi r4,fp,-31 - 1ff4: 00020cc0 call 20cc - - lcd_caret_reset(); - 1ff8: 0001f340 call 1f34 - sprintf(buf, "PC:0x%02x -> %4s",pc,inst_name); - 1ffc: e13ff944 addi r4,fp,-27 - 2000: 01400074 movhi r5,1 - 2004: 29401e04 addi r5,r5,120 - 2008: e1bfff17 ldw r6,-4(fp) - 200c: e1fff704 addi r7,fp,-36 - 2010: 0002c5c0 call 2c5c - lcd_print(buf); - 2014: e13ff944 addi r4,fp,-27 - 2018: 0001f840 call 1f84 - lcd_caret_reset2(); - 201c: 0001f5c0 call 1f5c - sprintf(buf, "REG:%3s,MEM:0x%1x",reg_name,inst.memi); - 2020: e0bffe17 ldw r2,-8(fp) - 2024: 1004d13a srli r2,r2,4 - 2028: 108003cc andi r2,r2,15 - 202c: 11c03fcc andi r7,r2,255 - 2030: e13ff944 addi r4,fp,-27 - 2034: e1bff844 addi r6,fp,-31 - 2038: 01400074 movhi r5,1 - 203c: 29402304 addi r5,r5,140 - 2040: 0002c5c0 call 2c5c - lcd_print(buf); - 2044: e13ff944 addi r4,fp,-27 - 2048: 0001f840 call 1f84 -} - 204c: e037883a mov sp,fp - 2050: dfc00117 ldw ra,4(sp) - 2054: df000017 ldw fp,0(sp) - 2058: dec00204 addi sp,sp,8 - 205c: f800283a ret - -00002060 : - -void display_mem(unsigned char memi, char memv) { - 2060: defff704 addi sp,sp,-36 - 2064: dfc00815 stw ra,32(sp) - 2068: df000715 stw fp,28(sp) - 206c: df000704 addi fp,sp,28 - 2070: e13ffe05 stb r4,-8(fp) - 2074: e17fff05 stb r5,-4(fp) - char buf[17]; - - lcd_caret_reset(); - 2078: 0001f340 call 1f34 - sprintf(buf, "MEM:0x%1x",memi); - 207c: e1bffe03 ldbu r6,-8(fp) - 2080: e13ff904 addi r4,fp,-28 - 2084: 01400074 movhi r5,1 - 2088: 29402804 addi r5,r5,160 - 208c: 0002c5c0 call 2c5c - lcd_print(buf); - 2090: e13ff904 addi r4,fp,-28 - 2094: 0001f840 call 1f84 - lcd_caret_reset2(); - 2098: 0001f5c0 call 1f5c - sprintf(buf, "value:%d",memv); - 209c: e1bfff07 ldb r6,-4(fp) - 20a0: e13ff904 addi r4,fp,-28 - 20a4: 01400074 movhi r5,1 - 20a8: 29402b04 addi r5,r5,172 - 20ac: 0002c5c0 call 2c5c - lcd_print(buf); - 20b0: e13ff904 addi r4,fp,-28 - 20b4: 0001f840 call 1f84 -} - 20b8: e037883a mov sp,fp - 20bc: dfc00117 ldw ra,4(sp) - 20c0: df000017 ldw fp,0(sp) - 20c4: dec00204 addi sp,sp,8 - 20c8: f800283a ret - -000020cc : - -void convertRegName(char reg_name[REG_NAME_ARRAY_LEN], enum Register reg_code) { - 20cc: defffd04 addi sp,sp,-12 - 20d0: df000215 stw fp,8(sp) - 20d4: df000204 addi fp,sp,8 - 20d8: e13ffe15 stw r4,-8(fp) - 20dc: e17fff15 stw r5,-4(fp) - switch(reg_code) { - 20e0: e0bfff17 ldw r2,-4(fp) - 20e4: 108001e8 cmpgeui r2,r2,7 - 20e8: 1000481e bne r2,zero,220c - 20ec: e0bfff17 ldw r2,-4(fp) - 20f0: 1085883a add r2,r2,r2 - 20f4: 1087883a add r3,r2,r2 - 20f8: 00800034 movhi r2,0 - 20fc: 10884304 addi r2,r2,8460 - 2100: 1885883a add r2,r3,r2 - 2104: 10800017 ldw r2,0(r2) - 2108: 1000683a jmp r2 - 210c: 00002128 cmpgeui zero,zero,132 - 2110: 00002144 movi zero,133 - 2114: 00002160 cmpeqi zero,zero,133 - 2118: 0000217c xorhi zero,zero,133 - 211c: 000021a0 cmpeqi zero,zero,134 - 2120: 000021c4 movi zero,135 - 2124: 000021e8 cmpgeui zero,zero,135 - case Szero: - sprintf(reg_name, STRING_REG_ZERO); - 2128: e0bffe17 ldw r2,-8(fp) - 212c: 00c01684 movi r3,90 - 2130: 10c00005 stb r3,0(r2) - 2134: 00c01144 movi r3,69 - 2138: 10c00045 stb r3,1(r2) - 213c: 10000085 stb zero,2(r2) - break; - 2140: 00003a06 br 222c - case Spc: - sprintf(reg_name, STRING_REG_PC); - 2144: e0bffe17 ldw r2,-8(fp) - 2148: 00c01404 movi r3,80 - 214c: 10c00005 stb r3,0(r2) - 2150: 00c010c4 movi r3,67 - 2154: 10c00045 stb r3,1(r2) - 2158: 10000085 stb zero,2(r2) - break; - 215c: 00003306 br 222c - case Ssp: - sprintf(reg_name, STRING_REG_SP); - 2160: e0bffe17 ldw r2,-8(fp) - 2164: 00c014c4 movi r3,83 - 2168: 10c00005 stb r3,0(r2) - 216c: 00c01404 movi r3,80 - 2170: 10c00045 stb r3,1(r2) - 2174: 10000085 stb zero,2(r2) - break; - 2178: 00002c06 br 222c - case Sgp0: - sprintf(reg_name, STRING_REG_GP0); - 217c: e0fffe17 ldw r3,-8(fp) - 2180: 008011c4 movi r2,71 - 2184: 18800005 stb r2,0(r3) - 2188: 00801404 movi r2,80 - 218c: 18800045 stb r2,1(r3) - 2190: 00800c04 movi r2,48 - 2194: 18800085 stb r2,2(r3) - 2198: 180000c5 stb zero,3(r3) - break; - 219c: 00002306 br 222c - case Sgp1: - sprintf(reg_name, STRING_REG_GP1); - 21a0: e0fffe17 ldw r3,-8(fp) - 21a4: 008011c4 movi r2,71 - 21a8: 18800005 stb r2,0(r3) - 21ac: 00801404 movi r2,80 - 21b0: 18800045 stb r2,1(r3) - 21b4: 00800c44 movi r2,49 - 21b8: 18800085 stb r2,2(r3) - 21bc: 180000c5 stb zero,3(r3) - break; - 21c0: 00001a06 br 222c - case Sacc: - sprintf(reg_name, STRING_REG_ACC); - 21c4: e0fffe17 ldw r3,-8(fp) - 21c8: 00801044 movi r2,65 - 21cc: 18800005 stb r2,0(r3) - 21d0: 008010c4 movi r2,67 - 21d4: 18800045 stb r2,1(r3) - 21d8: 008010c4 movi r2,67 - 21dc: 18800085 stb r2,2(r3) - 21e0: 180000c5 stb zero,3(r3) - break; - 21e4: 00001106 br 222c - case Sflg: - sprintf(reg_name, STRING_REG_FLG); - 21e8: e0fffe17 ldw r3,-8(fp) - 21ec: 00801184 movi r2,70 - 21f0: 18800005 stb r2,0(r3) - 21f4: 00801304 movi r2,76 - 21f8: 18800045 stb r2,1(r3) - 21fc: 008011c4 movi r2,71 - 2200: 18800085 stb r2,2(r3) - 2204: 180000c5 stb zero,3(r3) - break; - 2208: 00000806 br 222c - default: - sprintf(reg_name, "non"); - 220c: e0fffe17 ldw r3,-8(fp) - 2210: 00801b84 movi r2,110 - 2214: 18800005 stb r2,0(r3) - 2218: 00801bc4 movi r2,111 - 221c: 18800045 stb r2,1(r3) - 2220: 00801b84 movi r2,110 - 2224: 18800085 stb r2,2(r3) - 2228: 180000c5 stb zero,3(r3) - break; - } -} - 222c: e037883a mov sp,fp - 2230: df000017 ldw fp,0(sp) - 2234: dec00104 addi sp,sp,4 - 2238: f800283a ret - -0000223c : - - -void convertInstName(char inst_name[INST_NAME_ARRAY_LEN], unsigned char inst_code) { - 223c: defffc04 addi sp,sp,-16 - 2240: df000315 stw fp,12(sp) - 2244: df000304 addi fp,sp,12 - 2248: e13ffd15 stw r4,-12(fp) - 224c: e17ffe05 stb r5,-8(fp) - switch(inst_code) { - 2250: e0bffe03 ldbu r2,-8(fp) - 2254: e0bfff15 stw r2,-4(fp) - 2258: e0ffff17 ldw r3,-4(fp) - 225c: 18800368 cmpgeui r2,r3,13 - 2260: 1000991e bne r2,zero,24c8 - 2264: e13fff17 ldw r4,-4(fp) - 2268: e13fff17 ldw r4,-4(fp) - 226c: 2105883a add r2,r4,r4 - 2270: 1087883a add r3,r2,r2 - 2274: 00800034 movhi r2,0 - 2278: 1088a204 addi r2,r2,8840 - 227c: 1885883a add r2,r3,r2 - 2280: 10800017 ldw r2,0(r2) - 2284: 1000683a jmp r2 - 2288: 000022bc xorhi zero,zero,138 - 228c: 000022e0 cmpeqi zero,zero,139 - 2290: 0000230c andi zero,zero,140 - 2294: 00002330 cmpltui zero,zero,140 - 2298: 0000235c xori zero,zero,141 - 229c: 00002388 cmpgei zero,zero,142 - 22a0: 000023b4 movhi zero,142 - 22a4: 000023fc xorhi zero,zero,143 - 22a8: 00002428 cmpgeui zero,zero,144 - 22ac: 0000244c andi zero,zero,145 - 22b0: 00002470 cmpltui zero,zero,145 - 22b4: 0000249c xori zero,zero,146 - 22b8: 000023d8 cmpnei zero,zero,143 - case INST_END: - sprintf(inst_name, STRING_INST_END); - 22bc: e0fffd17 ldw r3,-12(fp) - 22c0: 00801144 movi r2,69 - 22c4: 18800005 stb r2,0(r3) - 22c8: 00801384 movi r2,78 - 22cc: 18800045 stb r2,1(r3) - 22d0: 00801104 movi r2,68 - 22d4: 18800085 stb r2,2(r3) - 22d8: 180000c5 stb zero,3(r3) - break; - 22dc: 00008406 br 24f0 - case INST_JUMP: - sprintf(inst_name, STRING_INST_JUMP); - 22e0: e0fffd17 ldw r3,-12(fp) - 22e4: 00801284 movi r2,74 - 22e8: 18800005 stb r2,0(r3) - 22ec: 00801544 movi r2,85 - 22f0: 18800045 stb r2,1(r3) - 22f4: 00801344 movi r2,77 - 22f8: 18800085 stb r2,2(r3) - 22fc: 00801404 movi r2,80 - 2300: 188000c5 stb r2,3(r3) - 2304: 18000105 stb zero,4(r3) - break; - 2308: 00007906 br 24f0 - case INST_OUTPUT: - sprintf(inst_name, STRING_INST_OUTPUT); - 230c: e0fffd17 ldw r3,-12(fp) - 2310: 008013c4 movi r2,79 - 2314: 18800005 stb r2,0(r3) - 2318: 00801544 movi r2,85 - 231c: 18800045 stb r2,1(r3) - 2320: 00801504 movi r2,84 - 2324: 18800085 stb r2,2(r3) - 2328: 180000c5 stb zero,3(r3) - break; - 232c: 00007006 br 24f0 - case INST_LOAD: - sprintf(inst_name, STRING_INST_LOAD); - 2330: e0fffd17 ldw r3,-12(fp) - 2334: 00801304 movi r2,76 - 2338: 18800005 stb r2,0(r3) - 233c: 008013c4 movi r2,79 - 2340: 18800045 stb r2,1(r3) - 2344: 00801044 movi r2,65 - 2348: 18800085 stb r2,2(r3) - 234c: 00801104 movi r2,68 - 2350: 188000c5 stb r2,3(r3) - 2354: 18000105 stb zero,4(r3) - break; - 2358: 00006506 br 24f0 - case INST_STORE: - sprintf(inst_name, STRING_INST_STORE); - 235c: e0fffd17 ldw r3,-12(fp) - 2360: 008014c4 movi r2,83 - 2364: 18800005 stb r2,0(r3) - 2368: 00801504 movi r2,84 - 236c: 18800045 stb r2,1(r3) - 2370: 008013c4 movi r2,79 - 2374: 18800085 stb r2,2(r3) - 2378: 00801484 movi r2,82 - 237c: 188000c5 stb r2,3(r3) - 2380: 18000105 stb zero,4(r3) - break; - 2384: 00005a06 br 24f0 - case INST_DELAY: - sprintf(inst_name, STRING_INST_DELAY); - 2388: e0fffd17 ldw r3,-12(fp) - 238c: 00801104 movi r2,68 - 2390: 18800005 stb r2,0(r3) - 2394: 00801144 movi r2,69 - 2398: 18800045 stb r2,1(r3) - 239c: 00801304 movi r2,76 - 23a0: 18800085 stb r2,2(r3) - 23a4: 00801644 movi r2,89 - 23a8: 188000c5 stb r2,3(r3) - 23ac: 18000105 stb zero,4(r3) - break; - 23b0: 00004f06 br 24f0 - case INST_ADD: - sprintf(inst_name, STRING_INST_ADD); - 23b4: e0fffd17 ldw r3,-12(fp) - 23b8: 00801044 movi r2,65 - 23bc: 18800005 stb r2,0(r3) - 23c0: 00801104 movi r2,68 - 23c4: 18800045 stb r2,1(r3) - 23c8: 00801104 movi r2,68 - 23cc: 18800085 stb r2,2(r3) - 23d0: 180000c5 stb zero,3(r3) - break; - 23d4: 00004606 br 24f0 - case INST_SUB: - sprintf(inst_name, STRING_INST_SUB); - 23d8: e0fffd17 ldw r3,-12(fp) - 23dc: 008014c4 movi r2,83 - 23e0: 18800005 stb r2,0(r3) - 23e4: 00801544 movi r2,85 - 23e8: 18800045 stb r2,1(r3) - 23ec: 00801084 movi r2,66 - 23f0: 18800085 stb r2,2(r3) - 23f4: 180000c5 stb zero,3(r3) - break; - 23f8: 00003d06 br 24f0 - case INST_COMP: - sprintf(inst_name, STRING_INST_COMP); - 23fc: e0fffd17 ldw r3,-12(fp) - 2400: 008010c4 movi r2,67 - 2404: 18800005 stb r2,0(r3) - 2408: 008013c4 movi r2,79 - 240c: 18800045 stb r2,1(r3) - 2410: 00801344 movi r2,77 - 2414: 18800085 stb r2,2(r3) - 2418: 00801404 movi r2,80 - 241c: 188000c5 stb r2,3(r3) - 2420: 18000105 stb zero,4(r3) - break; - 2424: 00003206 br 24f0 - case INST_JEQ: - sprintf(inst_name, STRING_INST_JEQ); - 2428: e0fffd17 ldw r3,-12(fp) - 242c: 00801284 movi r2,74 - 2430: 18800005 stb r2,0(r3) - 2434: 00801144 movi r2,69 - 2438: 18800045 stb r2,1(r3) - 243c: 00801444 movi r2,81 - 2440: 18800085 stb r2,2(r3) - 2444: 180000c5 stb zero,3(r3) - break; - 2448: 00002906 br 24f0 - case INST_JNE: - sprintf(inst_name, STRING_INST_JNE); - 244c: e0fffd17 ldw r3,-12(fp) - 2450: 00801284 movi r2,74 - 2454: 18800005 stb r2,0(r3) - 2458: 00801384 movi r2,78 - 245c: 18800045 stb r2,1(r3) - 2460: 00801144 movi r2,69 - 2464: 18800085 stb r2,2(r3) - 2468: 180000c5 stb zero,3(r3) - break; - 246c: 00002006 br 24f0 - case INST_JIEQ: - sprintf(inst_name, STRING_INST_JIEQ); - 2470: e0fffd17 ldw r3,-12(fp) - 2474: 00801284 movi r2,74 - 2478: 18800005 stb r2,0(r3) - 247c: 00801244 movi r2,73 - 2480: 18800045 stb r2,1(r3) - 2484: 00801144 movi r2,69 - 2488: 18800085 stb r2,2(r3) - 248c: 00801444 movi r2,81 - 2490: 188000c5 stb r2,3(r3) - 2494: 18000105 stb zero,4(r3) - break; - 2498: 00001506 br 24f0 - case INST_JINE: - sprintf(inst_name, STRING_INST_JINE); - 249c: e0fffd17 ldw r3,-12(fp) - 24a0: 00801284 movi r2,74 - 24a4: 18800005 stb r2,0(r3) - 24a8: 00801244 movi r2,73 - 24ac: 18800045 stb r2,1(r3) - 24b0: 00801384 movi r2,78 - 24b4: 18800085 stb r2,2(r3) - 24b8: 00801144 movi r2,69 - 24bc: 188000c5 stb r2,3(r3) - 24c0: 18000105 stb zero,4(r3) - break; - 24c4: 00000a06 br 24f0 - default: - sprintf(inst_name, "NoOp"); - 24c8: e0fffd17 ldw r3,-12(fp) - 24cc: 00801384 movi r2,78 - 24d0: 18800005 stb r2,0(r3) - 24d4: 00801bc4 movi r2,111 - 24d8: 18800045 stb r2,1(r3) - 24dc: 008013c4 movi r2,79 - 24e0: 18800085 stb r2,2(r3) - 24e4: 00801c04 movi r2,112 - 24e8: 188000c5 stb r2,3(r3) - 24ec: 18000105 stb zero,4(r3) - break; - } -} - 24f0: e037883a mov sp,fp - 24f4: df000017 ldw fp,0(sp) - 24f8: dec00104 addi sp,sp,4 - 24fc: f800283a ret - -00002500 : - -void delay10ms(unsigned int s) { - 2500: defffd04 addi sp,sp,-12 - 2504: dfc00215 stw ra,8(sp) - 2508: df000115 stw fp,4(sp) - 250c: df000104 addi fp,sp,4 - 2510: e13fff15 stw r4,-4(fp) - usleep(s*10000); - 2514: e13fff17 ldw r4,-4(fp) - 2518: 0149c404 movi r5,10000 - 251c: 0002c240 call 2c24 <__mulsi3> - 2520: 1009883a mov r4,r2 - 2524: 000ce780 call ce78 -} - 2528: e037883a mov sp,fp - 252c: dfc00117 ldw ra,4(sp) - 2530: df000017 ldw fp,0(sp) - 2534: dec00204 addi sp,sp,8 - 2538: f800283a ret - -0000253c : - * Author: takayun - */ -#include "system.h" -#include "hex_out.h" - -void panic() { - 253c: defffe04 addi sp,sp,-8 - 2540: dfc00115 stw ra,4(sp) - 2544: df000015 stw fp,0(sp) - 2548: d839883a mov fp,sp - clear_block(HEX0_3); - 254c: 0009883a mov r4,zero - 2550: 00013480 call 1348 - print_block("err ", 4, HEX0_3); - 2554: 01000074 movhi r4,1 - 2558: 21002e04 addi r4,r4,184 - 255c: 01400104 movi r5,4 - 2560: 000d883a mov r6,zero - 2564: 00011b80 call 11b8 -} - 2568: e037883a mov sp,fp - 256c: dfc00117 ldw ra,4(sp) - 2570: df000017 ldw fp,0(sp) - 2574: dec00204 addi sp,sp,8 - 2578: f800283a ret - -0000257c : - -/************************************************** - * Impl - **************************************************/ - -void memory_init() { - 257c: defffd04 addi sp,sp,-12 - 2580: df000215 stw fp,8(sp) - 2584: df000204 addi fp,sp,8 - int i, j; - for (i = 0; i < MEMS_COUNT; i++) - 2588: e03fff15 stw zero,-4(fp) - 258c: 00001306 br 25dc - for (j = 0; j < MEM_SIZE; j++) { - 2590: e03ffe15 stw zero,-8(fp) - 2594: 00000b06 br 25c4 - memory[i][j] = 0; - 2598: e0bfff17 ldw r2,-4(fp) - 259c: e13ffe17 ldw r4,-8(fp) - 25a0: 00c00074 movhi r3,1 - 25a4: 18cf8304 addi r3,r3,15884 - 25a8: 1004913a slli r2,r2,4 - 25ac: 10c5883a add r2,r2,r3 - 25b0: 1105883a add r2,r2,r4 - 25b4: 10000005 stb zero,0(r2) - **************************************************/ - -void memory_init() { - int i, j; - for (i = 0; i < MEMS_COUNT; i++) - for (j = 0; j < MEM_SIZE; j++) { - 25b8: e0bffe17 ldw r2,-8(fp) - 25bc: 10800044 addi r2,r2,1 - 25c0: e0bffe15 stw r2,-8(fp) - 25c4: e0bffe17 ldw r2,-8(fp) - 25c8: 10800410 cmplti r2,r2,16 - 25cc: 103ff21e bne r2,zero,2598 - * Impl - **************************************************/ - -void memory_init() { - int i, j; - for (i = 0; i < MEMS_COUNT; i++) - 25d0: e0bfff17 ldw r2,-4(fp) - 25d4: 10800044 addi r2,r2,1 - 25d8: e0bfff15 stw r2,-4(fp) - 25dc: e0bfff17 ldw r2,-4(fp) - 25e0: 10800410 cmplti r2,r2,16 - 25e4: 103fea1e bne r2,zero,2590 - for (j = 0; j < MEM_SIZE; j++) { - memory[i][j] = 0; - } -} - 25e8: e037883a mov sp,fp - 25ec: df000017 ldw fp,0(sp) - 25f0: dec00104 addi sp,sp,4 - 25f4: f800283a ret - -000025f8 : - -void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec){ - 25f8: defffd04 addi sp,sp,-12 - 25fc: df000215 stw fp,8(sp) - 2600: df000204 addi fp,sp,8 - 2604: e13ffe15 stw r4,-8(fp) - 2608: e17fff15 stw r5,-4(fp) - inst_memory[global_current_memory][mem_addr] = inst_rec; - 260c: d0a6f917 ldw r2,-25628(gp) - 2610: e0fffe17 ldw r3,-8(fp) - 2614: 01000074 movhi r4,1 - 2618: 210fc304 addi r4,r4,16140 - 261c: 1004913a slli r2,r2,4 - 2620: 10c5883a add r2,r2,r3 - 2624: 1085883a add r2,r2,r2 - 2628: 1085883a add r2,r2,r2 - 262c: 1107883a add r3,r2,r4 - 2630: e0bfff17 ldw r2,-4(fp) - 2634: 18800015 stw r2,0(r3) -} - 2638: e037883a mov sp,fp - 263c: df000017 ldw fp,0(sp) - 2640: dec00104 addi sp,sp,4 - 2644: f800283a ret - -00002648 : -struct InstRec inst_memory_load(unsigned int mem_addr){ - 2648: defffe04 addi sp,sp,-8 - 264c: df000115 stw fp,4(sp) - 2650: df000104 addi fp,sp,4 - 2654: e13fff15 stw r4,-4(fp) - return inst_memory[global_current_memory][mem_addr]; - 2658: d0a6f917 ldw r2,-25628(gp) - 265c: e0ffff17 ldw r3,-4(fp) - 2660: 01000074 movhi r4,1 - 2664: 210fc304 addi r4,r4,16140 - 2668: 1004913a slli r2,r2,4 - 266c: 10c5883a add r2,r2,r3 - 2670: 1085883a add r2,r2,r2 - 2674: 1085883a add r2,r2,r2 - 2678: 1105883a add r2,r2,r4 - 267c: 10800017 ldw r2,0(r2) -} - 2680: e037883a mov sp,fp - 2684: df000017 ldw fp,0(sp) - 2688: dec00104 addi sp,sp,4 - 268c: f800283a ret - -00002690 : - -char memory_store(unsigned int mem_addr, enum Register reg) { - 2690: defffc04 addi sp,sp,-16 - 2694: dfc00315 stw ra,12(sp) - 2698: df000215 stw fp,8(sp) - 269c: df000204 addi fp,sp,8 - 26a0: e13ffe15 stw r4,-8(fp) - 26a4: e17fff15 stw r5,-4(fp) - if (!(mem_addr < MEM_SIZE)) panic(); - 26a8: e0bffe17 ldw r2,-8(fp) - 26ac: 10800430 cmpltui r2,r2,16 - 26b0: 1000011e bne r2,zero,26b8 - 26b4: 000253c0 call 253c - memory[global_current_memory][mem_addr] = global_registers[reg]; - 26b8: d166f917 ldw r5,-25628(gp) - 26bc: e1bffe17 ldw r6,-8(fp) - 26c0: e0ffff17 ldw r3,-4(fp) - 26c4: 00800074 movhi r2,1 - 26c8: 1090cd04 addi r2,r2,17204 - 26cc: 10c5883a add r2,r2,r3 - 26d0: 11000003 ldbu r4,0(r2) - 26d4: 00c00074 movhi r3,1 - 26d8: 18cf8304 addi r3,r3,15884 - 26dc: 2804913a slli r2,r5,4 - 26e0: 10c5883a add r2,r2,r3 - 26e4: 1185883a add r2,r2,r6 - 26e8: 11000005 stb r4,0(r2) - return memory[global_current_memory][mem_addr]; - 26ec: d0a6f917 ldw r2,-25628(gp) - 26f0: e13ffe17 ldw r4,-8(fp) - 26f4: 00c00074 movhi r3,1 - 26f8: 18cf8304 addi r3,r3,15884 - 26fc: 1004913a slli r2,r2,4 - 2700: 10c5883a add r2,r2,r3 - 2704: 1105883a add r2,r2,r4 - 2708: 10800003 ldbu r2,0(r2) - 270c: 10803fcc andi r2,r2,255 - 2710: 1080201c xori r2,r2,128 - 2714: 10bfe004 addi r2,r2,-128 -} - 2718: e037883a mov sp,fp - 271c: dfc00117 ldw ra,4(sp) - 2720: df000017 ldw fp,0(sp) - 2724: dec00204 addi sp,sp,8 - 2728: f800283a ret - -0000272c : - -char memory_load(unsigned int mem_addr, enum Register reg) { - 272c: defffc04 addi sp,sp,-16 - 2730: dfc00315 stw ra,12(sp) - 2734: df000215 stw fp,8(sp) - 2738: df000204 addi fp,sp,8 - 273c: e13ffe15 stw r4,-8(fp) - 2740: e17fff15 stw r5,-4(fp) - if (!(mem_addr < MEM_SIZE)) panic(); - 2744: e0bffe17 ldw r2,-8(fp) - 2748: 10800430 cmpltui r2,r2,16 - 274c: 1000011e bne r2,zero,2754 - 2750: 000253c0 call 253c - global_registers[reg] = memory[global_current_memory][mem_addr]; - 2754: e17fff17 ldw r5,-4(fp) - 2758: d0a6f917 ldw r2,-25628(gp) - 275c: e13ffe17 ldw r4,-8(fp) - 2760: 00c00074 movhi r3,1 - 2764: 18cf8304 addi r3,r3,15884 - 2768: 1004913a slli r2,r2,4 - 276c: 10c5883a add r2,r2,r3 - 2770: 1105883a add r2,r2,r4 - 2774: 10c00003 ldbu r3,0(r2) - 2778: 00800074 movhi r2,1 - 277c: 1090cd04 addi r2,r2,17204 - 2780: 1145883a add r2,r2,r5 - 2784: 10c00005 stb r3,0(r2) - return global_registers[reg]; - 2788: e0ffff17 ldw r3,-4(fp) - 278c: 00800074 movhi r2,1 - 2790: 1090cd04 addi r2,r2,17204 - 2794: 10c5883a add r2,r2,r3 - 2798: 10800003 ldbu r2,0(r2) - 279c: 10803fcc andi r2,r2,255 - 27a0: 1080201c xori r2,r2,128 - 27a4: 10bfe004 addi r2,r2,-128 -} - 27a8: e037883a mov sp,fp - 27ac: dfc00117 ldw ra,4(sp) - 27b0: df000017 ldw fp,0(sp) - 27b4: dec00204 addi sp,sp,8 - 27b8: f800283a ret - -000027bc : -#include "sys_register.h" -#include "sys_memory.h" -#include "hex_out.h" -#include "lcd_out.h" - -unsigned int inc_pc() { - 27bc: deffff04 addi sp,sp,-4 - 27c0: df000015 stw fp,0(sp) - 27c4: d839883a mov fp,sp - if ((unsigned char)global_registers[Spc]+1 < MEM_SIZE*MEMS_COUNT - global_current_memory*MEM_SIZE ) { - 27c8: 00800074 movhi r2,1 - 27cc: 1090cd04 addi r2,r2,17204 - 27d0: 10800043 ldbu r2,1(r2) - 27d4: 10803fcc andi r2,r2,255 - 27d8: 10800044 addi r2,r2,1 - 27dc: 1009883a mov r4,r2 - 27e0: 00800074 movhi r2,1 - 27e4: 108f7504 addi r2,r2,15828 - 27e8: 10800017 ldw r2,0(r2) - 27ec: 1006913a slli r3,r2,4 - 27f0: 00804004 movi r2,256 - 27f4: 10c5c83a sub r2,r2,r3 - 27f8: 2080092e bgeu r4,r2,2820 - global_registers[Spc] = (unsigned char)global_registers[Spc] + 1; - 27fc: 00800074 movhi r2,1 - 2800: 1090cd04 addi r2,r2,17204 - 2804: 10800043 ldbu r2,1(r2) - 2808: 10800044 addi r2,r2,1 - 280c: 1007883a mov r3,r2 - 2810: 00800074 movhi r2,1 - 2814: 1090cd04 addi r2,r2,17204 - 2818: 10c00045 stb r3,1(r2) - 281c: 00000306 br 282c - } else { - global_registers[Spc] = 0; - 2820: 00800074 movhi r2,1 - 2824: 1090cd04 addi r2,r2,17204 - 2828: 10000045 stb zero,1(r2) - } - return 0; - 282c: 0005883a mov r2,zero -} - 2830: e037883a mov sp,fp - 2834: df000017 ldw fp,0(sp) - 2838: dec00104 addi sp,sp,4 - 283c: f800283a ret - -00002840 : -unsigned int add_pc(unsigned int cnt) { - 2840: defffc04 addi sp,sp,-16 - 2844: dfc00315 stw ra,12(sp) - 2848: df000215 stw fp,8(sp) - 284c: df000204 addi fp,sp,8 - 2850: e13fff15 stw r4,-4(fp) - int i; - for (i = 0; i < cnt; i++) inc_pc(); - 2854: e03ffe15 stw zero,-8(fp) - 2858: 00000406 br 286c - 285c: 00027bc0 call 27bc - 2860: e0bffe17 ldw r2,-8(fp) - 2864: 10800044 addi r2,r2,1 - 2868: e0bffe15 stw r2,-8(fp) - 286c: e0fffe17 ldw r3,-8(fp) - 2870: e0bfff17 ldw r2,-4(fp) - 2874: 18bff936 bltu r3,r2,285c - return 0; - 2878: 0005883a mov r2,zero -} - 287c: e037883a mov sp,fp - 2880: dfc00117 ldw ra,4(sp) - 2884: df000017 ldw fp,0(sp) - 2888: dec00204 addi sp,sp,8 - 288c: f800283a ret - -00002890 : -unsigned int set_pc(unsigned int cnt) { - 2890: defffe04 addi sp,sp,-8 - 2894: df000115 stw fp,4(sp) - 2898: df000104 addi fp,sp,4 - 289c: e13fff15 stw r4,-4(fp) - global_registers[Spc]=cnt; - 28a0: e0bfff17 ldw r2,-4(fp) - 28a4: 1007883a mov r3,r2 - 28a8: 00800074 movhi r2,1 - 28ac: 1090cd04 addi r2,r2,17204 - 28b0: 10c00045 stb r3,1(r2) - return 0; - 28b4: 0005883a mov r2,zero -} - 28b8: e037883a mov sp,fp - 28bc: df000017 ldw fp,0(sp) - 28c0: dec00104 addi sp,sp,4 - 28c4: f800283a ret - -000028c8 : -unsigned int get_pc() { - 28c8: defffe04 addi sp,sp,-8 - 28cc: df000115 stw fp,4(sp) - 28d0: df000104 addi fp,sp,4 - if ((unsigned char)global_registers[Spc] < MEM_SIZE*MEMS_COUNT - global_current_memory*MEM_SIZE ) { - 28d4: 00800074 movhi r2,1 - 28d8: 1090cd04 addi r2,r2,17204 - 28dc: 10800043 ldbu r2,1(r2) - 28e0: 11003fcc andi r4,r2,255 - 28e4: 00800074 movhi r2,1 - 28e8: 108f7504 addi r2,r2,15828 - 28ec: 10800017 ldw r2,0(r2) - 28f0: 1006913a slli r3,r2,4 - 28f4: 00804004 movi r2,256 - 28f8: 10c5c83a sub r2,r2,r3 - 28fc: 2080082e bgeu r4,r2,2920 - return (unsigned int)global_registers[Spc]; - 2900: 00800074 movhi r2,1 - 2904: 1090cd04 addi r2,r2,17204 - 2908: 10800043 ldbu r2,1(r2) - 290c: 10803fcc andi r2,r2,255 - 2910: 1080201c xori r2,r2,128 - 2914: 10bfe004 addi r2,r2,-128 - 2918: e0bfff15 stw r2,-4(fp) - 291c: 00000106 br 2924 - } else { - return 0; - 2920: e03fff15 stw zero,-4(fp) - 2924: e0bfff17 ldw r2,-4(fp) - } -} - 2928: e037883a mov sp,fp - 292c: df000017 ldw fp,0(sp) - 2930: dec00104 addi sp,sp,4 - 2934: f800283a ret - -00002938 : - -enum RunMode run_proc(enum RunMode mode) { - 2938: defff904 addi sp,sp,-28 - 293c: dfc00615 stw ra,24(sp) - 2940: df000515 stw fp,20(sp) - 2944: df000504 addi fp,sp,20 - 2948: e13ffe15 stw r4,-8(fp) - volatile struct InstRec inst_rec; - - if (RUN_INIT == mode) { - 294c: e0bffe17 ldw r2,-8(fp) - 2950: 10800058 cmpnei r2,r2,1 - 2954: 1000101e bne r2,zero,2998 - lcd_caret_reset(); - 2958: 0001f340 call 1f34 - lcd_print("Run...now"); - 295c: 01000074 movhi r4,1 - 2960: 21003004 addi r4,r4,192 - 2964: 0001f840 call 1f84 - - global_registers[Spc] = 0; - 2968: 00800074 movhi r2,1 - 296c: 1090cd04 addi r2,r2,17204 - 2970: 10000045 stb zero,1(r2) - clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); - 2974: 0009883a mov r4,zero - 2978: 00013480 call 1348 - 297c: 01000044 movi r4,1 - 2980: 00013480 call 1348 - 2984: 01000084 movi r4,2 - 2988: 00013480 call 1348 - - // �v���O�������s���֑J�� - return RUN_PROC; - 298c: 00800084 movi r2,2 - 2990: e0bfff15 stw r2,-4(fp) - 2994: 00003606 br 2a70 - } - - if (RUN_PROC == mode) { - 2998: e0bffe17 ldw r2,-8(fp) - 299c: 10800098 cmpnei r2,r2,2 - 29a0: 1000291e bne r2,zero,2a48 - // ���߃t�F�b�` - inst_rec = inst_fetch(); - 29a4: 00017900 call 1790 - 29a8: e0bffb15 stw r2,-20(fp) - // ���߃f�R�[�h���s - inst_decode(inst_rec); - 29ac: e13ffb17 ldw r4,-20(fp) - 29b0: 00017dc0 call 17dc - // pc�\�� - { - char buf[5]; - sprintf(buf, "%02x", (unsigned char)global_registers[Spc]); - 29b4: 00800074 movhi r2,1 - 29b8: 1090cd04 addi r2,r2,17204 - 29bc: 10800043 ldbu r2,1(r2) - 29c0: 11803fcc andi r6,r2,255 - 29c4: e13ffc04 addi r4,fp,-16 - 29c8: 01400074 movhi r5,1 - 29cc: 29403304 addi r5,r5,204 - 29d0: 0002c5c0 call 2c5c - print_block("pc", 2, HEX6_7); - 29d4: 01000074 movhi r4,1 - 29d8: 21003504 addi r4,r4,212 - 29dc: 01400084 movi r5,2 - 29e0: 01800084 movi r6,2 - 29e4: 00011b80 call 11b8 - print_block(buf, 2, HEX4_5); - 29e8: e13ffc04 addi r4,fp,-16 - 29ec: 01400084 movi r5,2 - 29f0: 01800044 movi r6,1 - 29f4: 00011b80 call 11b8 - } - - // �f�o�b�N�p - if ( global_registers[Ssw_run] ) delay10ms(100U); - 29f8: 00800074 movhi r2,1 - 29fc: 1090cd04 addi r2,r2,17204 - 2a00: 10800343 ldbu r2,13(r2) - 2a04: 10803fcc andi r2,r2,255 - 2a08: 1080201c xori r2,r2,128 - 2a0c: 10bfe004 addi r2,r2,-128 - 2a10: 1005003a cmpeq r2,r2,zero - 2a14: 1000021e bne r2,zero,2a20 - 2a18: 01001904 movi r4,100 - 2a1c: 00025000 call 2500 - - // �v���O�����I������ - if (inst_rec.inst != INST_END) return RUN_PROC; - 2a20: e0bffb17 ldw r2,-20(fp) - 2a24: 108003cc andi r2,r2,15 - 2a28: 1005003a cmpeq r2,r2,zero - 2a2c: 1000031e bne r2,zero,2a3c - 2a30: 00800084 movi r2,2 - 2a34: e0bfff15 stw r2,-4(fp) - 2a38: 00000d06 br 2a70 - return RUN_TERM; - 2a3c: 008000c4 movi r2,3 - 2a40: e0bfff15 stw r2,-4(fp) - 2a44: 00000a06 br 2a70 - } - - if (RUN_TERM == mode) { - 2a48: e0bffe17 ldw r2,-8(fp) - 2a4c: 108000d8 cmpnei r2,r2,3 - 2a50: 1000061e bne r2,zero,2a6c - lcd_caret_reset(); - 2a54: 0001f340 call 1f34 - lcd_print("Run...Exit"); - 2a58: 01000074 movhi r4,1 - 2a5c: 21003604 addi r4,r4,216 - 2a60: 0001f840 call 1f84 - return RUN_STOP; - 2a64: e03fff15 stw zero,-4(fp) - 2a68: 00000106 br 2a70 - } - - // Default - return RUN_STOP; - 2a6c: e03fff15 stw zero,-4(fp) - 2a70: e0bfff17 ldw r2,-4(fp) -} - 2a74: e037883a mov sp,fp - 2a78: dfc00117 ldw ra,4(sp) - 2a7c: df000017 ldw fp,0(sp) - 2a80: dec00204 addi sp,sp,8 - 2a84: f800283a ret - -00002a88 : - */ -#include "sys_register.h" - -char global_registers[REG_MAX_COUNT]; - -void registers_init() { - 2a88: defffe04 addi sp,sp,-8 - 2a8c: df000115 stw fp,4(sp) - 2a90: df000104 addi fp,sp,4 - int i; - for (i = 0; i < REG_MAX_COUNT; i++) global_registers[i] = 0; - 2a94: e03fff15 stw zero,-4(fp) - 2a98: 00000806 br 2abc - 2a9c: e0ffff17 ldw r3,-4(fp) - 2aa0: 00800074 movhi r2,1 - 2aa4: 1090cd04 addi r2,r2,17204 - 2aa8: 10c5883a add r2,r2,r3 - 2aac: 10000005 stb zero,0(r2) - 2ab0: e0bfff17 ldw r2,-4(fp) - 2ab4: 10800044 addi r2,r2,1 - 2ab8: e0bfff15 stw r2,-4(fp) - 2abc: e0bfff17 ldw r2,-4(fp) - 2ac0: 108003d0 cmplti r2,r2,15 - 2ac4: 103ff51e bne r2,zero,2a9c -} - 2ac8: e037883a mov sp,fp - 2acc: df000017 ldw fp,0(sp) - 2ad0: dec00104 addi sp,sp,4 - 2ad4: f800283a ret - -00002ad8 : - 2ad8: 29001b2e bgeu r5,r4,2b48 - 2adc: 28001a16 blt r5,zero,2b48 - 2ae0: 00800044 movi r2,1 - 2ae4: 0007883a mov r3,zero - 2ae8: 01c007c4 movi r7,31 - 2aec: 00000306 br 2afc - 2af0: 19c01326 beq r3,r7,2b40 - 2af4: 18c00044 addi r3,r3,1 - 2af8: 28000416 blt r5,zero,2b0c - 2afc: 294b883a add r5,r5,r5 - 2b00: 1085883a add r2,r2,r2 - 2b04: 293ffa36 bltu r5,r4,2af0 - 2b08: 10000d26 beq r2,zero,2b40 - 2b0c: 0007883a mov r3,zero - 2b10: 21400236 bltu r4,r5,2b1c - 2b14: 2149c83a sub r4,r4,r5 - 2b18: 1886b03a or r3,r3,r2 - 2b1c: 1004d07a srli r2,r2,1 - 2b20: 280ad07a srli r5,r5,1 - 2b24: 103ffa1e bne r2,zero,2b10 - 2b28: 30000226 beq r6,zero,2b34 - 2b2c: 2005883a mov r2,r4 - 2b30: f800283a ret - 2b34: 1809883a mov r4,r3 - 2b38: 2005883a mov r2,r4 - 2b3c: f800283a ret - 2b40: 0007883a mov r3,zero - 2b44: 003ff806 br 2b28 - 2b48: 00800044 movi r2,1 - 2b4c: 0007883a mov r3,zero - 2b50: 003fef06 br 2b10 - -00002b54 <__divsi3>: - 2b54: defffe04 addi sp,sp,-8 - 2b58: dc000015 stw r16,0(sp) - 2b5c: dfc00115 stw ra,4(sp) - 2b60: 0021883a mov r16,zero - 2b64: 20000c16 blt r4,zero,2b98 <__divsi3+0x44> - 2b68: 000d883a mov r6,zero - 2b6c: 28000e16 blt r5,zero,2ba8 <__divsi3+0x54> - 2b70: 0002ad80 call 2ad8 - 2b74: 1007883a mov r3,r2 - 2b78: 8005003a cmpeq r2,r16,zero - 2b7c: 1000011e bne r2,zero,2b84 <__divsi3+0x30> - 2b80: 00c7c83a sub r3,zero,r3 - 2b84: 1805883a mov r2,r3 - 2b88: dfc00117 ldw ra,4(sp) - 2b8c: dc000017 ldw r16,0(sp) - 2b90: dec00204 addi sp,sp,8 - 2b94: f800283a ret - 2b98: 0109c83a sub r4,zero,r4 - 2b9c: 04000044 movi r16,1 - 2ba0: 000d883a mov r6,zero - 2ba4: 283ff20e bge r5,zero,2b70 <__divsi3+0x1c> - 2ba8: 014bc83a sub r5,zero,r5 - 2bac: 8021003a cmpeq r16,r16,zero - 2bb0: 003fef06 br 2b70 <__divsi3+0x1c> - -00002bb4 <__modsi3>: - 2bb4: deffff04 addi sp,sp,-4 - 2bb8: dfc00015 stw ra,0(sp) - 2bbc: 01800044 movi r6,1 - 2bc0: 2807883a mov r3,r5 - 2bc4: 20000416 blt r4,zero,2bd8 <__modsi3+0x24> - 2bc8: 28000c16 blt r5,zero,2bfc <__modsi3+0x48> - 2bcc: dfc00017 ldw ra,0(sp) - 2bd0: dec00104 addi sp,sp,4 - 2bd4: 0002ad81 jmpi 2ad8 - 2bd8: 0109c83a sub r4,zero,r4 - 2bdc: 28000b16 blt r5,zero,2c0c <__modsi3+0x58> - 2be0: 180b883a mov r5,r3 - 2be4: 01800044 movi r6,1 - 2be8: 0002ad80 call 2ad8 - 2bec: 0085c83a sub r2,zero,r2 - 2bf0: dfc00017 ldw ra,0(sp) - 2bf4: dec00104 addi sp,sp,4 - 2bf8: f800283a ret - 2bfc: 014bc83a sub r5,zero,r5 - 2c00: dfc00017 ldw ra,0(sp) - 2c04: dec00104 addi sp,sp,4 - 2c08: 0002ad81 jmpi 2ad8 - 2c0c: 0147c83a sub r3,zero,r5 - 2c10: 003ff306 br 2be0 <__modsi3+0x2c> - -00002c14 <__udivsi3>: - 2c14: 000d883a mov r6,zero - 2c18: 0002ad81 jmpi 2ad8 - -00002c1c <__umodsi3>: - 2c1c: 01800044 movi r6,1 - 2c20: 0002ad81 jmpi 2ad8 - -00002c24 <__mulsi3>: - 2c24: 20000a26 beq r4,zero,2c50 <__mulsi3+0x2c> - 2c28: 0007883a mov r3,zero - 2c2c: 2080004c andi r2,r4,1 - 2c30: 1005003a cmpeq r2,r2,zero - 2c34: 2008d07a srli r4,r4,1 - 2c38: 1000011e bne r2,zero,2c40 <__mulsi3+0x1c> - 2c3c: 1947883a add r3,r3,r5 - 2c40: 294b883a add r5,r5,r5 - 2c44: 203ff91e bne r4,zero,2c2c <__mulsi3+0x8> - 2c48: 1805883a mov r2,r3 - 2c4c: f800283a ret - 2c50: 0007883a mov r3,zero - 2c54: 1805883a mov r2,r3 - 2c58: f800283a ret - -00002c5c : - 2c5c: deffe504 addi sp,sp,-108 - 2c60: 2013883a mov r9,r4 - 2c64: dfc01815 stw ra,96(sp) - 2c68: d9801915 stw r6,100(sp) - 2c6c: d9c01a15 stw r7,104(sp) - 2c70: d8801904 addi r2,sp,100 - 2c74: d8800015 stw r2,0(sp) - 2c78: 00800074 movhi r2,1 - 2c7c: 10887e04 addi r2,r2,8696 - 2c80: 11000017 ldw r4,0(r2) - 2c84: d9c00017 ldw r7,0(sp) - 2c88: 00808204 movi r2,520 - 2c8c: 00e00034 movhi r3,32768 - 2c90: 18ffffc4 addi r3,r3,-1 - 2c94: 280d883a mov r6,r5 - 2c98: d880040d sth r2,16(sp) - 2c9c: d9400104 addi r5,sp,4 - 2ca0: 00bfffc4 movi r2,-1 - 2ca4: d8c00615 stw r3,24(sp) - 2ca8: d8c00315 stw r3,12(sp) - 2cac: da400515 stw r9,20(sp) - 2cb0: d880048d sth r2,18(sp) - 2cb4: da400115 stw r9,4(sp) - 2cb8: 0002dfc0 call 2dfc <___vfprintf_internal_r> - 2cbc: d8c00117 ldw r3,4(sp) - 2cc0: 18000005 stb zero,0(r3) - 2cc4: dfc01817 ldw ra,96(sp) - 2cc8: dec01b04 addi sp,sp,108 - 2ccc: f800283a ret - -00002cd0 <_sprintf_r>: - 2cd0: deffe604 addi sp,sp,-104 - 2cd4: 2813883a mov r9,r5 - 2cd8: dfc01815 stw ra,96(sp) - 2cdc: d9c01915 stw r7,100(sp) - 2ce0: d8801904 addi r2,sp,100 - 2ce4: d8800015 stw r2,0(sp) - 2ce8: 100f883a mov r7,r2 - 2cec: 00808204 movi r2,520 - 2cf0: 00e00034 movhi r3,32768 - 2cf4: 18ffffc4 addi r3,r3,-1 - 2cf8: d880040d sth r2,16(sp) - 2cfc: d9400104 addi r5,sp,4 - 2d00: 00bfffc4 movi r2,-1 - 2d04: d8c00615 stw r3,24(sp) - 2d08: d8c00315 stw r3,12(sp) - 2d0c: da400515 stw r9,20(sp) - 2d10: d880048d sth r2,18(sp) - 2d14: da400115 stw r9,4(sp) - 2d18: 0002dfc0 call 2dfc <___vfprintf_internal_r> - 2d1c: d8c00117 ldw r3,4(sp) - 2d20: 18000005 stb zero,0(r3) - 2d24: dfc01817 ldw ra,96(sp) - 2d28: dec01a04 addi sp,sp,104 - 2d2c: f800283a ret - -00002d30 : - 2d30: 208000cc andi r2,r4,3 - 2d34: 2011883a mov r8,r4 - 2d38: 1000161e bne r2,zero,2d94 - 2d3c: 20c00017 ldw r3,0(r4) - 2d40: 017fbff4 movhi r5,65279 - 2d44: 297fbfc4 addi r5,r5,-257 - 2d48: 01e02074 movhi r7,32897 - 2d4c: 39e02004 addi r7,r7,-32640 - 2d50: 1945883a add r2,r3,r5 - 2d54: 11c4703a and r2,r2,r7 - 2d58: 00c6303a nor r3,zero,r3 - 2d5c: 1886703a and r3,r3,r2 - 2d60: 18000c1e bne r3,zero,2d94 - 2d64: 280d883a mov r6,r5 - 2d68: 380b883a mov r5,r7 - 2d6c: 21000104 addi r4,r4,4 - 2d70: 20800017 ldw r2,0(r4) - 2d74: 1187883a add r3,r2,r6 - 2d78: 1946703a and r3,r3,r5 - 2d7c: 0084303a nor r2,zero,r2 - 2d80: 10c4703a and r2,r2,r3 - 2d84: 103ff926 beq r2,zero,2d6c - 2d88: 20800007 ldb r2,0(r4) - 2d8c: 10000326 beq r2,zero,2d9c - 2d90: 21000044 addi r4,r4,1 - 2d94: 20800007 ldb r2,0(r4) - 2d98: 103ffd1e bne r2,zero,2d90 - 2d9c: 2205c83a sub r2,r4,r8 - 2da0: f800283a ret - -00002da4 <__sprint_r>: - 2da4: 30800217 ldw r2,8(r6) - 2da8: defffe04 addi sp,sp,-8 - 2dac: dc000015 stw r16,0(sp) - 2db0: dfc00115 stw ra,4(sp) - 2db4: 3021883a mov r16,r6 - 2db8: 0007883a mov r3,zero - 2dbc: 1000061e bne r2,zero,2dd8 <__sprint_r+0x34> - 2dc0: 1805883a mov r2,r3 - 2dc4: 30000115 stw zero,4(r6) - 2dc8: dfc00117 ldw ra,4(sp) - 2dcc: dc000017 ldw r16,0(sp) - 2dd0: dec00204 addi sp,sp,8 - 2dd4: f800283a ret - 2dd8: 0006f7c0 call 6f7c <__sfvwrite_r> - 2ddc: 1007883a mov r3,r2 - 2de0: 1805883a mov r2,r3 - 2de4: 80000115 stw zero,4(r16) - 2de8: 80000215 stw zero,8(r16) - 2dec: dfc00117 ldw ra,4(sp) - 2df0: dc000017 ldw r16,0(sp) - 2df4: dec00204 addi sp,sp,8 - 2df8: f800283a ret - -00002dfc <___vfprintf_internal_r>: - 2dfc: defea404 addi sp,sp,-1392 - 2e00: dd815815 stw r22,1376(sp) - 2e04: dc015215 stw r16,1352(sp) - 2e08: d9c15115 stw r7,1348(sp) - 2e0c: dfc15b15 stw ra,1388(sp) - 2e10: df015a15 stw fp,1384(sp) - 2e14: ddc15915 stw r23,1380(sp) - 2e18: dd415715 stw r21,1372(sp) - 2e1c: dd015615 stw r20,1368(sp) - 2e20: dcc15515 stw r19,1364(sp) - 2e24: dc815415 stw r18,1360(sp) - 2e28: dc415315 stw r17,1356(sp) - 2e2c: 282d883a mov r22,r5 - 2e30: 3021883a mov r16,r6 - 2e34: d9014f15 stw r4,1340(sp) - 2e38: 00075a00 call 75a0 <_localeconv_r> - 2e3c: 10800017 ldw r2,0(r2) - 2e40: d9c15117 ldw r7,1348(sp) - 2e44: d8814915 stw r2,1316(sp) - 2e48: d8814f17 ldw r2,1340(sp) - 2e4c: 10000226 beq r2,zero,2e58 <___vfprintf_internal_r+0x5c> - 2e50: 10800e17 ldw r2,56(r2) - 2e54: 10020d26 beq r2,zero,368c <___vfprintf_internal_r+0x890> - 2e58: b080030b ldhu r2,12(r22) - 2e5c: 1080020c andi r2,r2,8 - 2e60: 10020e26 beq r2,zero,369c <___vfprintf_internal_r+0x8a0> - 2e64: b0800417 ldw r2,16(r22) - 2e68: 10020c26 beq r2,zero,369c <___vfprintf_internal_r+0x8a0> - 2e6c: b200030b ldhu r8,12(r22) - 2e70: 00800284 movi r2,10 - 2e74: 40c0068c andi r3,r8,26 - 2e78: 18802f1e bne r3,r2,2f38 <___vfprintf_internal_r+0x13c> - 2e7c: b080038f ldh r2,14(r22) - 2e80: 10002d16 blt r2,zero,2f38 <___vfprintf_internal_r+0x13c> - 2e84: b240038b ldhu r9,14(r22) - 2e88: b2800717 ldw r10,28(r22) - 2e8c: b2c00917 ldw r11,36(r22) - 2e90: d9014f17 ldw r4,1340(sp) - 2e94: dc402904 addi r17,sp,164 - 2e98: d8804004 addi r2,sp,256 - 2e9c: 00c10004 movi r3,1024 - 2ea0: 423fff4c andi r8,r8,65533 - 2ea4: 800d883a mov r6,r16 - 2ea8: 880b883a mov r5,r17 - 2eac: da002c0d sth r8,176(sp) - 2eb0: da402c8d sth r9,178(sp) - 2eb4: da803015 stw r10,192(sp) - 2eb8: dac03215 stw r11,200(sp) - 2ebc: d8802d15 stw r2,180(sp) - 2ec0: d8c02e15 stw r3,184(sp) - 2ec4: d8802915 stw r2,164(sp) - 2ec8: d8c02b15 stw r3,172(sp) - 2ecc: d8002f15 stw zero,188(sp) - 2ed0: 0002dfc0 call 2dfc <___vfprintf_internal_r> - 2ed4: d8814b15 stw r2,1324(sp) - 2ed8: 10000416 blt r2,zero,2eec <___vfprintf_internal_r+0xf0> - 2edc: d9014f17 ldw r4,1340(sp) - 2ee0: 880b883a mov r5,r17 - 2ee4: 00066180 call 6618 <_fflush_r> - 2ee8: 1002321e bne r2,zero,37b4 <___vfprintf_internal_r+0x9b8> - 2eec: d8802c0b ldhu r2,176(sp) - 2ef0: 1080100c andi r2,r2,64 - 2ef4: 10000326 beq r2,zero,2f04 <___vfprintf_internal_r+0x108> - 2ef8: b080030b ldhu r2,12(r22) - 2efc: 10801014 ori r2,r2,64 - 2f00: b080030d sth r2,12(r22) - 2f04: d8814b17 ldw r2,1324(sp) - 2f08: dfc15b17 ldw ra,1388(sp) - 2f0c: df015a17 ldw fp,1384(sp) - 2f10: ddc15917 ldw r23,1380(sp) - 2f14: dd815817 ldw r22,1376(sp) - 2f18: dd415717 ldw r21,1372(sp) - 2f1c: dd015617 ldw r20,1368(sp) - 2f20: dcc15517 ldw r19,1364(sp) - 2f24: dc815417 ldw r18,1360(sp) - 2f28: dc415317 ldw r17,1356(sp) - 2f2c: dc015217 ldw r16,1352(sp) - 2f30: dec15c04 addi sp,sp,1392 - 2f34: f800283a ret - 2f38: 0005883a mov r2,zero - 2f3c: 0007883a mov r3,zero - 2f40: dd401904 addi r21,sp,100 - 2f44: d8814215 stw r2,1288(sp) - 2f48: 802f883a mov r23,r16 - 2f4c: d8c14315 stw r3,1292(sp) - 2f50: d8014b15 stw zero,1324(sp) - 2f54: d8014815 stw zero,1312(sp) - 2f58: d8014415 stw zero,1296(sp) - 2f5c: d8014715 stw zero,1308(sp) - 2f60: dd400c15 stw r21,48(sp) - 2f64: d8000e15 stw zero,56(sp) - 2f68: d8000d15 stw zero,52(sp) - 2f6c: b8800007 ldb r2,0(r23) - 2f70: 10001926 beq r2,zero,2fd8 <___vfprintf_internal_r+0x1dc> - 2f74: 00c00944 movi r3,37 - 2f78: 10c01726 beq r2,r3,2fd8 <___vfprintf_internal_r+0x1dc> - 2f7c: b821883a mov r16,r23 - 2f80: 00000106 br 2f88 <___vfprintf_internal_r+0x18c> - 2f84: 10c00326 beq r2,r3,2f94 <___vfprintf_internal_r+0x198> - 2f88: 84000044 addi r16,r16,1 - 2f8c: 80800007 ldb r2,0(r16) - 2f90: 103ffc1e bne r2,zero,2f84 <___vfprintf_internal_r+0x188> - 2f94: 85e7c83a sub r19,r16,r23 - 2f98: 98000e26 beq r19,zero,2fd4 <___vfprintf_internal_r+0x1d8> - 2f9c: dc800e17 ldw r18,56(sp) - 2fa0: dc400d17 ldw r17,52(sp) - 2fa4: 008001c4 movi r2,7 - 2fa8: 94e5883a add r18,r18,r19 - 2fac: 8c400044 addi r17,r17,1 - 2fb0: adc00015 stw r23,0(r21) - 2fb4: dc800e15 stw r18,56(sp) - 2fb8: acc00115 stw r19,4(r21) - 2fbc: dc400d15 stw r17,52(sp) - 2fc0: 14428b16 blt r2,r17,39f0 <___vfprintf_internal_r+0xbf4> - 2fc4: ad400204 addi r21,r21,8 - 2fc8: d9014b17 ldw r4,1324(sp) - 2fcc: 24c9883a add r4,r4,r19 - 2fd0: d9014b15 stw r4,1324(sp) - 2fd4: 802f883a mov r23,r16 - 2fd8: b8800007 ldb r2,0(r23) - 2fdc: 10013c26 beq r2,zero,34d0 <___vfprintf_internal_r+0x6d4> - 2fe0: bdc00044 addi r23,r23,1 - 2fe4: d8000405 stb zero,16(sp) - 2fe8: b8c00007 ldb r3,0(r23) - 2fec: 04ffffc4 movi r19,-1 - 2ff0: d8014c15 stw zero,1328(sp) - 2ff4: d8014a15 stw zero,1320(sp) - 2ff8: d8c14d15 stw r3,1332(sp) - 2ffc: bdc00044 addi r23,r23,1 - 3000: d9414d17 ldw r5,1332(sp) - 3004: 00801604 movi r2,88 - 3008: 28fff804 addi r3,r5,-32 - 300c: 10c06036 bltu r2,r3,3190 <___vfprintf_internal_r+0x394> - 3010: 18c5883a add r2,r3,r3 - 3014: 1085883a add r2,r2,r2 - 3018: 00c00034 movhi r3,0 - 301c: 18cc0b04 addi r3,r3,12332 - 3020: 10c5883a add r2,r2,r3 - 3024: 11000017 ldw r4,0(r2) - 3028: 2000683a jmp r4 - 302c: 00003fa0 cmpeqi zero,zero,254 - 3030: 00003190 cmplti zero,zero,198 - 3034: 00003190 cmplti zero,zero,198 - 3038: 00003f8c andi zero,zero,254 - 303c: 00003190 cmplti zero,zero,198 - 3040: 00003190 cmplti zero,zero,198 - 3044: 00003190 cmplti zero,zero,198 - 3048: 00003190 cmplti zero,zero,198 - 304c: 00003190 cmplti zero,zero,198 - 3050: 00003190 cmplti zero,zero,198 - 3054: 00003d6c andhi zero,zero,245 - 3058: 00003f7c xorhi zero,zero,253 - 305c: 00003190 cmplti zero,zero,198 - 3060: 00003d84 movi zero,246 - 3064: 00004024 muli zero,zero,256 - 3068: 00003190 cmplti zero,zero,198 - 306c: 00004010 cmplti zero,zero,256 - 3070: 00003fcc andi zero,zero,255 - 3074: 00003fcc andi zero,zero,255 - 3078: 00003fcc andi zero,zero,255 - 307c: 00003fcc andi zero,zero,255 - 3080: 00003fcc andi zero,zero,255 - 3084: 00003fcc andi zero,zero,255 - 3088: 00003fcc andi zero,zero,255 - 308c: 00003fcc andi zero,zero,255 - 3090: 00003fcc andi zero,zero,255 - 3094: 00003190 cmplti zero,zero,198 - 3098: 00003190 cmplti zero,zero,198 - 309c: 00003190 cmplti zero,zero,198 - 30a0: 00003190 cmplti zero,zero,198 - 30a4: 00003190 cmplti zero,zero,198 - 30a8: 00003190 cmplti zero,zero,198 - 30ac: 00003190 cmplti zero,zero,198 - 30b0: 00003190 cmplti zero,zero,198 - 30b4: 00003190 cmplti zero,zero,198 - 30b8: 00003190 cmplti zero,zero,198 - 30bc: 000037e8 cmpgeui zero,zero,223 - 30c0: 00003e54 movui zero,249 - 30c4: 00003190 cmplti zero,zero,198 - 30c8: 00003e54 movui zero,249 - 30cc: 00003190 cmplti zero,zero,198 - 30d0: 00003190 cmplti zero,zero,198 - 30d4: 00003190 cmplti zero,zero,198 - 30d8: 00003190 cmplti zero,zero,198 - 30dc: 00003fb8 rdprs zero,zero,254 - 30e0: 00003190 cmplti zero,zero,198 - 30e4: 00003190 cmplti zero,zero,198 - 30e8: 0000389c xori zero,zero,226 - 30ec: 00003190 cmplti zero,zero,198 - 30f0: 00003190 cmplti zero,zero,198 - 30f4: 00003190 cmplti zero,zero,198 - 30f8: 00003190 cmplti zero,zero,198 - 30fc: 00003190 cmplti zero,zero,198 - 3100: 000038e8 cmpgeui zero,zero,227 - 3104: 00003190 cmplti zero,zero,198 - 3108: 00003190 cmplti zero,zero,198 - 310c: 00003f08 cmpgei zero,zero,252 - 3110: 00003190 cmplti zero,zero,198 - 3114: 00003190 cmplti zero,zero,198 - 3118: 00003190 cmplti zero,zero,198 - 311c: 00003190 cmplti zero,zero,198 - 3120: 00003190 cmplti zero,zero,198 - 3124: 00003190 cmplti zero,zero,198 - 3128: 00003190 cmplti zero,zero,198 - 312c: 00003190 cmplti zero,zero,198 - 3130: 00003190 cmplti zero,zero,198 - 3134: 00003190 cmplti zero,zero,198 - 3138: 00003edc xori zero,zero,251 - 313c: 000037f4 movhi zero,223 - 3140: 00003e54 movui zero,249 - 3144: 00003e54 movui zero,249 - 3148: 00003e54 movui zero,249 - 314c: 00003e40 call 3e4 - 3150: 000037f4 movhi zero,223 - 3154: 00003190 cmplti zero,zero,198 - 3158: 00003190 cmplti zero,zero,198 - 315c: 00003dc8 cmpgei zero,zero,247 - 3160: 00003190 cmplti zero,zero,198 - 3164: 00003d98 cmpnei zero,zero,246 - 3168: 000038a8 cmpgeui zero,zero,226 - 316c: 00003df8 rdprs zero,zero,247 - 3170: 00003de4 muli zero,zero,247 - 3174: 00003190 cmplti zero,zero,198 - 3178: 0000408c andi zero,zero,258 - 317c: 00003190 cmplti zero,zero,198 - 3180: 000038f4 movhi zero,227 - 3184: 00003190 cmplti zero,zero,198 - 3188: 00003190 cmplti zero,zero,198 - 318c: 00003f6c andhi zero,zero,253 - 3190: d9014d17 ldw r4,1332(sp) - 3194: 2000ce26 beq r4,zero,34d0 <___vfprintf_internal_r+0x6d4> - 3198: 01400044 movi r5,1 - 319c: d9800f04 addi r6,sp,60 - 31a0: d9c14015 stw r7,1280(sp) - 31a4: d9414515 stw r5,1300(sp) - 31a8: d9814115 stw r6,1284(sp) - 31ac: 280f883a mov r7,r5 - 31b0: d9000f05 stb r4,60(sp) - 31b4: d8000405 stb zero,16(sp) - 31b8: d8014615 stw zero,1304(sp) - 31bc: d8c14c17 ldw r3,1328(sp) - 31c0: 1880008c andi r2,r3,2 - 31c4: 1005003a cmpeq r2,r2,zero - 31c8: d8815015 stw r2,1344(sp) - 31cc: 1000031e bne r2,zero,31dc <___vfprintf_internal_r+0x3e0> - 31d0: d9014517 ldw r4,1300(sp) - 31d4: 21000084 addi r4,r4,2 - 31d8: d9014515 stw r4,1300(sp) - 31dc: d9414c17 ldw r5,1328(sp) - 31e0: 2940210c andi r5,r5,132 - 31e4: d9414e15 stw r5,1336(sp) - 31e8: 28002d1e bne r5,zero,32a0 <___vfprintf_internal_r+0x4a4> - 31ec: d9814a17 ldw r6,1320(sp) - 31f0: d8814517 ldw r2,1300(sp) - 31f4: 30a1c83a sub r16,r6,r2 - 31f8: 0400290e bge zero,r16,32a0 <___vfprintf_internal_r+0x4a4> - 31fc: 00800404 movi r2,16 - 3200: 14045e0e bge r2,r16,437c <___vfprintf_internal_r+0x1580> - 3204: dc800e17 ldw r18,56(sp) - 3208: dc400d17 ldw r17,52(sp) - 320c: 1027883a mov r19,r2 - 3210: 07000074 movhi fp,1 - 3214: e700f584 addi fp,fp,982 - 3218: 050001c4 movi r20,7 - 321c: 00000306 br 322c <___vfprintf_internal_r+0x430> - 3220: 843ffc04 addi r16,r16,-16 - 3224: ad400204 addi r21,r21,8 - 3228: 9c00130e bge r19,r16,3278 <___vfprintf_internal_r+0x47c> - 322c: 94800404 addi r18,r18,16 - 3230: 8c400044 addi r17,r17,1 - 3234: af000015 stw fp,0(r21) - 3238: acc00115 stw r19,4(r21) - 323c: dc800e15 stw r18,56(sp) - 3240: dc400d15 stw r17,52(sp) - 3244: a47ff60e bge r20,r17,3220 <___vfprintf_internal_r+0x424> - 3248: d9014f17 ldw r4,1340(sp) - 324c: b00b883a mov r5,r22 - 3250: d9800c04 addi r6,sp,48 - 3254: d9c15115 stw r7,1348(sp) - 3258: 0002da40 call 2da4 <__sprint_r> - 325c: d9c15117 ldw r7,1348(sp) - 3260: 10009e1e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 3264: 843ffc04 addi r16,r16,-16 - 3268: dc800e17 ldw r18,56(sp) - 326c: dc400d17 ldw r17,52(sp) - 3270: dd401904 addi r21,sp,100 - 3274: 9c3fed16 blt r19,r16,322c <___vfprintf_internal_r+0x430> - 3278: 9425883a add r18,r18,r16 - 327c: 8c400044 addi r17,r17,1 - 3280: 008001c4 movi r2,7 - 3284: af000015 stw fp,0(r21) - 3288: ac000115 stw r16,4(r21) - 328c: dc800e15 stw r18,56(sp) - 3290: dc400d15 stw r17,52(sp) - 3294: 1441f516 blt r2,r17,3a6c <___vfprintf_internal_r+0xc70> - 3298: ad400204 addi r21,r21,8 - 329c: 00000206 br 32a8 <___vfprintf_internal_r+0x4ac> - 32a0: dc800e17 ldw r18,56(sp) - 32a4: dc400d17 ldw r17,52(sp) - 32a8: d8800407 ldb r2,16(sp) - 32ac: 10000b26 beq r2,zero,32dc <___vfprintf_internal_r+0x4e0> - 32b0: 00800044 movi r2,1 - 32b4: 94800044 addi r18,r18,1 - 32b8: 8c400044 addi r17,r17,1 - 32bc: a8800115 stw r2,4(r21) - 32c0: d8c00404 addi r3,sp,16 - 32c4: 008001c4 movi r2,7 - 32c8: a8c00015 stw r3,0(r21) - 32cc: dc800e15 stw r18,56(sp) - 32d0: dc400d15 stw r17,52(sp) - 32d4: 1441da16 blt r2,r17,3a40 <___vfprintf_internal_r+0xc44> - 32d8: ad400204 addi r21,r21,8 - 32dc: d9015017 ldw r4,1344(sp) - 32e0: 20000b1e bne r4,zero,3310 <___vfprintf_internal_r+0x514> - 32e4: d8800444 addi r2,sp,17 - 32e8: 94800084 addi r18,r18,2 - 32ec: 8c400044 addi r17,r17,1 - 32f0: a8800015 stw r2,0(r21) - 32f4: 00c00084 movi r3,2 - 32f8: 008001c4 movi r2,7 - 32fc: a8c00115 stw r3,4(r21) - 3300: dc800e15 stw r18,56(sp) - 3304: dc400d15 stw r17,52(sp) - 3308: 1441c216 blt r2,r17,3a14 <___vfprintf_internal_r+0xc18> - 330c: ad400204 addi r21,r21,8 - 3310: d9414e17 ldw r5,1336(sp) - 3314: 00802004 movi r2,128 - 3318: 2880b126 beq r5,r2,35e0 <___vfprintf_internal_r+0x7e4> - 331c: d8c14617 ldw r3,1304(sp) - 3320: 19e1c83a sub r16,r3,r7 - 3324: 0400260e bge zero,r16,33c0 <___vfprintf_internal_r+0x5c4> - 3328: 00800404 movi r2,16 - 332c: 1403cf0e bge r2,r16,426c <___vfprintf_internal_r+0x1470> - 3330: 1027883a mov r19,r2 - 3334: 07000074 movhi fp,1 - 3338: e700f184 addi fp,fp,966 - 333c: 050001c4 movi r20,7 - 3340: 00000306 br 3350 <___vfprintf_internal_r+0x554> - 3344: 843ffc04 addi r16,r16,-16 - 3348: ad400204 addi r21,r21,8 - 334c: 9c00130e bge r19,r16,339c <___vfprintf_internal_r+0x5a0> - 3350: 94800404 addi r18,r18,16 - 3354: 8c400044 addi r17,r17,1 - 3358: af000015 stw fp,0(r21) - 335c: acc00115 stw r19,4(r21) - 3360: dc800e15 stw r18,56(sp) - 3364: dc400d15 stw r17,52(sp) - 3368: a47ff60e bge r20,r17,3344 <___vfprintf_internal_r+0x548> - 336c: d9014f17 ldw r4,1340(sp) - 3370: b00b883a mov r5,r22 - 3374: d9800c04 addi r6,sp,48 - 3378: d9c15115 stw r7,1348(sp) - 337c: 0002da40 call 2da4 <__sprint_r> - 3380: d9c15117 ldw r7,1348(sp) - 3384: 1000551e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 3388: 843ffc04 addi r16,r16,-16 - 338c: dc800e17 ldw r18,56(sp) - 3390: dc400d17 ldw r17,52(sp) - 3394: dd401904 addi r21,sp,100 - 3398: 9c3fed16 blt r19,r16,3350 <___vfprintf_internal_r+0x554> - 339c: 9425883a add r18,r18,r16 - 33a0: 8c400044 addi r17,r17,1 - 33a4: 008001c4 movi r2,7 - 33a8: af000015 stw fp,0(r21) - 33ac: ac000115 stw r16,4(r21) - 33b0: dc800e15 stw r18,56(sp) - 33b4: dc400d15 stw r17,52(sp) - 33b8: 14418216 blt r2,r17,39c4 <___vfprintf_internal_r+0xbc8> - 33bc: ad400204 addi r21,r21,8 - 33c0: d9014c17 ldw r4,1328(sp) - 33c4: 2080400c andi r2,r4,256 - 33c8: 10004a1e bne r2,zero,34f4 <___vfprintf_internal_r+0x6f8> - 33cc: d9414117 ldw r5,1284(sp) - 33d0: 91e5883a add r18,r18,r7 - 33d4: 8c400044 addi r17,r17,1 - 33d8: 008001c4 movi r2,7 - 33dc: a9400015 stw r5,0(r21) - 33e0: a9c00115 stw r7,4(r21) - 33e4: dc800e15 stw r18,56(sp) - 33e8: dc400d15 stw r17,52(sp) - 33ec: 14416716 blt r2,r17,398c <___vfprintf_internal_r+0xb90> - 33f0: a8c00204 addi r3,r21,8 - 33f4: d9814c17 ldw r6,1328(sp) - 33f8: 3080010c andi r2,r6,4 - 33fc: 10002826 beq r2,zero,34a0 <___vfprintf_internal_r+0x6a4> - 3400: d8814a17 ldw r2,1320(sp) - 3404: d9014517 ldw r4,1300(sp) - 3408: 1121c83a sub r16,r2,r4 - 340c: 0400240e bge zero,r16,34a0 <___vfprintf_internal_r+0x6a4> - 3410: 00800404 movi r2,16 - 3414: 1404550e bge r2,r16,456c <___vfprintf_internal_r+0x1770> - 3418: dc400d17 ldw r17,52(sp) - 341c: 1027883a mov r19,r2 - 3420: 07000074 movhi fp,1 - 3424: e700f584 addi fp,fp,982 - 3428: 050001c4 movi r20,7 - 342c: 00000306 br 343c <___vfprintf_internal_r+0x640> - 3430: 843ffc04 addi r16,r16,-16 - 3434: 18c00204 addi r3,r3,8 - 3438: 9c00110e bge r19,r16,3480 <___vfprintf_internal_r+0x684> - 343c: 94800404 addi r18,r18,16 - 3440: 8c400044 addi r17,r17,1 - 3444: 1f000015 stw fp,0(r3) - 3448: 1cc00115 stw r19,4(r3) - 344c: dc800e15 stw r18,56(sp) - 3450: dc400d15 stw r17,52(sp) - 3454: a47ff60e bge r20,r17,3430 <___vfprintf_internal_r+0x634> - 3458: d9014f17 ldw r4,1340(sp) - 345c: b00b883a mov r5,r22 - 3460: d9800c04 addi r6,sp,48 - 3464: 0002da40 call 2da4 <__sprint_r> - 3468: 10001c1e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 346c: 843ffc04 addi r16,r16,-16 - 3470: dc800e17 ldw r18,56(sp) - 3474: dc400d17 ldw r17,52(sp) - 3478: d8c01904 addi r3,sp,100 - 347c: 9c3fef16 blt r19,r16,343c <___vfprintf_internal_r+0x640> - 3480: 9425883a add r18,r18,r16 - 3484: 8c400044 addi r17,r17,1 - 3488: 008001c4 movi r2,7 - 348c: 1f000015 stw fp,0(r3) - 3490: 1c000115 stw r16,4(r3) - 3494: dc800e15 stw r18,56(sp) - 3498: dc400d15 stw r17,52(sp) - 349c: 1440cb16 blt r2,r17,37cc <___vfprintf_internal_r+0x9d0> - 34a0: d8814a17 ldw r2,1320(sp) - 34a4: d9414517 ldw r5,1300(sp) - 34a8: 1140010e bge r2,r5,34b0 <___vfprintf_internal_r+0x6b4> - 34ac: 2805883a mov r2,r5 - 34b0: d9814b17 ldw r6,1324(sp) - 34b4: 308d883a add r6,r6,r2 - 34b8: d9814b15 stw r6,1324(sp) - 34bc: 90013b1e bne r18,zero,39ac <___vfprintf_internal_r+0xbb0> - 34c0: d9c14017 ldw r7,1280(sp) - 34c4: dd401904 addi r21,sp,100 - 34c8: d8000d15 stw zero,52(sp) - 34cc: 003ea706 br 2f6c <___vfprintf_internal_r+0x170> - 34d0: d8800e17 ldw r2,56(sp) - 34d4: 1005451e bne r2,zero,49ec <___vfprintf_internal_r+0x1bf0> - 34d8: d8000d15 stw zero,52(sp) - 34dc: b080030b ldhu r2,12(r22) - 34e0: 1080100c andi r2,r2,64 - 34e4: 103e8726 beq r2,zero,2f04 <___vfprintf_internal_r+0x108> - 34e8: 00bfffc4 movi r2,-1 - 34ec: d8814b15 stw r2,1324(sp) - 34f0: 003e8406 br 2f04 <___vfprintf_internal_r+0x108> - 34f4: d9814d17 ldw r6,1332(sp) - 34f8: 00801944 movi r2,101 - 34fc: 11806e16 blt r2,r6,36b8 <___vfprintf_internal_r+0x8bc> - 3500: d9414717 ldw r5,1308(sp) - 3504: 00c00044 movi r3,1 - 3508: 1943490e bge r3,r5,4230 <___vfprintf_internal_r+0x1434> - 350c: d8814117 ldw r2,1284(sp) - 3510: 94800044 addi r18,r18,1 - 3514: 8c400044 addi r17,r17,1 - 3518: a8800015 stw r2,0(r21) - 351c: 008001c4 movi r2,7 - 3520: a8c00115 stw r3,4(r21) - 3524: dc800e15 stw r18,56(sp) - 3528: dc400d15 stw r17,52(sp) - 352c: 1441ca16 blt r2,r17,3c58 <___vfprintf_internal_r+0xe5c> - 3530: a8c00204 addi r3,r21,8 - 3534: d9014917 ldw r4,1316(sp) - 3538: 00800044 movi r2,1 - 353c: 94800044 addi r18,r18,1 - 3540: 8c400044 addi r17,r17,1 - 3544: 18800115 stw r2,4(r3) - 3548: 008001c4 movi r2,7 - 354c: 19000015 stw r4,0(r3) - 3550: dc800e15 stw r18,56(sp) - 3554: dc400d15 stw r17,52(sp) - 3558: 1441b616 blt r2,r17,3c34 <___vfprintf_internal_r+0xe38> - 355c: 1cc00204 addi r19,r3,8 - 3560: d9014217 ldw r4,1288(sp) - 3564: d9414317 ldw r5,1292(sp) - 3568: 000d883a mov r6,zero - 356c: 000f883a mov r7,zero - 3570: 000b8b00 call b8b0 <__nedf2> - 3574: 10017426 beq r2,zero,3b48 <___vfprintf_internal_r+0xd4c> - 3578: d9414717 ldw r5,1308(sp) - 357c: d9814117 ldw r6,1284(sp) - 3580: 8c400044 addi r17,r17,1 - 3584: 2c85883a add r2,r5,r18 - 3588: 14bfffc4 addi r18,r2,-1 - 358c: 28bfffc4 addi r2,r5,-1 - 3590: 30c00044 addi r3,r6,1 - 3594: 98800115 stw r2,4(r19) - 3598: 008001c4 movi r2,7 - 359c: 98c00015 stw r3,0(r19) - 35a0: dc800e15 stw r18,56(sp) - 35a4: dc400d15 stw r17,52(sp) - 35a8: 14418e16 blt r2,r17,3be4 <___vfprintf_internal_r+0xde8> - 35ac: 9cc00204 addi r19,r19,8 - 35b0: d9414817 ldw r5,1312(sp) - 35b4: d8800804 addi r2,sp,32 - 35b8: 8c400044 addi r17,r17,1 - 35bc: 9165883a add r18,r18,r5 - 35c0: 98800015 stw r2,0(r19) - 35c4: 008001c4 movi r2,7 - 35c8: 99400115 stw r5,4(r19) - 35cc: dc800e15 stw r18,56(sp) - 35d0: dc400d15 stw r17,52(sp) - 35d4: 1440ed16 blt r2,r17,398c <___vfprintf_internal_r+0xb90> - 35d8: 98c00204 addi r3,r19,8 - 35dc: 003f8506 br 33f4 <___vfprintf_internal_r+0x5f8> - 35e0: d9814a17 ldw r6,1320(sp) - 35e4: d8814517 ldw r2,1300(sp) - 35e8: 30a1c83a sub r16,r6,r2 - 35ec: 043f4b0e bge zero,r16,331c <___vfprintf_internal_r+0x520> - 35f0: 00800404 movi r2,16 - 35f4: 14043a0e bge r2,r16,46e0 <___vfprintf_internal_r+0x18e4> - 35f8: 1027883a mov r19,r2 - 35fc: 07000074 movhi fp,1 - 3600: e700f184 addi fp,fp,966 - 3604: 050001c4 movi r20,7 - 3608: 00000306 br 3618 <___vfprintf_internal_r+0x81c> - 360c: 843ffc04 addi r16,r16,-16 - 3610: ad400204 addi r21,r21,8 - 3614: 9c00130e bge r19,r16,3664 <___vfprintf_internal_r+0x868> - 3618: 94800404 addi r18,r18,16 - 361c: 8c400044 addi r17,r17,1 - 3620: af000015 stw fp,0(r21) - 3624: acc00115 stw r19,4(r21) - 3628: dc800e15 stw r18,56(sp) - 362c: dc400d15 stw r17,52(sp) - 3630: a47ff60e bge r20,r17,360c <___vfprintf_internal_r+0x810> - 3634: d9014f17 ldw r4,1340(sp) - 3638: b00b883a mov r5,r22 - 363c: d9800c04 addi r6,sp,48 - 3640: d9c15115 stw r7,1348(sp) - 3644: 0002da40 call 2da4 <__sprint_r> - 3648: d9c15117 ldw r7,1348(sp) - 364c: 103fa31e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 3650: 843ffc04 addi r16,r16,-16 - 3654: dc800e17 ldw r18,56(sp) - 3658: dc400d17 ldw r17,52(sp) - 365c: dd401904 addi r21,sp,100 - 3660: 9c3fed16 blt r19,r16,3618 <___vfprintf_internal_r+0x81c> - 3664: 9425883a add r18,r18,r16 - 3668: 8c400044 addi r17,r17,1 - 366c: 008001c4 movi r2,7 - 3670: af000015 stw fp,0(r21) - 3674: ac000115 stw r16,4(r21) - 3678: dc800e15 stw r18,56(sp) - 367c: dc400d15 stw r17,52(sp) - 3680: 14416116 blt r2,r17,3c08 <___vfprintf_internal_r+0xe0c> - 3684: ad400204 addi r21,r21,8 - 3688: 003f2406 br 331c <___vfprintf_internal_r+0x520> - 368c: d9014f17 ldw r4,1340(sp) - 3690: 00068b00 call 68b0 <__sinit> - 3694: d9c15117 ldw r7,1348(sp) - 3698: 003def06 br 2e58 <___vfprintf_internal_r+0x5c> - 369c: d9014f17 ldw r4,1340(sp) - 36a0: b00b883a mov r5,r22 - 36a4: d9c15115 stw r7,1348(sp) - 36a8: 0004ce40 call 4ce4 <__swsetup_r> - 36ac: d9c15117 ldw r7,1348(sp) - 36b0: 103dee26 beq r2,zero,2e6c <___vfprintf_internal_r+0x70> - 36b4: 003f8c06 br 34e8 <___vfprintf_internal_r+0x6ec> - 36b8: d9014217 ldw r4,1288(sp) - 36bc: d9414317 ldw r5,1292(sp) - 36c0: 000d883a mov r6,zero - 36c4: 000f883a mov r7,zero - 36c8: 000b8280 call b828 <__eqdf2> - 36cc: 1000f21e bne r2,zero,3a98 <___vfprintf_internal_r+0xc9c> - 36d0: 00800074 movhi r2,1 - 36d4: 1080f104 addi r2,r2,964 - 36d8: 94800044 addi r18,r18,1 - 36dc: 8c400044 addi r17,r17,1 - 36e0: a8800015 stw r2,0(r21) - 36e4: 00c00044 movi r3,1 - 36e8: 008001c4 movi r2,7 - 36ec: a8c00115 stw r3,4(r21) - 36f0: dc800e15 stw r18,56(sp) - 36f4: dc400d15 stw r17,52(sp) - 36f8: 14430016 blt r2,r17,42fc <___vfprintf_internal_r+0x1500> - 36fc: a8c00204 addi r3,r21,8 - 3700: d8800517 ldw r2,20(sp) - 3704: d9014717 ldw r4,1308(sp) - 3708: 11015c0e bge r2,r4,3c7c <___vfprintf_internal_r+0xe80> - 370c: dc400d17 ldw r17,52(sp) - 3710: d9814917 ldw r6,1316(sp) - 3714: 00800044 movi r2,1 - 3718: 94800044 addi r18,r18,1 - 371c: 8c400044 addi r17,r17,1 - 3720: 18800115 stw r2,4(r3) - 3724: 008001c4 movi r2,7 - 3728: 19800015 stw r6,0(r3) - 372c: dc800e15 stw r18,56(sp) - 3730: dc400d15 stw r17,52(sp) - 3734: 14431616 blt r2,r17,4390 <___vfprintf_internal_r+0x1594> - 3738: 18c00204 addi r3,r3,8 - 373c: d8814717 ldw r2,1308(sp) - 3740: 143fffc4 addi r16,r2,-1 - 3744: 043f2b0e bge zero,r16,33f4 <___vfprintf_internal_r+0x5f8> - 3748: 00800404 movi r2,16 - 374c: 1402a80e bge r2,r16,41f0 <___vfprintf_internal_r+0x13f4> - 3750: dc400d17 ldw r17,52(sp) - 3754: 1027883a mov r19,r2 - 3758: 07000074 movhi fp,1 - 375c: e700f184 addi fp,fp,966 - 3760: 050001c4 movi r20,7 - 3764: 00000306 br 3774 <___vfprintf_internal_r+0x978> - 3768: 18c00204 addi r3,r3,8 - 376c: 843ffc04 addi r16,r16,-16 - 3770: 9c02a20e bge r19,r16,41fc <___vfprintf_internal_r+0x1400> - 3774: 94800404 addi r18,r18,16 - 3778: 8c400044 addi r17,r17,1 - 377c: 1f000015 stw fp,0(r3) - 3780: 1cc00115 stw r19,4(r3) - 3784: dc800e15 stw r18,56(sp) - 3788: dc400d15 stw r17,52(sp) - 378c: a47ff60e bge r20,r17,3768 <___vfprintf_internal_r+0x96c> - 3790: d9014f17 ldw r4,1340(sp) - 3794: b00b883a mov r5,r22 - 3798: d9800c04 addi r6,sp,48 - 379c: 0002da40 call 2da4 <__sprint_r> - 37a0: 103f4e1e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 37a4: dc800e17 ldw r18,56(sp) - 37a8: dc400d17 ldw r17,52(sp) - 37ac: d8c01904 addi r3,sp,100 - 37b0: 003fee06 br 376c <___vfprintf_internal_r+0x970> - 37b4: d8802c0b ldhu r2,176(sp) - 37b8: 00ffffc4 movi r3,-1 - 37bc: d8c14b15 stw r3,1324(sp) - 37c0: 1080100c andi r2,r2,64 - 37c4: 103dcc1e bne r2,zero,2ef8 <___vfprintf_internal_r+0xfc> - 37c8: 003dce06 br 2f04 <___vfprintf_internal_r+0x108> - 37cc: d9014f17 ldw r4,1340(sp) - 37d0: b00b883a mov r5,r22 - 37d4: d9800c04 addi r6,sp,48 - 37d8: 0002da40 call 2da4 <__sprint_r> - 37dc: 103f3f1e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 37e0: dc800e17 ldw r18,56(sp) - 37e4: 003f2e06 br 34a0 <___vfprintf_internal_r+0x6a4> - 37e8: d9414c17 ldw r5,1328(sp) - 37ec: 29400414 ori r5,r5,16 - 37f0: d9414c15 stw r5,1328(sp) - 37f4: d9814c17 ldw r6,1328(sp) - 37f8: 3080080c andi r2,r6,32 - 37fc: 10014f1e bne r2,zero,3d3c <___vfprintf_internal_r+0xf40> - 3800: d8c14c17 ldw r3,1328(sp) - 3804: 1880040c andi r2,r3,16 - 3808: 1002f01e bne r2,zero,43cc <___vfprintf_internal_r+0x15d0> - 380c: d9014c17 ldw r4,1328(sp) - 3810: 2080100c andi r2,r4,64 - 3814: 1002ed26 beq r2,zero,43cc <___vfprintf_internal_r+0x15d0> - 3818: 3880000f ldh r2,0(r7) - 381c: 39c00104 addi r7,r7,4 - 3820: d9c14015 stw r7,1280(sp) - 3824: 1023d7fa srai r17,r2,31 - 3828: 1021883a mov r16,r2 - 382c: 88037816 blt r17,zero,4610 <___vfprintf_internal_r+0x1814> - 3830: 01000044 movi r4,1 - 3834: 98000416 blt r19,zero,3848 <___vfprintf_internal_r+0xa4c> - 3838: d8c14c17 ldw r3,1328(sp) - 383c: 00bfdfc4 movi r2,-129 - 3840: 1886703a and r3,r3,r2 - 3844: d8c14c15 stw r3,1328(sp) - 3848: 8444b03a or r2,r16,r17 - 384c: 10022c1e bne r2,zero,4100 <___vfprintf_internal_r+0x1304> - 3850: 98022b1e bne r19,zero,4100 <___vfprintf_internal_r+0x1304> - 3854: 20803fcc andi r2,r4,255 - 3858: 1002a126 beq r2,zero,42e0 <___vfprintf_internal_r+0x14e4> - 385c: d8c01904 addi r3,sp,100 - 3860: dd000f04 addi r20,sp,60 - 3864: d8c14115 stw r3,1284(sp) - 3868: d8c14117 ldw r3,1284(sp) - 386c: dcc14515 stw r19,1300(sp) - 3870: a0c5c83a sub r2,r20,r3 - 3874: 11c00a04 addi r7,r2,40 - 3878: 99c0010e bge r19,r7,3880 <___vfprintf_internal_r+0xa84> - 387c: d9c14515 stw r7,1300(sp) - 3880: dcc14615 stw r19,1304(sp) - 3884: d8800407 ldb r2,16(sp) - 3888: 103e4c26 beq r2,zero,31bc <___vfprintf_internal_r+0x3c0> - 388c: d8814517 ldw r2,1300(sp) - 3890: 10800044 addi r2,r2,1 - 3894: d8814515 stw r2,1300(sp) - 3898: 003e4806 br 31bc <___vfprintf_internal_r+0x3c0> - 389c: d9814c17 ldw r6,1328(sp) - 38a0: 31800414 ori r6,r6,16 - 38a4: d9814c15 stw r6,1328(sp) - 38a8: d8c14c17 ldw r3,1328(sp) - 38ac: 1880080c andi r2,r3,32 - 38b0: 1001271e bne r2,zero,3d50 <___vfprintf_internal_r+0xf54> - 38b4: d9414c17 ldw r5,1328(sp) - 38b8: 2880040c andi r2,r5,16 - 38bc: 1002bc1e bne r2,zero,43b0 <___vfprintf_internal_r+0x15b4> - 38c0: d9814c17 ldw r6,1328(sp) - 38c4: 3080100c andi r2,r6,64 - 38c8: 1002b926 beq r2,zero,43b0 <___vfprintf_internal_r+0x15b4> - 38cc: 3c00000b ldhu r16,0(r7) - 38d0: 0009883a mov r4,zero - 38d4: 39c00104 addi r7,r7,4 - 38d8: 0023883a mov r17,zero - 38dc: d9c14015 stw r7,1280(sp) - 38e0: d8000405 stb zero,16(sp) - 38e4: 003fd306 br 3834 <___vfprintf_internal_r+0xa38> - 38e8: d9014c17 ldw r4,1328(sp) - 38ec: 21000414 ori r4,r4,16 - 38f0: d9014c15 stw r4,1328(sp) - 38f4: d9414c17 ldw r5,1328(sp) - 38f8: 2880080c andi r2,r5,32 - 38fc: 1001081e bne r2,zero,3d20 <___vfprintf_internal_r+0xf24> - 3900: d8c14c17 ldw r3,1328(sp) - 3904: 1880040c andi r2,r3,16 - 3908: 1002b61e bne r2,zero,43e4 <___vfprintf_internal_r+0x15e8> - 390c: d9014c17 ldw r4,1328(sp) - 3910: 2080100c andi r2,r4,64 - 3914: 1002b326 beq r2,zero,43e4 <___vfprintf_internal_r+0x15e8> - 3918: 3c00000b ldhu r16,0(r7) - 391c: 01000044 movi r4,1 - 3920: 39c00104 addi r7,r7,4 - 3924: 0023883a mov r17,zero - 3928: d9c14015 stw r7,1280(sp) - 392c: d8000405 stb zero,16(sp) - 3930: 003fc006 br 3834 <___vfprintf_internal_r+0xa38> - 3934: d9014f17 ldw r4,1340(sp) - 3938: b00b883a mov r5,r22 - 393c: d9800c04 addi r6,sp,48 - 3940: 0002da40 call 2da4 <__sprint_r> - 3944: 103ee51e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 3948: dc800e17 ldw r18,56(sp) - 394c: d8c01904 addi r3,sp,100 - 3950: d9814c17 ldw r6,1328(sp) - 3954: 3080004c andi r2,r6,1 - 3958: 1005003a cmpeq r2,r2,zero - 395c: 103ea51e bne r2,zero,33f4 <___vfprintf_internal_r+0x5f8> - 3960: 00800044 movi r2,1 - 3964: dc400d17 ldw r17,52(sp) - 3968: 18800115 stw r2,4(r3) - 396c: d8814917 ldw r2,1316(sp) - 3970: 94800044 addi r18,r18,1 - 3974: 8c400044 addi r17,r17,1 - 3978: 18800015 stw r2,0(r3) - 397c: 008001c4 movi r2,7 - 3980: dc800e15 stw r18,56(sp) - 3984: dc400d15 stw r17,52(sp) - 3988: 1442240e bge r2,r17,421c <___vfprintf_internal_r+0x1420> - 398c: d9014f17 ldw r4,1340(sp) - 3990: b00b883a mov r5,r22 - 3994: d9800c04 addi r6,sp,48 - 3998: 0002da40 call 2da4 <__sprint_r> - 399c: 103ecf1e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 39a0: dc800e17 ldw r18,56(sp) - 39a4: d8c01904 addi r3,sp,100 - 39a8: 003e9206 br 33f4 <___vfprintf_internal_r+0x5f8> - 39ac: d9014f17 ldw r4,1340(sp) - 39b0: b00b883a mov r5,r22 - 39b4: d9800c04 addi r6,sp,48 - 39b8: 0002da40 call 2da4 <__sprint_r> - 39bc: 103ec026 beq r2,zero,34c0 <___vfprintf_internal_r+0x6c4> - 39c0: 003ec606 br 34dc <___vfprintf_internal_r+0x6e0> - 39c4: d9014f17 ldw r4,1340(sp) - 39c8: b00b883a mov r5,r22 - 39cc: d9800c04 addi r6,sp,48 - 39d0: d9c15115 stw r7,1348(sp) - 39d4: 0002da40 call 2da4 <__sprint_r> - 39d8: d9c15117 ldw r7,1348(sp) - 39dc: 103ebf1e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 39e0: dc800e17 ldw r18,56(sp) - 39e4: dc400d17 ldw r17,52(sp) - 39e8: dd401904 addi r21,sp,100 - 39ec: 003e7406 br 33c0 <___vfprintf_internal_r+0x5c4> - 39f0: d9014f17 ldw r4,1340(sp) - 39f4: b00b883a mov r5,r22 - 39f8: d9800c04 addi r6,sp,48 - 39fc: d9c15115 stw r7,1348(sp) - 3a00: 0002da40 call 2da4 <__sprint_r> - 3a04: d9c15117 ldw r7,1348(sp) - 3a08: 103eb41e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 3a0c: dd401904 addi r21,sp,100 - 3a10: 003d6d06 br 2fc8 <___vfprintf_internal_r+0x1cc> - 3a14: d9014f17 ldw r4,1340(sp) - 3a18: b00b883a mov r5,r22 - 3a1c: d9800c04 addi r6,sp,48 - 3a20: d9c15115 stw r7,1348(sp) - 3a24: 0002da40 call 2da4 <__sprint_r> - 3a28: d9c15117 ldw r7,1348(sp) - 3a2c: 103eab1e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 3a30: dc800e17 ldw r18,56(sp) - 3a34: dc400d17 ldw r17,52(sp) - 3a38: dd401904 addi r21,sp,100 - 3a3c: 003e3406 br 3310 <___vfprintf_internal_r+0x514> - 3a40: d9014f17 ldw r4,1340(sp) - 3a44: b00b883a mov r5,r22 - 3a48: d9800c04 addi r6,sp,48 - 3a4c: d9c15115 stw r7,1348(sp) - 3a50: 0002da40 call 2da4 <__sprint_r> - 3a54: d9c15117 ldw r7,1348(sp) - 3a58: 103ea01e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 3a5c: dc800e17 ldw r18,56(sp) - 3a60: dc400d17 ldw r17,52(sp) - 3a64: dd401904 addi r21,sp,100 - 3a68: 003e1c06 br 32dc <___vfprintf_internal_r+0x4e0> - 3a6c: d9014f17 ldw r4,1340(sp) - 3a70: b00b883a mov r5,r22 - 3a74: d9800c04 addi r6,sp,48 - 3a78: d9c15115 stw r7,1348(sp) - 3a7c: 0002da40 call 2da4 <__sprint_r> - 3a80: d9c15117 ldw r7,1348(sp) - 3a84: 103e951e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 3a88: dc800e17 ldw r18,56(sp) - 3a8c: dc400d17 ldw r17,52(sp) - 3a90: dd401904 addi r21,sp,100 - 3a94: 003e0406 br 32a8 <___vfprintf_internal_r+0x4ac> - 3a98: d9000517 ldw r4,20(sp) - 3a9c: 0102580e bge zero,r4,4400 <___vfprintf_internal_r+0x1604> - 3aa0: d9814717 ldw r6,1308(sp) - 3aa4: 21807a16 blt r4,r6,3c90 <___vfprintf_internal_r+0xe94> - 3aa8: d8814117 ldw r2,1284(sp) - 3aac: 91a5883a add r18,r18,r6 - 3ab0: 8c400044 addi r17,r17,1 - 3ab4: a8800015 stw r2,0(r21) - 3ab8: 008001c4 movi r2,7 - 3abc: a9800115 stw r6,4(r21) - 3ac0: dc800e15 stw r18,56(sp) - 3ac4: dc400d15 stw r17,52(sp) - 3ac8: 1442fc16 blt r2,r17,46bc <___vfprintf_internal_r+0x18c0> - 3acc: a8c00204 addi r3,r21,8 - 3ad0: d9414717 ldw r5,1308(sp) - 3ad4: 2161c83a sub r16,r4,r5 - 3ad8: 043f9d0e bge zero,r16,3950 <___vfprintf_internal_r+0xb54> - 3adc: 00800404 movi r2,16 - 3ae0: 1402190e bge r2,r16,4348 <___vfprintf_internal_r+0x154c> - 3ae4: dc400d17 ldw r17,52(sp) - 3ae8: 1027883a mov r19,r2 - 3aec: 07000074 movhi fp,1 - 3af0: e700f184 addi fp,fp,966 - 3af4: 050001c4 movi r20,7 - 3af8: 00000306 br 3b08 <___vfprintf_internal_r+0xd0c> - 3afc: 18c00204 addi r3,r3,8 - 3b00: 843ffc04 addi r16,r16,-16 - 3b04: 9c02130e bge r19,r16,4354 <___vfprintf_internal_r+0x1558> - 3b08: 94800404 addi r18,r18,16 - 3b0c: 8c400044 addi r17,r17,1 - 3b10: 1f000015 stw fp,0(r3) - 3b14: 1cc00115 stw r19,4(r3) - 3b18: dc800e15 stw r18,56(sp) - 3b1c: dc400d15 stw r17,52(sp) - 3b20: a47ff60e bge r20,r17,3afc <___vfprintf_internal_r+0xd00> - 3b24: d9014f17 ldw r4,1340(sp) - 3b28: b00b883a mov r5,r22 - 3b2c: d9800c04 addi r6,sp,48 - 3b30: 0002da40 call 2da4 <__sprint_r> - 3b34: 103e691e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 3b38: dc800e17 ldw r18,56(sp) - 3b3c: dc400d17 ldw r17,52(sp) - 3b40: d8c01904 addi r3,sp,100 - 3b44: 003fee06 br 3b00 <___vfprintf_internal_r+0xd04> - 3b48: d8814717 ldw r2,1308(sp) - 3b4c: 143fffc4 addi r16,r2,-1 - 3b50: 043e970e bge zero,r16,35b0 <___vfprintf_internal_r+0x7b4> - 3b54: 00800404 movi r2,16 - 3b58: 1400180e bge r2,r16,3bbc <___vfprintf_internal_r+0xdc0> - 3b5c: 1029883a mov r20,r2 - 3b60: 07000074 movhi fp,1 - 3b64: e700f184 addi fp,fp,966 - 3b68: 054001c4 movi r21,7 - 3b6c: 00000306 br 3b7c <___vfprintf_internal_r+0xd80> - 3b70: 9cc00204 addi r19,r19,8 - 3b74: 843ffc04 addi r16,r16,-16 - 3b78: a400120e bge r20,r16,3bc4 <___vfprintf_internal_r+0xdc8> - 3b7c: 94800404 addi r18,r18,16 - 3b80: 8c400044 addi r17,r17,1 - 3b84: 9f000015 stw fp,0(r19) - 3b88: 9d000115 stw r20,4(r19) - 3b8c: dc800e15 stw r18,56(sp) - 3b90: dc400d15 stw r17,52(sp) - 3b94: ac7ff60e bge r21,r17,3b70 <___vfprintf_internal_r+0xd74> - 3b98: d9014f17 ldw r4,1340(sp) - 3b9c: b00b883a mov r5,r22 - 3ba0: d9800c04 addi r6,sp,48 - 3ba4: 0002da40 call 2da4 <__sprint_r> - 3ba8: 103e4c1e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 3bac: dc800e17 ldw r18,56(sp) - 3bb0: dc400d17 ldw r17,52(sp) - 3bb4: dcc01904 addi r19,sp,100 - 3bb8: 003fee06 br 3b74 <___vfprintf_internal_r+0xd78> - 3bbc: 07000074 movhi fp,1 - 3bc0: e700f184 addi fp,fp,966 - 3bc4: 9425883a add r18,r18,r16 - 3bc8: 8c400044 addi r17,r17,1 - 3bcc: 008001c4 movi r2,7 - 3bd0: 9f000015 stw fp,0(r19) - 3bd4: 9c000115 stw r16,4(r19) - 3bd8: dc800e15 stw r18,56(sp) - 3bdc: dc400d15 stw r17,52(sp) - 3be0: 147e720e bge r2,r17,35ac <___vfprintf_internal_r+0x7b0> - 3be4: d9014f17 ldw r4,1340(sp) - 3be8: b00b883a mov r5,r22 - 3bec: d9800c04 addi r6,sp,48 - 3bf0: 0002da40 call 2da4 <__sprint_r> - 3bf4: 103e391e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 3bf8: dc800e17 ldw r18,56(sp) - 3bfc: dc400d17 ldw r17,52(sp) - 3c00: dcc01904 addi r19,sp,100 - 3c04: 003e6a06 br 35b0 <___vfprintf_internal_r+0x7b4> - 3c08: d9014f17 ldw r4,1340(sp) - 3c0c: b00b883a mov r5,r22 - 3c10: d9800c04 addi r6,sp,48 - 3c14: d9c15115 stw r7,1348(sp) - 3c18: 0002da40 call 2da4 <__sprint_r> - 3c1c: d9c15117 ldw r7,1348(sp) - 3c20: 103e2e1e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 3c24: dc800e17 ldw r18,56(sp) - 3c28: dc400d17 ldw r17,52(sp) - 3c2c: dd401904 addi r21,sp,100 - 3c30: 003dba06 br 331c <___vfprintf_internal_r+0x520> - 3c34: d9014f17 ldw r4,1340(sp) - 3c38: b00b883a mov r5,r22 - 3c3c: d9800c04 addi r6,sp,48 - 3c40: 0002da40 call 2da4 <__sprint_r> - 3c44: 103e251e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 3c48: dc800e17 ldw r18,56(sp) - 3c4c: dc400d17 ldw r17,52(sp) - 3c50: dcc01904 addi r19,sp,100 - 3c54: 003e4206 br 3560 <___vfprintf_internal_r+0x764> - 3c58: d9014f17 ldw r4,1340(sp) - 3c5c: b00b883a mov r5,r22 - 3c60: d9800c04 addi r6,sp,48 - 3c64: 0002da40 call 2da4 <__sprint_r> - 3c68: 103e1c1e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 3c6c: dc800e17 ldw r18,56(sp) - 3c70: dc400d17 ldw r17,52(sp) - 3c74: d8c01904 addi r3,sp,100 - 3c78: 003e2e06 br 3534 <___vfprintf_internal_r+0x738> - 3c7c: d9414c17 ldw r5,1328(sp) - 3c80: 2880004c andi r2,r5,1 - 3c84: 1005003a cmpeq r2,r2,zero - 3c88: 103dda1e bne r2,zero,33f4 <___vfprintf_internal_r+0x5f8> - 3c8c: 003e9f06 br 370c <___vfprintf_internal_r+0x910> - 3c90: d8c14117 ldw r3,1284(sp) - 3c94: 9125883a add r18,r18,r4 - 3c98: 8c400044 addi r17,r17,1 - 3c9c: 008001c4 movi r2,7 - 3ca0: a8c00015 stw r3,0(r21) - 3ca4: a9000115 stw r4,4(r21) - 3ca8: dc800e15 stw r18,56(sp) - 3cac: dc400d15 stw r17,52(sp) - 3cb0: 14426c16 blt r2,r17,4664 <___vfprintf_internal_r+0x1868> - 3cb4: a8c00204 addi r3,r21,8 - 3cb8: d9414917 ldw r5,1316(sp) - 3cbc: 00800044 movi r2,1 - 3cc0: 94800044 addi r18,r18,1 - 3cc4: 8c400044 addi r17,r17,1 - 3cc8: 18800115 stw r2,4(r3) - 3ccc: 008001c4 movi r2,7 - 3cd0: 19400015 stw r5,0(r3) - 3cd4: dc800e15 stw r18,56(sp) - 3cd8: dc400d15 stw r17,52(sp) - 3cdc: 2021883a mov r16,r4 - 3ce0: 14425616 blt r2,r17,463c <___vfprintf_internal_r+0x1840> - 3ce4: 19400204 addi r5,r3,8 - 3ce8: d9814717 ldw r6,1308(sp) - 3cec: 8c400044 addi r17,r17,1 - 3cf0: dc400d15 stw r17,52(sp) - 3cf4: 3107c83a sub r3,r6,r4 - 3cf8: d9014117 ldw r4,1284(sp) - 3cfc: 90e5883a add r18,r18,r3 - 3d00: 28c00115 stw r3,4(r5) - 3d04: 8105883a add r2,r16,r4 - 3d08: 28800015 stw r2,0(r5) - 3d0c: 008001c4 movi r2,7 - 3d10: dc800e15 stw r18,56(sp) - 3d14: 147f1d16 blt r2,r17,398c <___vfprintf_internal_r+0xb90> - 3d18: 28c00204 addi r3,r5,8 - 3d1c: 003db506 br 33f4 <___vfprintf_internal_r+0x5f8> - 3d20: 3c000017 ldw r16,0(r7) - 3d24: 3c400117 ldw r17,4(r7) - 3d28: 39800204 addi r6,r7,8 - 3d2c: 01000044 movi r4,1 - 3d30: d9814015 stw r6,1280(sp) - 3d34: d8000405 stb zero,16(sp) - 3d38: 003ebe06 br 3834 <___vfprintf_internal_r+0xa38> - 3d3c: 3c000017 ldw r16,0(r7) - 3d40: 3c400117 ldw r17,4(r7) - 3d44: 38800204 addi r2,r7,8 - 3d48: d8814015 stw r2,1280(sp) - 3d4c: 003eb706 br 382c <___vfprintf_internal_r+0xa30> - 3d50: 3c000017 ldw r16,0(r7) - 3d54: 3c400117 ldw r17,4(r7) - 3d58: 39000204 addi r4,r7,8 - 3d5c: d9014015 stw r4,1280(sp) - 3d60: 0009883a mov r4,zero - 3d64: d8000405 stb zero,16(sp) - 3d68: 003eb206 br 3834 <___vfprintf_internal_r+0xa38> - 3d6c: 38c00017 ldw r3,0(r7) - 3d70: 39c00104 addi r7,r7,4 - 3d74: d8c14a15 stw r3,1320(sp) - 3d78: 1800d70e bge r3,zero,40d8 <___vfprintf_internal_r+0x12dc> - 3d7c: 00c7c83a sub r3,zero,r3 - 3d80: d8c14a15 stw r3,1320(sp) - 3d84: d9014c17 ldw r4,1328(sp) - 3d88: b8c00007 ldb r3,0(r23) - 3d8c: 21000114 ori r4,r4,4 - 3d90: d9014c15 stw r4,1328(sp) - 3d94: 003c9806 br 2ff8 <___vfprintf_internal_r+0x1fc> - 3d98: d9814c17 ldw r6,1328(sp) - 3d9c: 3080080c andi r2,r6,32 - 3da0: 1001f626 beq r2,zero,457c <___vfprintf_internal_r+0x1780> - 3da4: d9014b17 ldw r4,1324(sp) - 3da8: 38800017 ldw r2,0(r7) - 3dac: 39c00104 addi r7,r7,4 - 3db0: d9c14015 stw r7,1280(sp) - 3db4: 2007d7fa srai r3,r4,31 - 3db8: d9c14017 ldw r7,1280(sp) - 3dbc: 11000015 stw r4,0(r2) - 3dc0: 10c00115 stw r3,4(r2) - 3dc4: 003c6906 br 2f6c <___vfprintf_internal_r+0x170> - 3dc8: b8c00007 ldb r3,0(r23) - 3dcc: 00801b04 movi r2,108 - 3dd0: 18825526 beq r3,r2,4728 <___vfprintf_internal_r+0x192c> - 3dd4: d9414c17 ldw r5,1328(sp) - 3dd8: 29400414 ori r5,r5,16 - 3ddc: d9414c15 stw r5,1328(sp) - 3de0: 003c8506 br 2ff8 <___vfprintf_internal_r+0x1fc> - 3de4: d9814c17 ldw r6,1328(sp) - 3de8: b8c00007 ldb r3,0(r23) - 3dec: 31800814 ori r6,r6,32 - 3df0: d9814c15 stw r6,1328(sp) - 3df4: 003c8006 br 2ff8 <___vfprintf_internal_r+0x1fc> - 3df8: d8814c17 ldw r2,1328(sp) - 3dfc: 3c000017 ldw r16,0(r7) - 3e00: 00c01e04 movi r3,120 - 3e04: 10800094 ori r2,r2,2 - 3e08: d8814c15 stw r2,1328(sp) - 3e0c: 39c00104 addi r7,r7,4 - 3e10: 01400074 movhi r5,1 - 3e14: 2940da04 addi r5,r5,872 - 3e18: 00800c04 movi r2,48 - 3e1c: 0023883a mov r17,zero - 3e20: 01000084 movi r4,2 - 3e24: d9c14015 stw r7,1280(sp) - 3e28: d8c14d15 stw r3,1332(sp) - 3e2c: d9414415 stw r5,1296(sp) - 3e30: d8800445 stb r2,17(sp) - 3e34: d8c00485 stb r3,18(sp) - 3e38: d8000405 stb zero,16(sp) - 3e3c: 003e7d06 br 3834 <___vfprintf_internal_r+0xa38> - 3e40: d8814c17 ldw r2,1328(sp) - 3e44: b8c00007 ldb r3,0(r23) - 3e48: 10801014 ori r2,r2,64 - 3e4c: d8814c15 stw r2,1328(sp) - 3e50: 003c6906 br 2ff8 <___vfprintf_internal_r+0x1fc> - 3e54: d9414c17 ldw r5,1328(sp) - 3e58: 2880020c andi r2,r5,8 - 3e5c: 1001e526 beq r2,zero,45f4 <___vfprintf_internal_r+0x17f8> - 3e60: 39800017 ldw r6,0(r7) - 3e64: 38800204 addi r2,r7,8 - 3e68: d8814015 stw r2,1280(sp) - 3e6c: d9814215 stw r6,1288(sp) - 3e70: 39c00117 ldw r7,4(r7) - 3e74: d9c14315 stw r7,1292(sp) - 3e78: d9014217 ldw r4,1288(sp) - 3e7c: d9414317 ldw r5,1292(sp) - 3e80: 00098ac0 call 98ac <__isinfd> - 3e84: 10021d26 beq r2,zero,46fc <___vfprintf_internal_r+0x1900> - 3e88: d9014217 ldw r4,1288(sp) - 3e8c: d9414317 ldw r5,1292(sp) - 3e90: 000d883a mov r6,zero - 3e94: 000f883a mov r7,zero - 3e98: 000ba480 call ba48 <__ltdf2> - 3e9c: 1002d016 blt r2,zero,49e0 <___vfprintf_internal_r+0x1be4> - 3ea0: d9414d17 ldw r5,1332(sp) - 3ea4: 008011c4 movi r2,71 - 3ea8: 11421016 blt r2,r5,46ec <___vfprintf_internal_r+0x18f0> - 3eac: 01800074 movhi r6,1 - 3eb0: 3180df04 addi r6,r6,892 - 3eb4: d9814115 stw r6,1284(sp) - 3eb8: d9014c17 ldw r4,1328(sp) - 3ebc: 00c000c4 movi r3,3 - 3ec0: 00bfdfc4 movi r2,-129 - 3ec4: 2088703a and r4,r4,r2 - 3ec8: 180f883a mov r7,r3 - 3ecc: d8c14515 stw r3,1300(sp) - 3ed0: d9014c15 stw r4,1328(sp) - 3ed4: d8014615 stw zero,1304(sp) - 3ed8: 003e6a06 br 3884 <___vfprintf_internal_r+0xa88> - 3edc: 38800017 ldw r2,0(r7) - 3ee0: 00c00044 movi r3,1 - 3ee4: 39c00104 addi r7,r7,4 - 3ee8: d9c14015 stw r7,1280(sp) - 3eec: d9000f04 addi r4,sp,60 - 3ef0: 180f883a mov r7,r3 - 3ef4: d8c14515 stw r3,1300(sp) - 3ef8: d9014115 stw r4,1284(sp) - 3efc: d8800f05 stb r2,60(sp) - 3f00: d8000405 stb zero,16(sp) - 3f04: 003cac06 br 31b8 <___vfprintf_internal_r+0x3bc> - 3f08: 01400074 movhi r5,1 - 3f0c: 2940e504 addi r5,r5,916 - 3f10: d9414415 stw r5,1296(sp) - 3f14: d9814c17 ldw r6,1328(sp) - 3f18: 3080080c andi r2,r6,32 - 3f1c: 1000ff26 beq r2,zero,431c <___vfprintf_internal_r+0x1520> - 3f20: 3c000017 ldw r16,0(r7) - 3f24: 3c400117 ldw r17,4(r7) - 3f28: 38800204 addi r2,r7,8 - 3f2c: d8814015 stw r2,1280(sp) - 3f30: d9414c17 ldw r5,1328(sp) - 3f34: 2880004c andi r2,r5,1 - 3f38: 1005003a cmpeq r2,r2,zero - 3f3c: 1000b91e bne r2,zero,4224 <___vfprintf_internal_r+0x1428> - 3f40: 8444b03a or r2,r16,r17 - 3f44: 1000b726 beq r2,zero,4224 <___vfprintf_internal_r+0x1428> - 3f48: d9814d17 ldw r6,1332(sp) - 3f4c: 29400094 ori r5,r5,2 - 3f50: 00800c04 movi r2,48 - 3f54: 01000084 movi r4,2 - 3f58: d9414c15 stw r5,1328(sp) - 3f5c: d8800445 stb r2,17(sp) - 3f60: d9800485 stb r6,18(sp) - 3f64: d8000405 stb zero,16(sp) - 3f68: 003e3206 br 3834 <___vfprintf_internal_r+0xa38> - 3f6c: 01800074 movhi r6,1 - 3f70: 3180da04 addi r6,r6,872 - 3f74: d9814415 stw r6,1296(sp) - 3f78: 003fe606 br 3f14 <___vfprintf_internal_r+0x1118> - 3f7c: 00800ac4 movi r2,43 - 3f80: d8800405 stb r2,16(sp) - 3f84: b8c00007 ldb r3,0(r23) - 3f88: 003c1b06 br 2ff8 <___vfprintf_internal_r+0x1fc> - 3f8c: d8814c17 ldw r2,1328(sp) - 3f90: b8c00007 ldb r3,0(r23) - 3f94: 10800054 ori r2,r2,1 - 3f98: d8814c15 stw r2,1328(sp) - 3f9c: 003c1606 br 2ff8 <___vfprintf_internal_r+0x1fc> - 3fa0: d8800407 ldb r2,16(sp) - 3fa4: 10004c1e bne r2,zero,40d8 <___vfprintf_internal_r+0x12dc> - 3fa8: 00800804 movi r2,32 - 3fac: d8800405 stb r2,16(sp) - 3fb0: b8c00007 ldb r3,0(r23) - 3fb4: 003c1006 br 2ff8 <___vfprintf_internal_r+0x1fc> - 3fb8: d9814c17 ldw r6,1328(sp) - 3fbc: b8c00007 ldb r3,0(r23) - 3fc0: 31800214 ori r6,r6,8 - 3fc4: d9814c15 stw r6,1328(sp) - 3fc8: 003c0b06 br 2ff8 <___vfprintf_internal_r+0x1fc> - 3fcc: 0009883a mov r4,zero - 3fd0: 04000244 movi r16,9 - 3fd4: 01400284 movi r5,10 - 3fd8: d9c15115 stw r7,1348(sp) - 3fdc: 0002c240 call 2c24 <__mulsi3> - 3fe0: b9000007 ldb r4,0(r23) - 3fe4: d8c14d17 ldw r3,1332(sp) - 3fe8: bdc00044 addi r23,r23,1 - 3fec: d9014d15 stw r4,1332(sp) - 3ff0: d9414d17 ldw r5,1332(sp) - 3ff4: 1885883a add r2,r3,r2 - 3ff8: 113ff404 addi r4,r2,-48 - 3ffc: 28bff404 addi r2,r5,-48 - 4000: d9c15117 ldw r7,1348(sp) - 4004: 80bff32e bgeu r16,r2,3fd4 <___vfprintf_internal_r+0x11d8> - 4008: d9014a15 stw r4,1320(sp) - 400c: 003bfc06 br 3000 <___vfprintf_internal_r+0x204> - 4010: d8814c17 ldw r2,1328(sp) - 4014: b8c00007 ldb r3,0(r23) - 4018: 10802014 ori r2,r2,128 - 401c: d8814c15 stw r2,1328(sp) - 4020: 003bf506 br 2ff8 <___vfprintf_internal_r+0x1fc> - 4024: b8c00007 ldb r3,0(r23) - 4028: 00800a84 movi r2,42 - 402c: bdc00044 addi r23,r23,1 - 4030: 18831826 beq r3,r2,4c94 <___vfprintf_internal_r+0x1e98> - 4034: d8c14d15 stw r3,1332(sp) - 4038: 18bff404 addi r2,r3,-48 - 403c: 00c00244 movi r3,9 - 4040: 18827b36 bltu r3,r2,4a30 <___vfprintf_internal_r+0x1c34> - 4044: 1821883a mov r16,r3 - 4048: 0009883a mov r4,zero - 404c: 01400284 movi r5,10 - 4050: d9c15115 stw r7,1348(sp) - 4054: 0002c240 call 2c24 <__mulsi3> - 4058: d9414d17 ldw r5,1332(sp) - 405c: b9800007 ldb r6,0(r23) - 4060: d9c15117 ldw r7,1348(sp) - 4064: 1145883a add r2,r2,r5 - 4068: 113ff404 addi r4,r2,-48 - 406c: 30bff404 addi r2,r6,-48 - 4070: d9814d15 stw r6,1332(sp) - 4074: bdc00044 addi r23,r23,1 - 4078: 80bff42e bgeu r16,r2,404c <___vfprintf_internal_r+0x1250> - 407c: 2027883a mov r19,r4 - 4080: 203bdf0e bge r4,zero,3000 <___vfprintf_internal_r+0x204> - 4084: 04ffffc4 movi r19,-1 - 4088: 003bdd06 br 3000 <___vfprintf_internal_r+0x204> - 408c: d8000405 stb zero,16(sp) - 4090: 39800017 ldw r6,0(r7) - 4094: 39c00104 addi r7,r7,4 - 4098: d9c14015 stw r7,1280(sp) - 409c: d9814115 stw r6,1284(sp) - 40a0: 3001c926 beq r6,zero,47c8 <___vfprintf_internal_r+0x19cc> - 40a4: 98000e16 blt r19,zero,40e0 <___vfprintf_internal_r+0x12e4> - 40a8: d9014117 ldw r4,1284(sp) - 40ac: 000b883a mov r5,zero - 40b0: 980d883a mov r6,r19 - 40b4: 0007f300 call 7f30 - 40b8: 10025926 beq r2,zero,4a20 <___vfprintf_internal_r+0x1c24> - 40bc: d8c14117 ldw r3,1284(sp) - 40c0: 10cfc83a sub r7,r2,r3 - 40c4: 99c19e16 blt r19,r7,4740 <___vfprintf_internal_r+0x1944> - 40c8: d9c14515 stw r7,1300(sp) - 40cc: 38000916 blt r7,zero,40f4 <___vfprintf_internal_r+0x12f8> - 40d0: d8014615 stw zero,1304(sp) - 40d4: 003deb06 br 3884 <___vfprintf_internal_r+0xa88> - 40d8: b8c00007 ldb r3,0(r23) - 40dc: 003bc606 br 2ff8 <___vfprintf_internal_r+0x1fc> - 40e0: d9014117 ldw r4,1284(sp) - 40e4: 0002d300 call 2d30 - 40e8: d8814515 stw r2,1300(sp) - 40ec: 100f883a mov r7,r2 - 40f0: 103ff70e bge r2,zero,40d0 <___vfprintf_internal_r+0x12d4> - 40f4: d8014515 stw zero,1300(sp) - 40f8: d8014615 stw zero,1304(sp) - 40fc: 003de106 br 3884 <___vfprintf_internal_r+0xa88> - 4100: 20c03fcc andi r3,r4,255 - 4104: 00800044 movi r2,1 - 4108: 18802d26 beq r3,r2,41c0 <___vfprintf_internal_r+0x13c4> - 410c: 18800e36 bltu r3,r2,4148 <___vfprintf_internal_r+0x134c> - 4110: 00800084 movi r2,2 - 4114: 1880fa26 beq r3,r2,4500 <___vfprintf_internal_r+0x1704> - 4118: 01000074 movhi r4,1 - 411c: 2100ea04 addi r4,r4,936 - 4120: 0002d300 call 2d30 - 4124: 100f883a mov r7,r2 - 4128: dcc14515 stw r19,1300(sp) - 412c: 9880010e bge r19,r2,4134 <___vfprintf_internal_r+0x1338> - 4130: d8814515 stw r2,1300(sp) - 4134: 00800074 movhi r2,1 - 4138: 1080ea04 addi r2,r2,936 - 413c: dcc14615 stw r19,1304(sp) - 4140: d8814115 stw r2,1284(sp) - 4144: 003dcf06 br 3884 <___vfprintf_internal_r+0xa88> - 4148: d9401904 addi r5,sp,100 - 414c: dd000f04 addi r20,sp,60 - 4150: d9414115 stw r5,1284(sp) - 4154: 880a977a slli r5,r17,29 - 4158: d9814117 ldw r6,1284(sp) - 415c: 8004d0fa srli r2,r16,3 - 4160: 8806d0fa srli r3,r17,3 - 4164: 810001cc andi r4,r16,7 - 4168: 2884b03a or r2,r5,r2 - 416c: 31bfffc4 addi r6,r6,-1 - 4170: 21000c04 addi r4,r4,48 - 4174: d9814115 stw r6,1284(sp) - 4178: 10cab03a or r5,r2,r3 - 417c: 31000005 stb r4,0(r6) - 4180: 1021883a mov r16,r2 - 4184: 1823883a mov r17,r3 - 4188: 283ff21e bne r5,zero,4154 <___vfprintf_internal_r+0x1358> - 418c: d8c14c17 ldw r3,1328(sp) - 4190: 1880004c andi r2,r3,1 - 4194: 1005003a cmpeq r2,r2,zero - 4198: 103db31e bne r2,zero,3868 <___vfprintf_internal_r+0xa6c> - 419c: 20803fcc andi r2,r4,255 - 41a0: 1080201c xori r2,r2,128 - 41a4: 10bfe004 addi r2,r2,-128 - 41a8: 00c00c04 movi r3,48 - 41ac: 10fdae26 beq r2,r3,3868 <___vfprintf_internal_r+0xa6c> - 41b0: 31bfffc4 addi r6,r6,-1 - 41b4: d9814115 stw r6,1284(sp) - 41b8: 30c00005 stb r3,0(r6) - 41bc: 003daa06 br 3868 <___vfprintf_internal_r+0xa6c> - 41c0: 88800068 cmpgeui r2,r17,1 - 41c4: 10002c1e bne r2,zero,4278 <___vfprintf_internal_r+0x147c> - 41c8: 8800021e bne r17,zero,41d4 <___vfprintf_internal_r+0x13d8> - 41cc: 00800244 movi r2,9 - 41d0: 14002936 bltu r2,r16,4278 <___vfprintf_internal_r+0x147c> - 41d4: d90018c4 addi r4,sp,99 - 41d8: dd000f04 addi r20,sp,60 - 41dc: d9014115 stw r4,1284(sp) - 41e0: d9014117 ldw r4,1284(sp) - 41e4: 80800c04 addi r2,r16,48 - 41e8: 20800005 stb r2,0(r4) - 41ec: 003d9e06 br 3868 <___vfprintf_internal_r+0xa6c> - 41f0: dc400d17 ldw r17,52(sp) - 41f4: 07000074 movhi fp,1 - 41f8: e700f184 addi fp,fp,966 - 41fc: 9425883a add r18,r18,r16 - 4200: 8c400044 addi r17,r17,1 - 4204: 008001c4 movi r2,7 - 4208: 1f000015 stw fp,0(r3) - 420c: 1c000115 stw r16,4(r3) - 4210: dc800e15 stw r18,56(sp) - 4214: dc400d15 stw r17,52(sp) - 4218: 147ddc16 blt r2,r17,398c <___vfprintf_internal_r+0xb90> - 421c: 18c00204 addi r3,r3,8 - 4220: 003c7406 br 33f4 <___vfprintf_internal_r+0x5f8> - 4224: 01000084 movi r4,2 - 4228: d8000405 stb zero,16(sp) - 422c: 003d8106 br 3834 <___vfprintf_internal_r+0xa38> - 4230: d9814c17 ldw r6,1328(sp) - 4234: 30c4703a and r2,r6,r3 - 4238: 1005003a cmpeq r2,r2,zero - 423c: 103cb326 beq r2,zero,350c <___vfprintf_internal_r+0x710> - 4240: d9014117 ldw r4,1284(sp) - 4244: 94800044 addi r18,r18,1 - 4248: 8c400044 addi r17,r17,1 - 424c: 008001c4 movi r2,7 - 4250: a9000015 stw r4,0(r21) - 4254: a8c00115 stw r3,4(r21) - 4258: dc800e15 stw r18,56(sp) - 425c: dc400d15 stw r17,52(sp) - 4260: 147e6016 blt r2,r17,3be4 <___vfprintf_internal_r+0xde8> - 4264: acc00204 addi r19,r21,8 - 4268: 003cd106 br 35b0 <___vfprintf_internal_r+0x7b4> - 426c: 07000074 movhi fp,1 - 4270: e700f184 addi fp,fp,966 - 4274: 003c4906 br 339c <___vfprintf_internal_r+0x5a0> - 4278: dd000f04 addi r20,sp,60 - 427c: dc801904 addi r18,sp,100 - 4280: 8009883a mov r4,r16 - 4284: 880b883a mov r5,r17 - 4288: 01800284 movi r6,10 - 428c: 000f883a mov r7,zero - 4290: 000a6a80 call a6a8 <__umoddi3> - 4294: 12000c04 addi r8,r2,48 - 4298: 94bfffc4 addi r18,r18,-1 - 429c: 8009883a mov r4,r16 - 42a0: 880b883a mov r5,r17 - 42a4: 01800284 movi r6,10 - 42a8: 000f883a mov r7,zero - 42ac: 92000005 stb r8,0(r18) - 42b0: 000a03c0 call a03c <__udivdi3> - 42b4: 1009883a mov r4,r2 - 42b8: 1021883a mov r16,r2 - 42bc: 18800068 cmpgeui r2,r3,1 - 42c0: 1823883a mov r17,r3 - 42c4: 103fee1e bne r2,zero,4280 <___vfprintf_internal_r+0x1484> - 42c8: 1800021e bne r3,zero,42d4 <___vfprintf_internal_r+0x14d8> - 42cc: 00800244 movi r2,9 - 42d0: 113feb36 bltu r2,r4,4280 <___vfprintf_internal_r+0x1484> - 42d4: 94bfffc4 addi r18,r18,-1 - 42d8: dc814115 stw r18,1284(sp) - 42dc: 003fc006 br 41e0 <___vfprintf_internal_r+0x13e4> - 42e0: d9014c17 ldw r4,1328(sp) - 42e4: 2080004c andi r2,r4,1 - 42e8: 10009a1e bne r2,zero,4554 <___vfprintf_internal_r+0x1758> - 42ec: d9401904 addi r5,sp,100 - 42f0: dd000f04 addi r20,sp,60 - 42f4: d9414115 stw r5,1284(sp) - 42f8: 003d5b06 br 3868 <___vfprintf_internal_r+0xa6c> - 42fc: d9014f17 ldw r4,1340(sp) - 4300: b00b883a mov r5,r22 - 4304: d9800c04 addi r6,sp,48 - 4308: 0002da40 call 2da4 <__sprint_r> - 430c: 103c731e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 4310: dc800e17 ldw r18,56(sp) - 4314: d8c01904 addi r3,sp,100 - 4318: 003cf906 br 3700 <___vfprintf_internal_r+0x904> - 431c: d8c14c17 ldw r3,1328(sp) - 4320: 1880040c andi r2,r3,16 - 4324: 1000711e bne r2,zero,44ec <___vfprintf_internal_r+0x16f0> - 4328: d9014c17 ldw r4,1328(sp) - 432c: 2080100c andi r2,r4,64 - 4330: 10006e26 beq r2,zero,44ec <___vfprintf_internal_r+0x16f0> - 4334: 3c00000b ldhu r16,0(r7) - 4338: 0023883a mov r17,zero - 433c: 39c00104 addi r7,r7,4 - 4340: d9c14015 stw r7,1280(sp) - 4344: 003efa06 br 3f30 <___vfprintf_internal_r+0x1134> - 4348: dc400d17 ldw r17,52(sp) - 434c: 07000074 movhi fp,1 - 4350: e700f184 addi fp,fp,966 - 4354: 9425883a add r18,r18,r16 - 4358: 8c400044 addi r17,r17,1 - 435c: 008001c4 movi r2,7 - 4360: 1f000015 stw fp,0(r3) - 4364: 1c000115 stw r16,4(r3) - 4368: dc800e15 stw r18,56(sp) - 436c: dc400d15 stw r17,52(sp) - 4370: 147d7016 blt r2,r17,3934 <___vfprintf_internal_r+0xb38> - 4374: 18c00204 addi r3,r3,8 - 4378: 003d7506 br 3950 <___vfprintf_internal_r+0xb54> - 437c: dc800e17 ldw r18,56(sp) - 4380: dc400d17 ldw r17,52(sp) - 4384: 07000074 movhi fp,1 - 4388: e700f584 addi fp,fp,982 - 438c: 003bba06 br 3278 <___vfprintf_internal_r+0x47c> - 4390: d9014f17 ldw r4,1340(sp) - 4394: b00b883a mov r5,r22 - 4398: d9800c04 addi r6,sp,48 - 439c: 0002da40 call 2da4 <__sprint_r> - 43a0: 103c4e1e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 43a4: dc800e17 ldw r18,56(sp) - 43a8: d8c01904 addi r3,sp,100 - 43ac: 003ce306 br 373c <___vfprintf_internal_r+0x940> - 43b0: 3c000017 ldw r16,0(r7) - 43b4: 0009883a mov r4,zero - 43b8: 39c00104 addi r7,r7,4 - 43bc: 0023883a mov r17,zero - 43c0: d9c14015 stw r7,1280(sp) - 43c4: d8000405 stb zero,16(sp) - 43c8: 003d1a06 br 3834 <___vfprintf_internal_r+0xa38> - 43cc: 38800017 ldw r2,0(r7) - 43d0: 39c00104 addi r7,r7,4 - 43d4: d9c14015 stw r7,1280(sp) - 43d8: 1023d7fa srai r17,r2,31 - 43dc: 1021883a mov r16,r2 - 43e0: 003d1206 br 382c <___vfprintf_internal_r+0xa30> - 43e4: 3c000017 ldw r16,0(r7) - 43e8: 01000044 movi r4,1 - 43ec: 39c00104 addi r7,r7,4 - 43f0: 0023883a mov r17,zero - 43f4: d9c14015 stw r7,1280(sp) - 43f8: d8000405 stb zero,16(sp) - 43fc: 003d0d06 br 3834 <___vfprintf_internal_r+0xa38> - 4400: 00800074 movhi r2,1 - 4404: 1080f104 addi r2,r2,964 - 4408: 94800044 addi r18,r18,1 - 440c: 8c400044 addi r17,r17,1 - 4410: a8800015 stw r2,0(r21) - 4414: 00c00044 movi r3,1 - 4418: 008001c4 movi r2,7 - 441c: a8c00115 stw r3,4(r21) - 4420: dc800e15 stw r18,56(sp) - 4424: dc400d15 stw r17,52(sp) - 4428: 1440ca16 blt r2,r17,4754 <___vfprintf_internal_r+0x1958> - 442c: a8c00204 addi r3,r21,8 - 4430: 2000061e bne r4,zero,444c <___vfprintf_internal_r+0x1650> - 4434: d9414717 ldw r5,1308(sp) - 4438: 2800041e bne r5,zero,444c <___vfprintf_internal_r+0x1650> - 443c: d9814c17 ldw r6,1328(sp) - 4440: 3080004c andi r2,r6,1 - 4444: 1005003a cmpeq r2,r2,zero - 4448: 103bea1e bne r2,zero,33f4 <___vfprintf_internal_r+0x5f8> - 444c: 00800044 movi r2,1 - 4450: dc400d17 ldw r17,52(sp) - 4454: 18800115 stw r2,4(r3) - 4458: d8814917 ldw r2,1316(sp) - 445c: 94800044 addi r18,r18,1 - 4460: 8c400044 addi r17,r17,1 - 4464: 18800015 stw r2,0(r3) - 4468: 008001c4 movi r2,7 - 446c: dc800e15 stw r18,56(sp) - 4470: dc400d15 stw r17,52(sp) - 4474: 1440ca16 blt r2,r17,47a0 <___vfprintf_internal_r+0x19a4> - 4478: 18c00204 addi r3,r3,8 - 447c: 0121c83a sub r16,zero,r4 - 4480: 0400500e bge zero,r16,45c4 <___vfprintf_internal_r+0x17c8> - 4484: 00800404 movi r2,16 - 4488: 1400800e bge r2,r16,468c <___vfprintf_internal_r+0x1890> - 448c: 1027883a mov r19,r2 - 4490: 07000074 movhi fp,1 - 4494: e700f184 addi fp,fp,966 - 4498: 050001c4 movi r20,7 - 449c: 00000306 br 44ac <___vfprintf_internal_r+0x16b0> - 44a0: 18c00204 addi r3,r3,8 - 44a4: 843ffc04 addi r16,r16,-16 - 44a8: 9c007a0e bge r19,r16,4694 <___vfprintf_internal_r+0x1898> - 44ac: 94800404 addi r18,r18,16 - 44b0: 8c400044 addi r17,r17,1 - 44b4: 1f000015 stw fp,0(r3) - 44b8: 1cc00115 stw r19,4(r3) - 44bc: dc800e15 stw r18,56(sp) - 44c0: dc400d15 stw r17,52(sp) - 44c4: a47ff60e bge r20,r17,44a0 <___vfprintf_internal_r+0x16a4> - 44c8: d9014f17 ldw r4,1340(sp) - 44cc: b00b883a mov r5,r22 - 44d0: d9800c04 addi r6,sp,48 - 44d4: 0002da40 call 2da4 <__sprint_r> - 44d8: 103c001e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 44dc: dc800e17 ldw r18,56(sp) - 44e0: dc400d17 ldw r17,52(sp) - 44e4: d8c01904 addi r3,sp,100 - 44e8: 003fee06 br 44a4 <___vfprintf_internal_r+0x16a8> - 44ec: 3c000017 ldw r16,0(r7) - 44f0: 0023883a mov r17,zero - 44f4: 39c00104 addi r7,r7,4 - 44f8: d9c14015 stw r7,1280(sp) - 44fc: 003e8c06 br 3f30 <___vfprintf_internal_r+0x1134> - 4500: d9401904 addi r5,sp,100 - 4504: dd000f04 addi r20,sp,60 - 4508: d9414115 stw r5,1284(sp) - 450c: d9814417 ldw r6,1296(sp) - 4510: 880a973a slli r5,r17,28 - 4514: 8004d13a srli r2,r16,4 - 4518: 810003cc andi r4,r16,15 - 451c: 3109883a add r4,r6,r4 - 4520: 2884b03a or r2,r5,r2 - 4524: 21400003 ldbu r5,0(r4) - 4528: d9014117 ldw r4,1284(sp) - 452c: 8806d13a srli r3,r17,4 - 4530: 1021883a mov r16,r2 - 4534: 213fffc4 addi r4,r4,-1 - 4538: d9014115 stw r4,1284(sp) - 453c: d9814117 ldw r6,1284(sp) - 4540: 10c8b03a or r4,r2,r3 - 4544: 1823883a mov r17,r3 - 4548: 31400005 stb r5,0(r6) - 454c: 203fef1e bne r4,zero,450c <___vfprintf_internal_r+0x1710> - 4550: 003cc506 br 3868 <___vfprintf_internal_r+0xa6c> - 4554: 00800c04 movi r2,48 - 4558: d98018c4 addi r6,sp,99 - 455c: dd000f04 addi r20,sp,60 - 4560: d88018c5 stb r2,99(sp) - 4564: d9814115 stw r6,1284(sp) - 4568: 003cbf06 br 3868 <___vfprintf_internal_r+0xa6c> - 456c: dc400d17 ldw r17,52(sp) - 4570: 07000074 movhi fp,1 - 4574: e700f584 addi fp,fp,982 - 4578: 003bc106 br 3480 <___vfprintf_internal_r+0x684> - 457c: d9414c17 ldw r5,1328(sp) - 4580: 2880040c andi r2,r5,16 - 4584: 10007c26 beq r2,zero,4778 <___vfprintf_internal_r+0x197c> - 4588: 38800017 ldw r2,0(r7) - 458c: 39c00104 addi r7,r7,4 - 4590: d9c14015 stw r7,1280(sp) - 4594: d9814b17 ldw r6,1324(sp) - 4598: d9c14017 ldw r7,1280(sp) - 459c: 11800015 stw r6,0(r2) - 45a0: 003a7206 br 2f6c <___vfprintf_internal_r+0x170> - 45a4: d9014f17 ldw r4,1340(sp) - 45a8: b00b883a mov r5,r22 - 45ac: d9800c04 addi r6,sp,48 - 45b0: 0002da40 call 2da4 <__sprint_r> - 45b4: 103bc91e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 45b8: dc800e17 ldw r18,56(sp) - 45bc: dc400d17 ldw r17,52(sp) - 45c0: d8c01904 addi r3,sp,100 - 45c4: d9014717 ldw r4,1308(sp) - 45c8: d9414117 ldw r5,1284(sp) - 45cc: 8c400044 addi r17,r17,1 - 45d0: 9125883a add r18,r18,r4 - 45d4: 008001c4 movi r2,7 - 45d8: 19400015 stw r5,0(r3) - 45dc: 19000115 stw r4,4(r3) - 45e0: dc800e15 stw r18,56(sp) - 45e4: dc400d15 stw r17,52(sp) - 45e8: 147ce816 blt r2,r17,398c <___vfprintf_internal_r+0xb90> - 45ec: 18c00204 addi r3,r3,8 - 45f0: 003b8006 br 33f4 <___vfprintf_internal_r+0x5f8> - 45f4: 38c00017 ldw r3,0(r7) - 45f8: 39000204 addi r4,r7,8 - 45fc: d9014015 stw r4,1280(sp) - 4600: d8c14215 stw r3,1288(sp) - 4604: 39c00117 ldw r7,4(r7) - 4608: d9c14315 stw r7,1292(sp) - 460c: 003e1a06 br 3e78 <___vfprintf_internal_r+0x107c> - 4610: 0005883a mov r2,zero - 4614: 1409c83a sub r4,r2,r16 - 4618: 1105803a cmpltu r2,r2,r4 - 461c: 044bc83a sub r5,zero,r17 - 4620: 2885c83a sub r2,r5,r2 - 4624: 2021883a mov r16,r4 - 4628: 1023883a mov r17,r2 - 462c: 01000044 movi r4,1 - 4630: 00800b44 movi r2,45 - 4634: d8800405 stb r2,16(sp) - 4638: 003c7e06 br 3834 <___vfprintf_internal_r+0xa38> - 463c: d9014f17 ldw r4,1340(sp) - 4640: b00b883a mov r5,r22 - 4644: d9800c04 addi r6,sp,48 - 4648: 0002da40 call 2da4 <__sprint_r> - 464c: 103ba31e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 4650: dc800e17 ldw r18,56(sp) - 4654: dc400d17 ldw r17,52(sp) - 4658: d9000517 ldw r4,20(sp) - 465c: d9401904 addi r5,sp,100 - 4660: 003da106 br 3ce8 <___vfprintf_internal_r+0xeec> - 4664: d9014f17 ldw r4,1340(sp) - 4668: b00b883a mov r5,r22 - 466c: d9800c04 addi r6,sp,48 - 4670: 0002da40 call 2da4 <__sprint_r> - 4674: 103b991e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 4678: dc800e17 ldw r18,56(sp) - 467c: dc400d17 ldw r17,52(sp) - 4680: d9000517 ldw r4,20(sp) - 4684: d8c01904 addi r3,sp,100 - 4688: 003d8b06 br 3cb8 <___vfprintf_internal_r+0xebc> - 468c: 07000074 movhi fp,1 - 4690: e700f184 addi fp,fp,966 - 4694: 9425883a add r18,r18,r16 - 4698: 8c400044 addi r17,r17,1 - 469c: 008001c4 movi r2,7 - 46a0: 1f000015 stw fp,0(r3) - 46a4: 1c000115 stw r16,4(r3) - 46a8: dc800e15 stw r18,56(sp) - 46ac: dc400d15 stw r17,52(sp) - 46b0: 147fbc16 blt r2,r17,45a4 <___vfprintf_internal_r+0x17a8> - 46b4: 18c00204 addi r3,r3,8 - 46b8: 003fc206 br 45c4 <___vfprintf_internal_r+0x17c8> - 46bc: d9014f17 ldw r4,1340(sp) - 46c0: b00b883a mov r5,r22 - 46c4: d9800c04 addi r6,sp,48 - 46c8: 0002da40 call 2da4 <__sprint_r> - 46cc: 103b831e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 46d0: dc800e17 ldw r18,56(sp) - 46d4: d9000517 ldw r4,20(sp) - 46d8: d8c01904 addi r3,sp,100 - 46dc: 003cfc06 br 3ad0 <___vfprintf_internal_r+0xcd4> - 46e0: 07000074 movhi fp,1 - 46e4: e700f184 addi fp,fp,966 - 46e8: 003bde06 br 3664 <___vfprintf_internal_r+0x868> - 46ec: 00800074 movhi r2,1 - 46f0: 1080e004 addi r2,r2,896 - 46f4: d8814115 stw r2,1284(sp) - 46f8: 003def06 br 3eb8 <___vfprintf_internal_r+0x10bc> - 46fc: d9014217 ldw r4,1288(sp) - 4700: d9414317 ldw r5,1292(sp) - 4704: 00098ec0 call 98ec <__isnand> - 4708: 10003926 beq r2,zero,47f0 <___vfprintf_internal_r+0x19f4> - 470c: d9414d17 ldw r5,1332(sp) - 4710: 008011c4 movi r2,71 - 4714: 1140ce16 blt r2,r5,4a50 <___vfprintf_internal_r+0x1c54> - 4718: 01800074 movhi r6,1 - 471c: 3180e104 addi r6,r6,900 - 4720: d9814115 stw r6,1284(sp) - 4724: 003de406 br 3eb8 <___vfprintf_internal_r+0x10bc> - 4728: d9014c17 ldw r4,1328(sp) - 472c: bdc00044 addi r23,r23,1 - 4730: b8c00007 ldb r3,0(r23) - 4734: 21000814 ori r4,r4,32 - 4738: d9014c15 stw r4,1328(sp) - 473c: 003a2e06 br 2ff8 <___vfprintf_internal_r+0x1fc> - 4740: dcc14515 stw r19,1300(sp) - 4744: 98011016 blt r19,zero,4b88 <___vfprintf_internal_r+0x1d8c> - 4748: 980f883a mov r7,r19 - 474c: d8014615 stw zero,1304(sp) - 4750: 003c4c06 br 3884 <___vfprintf_internal_r+0xa88> - 4754: d9014f17 ldw r4,1340(sp) - 4758: b00b883a mov r5,r22 - 475c: d9800c04 addi r6,sp,48 - 4760: 0002da40 call 2da4 <__sprint_r> - 4764: 103b5d1e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 4768: dc800e17 ldw r18,56(sp) - 476c: d9000517 ldw r4,20(sp) - 4770: d8c01904 addi r3,sp,100 - 4774: 003f2e06 br 4430 <___vfprintf_internal_r+0x1634> - 4778: d8c14c17 ldw r3,1328(sp) - 477c: 1880100c andi r2,r3,64 - 4780: 1000a026 beq r2,zero,4a04 <___vfprintf_internal_r+0x1c08> - 4784: 38800017 ldw r2,0(r7) - 4788: 39c00104 addi r7,r7,4 - 478c: d9c14015 stw r7,1280(sp) - 4790: d9014b17 ldw r4,1324(sp) - 4794: d9c14017 ldw r7,1280(sp) - 4798: 1100000d sth r4,0(r2) - 479c: 0039f306 br 2f6c <___vfprintf_internal_r+0x170> - 47a0: d9014f17 ldw r4,1340(sp) - 47a4: b00b883a mov r5,r22 - 47a8: d9800c04 addi r6,sp,48 - 47ac: 0002da40 call 2da4 <__sprint_r> - 47b0: 103b4a1e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 47b4: dc800e17 ldw r18,56(sp) - 47b8: dc400d17 ldw r17,52(sp) - 47bc: d9000517 ldw r4,20(sp) - 47c0: d8c01904 addi r3,sp,100 - 47c4: 003f2d06 br 447c <___vfprintf_internal_r+0x1680> - 47c8: 00800184 movi r2,6 - 47cc: 14c09a36 bltu r2,r19,4a38 <___vfprintf_internal_r+0x1c3c> - 47d0: dcc14515 stw r19,1300(sp) - 47d4: 9800010e bge r19,zero,47dc <___vfprintf_internal_r+0x19e0> - 47d8: d8014515 stw zero,1300(sp) - 47dc: 00800074 movhi r2,1 - 47e0: 1080e304 addi r2,r2,908 - 47e4: 980f883a mov r7,r19 - 47e8: d8814115 stw r2,1284(sp) - 47ec: 003a7206 br 31b8 <___vfprintf_internal_r+0x3bc> - 47f0: 00bfffc4 movi r2,-1 - 47f4: 9880e226 beq r19,r2,4b80 <___vfprintf_internal_r+0x1d84> - 47f8: d9414d17 ldw r5,1332(sp) - 47fc: 008019c4 movi r2,103 - 4800: 2880dc26 beq r5,r2,4b74 <___vfprintf_internal_r+0x1d78> - 4804: 008011c4 movi r2,71 - 4808: 2880da26 beq r5,r2,4b74 <___vfprintf_internal_r+0x1d78> - 480c: d9414c17 ldw r5,1328(sp) - 4810: d9014317 ldw r4,1292(sp) - 4814: d9814217 ldw r6,1288(sp) - 4818: 29404014 ori r5,r5,256 - 481c: d9414c15 stw r5,1328(sp) - 4820: 2000cc16 blt r4,zero,4b54 <___vfprintf_internal_r+0x1d58> - 4824: 3021883a mov r16,r6 - 4828: 2023883a mov r17,r4 - 482c: 0039883a mov fp,zero - 4830: d9414d17 ldw r5,1332(sp) - 4834: 00801984 movi r2,102 - 4838: 2880b726 beq r5,r2,4b18 <___vfprintf_internal_r+0x1d1c> - 483c: 00801184 movi r2,70 - 4840: 2880b526 beq r5,r2,4b18 <___vfprintf_internal_r+0x1d1c> - 4844: 00801944 movi r2,101 - 4848: 2880c826 beq r5,r2,4b6c <___vfprintf_internal_r+0x1d70> - 484c: 00801144 movi r2,69 - 4850: 2880c626 beq r5,r2,4b6c <___vfprintf_internal_r+0x1d70> - 4854: 9829883a mov r20,r19 - 4858: d9014f17 ldw r4,1340(sp) - 485c: d8800504 addi r2,sp,20 - 4860: 880d883a mov r6,r17 - 4864: d8800115 stw r2,4(sp) - 4868: d8c00604 addi r3,sp,24 - 486c: d8800704 addi r2,sp,28 - 4870: 800b883a mov r5,r16 - 4874: 01c00084 movi r7,2 - 4878: d8c00215 stw r3,8(sp) - 487c: d8800315 stw r2,12(sp) - 4880: dd000015 stw r20,0(sp) - 4884: 00050640 call 5064 <_dtoa_r> - 4888: d9814d17 ldw r6,1332(sp) - 488c: d8814115 stw r2,1284(sp) - 4890: 008019c4 movi r2,103 - 4894: 30809526 beq r6,r2,4aec <___vfprintf_internal_r+0x1cf0> - 4898: d8c14d17 ldw r3,1332(sp) - 489c: 008011c4 movi r2,71 - 48a0: 18809226 beq r3,r2,4aec <___vfprintf_internal_r+0x1cf0> - 48a4: d9414117 ldw r5,1284(sp) - 48a8: d9814d17 ldw r6,1332(sp) - 48ac: 00801984 movi r2,102 - 48b0: 2d25883a add r18,r5,r20 - 48b4: 30808626 beq r6,r2,4ad0 <___vfprintf_internal_r+0x1cd4> - 48b8: 00801184 movi r2,70 - 48bc: 30808426 beq r6,r2,4ad0 <___vfprintf_internal_r+0x1cd4> - 48c0: 000d883a mov r6,zero - 48c4: 000f883a mov r7,zero - 48c8: 880b883a mov r5,r17 - 48cc: 8009883a mov r4,r16 - 48d0: 000b8280 call b828 <__eqdf2> - 48d4: 1000751e bne r2,zero,4aac <___vfprintf_internal_r+0x1cb0> - 48d8: 9005883a mov r2,r18 - 48dc: dc800715 stw r18,28(sp) - 48e0: d9014117 ldw r4,1284(sp) - 48e4: d9414d17 ldw r5,1332(sp) - 48e8: 00c019c4 movi r3,103 - 48ec: 1125c83a sub r18,r2,r4 - 48f0: 28c06826 beq r5,r3,4a94 <___vfprintf_internal_r+0x1c98> - 48f4: 008011c4 movi r2,71 - 48f8: 28806626 beq r5,r2,4a94 <___vfprintf_internal_r+0x1c98> - 48fc: d9000517 ldw r4,20(sp) - 4900: d8c14d17 ldw r3,1332(sp) - 4904: 00801944 movi r2,101 - 4908: 10c05516 blt r2,r3,4a60 <___vfprintf_internal_r+0x1c64> - 490c: 213fffc4 addi r4,r4,-1 - 4910: d9000515 stw r4,20(sp) - 4914: d8c00805 stb r3,32(sp) - 4918: 2021883a mov r16,r4 - 491c: 2000c116 blt r4,zero,4c24 <___vfprintf_internal_r+0x1e28> - 4920: 00800ac4 movi r2,43 - 4924: d8800845 stb r2,33(sp) - 4928: 00800244 movi r2,9 - 492c: 1400af0e bge r2,r16,4bec <___vfprintf_internal_r+0x1df0> - 4930: 1027883a mov r19,r2 - 4934: dc400b84 addi r17,sp,46 - 4938: 8009883a mov r4,r16 - 493c: 01400284 movi r5,10 - 4940: 0002bb40 call 2bb4 <__modsi3> - 4944: 10800c04 addi r2,r2,48 - 4948: 8c7fffc4 addi r17,r17,-1 - 494c: 8009883a mov r4,r16 - 4950: 01400284 movi r5,10 - 4954: 88800005 stb r2,0(r17) - 4958: 0002b540 call 2b54 <__divsi3> - 495c: 1021883a mov r16,r2 - 4960: 98bff516 blt r19,r2,4938 <___vfprintf_internal_r+0x1b3c> - 4964: 10c00c04 addi r3,r2,48 - 4968: d88009c4 addi r2,sp,39 - 496c: 108001c4 addi r2,r2,7 - 4970: 897fffc4 addi r5,r17,-1 - 4974: 88ffffc5 stb r3,-1(r17) - 4978: 2880a72e bgeu r5,r2,4c18 <___vfprintf_internal_r+0x1e1c> - 497c: 1009883a mov r4,r2 - 4980: d9800804 addi r6,sp,32 - 4984: d8c00884 addi r3,sp,34 - 4988: 28800003 ldbu r2,0(r5) - 498c: 29400044 addi r5,r5,1 - 4990: 18800005 stb r2,0(r3) - 4994: 18c00044 addi r3,r3,1 - 4998: 293ffb36 bltu r5,r4,4988 <___vfprintf_internal_r+0x1b8c> - 499c: 1987c83a sub r3,r3,r6 - 49a0: 00800044 movi r2,1 - 49a4: d8c14815 stw r3,1312(sp) - 49a8: 90cf883a add r7,r18,r3 - 49ac: 1480960e bge r2,r18,4c08 <___vfprintf_internal_r+0x1e0c> - 49b0: 39c00044 addi r7,r7,1 - 49b4: d9c14515 stw r7,1300(sp) - 49b8: 38003416 blt r7,zero,4a8c <___vfprintf_internal_r+0x1c90> - 49bc: e0803fcc andi r2,fp,255 - 49c0: 1080201c xori r2,r2,128 - 49c4: 10bfe004 addi r2,r2,-128 - 49c8: 10004e26 beq r2,zero,4b04 <___vfprintf_internal_r+0x1d08> - 49cc: 00800b44 movi r2,45 - 49d0: dc814715 stw r18,1308(sp) - 49d4: d8014615 stw zero,1304(sp) - 49d8: d8800405 stb r2,16(sp) - 49dc: 003bab06 br 388c <___vfprintf_internal_r+0xa90> - 49e0: 00800b44 movi r2,45 - 49e4: d8800405 stb r2,16(sp) - 49e8: 003d2d06 br 3ea0 <___vfprintf_internal_r+0x10a4> - 49ec: d9014f17 ldw r4,1340(sp) - 49f0: b00b883a mov r5,r22 - 49f4: d9800c04 addi r6,sp,48 - 49f8: 0002da40 call 2da4 <__sprint_r> - 49fc: 103ab71e bne r2,zero,34dc <___vfprintf_internal_r+0x6e0> - 4a00: 003ab506 br 34d8 <___vfprintf_internal_r+0x6dc> - 4a04: 38800017 ldw r2,0(r7) - 4a08: 39c00104 addi r7,r7,4 - 4a0c: d9c14015 stw r7,1280(sp) - 4a10: d9414b17 ldw r5,1324(sp) - 4a14: d9c14017 ldw r7,1280(sp) - 4a18: 11400015 stw r5,0(r2) - 4a1c: 00395306 br 2f6c <___vfprintf_internal_r+0x170> - 4a20: 980f883a mov r7,r19 - 4a24: dcc14515 stw r19,1300(sp) - 4a28: d8014615 stw zero,1304(sp) - 4a2c: 003b9506 br 3884 <___vfprintf_internal_r+0xa88> - 4a30: 0027883a mov r19,zero - 4a34: 00397206 br 3000 <___vfprintf_internal_r+0x204> - 4a38: 00c00074 movhi r3,1 - 4a3c: 18c0e304 addi r3,r3,908 - 4a40: 100f883a mov r7,r2 - 4a44: d8814515 stw r2,1300(sp) - 4a48: d8c14115 stw r3,1284(sp) - 4a4c: 0039da06 br 31b8 <___vfprintf_internal_r+0x3bc> - 4a50: 00800074 movhi r2,1 - 4a54: 1080e204 addi r2,r2,904 - 4a58: d8814115 stw r2,1284(sp) - 4a5c: 003d1606 br 3eb8 <___vfprintf_internal_r+0x10bc> - 4a60: d9414d17 ldw r5,1332(sp) - 4a64: 00801984 movi r2,102 - 4a68: 28804926 beq r5,r2,4b90 <___vfprintf_internal_r+0x1d94> - 4a6c: 200f883a mov r7,r4 - 4a70: 24805716 blt r4,r18,4bd0 <___vfprintf_internal_r+0x1dd4> - 4a74: d9414c17 ldw r5,1328(sp) - 4a78: 2880004c andi r2,r5,1 - 4a7c: 10000126 beq r2,zero,4a84 <___vfprintf_internal_r+0x1c88> - 4a80: 21c00044 addi r7,r4,1 - 4a84: d9c14515 stw r7,1300(sp) - 4a88: 383fcc0e bge r7,zero,49bc <___vfprintf_internal_r+0x1bc0> - 4a8c: d8014515 stw zero,1300(sp) - 4a90: 003fca06 br 49bc <___vfprintf_internal_r+0x1bc0> - 4a94: d9000517 ldw r4,20(sp) - 4a98: 00bfff04 movi r2,-4 - 4a9c: 1100480e bge r2,r4,4bc0 <___vfprintf_internal_r+0x1dc4> - 4aa0: 99004716 blt r19,r4,4bc0 <___vfprintf_internal_r+0x1dc4> - 4aa4: d8c14d15 stw r3,1332(sp) - 4aa8: 003ff006 br 4a6c <___vfprintf_internal_r+0x1c70> - 4aac: d8800717 ldw r2,28(sp) - 4ab0: 14bf8b2e bgeu r2,r18,48e0 <___vfprintf_internal_r+0x1ae4> - 4ab4: 9007883a mov r3,r18 - 4ab8: 01000c04 movi r4,48 - 4abc: 11000005 stb r4,0(r2) - 4ac0: 10800044 addi r2,r2,1 - 4ac4: d8800715 stw r2,28(sp) - 4ac8: 18bffc1e bne r3,r2,4abc <___vfprintf_internal_r+0x1cc0> - 4acc: 003f8406 br 48e0 <___vfprintf_internal_r+0x1ae4> - 4ad0: d8814117 ldw r2,1284(sp) - 4ad4: 10c00007 ldb r3,0(r2) - 4ad8: 00800c04 movi r2,48 - 4adc: 18805b26 beq r3,r2,4c4c <___vfprintf_internal_r+0x1e50> - 4ae0: d9000517 ldw r4,20(sp) - 4ae4: 9125883a add r18,r18,r4 - 4ae8: 003f7506 br 48c0 <___vfprintf_internal_r+0x1ac4> - 4aec: d9014c17 ldw r4,1328(sp) - 4af0: 2080004c andi r2,r4,1 - 4af4: 1005003a cmpeq r2,r2,zero - 4af8: 103f6a26 beq r2,zero,48a4 <___vfprintf_internal_r+0x1aa8> - 4afc: d8800717 ldw r2,28(sp) - 4b00: 003f7706 br 48e0 <___vfprintf_internal_r+0x1ae4> - 4b04: d9c14515 stw r7,1300(sp) - 4b08: 38004d16 blt r7,zero,4c40 <___vfprintf_internal_r+0x1e44> - 4b0c: dc814715 stw r18,1308(sp) - 4b10: d8014615 stw zero,1304(sp) - 4b14: 003b5b06 br 3884 <___vfprintf_internal_r+0xa88> - 4b18: d9014f17 ldw r4,1340(sp) - 4b1c: d8800504 addi r2,sp,20 - 4b20: d8800115 stw r2,4(sp) - 4b24: d8c00604 addi r3,sp,24 - 4b28: d8800704 addi r2,sp,28 - 4b2c: 800b883a mov r5,r16 - 4b30: 880d883a mov r6,r17 - 4b34: 01c000c4 movi r7,3 - 4b38: d8c00215 stw r3,8(sp) - 4b3c: d8800315 stw r2,12(sp) - 4b40: dcc00015 stw r19,0(sp) - 4b44: 9829883a mov r20,r19 - 4b48: 00050640 call 5064 <_dtoa_r> - 4b4c: d8814115 stw r2,1284(sp) - 4b50: 003f5106 br 4898 <___vfprintf_internal_r+0x1a9c> - 4b54: d8c14217 ldw r3,1288(sp) - 4b58: d9014317 ldw r4,1292(sp) - 4b5c: 07000b44 movi fp,45 - 4b60: 1821883a mov r16,r3 - 4b64: 2460003c xorhi r17,r4,32768 - 4b68: 003f3106 br 4830 <___vfprintf_internal_r+0x1a34> - 4b6c: 9d000044 addi r20,r19,1 - 4b70: 003f3906 br 4858 <___vfprintf_internal_r+0x1a5c> - 4b74: 983f251e bne r19,zero,480c <___vfprintf_internal_r+0x1a10> - 4b78: 04c00044 movi r19,1 - 4b7c: 003f2306 br 480c <___vfprintf_internal_r+0x1a10> - 4b80: 04c00184 movi r19,6 - 4b84: 003f2106 br 480c <___vfprintf_internal_r+0x1a10> - 4b88: d8014515 stw zero,1300(sp) - 4b8c: 003eee06 br 4748 <___vfprintf_internal_r+0x194c> - 4b90: 200f883a mov r7,r4 - 4b94: 0100370e bge zero,r4,4c74 <___vfprintf_internal_r+0x1e78> - 4b98: 9800031e bne r19,zero,4ba8 <___vfprintf_internal_r+0x1dac> - 4b9c: d9814c17 ldw r6,1328(sp) - 4ba0: 3080004c andi r2,r6,1 - 4ba4: 103fb726 beq r2,zero,4a84 <___vfprintf_internal_r+0x1c88> - 4ba8: 20800044 addi r2,r4,1 - 4bac: 98a7883a add r19,r19,r2 - 4bb0: dcc14515 stw r19,1300(sp) - 4bb4: 980f883a mov r7,r19 - 4bb8: 983f800e bge r19,zero,49bc <___vfprintf_internal_r+0x1bc0> - 4bbc: 003fb306 br 4a8c <___vfprintf_internal_r+0x1c90> - 4bc0: d9814d17 ldw r6,1332(sp) - 4bc4: 31bfff84 addi r6,r6,-2 - 4bc8: d9814d15 stw r6,1332(sp) - 4bcc: 003f4c06 br 4900 <___vfprintf_internal_r+0x1b04> - 4bd0: 0100180e bge zero,r4,4c34 <___vfprintf_internal_r+0x1e38> - 4bd4: 00800044 movi r2,1 - 4bd8: 1485883a add r2,r2,r18 - 4bdc: d8814515 stw r2,1300(sp) - 4be0: 100f883a mov r7,r2 - 4be4: 103f750e bge r2,zero,49bc <___vfprintf_internal_r+0x1bc0> - 4be8: 003fa806 br 4a8c <___vfprintf_internal_r+0x1c90> - 4bec: 80c00c04 addi r3,r16,48 - 4bf0: 00800c04 movi r2,48 - 4bf4: d8c008c5 stb r3,35(sp) - 4bf8: d9800804 addi r6,sp,32 - 4bfc: d8c00904 addi r3,sp,36 - 4c00: d8800885 stb r2,34(sp) - 4c04: 003f6506 br 499c <___vfprintf_internal_r+0x1ba0> - 4c08: d9014c17 ldw r4,1328(sp) - 4c0c: 2084703a and r2,r4,r2 - 4c10: 103f9c26 beq r2,zero,4a84 <___vfprintf_internal_r+0x1c88> - 4c14: 003f6606 br 49b0 <___vfprintf_internal_r+0x1bb4> - 4c18: d9800804 addi r6,sp,32 - 4c1c: d8c00884 addi r3,sp,34 - 4c20: 003f5e06 br 499c <___vfprintf_internal_r+0x1ba0> - 4c24: 00800b44 movi r2,45 - 4c28: 0121c83a sub r16,zero,r4 - 4c2c: d8800845 stb r2,33(sp) - 4c30: 003f3d06 br 4928 <___vfprintf_internal_r+0x1b2c> - 4c34: 00800084 movi r2,2 - 4c38: 1105c83a sub r2,r2,r4 - 4c3c: 003fe606 br 4bd8 <___vfprintf_internal_r+0x1ddc> - 4c40: d8014515 stw zero,1300(sp) - 4c44: dc814715 stw r18,1308(sp) - 4c48: 003fb106 br 4b10 <___vfprintf_internal_r+0x1d14> - 4c4c: 000d883a mov r6,zero - 4c50: 000f883a mov r7,zero - 4c54: 8009883a mov r4,r16 - 4c58: 880b883a mov r5,r17 - 4c5c: 000b8b00 call b8b0 <__nedf2> - 4c60: 103f9f26 beq r2,zero,4ae0 <___vfprintf_internal_r+0x1ce4> - 4c64: 00800044 movi r2,1 - 4c68: 1509c83a sub r4,r2,r20 - 4c6c: d9000515 stw r4,20(sp) - 4c70: 003f9b06 br 4ae0 <___vfprintf_internal_r+0x1ce4> - 4c74: 98000d1e bne r19,zero,4cac <___vfprintf_internal_r+0x1eb0> - 4c78: d8c14c17 ldw r3,1328(sp) - 4c7c: 1880004c andi r2,r3,1 - 4c80: 10000a1e bne r2,zero,4cac <___vfprintf_internal_r+0x1eb0> - 4c84: 01000044 movi r4,1 - 4c88: 200f883a mov r7,r4 - 4c8c: d9014515 stw r4,1300(sp) - 4c90: 003f4a06 br 49bc <___vfprintf_internal_r+0x1bc0> - 4c94: 3cc00017 ldw r19,0(r7) - 4c98: 39c00104 addi r7,r7,4 - 4c9c: 983d0e0e bge r19,zero,40d8 <___vfprintf_internal_r+0x12dc> - 4ca0: b8c00007 ldb r3,0(r23) - 4ca4: 04ffffc4 movi r19,-1 - 4ca8: 0038d306 br 2ff8 <___vfprintf_internal_r+0x1fc> - 4cac: 9cc00084 addi r19,r19,2 - 4cb0: dcc14515 stw r19,1300(sp) - 4cb4: 980f883a mov r7,r19 - 4cb8: 983f400e bge r19,zero,49bc <___vfprintf_internal_r+0x1bc0> - 4cbc: 003f7306 br 4a8c <___vfprintf_internal_r+0x1c90> - -00004cc0 <__vfprintf_internal>: - 4cc0: 00800074 movhi r2,1 - 4cc4: 10887e04 addi r2,r2,8696 - 4cc8: 2013883a mov r9,r4 - 4ccc: 11000017 ldw r4,0(r2) - 4cd0: 2805883a mov r2,r5 - 4cd4: 300f883a mov r7,r6 - 4cd8: 480b883a mov r5,r9 - 4cdc: 100d883a mov r6,r2 - 4ce0: 0002dfc1 jmpi 2dfc <___vfprintf_internal_r> - -00004ce4 <__swsetup_r>: - 4ce4: 00800074 movhi r2,1 - 4ce8: 10887e04 addi r2,r2,8696 - 4cec: 10c00017 ldw r3,0(r2) - 4cf0: defffd04 addi sp,sp,-12 - 4cf4: dc400115 stw r17,4(sp) - 4cf8: dc000015 stw r16,0(sp) - 4cfc: dfc00215 stw ra,8(sp) - 4d00: 2023883a mov r17,r4 - 4d04: 2821883a mov r16,r5 - 4d08: 18000226 beq r3,zero,4d14 <__swsetup_r+0x30> - 4d0c: 18800e17 ldw r2,56(r3) - 4d10: 10001f26 beq r2,zero,4d90 <__swsetup_r+0xac> - 4d14: 8100030b ldhu r4,12(r16) - 4d18: 2080020c andi r2,r4,8 - 4d1c: 10002826 beq r2,zero,4dc0 <__swsetup_r+0xdc> - 4d20: 81400417 ldw r5,16(r16) - 4d24: 28001d26 beq r5,zero,4d9c <__swsetup_r+0xb8> - 4d28: 2080004c andi r2,r4,1 - 4d2c: 1005003a cmpeq r2,r2,zero - 4d30: 10000b26 beq r2,zero,4d60 <__swsetup_r+0x7c> - 4d34: 2080008c andi r2,r4,2 - 4d38: 10001226 beq r2,zero,4d84 <__swsetup_r+0xa0> - 4d3c: 0005883a mov r2,zero - 4d40: 80800215 stw r2,8(r16) - 4d44: 28000b26 beq r5,zero,4d74 <__swsetup_r+0x90> - 4d48: 0005883a mov r2,zero - 4d4c: dfc00217 ldw ra,8(sp) - 4d50: dc400117 ldw r17,4(sp) - 4d54: dc000017 ldw r16,0(sp) - 4d58: dec00304 addi sp,sp,12 - 4d5c: f800283a ret - 4d60: 80800517 ldw r2,20(r16) - 4d64: 80000215 stw zero,8(r16) - 4d68: 0085c83a sub r2,zero,r2 - 4d6c: 80800615 stw r2,24(r16) - 4d70: 283ff51e bne r5,zero,4d48 <__swsetup_r+0x64> - 4d74: 2080200c andi r2,r4,128 - 4d78: 103ff326 beq r2,zero,4d48 <__swsetup_r+0x64> - 4d7c: 00bfffc4 movi r2,-1 - 4d80: 003ff206 br 4d4c <__swsetup_r+0x68> - 4d84: 80800517 ldw r2,20(r16) - 4d88: 80800215 stw r2,8(r16) - 4d8c: 003fed06 br 4d44 <__swsetup_r+0x60> - 4d90: 1809883a mov r4,r3 - 4d94: 00068b00 call 68b0 <__sinit> - 4d98: 003fde06 br 4d14 <__swsetup_r+0x30> - 4d9c: 20c0a00c andi r3,r4,640 - 4da0: 00808004 movi r2,512 - 4da4: 18bfe026 beq r3,r2,4d28 <__swsetup_r+0x44> - 4da8: 8809883a mov r4,r17 - 4dac: 800b883a mov r5,r16 - 4db0: 000765c0 call 765c <__smakebuf_r> - 4db4: 8100030b ldhu r4,12(r16) - 4db8: 81400417 ldw r5,16(r16) - 4dbc: 003fda06 br 4d28 <__swsetup_r+0x44> - 4dc0: 2080040c andi r2,r4,16 - 4dc4: 103fed26 beq r2,zero,4d7c <__swsetup_r+0x98> - 4dc8: 2080010c andi r2,r4,4 - 4dcc: 10001226 beq r2,zero,4e18 <__swsetup_r+0x134> - 4dd0: 81400c17 ldw r5,48(r16) - 4dd4: 28000526 beq r5,zero,4dec <__swsetup_r+0x108> - 4dd8: 80801004 addi r2,r16,64 - 4ddc: 28800226 beq r5,r2,4de8 <__swsetup_r+0x104> - 4de0: 8809883a mov r4,r17 - 4de4: 0006c680 call 6c68 <_free_r> - 4de8: 80000c15 stw zero,48(r16) - 4dec: 8080030b ldhu r2,12(r16) - 4df0: 81400417 ldw r5,16(r16) - 4df4: 80000115 stw zero,4(r16) - 4df8: 10bff6cc andi r2,r2,65499 - 4dfc: 8080030d sth r2,12(r16) - 4e00: 81400015 stw r5,0(r16) - 4e04: 8080030b ldhu r2,12(r16) - 4e08: 10800214 ori r2,r2,8 - 4e0c: 113fffcc andi r4,r2,65535 - 4e10: 8080030d sth r2,12(r16) - 4e14: 003fc306 br 4d24 <__swsetup_r+0x40> - 4e18: 81400417 ldw r5,16(r16) - 4e1c: 003ff906 br 4e04 <__swsetup_r+0x120> - -00004e20 : - 4e20: 28c00417 ldw r3,16(r5) - 4e24: 20800417 ldw r2,16(r4) - 4e28: defff104 addi sp,sp,-60 - 4e2c: dfc00e15 stw ra,56(sp) - 4e30: df000d15 stw fp,52(sp) - 4e34: ddc00c15 stw r23,48(sp) - 4e38: dd800b15 stw r22,44(sp) - 4e3c: dd400a15 stw r21,40(sp) - 4e40: dd000915 stw r20,36(sp) - 4e44: dcc00815 stw r19,32(sp) - 4e48: dc800715 stw r18,28(sp) - 4e4c: dc400615 stw r17,24(sp) - 4e50: dc000515 stw r16,20(sp) - 4e54: d9000315 stw r4,12(sp) - 4e58: d9400415 stw r5,16(sp) - 4e5c: 10c07f16 blt r2,r3,505c - 4e60: 1d3fffc4 addi r20,r3,-1 - 4e64: d8c00417 ldw r3,16(sp) - 4e68: d9000317 ldw r4,12(sp) - 4e6c: a505883a add r2,r20,r20 - 4e70: 1085883a add r2,r2,r2 - 4e74: 1cc00504 addi r19,r3,20 - 4e78: 25c00504 addi r23,r4,20 - 4e7c: 98ad883a add r22,r19,r2 - 4e80: 15c7883a add r3,r2,r23 - 4e84: b1400017 ldw r5,0(r22) - 4e88: 19000017 ldw r4,0(r3) - 4e8c: d8c00015 stw r3,0(sp) - 4e90: 29400044 addi r5,r5,1 - 4e94: d9000215 stw r4,8(sp) - 4e98: 0002c140 call 2c14 <__udivsi3> - 4e9c: 1039883a mov fp,r2 - 4ea0: 10003d1e bne r2,zero,4f98 - 4ea4: d9400417 ldw r5,16(sp) - 4ea8: d9000317 ldw r4,12(sp) - 4eac: 00083880 call 8388 <__mcmp> - 4eb0: 10002c16 blt r2,zero,4f64 - 4eb4: e7000044 addi fp,fp,1 - 4eb8: b80f883a mov r7,r23 - 4ebc: 0011883a mov r8,zero - 4ec0: 0009883a mov r4,zero - 4ec4: 99400017 ldw r5,0(r19) - 4ec8: 38c00017 ldw r3,0(r7) - 4ecc: 9cc00104 addi r19,r19,4 - 4ed0: 28bfffcc andi r2,r5,65535 - 4ed4: 2085883a add r2,r4,r2 - 4ed8: 11bfffcc andi r6,r2,65535 - 4edc: 193fffcc andi r4,r3,65535 - 4ee0: 1004d43a srli r2,r2,16 - 4ee4: 280ad43a srli r5,r5,16 - 4ee8: 2189c83a sub r4,r4,r6 - 4eec: 2209883a add r4,r4,r8 - 4ef0: 1806d43a srli r3,r3,16 - 4ef4: 288b883a add r5,r5,r2 - 4ef8: 200dd43a srai r6,r4,16 - 4efc: 28bfffcc andi r2,r5,65535 - 4f00: 1887c83a sub r3,r3,r2 - 4f04: 1987883a add r3,r3,r6 - 4f08: 3900000d sth r4,0(r7) - 4f0c: 38c0008d sth r3,2(r7) - 4f10: 2808d43a srli r4,r5,16 - 4f14: 39c00104 addi r7,r7,4 - 4f18: 1811d43a srai r8,r3,16 - 4f1c: b4ffe92e bgeu r22,r19,4ec4 - 4f20: a505883a add r2,r20,r20 - 4f24: 1085883a add r2,r2,r2 - 4f28: b885883a add r2,r23,r2 - 4f2c: 10c00017 ldw r3,0(r2) - 4f30: 18000c1e bne r3,zero,4f64 - 4f34: 113fff04 addi r4,r2,-4 - 4f38: b900082e bgeu r23,r4,4f5c - 4f3c: 10bfff17 ldw r2,-4(r2) - 4f40: 10000326 beq r2,zero,4f50 - 4f44: 00000506 br 4f5c - 4f48: 20800017 ldw r2,0(r4) - 4f4c: 1000031e bne r2,zero,4f5c - 4f50: 213fff04 addi r4,r4,-4 - 4f54: a53fffc4 addi r20,r20,-1 - 4f58: b93ffb36 bltu r23,r4,4f48 - 4f5c: d9000317 ldw r4,12(sp) - 4f60: 25000415 stw r20,16(r4) - 4f64: e005883a mov r2,fp - 4f68: dfc00e17 ldw ra,56(sp) - 4f6c: df000d17 ldw fp,52(sp) - 4f70: ddc00c17 ldw r23,48(sp) - 4f74: dd800b17 ldw r22,44(sp) - 4f78: dd400a17 ldw r21,40(sp) - 4f7c: dd000917 ldw r20,36(sp) - 4f80: dcc00817 ldw r19,32(sp) - 4f84: dc800717 ldw r18,28(sp) - 4f88: dc400617 ldw r17,24(sp) - 4f8c: dc000517 ldw r16,20(sp) - 4f90: dec00f04 addi sp,sp,60 - 4f94: f800283a ret - 4f98: b823883a mov r17,r23 - 4f9c: 9825883a mov r18,r19 - 4fa0: d8000115 stw zero,4(sp) - 4fa4: 002b883a mov r21,zero - 4fa8: 94000017 ldw r16,0(r18) - 4fac: e009883a mov r4,fp - 4fb0: 94800104 addi r18,r18,4 - 4fb4: 817fffcc andi r5,r16,65535 - 4fb8: 0002c240 call 2c24 <__mulsi3> - 4fbc: 800ad43a srli r5,r16,16 - 4fc0: e009883a mov r4,fp - 4fc4: a8a1883a add r16,r21,r2 - 4fc8: 0002c240 call 2c24 <__mulsi3> - 4fcc: 89000017 ldw r4,0(r17) - 4fd0: 80ffffcc andi r3,r16,65535 - 4fd4: 8020d43a srli r16,r16,16 - 4fd8: 217fffcc andi r5,r4,65535 - 4fdc: 28cbc83a sub r5,r5,r3 - 4fe0: d8c00117 ldw r3,4(sp) - 4fe4: 2008d43a srli r4,r4,16 - 4fe8: 1405883a add r2,r2,r16 - 4fec: 28cb883a add r5,r5,r3 - 4ff0: 280dd43a srai r6,r5,16 - 4ff4: 10ffffcc andi r3,r2,65535 - 4ff8: 20c9c83a sub r4,r4,r3 - 4ffc: 2189883a add r4,r4,r6 - 5000: 8900008d sth r4,2(r17) - 5004: 2009d43a srai r4,r4,16 - 5008: 8940000d sth r5,0(r17) - 500c: 102ad43a srli r21,r2,16 - 5010: 8c400104 addi r17,r17,4 - 5014: d9000115 stw r4,4(sp) - 5018: b4bfe32e bgeu r22,r18,4fa8 - 501c: d9000217 ldw r4,8(sp) - 5020: 203fa01e bne r4,zero,4ea4 - 5024: d8800017 ldw r2,0(sp) - 5028: 10ffff04 addi r3,r2,-4 - 502c: b8c0082e bgeu r23,r3,5050 - 5030: 10bfff17 ldw r2,-4(r2) - 5034: 10000326 beq r2,zero,5044 - 5038: 00000506 br 5050 - 503c: 18800017 ldw r2,0(r3) - 5040: 1000031e bne r2,zero,5050 - 5044: 18ffff04 addi r3,r3,-4 - 5048: a53fffc4 addi r20,r20,-1 - 504c: b8fffb36 bltu r23,r3,503c - 5050: d8c00317 ldw r3,12(sp) - 5054: 1d000415 stw r20,16(r3) - 5058: 003f9206 br 4ea4 - 505c: 0005883a mov r2,zero - 5060: 003fc106 br 4f68 - -00005064 <_dtoa_r>: - 5064: 22001017 ldw r8,64(r4) - 5068: deffda04 addi sp,sp,-152 - 506c: dd402115 stw r21,132(sp) - 5070: dd002015 stw r20,128(sp) - 5074: dc801e15 stw r18,120(sp) - 5078: dc401d15 stw r17,116(sp) - 507c: dfc02515 stw ra,148(sp) - 5080: df002415 stw fp,144(sp) - 5084: ddc02315 stw r23,140(sp) - 5088: dd802215 stw r22,136(sp) - 508c: dcc01f15 stw r19,124(sp) - 5090: dc001c15 stw r16,112(sp) - 5094: d9001615 stw r4,88(sp) - 5098: 3023883a mov r17,r6 - 509c: 2829883a mov r20,r5 - 50a0: d9c01715 stw r7,92(sp) - 50a4: dc802817 ldw r18,160(sp) - 50a8: 302b883a mov r21,r6 - 50ac: 40000a26 beq r8,zero,50d8 <_dtoa_r+0x74> - 50b0: 20801117 ldw r2,68(r4) - 50b4: 400b883a mov r5,r8 - 50b8: 40800115 stw r2,4(r8) - 50bc: 20c01117 ldw r3,68(r4) - 50c0: 00800044 movi r2,1 - 50c4: 10c4983a sll r2,r2,r3 - 50c8: 40800215 stw r2,8(r8) - 50cc: 000822c0 call 822c <_Bfree> - 50d0: d8c01617 ldw r3,88(sp) - 50d4: 18001015 stw zero,64(r3) - 50d8: 8800a316 blt r17,zero,5368 <_dtoa_r+0x304> - 50dc: 90000015 stw zero,0(r18) - 50e0: a8dffc2c andhi r3,r21,32752 - 50e4: 009ffc34 movhi r2,32752 - 50e8: 18809126 beq r3,r2,5330 <_dtoa_r+0x2cc> - 50ec: 000d883a mov r6,zero - 50f0: 000f883a mov r7,zero - 50f4: a009883a mov r4,r20 - 50f8: a80b883a mov r5,r21 - 50fc: dd001215 stw r20,72(sp) - 5100: dd401315 stw r21,76(sp) - 5104: 000b8b00 call b8b0 <__nedf2> - 5108: 1000171e bne r2,zero,5168 <_dtoa_r+0x104> - 510c: d9802717 ldw r6,156(sp) - 5110: 00800044 movi r2,1 - 5114: 30800015 stw r2,0(r6) - 5118: d8802917 ldw r2,164(sp) - 511c: 10029b26 beq r2,zero,5b8c <_dtoa_r+0xb28> - 5120: d9002917 ldw r4,164(sp) - 5124: 00800074 movhi r2,1 - 5128: 1080f144 addi r2,r2,965 - 512c: 10ffffc4 addi r3,r2,-1 - 5130: 20800015 stw r2,0(r4) - 5134: 1805883a mov r2,r3 - 5138: dfc02517 ldw ra,148(sp) - 513c: df002417 ldw fp,144(sp) - 5140: ddc02317 ldw r23,140(sp) - 5144: dd802217 ldw r22,136(sp) - 5148: dd402117 ldw r21,132(sp) - 514c: dd002017 ldw r20,128(sp) - 5150: dcc01f17 ldw r19,124(sp) - 5154: dc801e17 ldw r18,120(sp) - 5158: dc401d17 ldw r17,116(sp) - 515c: dc001c17 ldw r16,112(sp) - 5160: dec02604 addi sp,sp,152 - 5164: f800283a ret - 5168: d9001617 ldw r4,88(sp) - 516c: d9401217 ldw r5,72(sp) - 5170: d8800104 addi r2,sp,4 - 5174: a80d883a mov r6,r21 - 5178: d9c00204 addi r7,sp,8 - 517c: d8800015 stw r2,0(sp) - 5180: 00088680 call 8868 <__d2b> - 5184: d8800715 stw r2,28(sp) - 5188: a804d53a srli r2,r21,20 - 518c: 1101ffcc andi r4,r2,2047 - 5190: 20008626 beq r4,zero,53ac <_dtoa_r+0x348> - 5194: d8c01217 ldw r3,72(sp) - 5198: 00800434 movhi r2,16 - 519c: 10bfffc4 addi r2,r2,-1 - 51a0: ddc00117 ldw r23,4(sp) - 51a4: a884703a and r2,r21,r2 - 51a8: 1811883a mov r8,r3 - 51ac: 124ffc34 orhi r9,r2,16368 - 51b0: 25bf0044 addi r22,r4,-1023 - 51b4: d8000815 stw zero,32(sp) - 51b8: 0005883a mov r2,zero - 51bc: 00cffe34 movhi r3,16376 - 51c0: 480b883a mov r5,r9 - 51c4: 4009883a mov r4,r8 - 51c8: 180f883a mov r7,r3 - 51cc: 100d883a mov r6,r2 - 51d0: 000b1180 call b118 <__subdf3> - 51d4: 0218dbf4 movhi r8,25455 - 51d8: 4210d844 addi r8,r8,17249 - 51dc: 024ff4f4 movhi r9,16339 - 51e0: 4a61e9c4 addi r9,r9,-30809 - 51e4: 480f883a mov r7,r9 - 51e8: 400d883a mov r6,r8 - 51ec: 180b883a mov r5,r3 - 51f0: 1009883a mov r4,r2 - 51f4: 000b20c0 call b20c <__muldf3> - 51f8: 0222d874 movhi r8,35681 - 51fc: 42322cc4 addi r8,r8,-14157 - 5200: 024ff1f4 movhi r9,16327 - 5204: 4a628a04 addi r9,r9,-30168 - 5208: 480f883a mov r7,r9 - 520c: 400d883a mov r6,r8 - 5210: 180b883a mov r5,r3 - 5214: 1009883a mov r4,r2 - 5218: 000b1980 call b198 <__adddf3> - 521c: b009883a mov r4,r22 - 5220: 1021883a mov r16,r2 - 5224: 1823883a mov r17,r3 - 5228: 000bad00 call bad0 <__floatsidf> - 522c: 021427f4 movhi r8,20639 - 5230: 421e7ec4 addi r8,r8,31227 - 5234: 024ff4f4 movhi r9,16339 - 5238: 4a5104c4 addi r9,r9,17427 - 523c: 480f883a mov r7,r9 - 5240: 400d883a mov r6,r8 - 5244: 180b883a mov r5,r3 - 5248: 1009883a mov r4,r2 - 524c: 000b20c0 call b20c <__muldf3> - 5250: 180f883a mov r7,r3 - 5254: 880b883a mov r5,r17 - 5258: 100d883a mov r6,r2 - 525c: 8009883a mov r4,r16 - 5260: 000b1980 call b198 <__adddf3> - 5264: 1009883a mov r4,r2 - 5268: 180b883a mov r5,r3 - 526c: 1021883a mov r16,r2 - 5270: 1823883a mov r17,r3 - 5274: 000bbc80 call bbc8 <__fixdfsi> - 5278: 000d883a mov r6,zero - 527c: 000f883a mov r7,zero - 5280: 8009883a mov r4,r16 - 5284: 880b883a mov r5,r17 - 5288: d8800d15 stw r2,52(sp) - 528c: 000ba480 call ba48 <__ltdf2> - 5290: 10031716 blt r2,zero,5ef0 <_dtoa_r+0xe8c> - 5294: d8c00d17 ldw r3,52(sp) - 5298: 00800584 movi r2,22 - 529c: 10c1482e bgeu r2,r3,57c0 <_dtoa_r+0x75c> - 52a0: 01000044 movi r4,1 - 52a4: d9000c15 stw r4,48(sp) - 52a8: bd85c83a sub r2,r23,r22 - 52ac: 11bfffc4 addi r6,r2,-1 - 52b0: 30030b16 blt r6,zero,5ee0 <_dtoa_r+0xe7c> - 52b4: d9800a15 stw r6,40(sp) - 52b8: d8001115 stw zero,68(sp) - 52bc: d8c00d17 ldw r3,52(sp) - 52c0: 1802ff16 blt r3,zero,5ec0 <_dtoa_r+0xe5c> - 52c4: d9000a17 ldw r4,40(sp) - 52c8: d8c00915 stw r3,36(sp) - 52cc: d8001015 stw zero,64(sp) - 52d0: 20c9883a add r4,r4,r3 - 52d4: d9000a15 stw r4,40(sp) - 52d8: d9001717 ldw r4,92(sp) - 52dc: 00800244 movi r2,9 - 52e0: 11004636 bltu r2,r4,53fc <_dtoa_r+0x398> - 52e4: 00800144 movi r2,5 - 52e8: 11020416 blt r2,r4,5afc <_dtoa_r+0xa98> - 52ec: 04400044 movi r17,1 - 52f0: d8c01717 ldw r3,92(sp) - 52f4: 00800144 movi r2,5 - 52f8: 10c1ed36 bltu r2,r3,5ab0 <_dtoa_r+0xa4c> - 52fc: 18c5883a add r2,r3,r3 - 5300: 1085883a add r2,r2,r2 - 5304: 00c00034 movhi r3,0 - 5308: 18d4c604 addi r3,r3,21272 - 530c: 10c5883a add r2,r2,r3 - 5310: 11000017 ldw r4,0(r2) - 5314: 2000683a jmp r4 - 5318: 00005404 movi zero,336 - 531c: 00005404 movi zero,336 - 5320: 00005e04 movi zero,376 - 5324: 00005ddc xori zero,zero,375 - 5328: 00005e20 cmpeqi zero,zero,376 - 532c: 00005e2c andhi zero,zero,376 - 5330: d9002717 ldw r4,156(sp) - 5334: 0089c3c4 movi r2,9999 - 5338: 20800015 stw r2,0(r4) - 533c: a0001026 beq r20,zero,5380 <_dtoa_r+0x31c> - 5340: 00c00074 movhi r3,1 - 5344: 18c0fd04 addi r3,r3,1012 - 5348: d9802917 ldw r6,164(sp) - 534c: 303f7926 beq r6,zero,5134 <_dtoa_r+0xd0> - 5350: 188000c7 ldb r2,3(r3) - 5354: 190000c4 addi r4,r3,3 - 5358: 1000101e bne r2,zero,539c <_dtoa_r+0x338> - 535c: d8802917 ldw r2,164(sp) - 5360: 11000015 stw r4,0(r2) - 5364: 003f7306 br 5134 <_dtoa_r+0xd0> - 5368: 00a00034 movhi r2,32768 - 536c: 10bfffc4 addi r2,r2,-1 - 5370: 00c00044 movi r3,1 - 5374: 88aa703a and r21,r17,r2 - 5378: 90c00015 stw r3,0(r18) - 537c: 003f5806 br 50e0 <_dtoa_r+0x7c> - 5380: 00800434 movhi r2,16 - 5384: 10bfffc4 addi r2,r2,-1 - 5388: a884703a and r2,r21,r2 - 538c: 103fec1e bne r2,zero,5340 <_dtoa_r+0x2dc> - 5390: 00c00074 movhi r3,1 - 5394: 18c0fa04 addi r3,r3,1000 - 5398: 003feb06 br 5348 <_dtoa_r+0x2e4> - 539c: d8802917 ldw r2,164(sp) - 53a0: 19000204 addi r4,r3,8 - 53a4: 11000015 stw r4,0(r2) - 53a8: 003f6206 br 5134 <_dtoa_r+0xd0> - 53ac: ddc00117 ldw r23,4(sp) - 53b0: d8800217 ldw r2,8(sp) - 53b4: 01000804 movi r4,32 - 53b8: b8c10c84 addi r3,r23,1074 - 53bc: 18a3883a add r17,r3,r2 - 53c0: 2441b80e bge r4,r17,5aa4 <_dtoa_r+0xa40> - 53c4: 00c01004 movi r3,64 - 53c8: 1c47c83a sub r3,r3,r17 - 53cc: 88bff804 addi r2,r17,-32 - 53d0: a8c6983a sll r3,r21,r3 - 53d4: a084d83a srl r2,r20,r2 - 53d8: 1888b03a or r4,r3,r2 - 53dc: 000bca00 call bca0 <__floatunsidf> - 53e0: 1011883a mov r8,r2 - 53e4: 00bf8434 movhi r2,65040 - 53e8: 01000044 movi r4,1 - 53ec: 10d3883a add r9,r2,r3 - 53f0: 8dbef344 addi r22,r17,-1075 - 53f4: d9000815 stw r4,32(sp) - 53f8: 003f6f06 br 51b8 <_dtoa_r+0x154> - 53fc: d8001715 stw zero,92(sp) - 5400: 04400044 movi r17,1 - 5404: 00bfffc4 movi r2,-1 - 5408: 00c00044 movi r3,1 - 540c: d8800e15 stw r2,56(sp) - 5410: d8002615 stw zero,152(sp) - 5414: d8800f15 stw r2,60(sp) - 5418: d8c00b15 stw r3,44(sp) - 541c: 1021883a mov r16,r2 - 5420: d8801617 ldw r2,88(sp) - 5424: 10001115 stw zero,68(r2) - 5428: d8801617 ldw r2,88(sp) - 542c: 11401117 ldw r5,68(r2) - 5430: 1009883a mov r4,r2 - 5434: 00087ac0 call 87ac <_Balloc> - 5438: d8c01617 ldw r3,88(sp) - 543c: d8800515 stw r2,20(sp) - 5440: 18801015 stw r2,64(r3) - 5444: 00800384 movi r2,14 - 5448: 14006836 bltu r2,r16,55ec <_dtoa_r+0x588> - 544c: 8805003a cmpeq r2,r17,zero - 5450: 1000661e bne r2,zero,55ec <_dtoa_r+0x588> - 5454: d9000d17 ldw r4,52(sp) - 5458: 0102300e bge zero,r4,5d1c <_dtoa_r+0xcb8> - 545c: 208003cc andi r2,r4,15 - 5460: 100490fa slli r2,r2,3 - 5464: 2025d13a srai r18,r4,4 - 5468: 00c00074 movhi r3,1 - 546c: 18c10f04 addi r3,r3,1084 - 5470: 10c5883a add r2,r2,r3 - 5474: 90c0040c andi r3,r18,16 - 5478: 14000017 ldw r16,0(r2) - 547c: 14400117 ldw r17,4(r2) - 5480: 18036a1e bne r3,zero,622c <_dtoa_r+0x11c8> - 5484: 05800084 movi r22,2 - 5488: 90001026 beq r18,zero,54cc <_dtoa_r+0x468> - 548c: 04c00074 movhi r19,1 - 5490: 9cc14104 addi r19,r19,1284 - 5494: 9080004c andi r2,r18,1 - 5498: 1005003a cmpeq r2,r2,zero - 549c: 1000081e bne r2,zero,54c0 <_dtoa_r+0x45c> - 54a0: 99800017 ldw r6,0(r19) - 54a4: 99c00117 ldw r7,4(r19) - 54a8: 880b883a mov r5,r17 - 54ac: 8009883a mov r4,r16 - 54b0: 000b20c0 call b20c <__muldf3> - 54b4: 1021883a mov r16,r2 - 54b8: b5800044 addi r22,r22,1 - 54bc: 1823883a mov r17,r3 - 54c0: 9025d07a srai r18,r18,1 - 54c4: 9cc00204 addi r19,r19,8 - 54c8: 903ff21e bne r18,zero,5494 <_dtoa_r+0x430> - 54cc: a80b883a mov r5,r21 - 54d0: a009883a mov r4,r20 - 54d4: 880f883a mov r7,r17 - 54d8: 800d883a mov r6,r16 - 54dc: 000b5d00 call b5d0 <__divdf3> - 54e0: 1029883a mov r20,r2 - 54e4: 182b883a mov r21,r3 - 54e8: d8c00c17 ldw r3,48(sp) - 54ec: 1805003a cmpeq r2,r3,zero - 54f0: 1000081e bne r2,zero,5514 <_dtoa_r+0x4b0> - 54f4: 0005883a mov r2,zero - 54f8: 00cffc34 movhi r3,16368 - 54fc: 180f883a mov r7,r3 - 5500: a009883a mov r4,r20 - 5504: a80b883a mov r5,r21 - 5508: 100d883a mov r6,r2 - 550c: 000ba480 call ba48 <__ltdf2> - 5510: 1003fe16 blt r2,zero,650c <_dtoa_r+0x14a8> - 5514: b009883a mov r4,r22 - 5518: 000bad00 call bad0 <__floatsidf> - 551c: 180b883a mov r5,r3 - 5520: 1009883a mov r4,r2 - 5524: a00d883a mov r6,r20 - 5528: a80f883a mov r7,r21 - 552c: 000b20c0 call b20c <__muldf3> - 5530: 0011883a mov r8,zero - 5534: 02500734 movhi r9,16412 - 5538: 1009883a mov r4,r2 - 553c: 180b883a mov r5,r3 - 5540: 480f883a mov r7,r9 - 5544: 400d883a mov r6,r8 - 5548: 000b1980 call b198 <__adddf3> - 554c: d9000f17 ldw r4,60(sp) - 5550: 102d883a mov r22,r2 - 5554: 00bf3034 movhi r2,64704 - 5558: 18b9883a add fp,r3,r2 - 555c: e02f883a mov r23,fp - 5560: 20028f1e bne r4,zero,5fa0 <_dtoa_r+0xf3c> - 5564: 0005883a mov r2,zero - 5568: 00d00534 movhi r3,16404 - 556c: a009883a mov r4,r20 - 5570: a80b883a mov r5,r21 - 5574: 180f883a mov r7,r3 - 5578: 100d883a mov r6,r2 - 557c: 000b1180 call b118 <__subdf3> - 5580: 1009883a mov r4,r2 - 5584: e00f883a mov r7,fp - 5588: 180b883a mov r5,r3 - 558c: b00d883a mov r6,r22 - 5590: 1025883a mov r18,r2 - 5594: 1827883a mov r19,r3 - 5598: 000b9380 call b938 <__gtdf2> - 559c: 00834f16 blt zero,r2,62dc <_dtoa_r+0x1278> - 55a0: e0e0003c xorhi r3,fp,32768 - 55a4: 9009883a mov r4,r18 - 55a8: 980b883a mov r5,r19 - 55ac: 180f883a mov r7,r3 - 55b0: b00d883a mov r6,r22 - 55b4: 000ba480 call ba48 <__ltdf2> - 55b8: 1000080e bge r2,zero,55dc <_dtoa_r+0x578> - 55bc: 0027883a mov r19,zero - 55c0: 0025883a mov r18,zero - 55c4: d8802617 ldw r2,152(sp) - 55c8: df000517 ldw fp,20(sp) - 55cc: d8000615 stw zero,24(sp) - 55d0: 0084303a nor r2,zero,r2 - 55d4: d8800d15 stw r2,52(sp) - 55d8: 00019b06 br 5c48 <_dtoa_r+0xbe4> - 55dc: d9801217 ldw r6,72(sp) - 55e0: d8801317 ldw r2,76(sp) - 55e4: 3029883a mov r20,r6 - 55e8: 102b883a mov r21,r2 - 55ec: d8c00217 ldw r3,8(sp) - 55f0: 18008516 blt r3,zero,5808 <_dtoa_r+0x7a4> - 55f4: d9000d17 ldw r4,52(sp) - 55f8: 00800384 movi r2,14 - 55fc: 11008216 blt r2,r4,5808 <_dtoa_r+0x7a4> - 5600: 200490fa slli r2,r4,3 - 5604: d9802617 ldw r6,152(sp) - 5608: 00c00074 movhi r3,1 - 560c: 18c10f04 addi r3,r3,1084 - 5610: 10c5883a add r2,r2,r3 - 5614: 14800017 ldw r18,0(r2) - 5618: 14c00117 ldw r19,4(r2) - 561c: 30031e16 blt r6,zero,6298 <_dtoa_r+0x1234> - 5620: d9000517 ldw r4,20(sp) - 5624: d8c00f17 ldw r3,60(sp) - 5628: a823883a mov r17,r21 - 562c: a021883a mov r16,r20 - 5630: 192b883a add r21,r3,r4 - 5634: 2039883a mov fp,r4 - 5638: 00000f06 br 5678 <_dtoa_r+0x614> - 563c: 0005883a mov r2,zero - 5640: 00d00934 movhi r3,16420 - 5644: 5009883a mov r4,r10 - 5648: 580b883a mov r5,r11 - 564c: 180f883a mov r7,r3 - 5650: 100d883a mov r6,r2 - 5654: 000b20c0 call b20c <__muldf3> - 5658: 180b883a mov r5,r3 - 565c: 000d883a mov r6,zero - 5660: 000f883a mov r7,zero - 5664: 1009883a mov r4,r2 - 5668: 1021883a mov r16,r2 - 566c: 1823883a mov r17,r3 - 5670: 000b8b00 call b8b0 <__nedf2> - 5674: 10004526 beq r2,zero,578c <_dtoa_r+0x728> - 5678: 900d883a mov r6,r18 - 567c: 980f883a mov r7,r19 - 5680: 8009883a mov r4,r16 - 5684: 880b883a mov r5,r17 - 5688: 000b5d00 call b5d0 <__divdf3> - 568c: 180b883a mov r5,r3 - 5690: 1009883a mov r4,r2 - 5694: 000bbc80 call bbc8 <__fixdfsi> - 5698: 1009883a mov r4,r2 - 569c: 1029883a mov r20,r2 - 56a0: 000bad00 call bad0 <__floatsidf> - 56a4: 180f883a mov r7,r3 - 56a8: 9009883a mov r4,r18 - 56ac: 980b883a mov r5,r19 - 56b0: 100d883a mov r6,r2 - 56b4: 000b20c0 call b20c <__muldf3> - 56b8: 180f883a mov r7,r3 - 56bc: 880b883a mov r5,r17 - 56c0: 8009883a mov r4,r16 - 56c4: 100d883a mov r6,r2 - 56c8: 000b1180 call b118 <__subdf3> - 56cc: 1015883a mov r10,r2 - 56d0: a0800c04 addi r2,r20,48 - 56d4: e0800005 stb r2,0(fp) - 56d8: e7000044 addi fp,fp,1 - 56dc: 1817883a mov r11,r3 - 56e0: e57fd61e bne fp,r21,563c <_dtoa_r+0x5d8> - 56e4: 500d883a mov r6,r10 - 56e8: 180f883a mov r7,r3 - 56ec: 5009883a mov r4,r10 - 56f0: 180b883a mov r5,r3 - 56f4: 000b1980 call b198 <__adddf3> - 56f8: 100d883a mov r6,r2 - 56fc: 9009883a mov r4,r18 - 5700: 980b883a mov r5,r19 - 5704: 180f883a mov r7,r3 - 5708: 1021883a mov r16,r2 - 570c: 1823883a mov r17,r3 - 5710: 000ba480 call ba48 <__ltdf2> - 5714: 10000816 blt r2,zero,5738 <_dtoa_r+0x6d4> - 5718: 980b883a mov r5,r19 - 571c: 800d883a mov r6,r16 - 5720: 880f883a mov r7,r17 - 5724: 9009883a mov r4,r18 - 5728: 000b8280 call b828 <__eqdf2> - 572c: 1000171e bne r2,zero,578c <_dtoa_r+0x728> - 5730: a080004c andi r2,r20,1 - 5734: 10001526 beq r2,zero,578c <_dtoa_r+0x728> - 5738: d8800d17 ldw r2,52(sp) - 573c: d8800415 stw r2,16(sp) - 5740: e009883a mov r4,fp - 5744: 213fffc4 addi r4,r4,-1 - 5748: 20c00007 ldb r3,0(r4) - 574c: 00800e44 movi r2,57 - 5750: 1880081e bne r3,r2,5774 <_dtoa_r+0x710> - 5754: d8800517 ldw r2,20(sp) - 5758: 113ffa1e bne r2,r4,5744 <_dtoa_r+0x6e0> - 575c: d8c00417 ldw r3,16(sp) - 5760: d9800517 ldw r6,20(sp) - 5764: 00800c04 movi r2,48 - 5768: 18c00044 addi r3,r3,1 - 576c: d8c00415 stw r3,16(sp) - 5770: 30800005 stb r2,0(r6) - 5774: 20800003 ldbu r2,0(r4) - 5778: d8c00417 ldw r3,16(sp) - 577c: 27000044 addi fp,r4,1 - 5780: 10800044 addi r2,r2,1 - 5784: d8c00d15 stw r3,52(sp) - 5788: 20800005 stb r2,0(r4) - 578c: d9001617 ldw r4,88(sp) - 5790: d9400717 ldw r5,28(sp) - 5794: 000822c0 call 822c <_Bfree> - 5798: e0000005 stb zero,0(fp) - 579c: d9800d17 ldw r6,52(sp) - 57a0: d8c02717 ldw r3,156(sp) - 57a4: d9002917 ldw r4,164(sp) - 57a8: 30800044 addi r2,r6,1 - 57ac: 18800015 stw r2,0(r3) - 57b0: 20029c26 beq r4,zero,6224 <_dtoa_r+0x11c0> - 57b4: d8c00517 ldw r3,20(sp) - 57b8: 27000015 stw fp,0(r4) - 57bc: 003e5d06 br 5134 <_dtoa_r+0xd0> - 57c0: d9800d17 ldw r6,52(sp) - 57c4: 00c00074 movhi r3,1 - 57c8: 18c10f04 addi r3,r3,1084 - 57cc: d9001217 ldw r4,72(sp) - 57d0: 300490fa slli r2,r6,3 - 57d4: d9401317 ldw r5,76(sp) - 57d8: 10c5883a add r2,r2,r3 - 57dc: 12000017 ldw r8,0(r2) - 57e0: 12400117 ldw r9,4(r2) - 57e4: 400d883a mov r6,r8 - 57e8: 480f883a mov r7,r9 - 57ec: 000ba480 call ba48 <__ltdf2> - 57f0: 1000030e bge r2,zero,5800 <_dtoa_r+0x79c> - 57f4: d8800d17 ldw r2,52(sp) - 57f8: 10bfffc4 addi r2,r2,-1 - 57fc: d8800d15 stw r2,52(sp) - 5800: d8000c15 stw zero,48(sp) - 5804: 003ea806 br 52a8 <_dtoa_r+0x244> - 5808: d9000b17 ldw r4,44(sp) - 580c: 202cc03a cmpne r22,r4,zero - 5810: b000c71e bne r22,zero,5b30 <_dtoa_r+0xacc> - 5814: dc001117 ldw r16,68(sp) - 5818: dc801017 ldw r18,64(sp) - 581c: 0027883a mov r19,zero - 5820: 04000b0e bge zero,r16,5850 <_dtoa_r+0x7ec> - 5824: d8c00a17 ldw r3,40(sp) - 5828: 00c0090e bge zero,r3,5850 <_dtoa_r+0x7ec> - 582c: 8005883a mov r2,r16 - 5830: 1c011316 blt r3,r16,5c80 <_dtoa_r+0xc1c> - 5834: d9000a17 ldw r4,40(sp) - 5838: d9801117 ldw r6,68(sp) - 583c: 80a1c83a sub r16,r16,r2 - 5840: 2089c83a sub r4,r4,r2 - 5844: 308dc83a sub r6,r6,r2 - 5848: d9000a15 stw r4,40(sp) - 584c: d9801115 stw r6,68(sp) - 5850: d8801017 ldw r2,64(sp) - 5854: 0080150e bge zero,r2,58ac <_dtoa_r+0x848> - 5858: d8c00b17 ldw r3,44(sp) - 585c: 1805003a cmpeq r2,r3,zero - 5860: 1001c91e bne r2,zero,5f88 <_dtoa_r+0xf24> - 5864: 04800e0e bge zero,r18,58a0 <_dtoa_r+0x83c> - 5868: d9001617 ldw r4,88(sp) - 586c: 980b883a mov r5,r19 - 5870: 900d883a mov r6,r18 - 5874: 00090780 call 9078 <__pow5mult> - 5878: d9001617 ldw r4,88(sp) - 587c: d9800717 ldw r6,28(sp) - 5880: 100b883a mov r5,r2 - 5884: 1027883a mov r19,r2 - 5888: 0008cbc0 call 8cbc <__multiply> - 588c: d9001617 ldw r4,88(sp) - 5890: d9400717 ldw r5,28(sp) - 5894: 1023883a mov r17,r2 - 5898: 000822c0 call 822c <_Bfree> - 589c: dc400715 stw r17,28(sp) - 58a0: d9001017 ldw r4,64(sp) - 58a4: 248dc83a sub r6,r4,r18 - 58a8: 30010e1e bne r6,zero,5ce4 <_dtoa_r+0xc80> - 58ac: d9001617 ldw r4,88(sp) - 58b0: 04400044 movi r17,1 - 58b4: 880b883a mov r5,r17 - 58b8: 0008f100 call 8f10 <__i2b> - 58bc: d9800917 ldw r6,36(sp) - 58c0: 1025883a mov r18,r2 - 58c4: 0180040e bge zero,r6,58d8 <_dtoa_r+0x874> - 58c8: d9001617 ldw r4,88(sp) - 58cc: 100b883a mov r5,r2 - 58d0: 00090780 call 9078 <__pow5mult> - 58d4: 1025883a mov r18,r2 - 58d8: d8801717 ldw r2,92(sp) - 58dc: 8880f30e bge r17,r2,5cac <_dtoa_r+0xc48> - 58e0: 0023883a mov r17,zero - 58e4: d9800917 ldw r6,36(sp) - 58e8: 30019e1e bne r6,zero,5f64 <_dtoa_r+0xf00> - 58ec: 00c00044 movi r3,1 - 58f0: d9000a17 ldw r4,40(sp) - 58f4: 20c5883a add r2,r4,r3 - 58f8: 10c007cc andi r3,r2,31 - 58fc: 1800841e bne r3,zero,5b10 <_dtoa_r+0xaac> - 5900: 00800704 movi r2,28 - 5904: d9000a17 ldw r4,40(sp) - 5908: d9801117 ldw r6,68(sp) - 590c: 80a1883a add r16,r16,r2 - 5910: 2089883a add r4,r4,r2 - 5914: 308d883a add r6,r6,r2 - 5918: d9000a15 stw r4,40(sp) - 591c: d9801115 stw r6,68(sp) - 5920: d8801117 ldw r2,68(sp) - 5924: 0080050e bge zero,r2,593c <_dtoa_r+0x8d8> - 5928: d9400717 ldw r5,28(sp) - 592c: d9001617 ldw r4,88(sp) - 5930: 100d883a mov r6,r2 - 5934: 0008b700 call 8b70 <__lshift> - 5938: d8800715 stw r2,28(sp) - 593c: d8c00a17 ldw r3,40(sp) - 5940: 00c0050e bge zero,r3,5958 <_dtoa_r+0x8f4> - 5944: d9001617 ldw r4,88(sp) - 5948: 900b883a mov r5,r18 - 594c: 180d883a mov r6,r3 - 5950: 0008b700 call 8b70 <__lshift> - 5954: 1025883a mov r18,r2 - 5958: d9000c17 ldw r4,48(sp) - 595c: 2005003a cmpeq r2,r4,zero - 5960: 10016f26 beq r2,zero,5f20 <_dtoa_r+0xebc> - 5964: d9000f17 ldw r4,60(sp) - 5968: 0102170e bge zero,r4,61c8 <_dtoa_r+0x1164> - 596c: d9800b17 ldw r6,44(sp) - 5970: 3005003a cmpeq r2,r6,zero - 5974: 1000881e bne r2,zero,5b98 <_dtoa_r+0xb34> - 5978: 0400050e bge zero,r16,5990 <_dtoa_r+0x92c> - 597c: d9001617 ldw r4,88(sp) - 5980: 980b883a mov r5,r19 - 5984: 800d883a mov r6,r16 - 5988: 0008b700 call 8b70 <__lshift> - 598c: 1027883a mov r19,r2 - 5990: 8804c03a cmpne r2,r17,zero - 5994: 1002541e bne r2,zero,62e8 <_dtoa_r+0x1284> - 5998: 980b883a mov r5,r19 - 599c: dd800517 ldw r22,20(sp) - 59a0: dcc00615 stw r19,24(sp) - 59a4: a700004c andi fp,r20,1 - 59a8: 2827883a mov r19,r5 - 59ac: d9000717 ldw r4,28(sp) - 59b0: 900b883a mov r5,r18 - 59b4: 0004e200 call 4e20 - 59b8: d9000717 ldw r4,28(sp) - 59bc: d9400617 ldw r5,24(sp) - 59c0: 1023883a mov r17,r2 - 59c4: 8dc00c04 addi r23,r17,48 - 59c8: 00083880 call 8388 <__mcmp> - 59cc: d9001617 ldw r4,88(sp) - 59d0: 900b883a mov r5,r18 - 59d4: 980d883a mov r6,r19 - 59d8: 1029883a mov r20,r2 - 59dc: 00089e40 call 89e4 <__mdiff> - 59e0: 102b883a mov r21,r2 - 59e4: 10800317 ldw r2,12(r2) - 59e8: 1001281e bne r2,zero,5e8c <_dtoa_r+0xe28> - 59ec: d9000717 ldw r4,28(sp) - 59f0: a80b883a mov r5,r21 - 59f4: 00083880 call 8388 <__mcmp> - 59f8: d9001617 ldw r4,88(sp) - 59fc: 1021883a mov r16,r2 - 5a00: a80b883a mov r5,r21 - 5a04: 000822c0 call 822c <_Bfree> - 5a08: 8000041e bne r16,zero,5a1c <_dtoa_r+0x9b8> - 5a0c: d8801717 ldw r2,92(sp) - 5a10: 1000021e bne r2,zero,5a1c <_dtoa_r+0x9b8> - 5a14: e004c03a cmpne r2,fp,zero - 5a18: 10011726 beq r2,zero,5e78 <_dtoa_r+0xe14> - 5a1c: a0010616 blt r20,zero,5e38 <_dtoa_r+0xdd4> - 5a20: a000041e bne r20,zero,5a34 <_dtoa_r+0x9d0> - 5a24: d8c01717 ldw r3,92(sp) - 5a28: 1800021e bne r3,zero,5a34 <_dtoa_r+0x9d0> - 5a2c: e004c03a cmpne r2,fp,zero - 5a30: 10010126 beq r2,zero,5e38 <_dtoa_r+0xdd4> - 5a34: 04023d16 blt zero,r16,632c <_dtoa_r+0x12c8> - 5a38: b5c00005 stb r23,0(r22) - 5a3c: d9800517 ldw r6,20(sp) - 5a40: d9000f17 ldw r4,60(sp) - 5a44: b5800044 addi r22,r22,1 - 5a48: 3105883a add r2,r6,r4 - 5a4c: b0806526 beq r22,r2,5be4 <_dtoa_r+0xb80> - 5a50: d9400717 ldw r5,28(sp) - 5a54: d9001617 ldw r4,88(sp) - 5a58: 01800284 movi r6,10 - 5a5c: 000f883a mov r7,zero - 5a60: 0008f4c0 call 8f4c <__multadd> - 5a64: d8800715 stw r2,28(sp) - 5a68: d8800617 ldw r2,24(sp) - 5a6c: 14c10c26 beq r2,r19,5ea0 <_dtoa_r+0xe3c> - 5a70: d9400617 ldw r5,24(sp) - 5a74: d9001617 ldw r4,88(sp) - 5a78: 01800284 movi r6,10 - 5a7c: 000f883a mov r7,zero - 5a80: 0008f4c0 call 8f4c <__multadd> - 5a84: d9001617 ldw r4,88(sp) - 5a88: 980b883a mov r5,r19 - 5a8c: 01800284 movi r6,10 - 5a90: 000f883a mov r7,zero - 5a94: d8800615 stw r2,24(sp) - 5a98: 0008f4c0 call 8f4c <__multadd> - 5a9c: 1027883a mov r19,r2 - 5aa0: 003fc206 br 59ac <_dtoa_r+0x948> - 5aa4: 2445c83a sub r2,r4,r17 - 5aa8: a088983a sll r4,r20,r2 - 5aac: 003e4b06 br 53dc <_dtoa_r+0x378> - 5ab0: 01bfffc4 movi r6,-1 - 5ab4: 00800044 movi r2,1 - 5ab8: d9800e15 stw r6,56(sp) - 5abc: d9800f15 stw r6,60(sp) - 5ac0: d8800b15 stw r2,44(sp) - 5ac4: d8c01617 ldw r3,88(sp) - 5ac8: 008005c4 movi r2,23 - 5acc: 18001115 stw zero,68(r3) - 5ad0: 1580082e bgeu r2,r22,5af4 <_dtoa_r+0xa90> - 5ad4: 00c00104 movi r3,4 - 5ad8: 0009883a mov r4,zero - 5adc: 18c7883a add r3,r3,r3 - 5ae0: 18800504 addi r2,r3,20 - 5ae4: 21000044 addi r4,r4,1 - 5ae8: b0bffc2e bgeu r22,r2,5adc <_dtoa_r+0xa78> - 5aec: d9801617 ldw r6,88(sp) - 5af0: 31001115 stw r4,68(r6) - 5af4: dc000f17 ldw r16,60(sp) - 5af8: 003e4b06 br 5428 <_dtoa_r+0x3c4> - 5afc: d9801717 ldw r6,92(sp) - 5b00: 0023883a mov r17,zero - 5b04: 31bfff04 addi r6,r6,-4 - 5b08: d9801715 stw r6,92(sp) - 5b0c: 003df806 br 52f0 <_dtoa_r+0x28c> - 5b10: 00800804 movi r2,32 - 5b14: 10c9c83a sub r4,r2,r3 - 5b18: 00c00104 movi r3,4 - 5b1c: 19005a16 blt r3,r4,5c88 <_dtoa_r+0xc24> - 5b20: 008000c4 movi r2,3 - 5b24: 113f7e16 blt r2,r4,5920 <_dtoa_r+0x8bc> - 5b28: 20800704 addi r2,r4,28 - 5b2c: 003f7506 br 5904 <_dtoa_r+0x8a0> - 5b30: d9801717 ldw r6,92(sp) - 5b34: 00800044 movi r2,1 - 5b38: 1180a10e bge r2,r6,5dc0 <_dtoa_r+0xd5c> - 5b3c: d9800f17 ldw r6,60(sp) - 5b40: d8c01017 ldw r3,64(sp) - 5b44: 30bfffc4 addi r2,r6,-1 - 5b48: 1881c616 blt r3,r2,6264 <_dtoa_r+0x1200> - 5b4c: 18a5c83a sub r18,r3,r2 - 5b50: d8800f17 ldw r2,60(sp) - 5b54: 10026216 blt r2,zero,64e0 <_dtoa_r+0x147c> - 5b58: dc001117 ldw r16,68(sp) - 5b5c: 1007883a mov r3,r2 - 5b60: d9800a17 ldw r6,40(sp) - 5b64: d8801117 ldw r2,68(sp) - 5b68: d9001617 ldw r4,88(sp) - 5b6c: 30cd883a add r6,r6,r3 - 5b70: 10c5883a add r2,r2,r3 - 5b74: 01400044 movi r5,1 - 5b78: d9800a15 stw r6,40(sp) - 5b7c: d8801115 stw r2,68(sp) - 5b80: 0008f100 call 8f10 <__i2b> - 5b84: 1027883a mov r19,r2 - 5b88: 003f2506 br 5820 <_dtoa_r+0x7bc> - 5b8c: 00c00074 movhi r3,1 - 5b90: 18c0f104 addi r3,r3,964 - 5b94: 003d6706 br 5134 <_dtoa_r+0xd0> - 5b98: dd800517 ldw r22,20(sp) - 5b9c: 04000044 movi r16,1 - 5ba0: 00000706 br 5bc0 <_dtoa_r+0xb5c> - 5ba4: d9400717 ldw r5,28(sp) - 5ba8: d9001617 ldw r4,88(sp) - 5bac: 01800284 movi r6,10 - 5bb0: 000f883a mov r7,zero - 5bb4: 0008f4c0 call 8f4c <__multadd> - 5bb8: d8800715 stw r2,28(sp) - 5bbc: 84000044 addi r16,r16,1 - 5bc0: d9000717 ldw r4,28(sp) - 5bc4: 900b883a mov r5,r18 - 5bc8: 0004e200 call 4e20 - 5bcc: 15c00c04 addi r23,r2,48 - 5bd0: b5c00005 stb r23,0(r22) - 5bd4: d8c00f17 ldw r3,60(sp) - 5bd8: b5800044 addi r22,r22,1 - 5bdc: 80fff116 blt r16,r3,5ba4 <_dtoa_r+0xb40> - 5be0: d8000615 stw zero,24(sp) - 5be4: d9400717 ldw r5,28(sp) - 5be8: d9001617 ldw r4,88(sp) - 5bec: 01800044 movi r6,1 - 5bf0: 0008b700 call 8b70 <__lshift> - 5bf4: 1009883a mov r4,r2 - 5bf8: 900b883a mov r5,r18 - 5bfc: d8800715 stw r2,28(sp) - 5c00: 00083880 call 8388 <__mcmp> - 5c04: 00803c0e bge zero,r2,5cf8 <_dtoa_r+0xc94> - 5c08: b009883a mov r4,r22 - 5c0c: 213fffc4 addi r4,r4,-1 - 5c10: 21400003 ldbu r5,0(r4) - 5c14: 00800e44 movi r2,57 - 5c18: 28c03fcc andi r3,r5,255 - 5c1c: 18c0201c xori r3,r3,128 - 5c20: 18ffe004 addi r3,r3,-128 - 5c24: 1881981e bne r3,r2,6288 <_dtoa_r+0x1224> - 5c28: d9800517 ldw r6,20(sp) - 5c2c: 21bff71e bne r4,r6,5c0c <_dtoa_r+0xba8> - 5c30: d8800d17 ldw r2,52(sp) - 5c34: 37000044 addi fp,r6,1 - 5c38: 10800044 addi r2,r2,1 - 5c3c: d8800d15 stw r2,52(sp) - 5c40: 00800c44 movi r2,49 - 5c44: 30800005 stb r2,0(r6) - 5c48: d9001617 ldw r4,88(sp) - 5c4c: 900b883a mov r5,r18 - 5c50: 000822c0 call 822c <_Bfree> - 5c54: 983ecd26 beq r19,zero,578c <_dtoa_r+0x728> - 5c58: d8c00617 ldw r3,24(sp) - 5c5c: 18000426 beq r3,zero,5c70 <_dtoa_r+0xc0c> - 5c60: 1cc00326 beq r3,r19,5c70 <_dtoa_r+0xc0c> - 5c64: d9001617 ldw r4,88(sp) - 5c68: 180b883a mov r5,r3 - 5c6c: 000822c0 call 822c <_Bfree> - 5c70: d9001617 ldw r4,88(sp) - 5c74: 980b883a mov r5,r19 - 5c78: 000822c0 call 822c <_Bfree> - 5c7c: 003ec306 br 578c <_dtoa_r+0x728> - 5c80: 1805883a mov r2,r3 - 5c84: 003eeb06 br 5834 <_dtoa_r+0x7d0> - 5c88: d9800a17 ldw r6,40(sp) - 5c8c: d8c01117 ldw r3,68(sp) - 5c90: 20bfff04 addi r2,r4,-4 - 5c94: 308d883a add r6,r6,r2 - 5c98: 1887883a add r3,r3,r2 - 5c9c: 80a1883a add r16,r16,r2 - 5ca0: d9800a15 stw r6,40(sp) - 5ca4: d8c01115 stw r3,68(sp) - 5ca8: 003f1d06 br 5920 <_dtoa_r+0x8bc> - 5cac: a03f0c1e bne r20,zero,58e0 <_dtoa_r+0x87c> - 5cb0: 00800434 movhi r2,16 - 5cb4: 10bfffc4 addi r2,r2,-1 - 5cb8: a884703a and r2,r21,r2 - 5cbc: 103f081e bne r2,zero,58e0 <_dtoa_r+0x87c> - 5cc0: a89ffc2c andhi r2,r21,32752 - 5cc4: 103f0626 beq r2,zero,58e0 <_dtoa_r+0x87c> - 5cc8: d8c01117 ldw r3,68(sp) - 5ccc: d9000a17 ldw r4,40(sp) - 5cd0: 18c00044 addi r3,r3,1 - 5cd4: 21000044 addi r4,r4,1 - 5cd8: d8c01115 stw r3,68(sp) - 5cdc: d9000a15 stw r4,40(sp) - 5ce0: 003f0006 br 58e4 <_dtoa_r+0x880> - 5ce4: d9400717 ldw r5,28(sp) - 5ce8: d9001617 ldw r4,88(sp) - 5cec: 00090780 call 9078 <__pow5mult> - 5cf0: d8800715 stw r2,28(sp) - 5cf4: 003eed06 br 58ac <_dtoa_r+0x848> - 5cf8: 1000021e bne r2,zero,5d04 <_dtoa_r+0xca0> - 5cfc: b880004c andi r2,r23,1 - 5d00: 103fc11e bne r2,zero,5c08 <_dtoa_r+0xba4> - 5d04: b5bfffc4 addi r22,r22,-1 - 5d08: b0c00007 ldb r3,0(r22) - 5d0c: 00800c04 movi r2,48 - 5d10: 18bffc26 beq r3,r2,5d04 <_dtoa_r+0xca0> - 5d14: b7000044 addi fp,r22,1 - 5d18: 003fcb06 br 5c48 <_dtoa_r+0xbe4> - 5d1c: d9800d17 ldw r6,52(sp) - 5d20: 018fc83a sub r7,zero,r6 - 5d24: 3801f726 beq r7,zero,6504 <_dtoa_r+0x14a0> - 5d28: 398003cc andi r6,r7,15 - 5d2c: 300c90fa slli r6,r6,3 - 5d30: 01400074 movhi r5,1 - 5d34: 29410f04 addi r5,r5,1084 - 5d38: d9001217 ldw r4,72(sp) - 5d3c: 314d883a add r6,r6,r5 - 5d40: 30c00117 ldw r3,4(r6) - 5d44: 30800017 ldw r2,0(r6) - 5d48: d9401317 ldw r5,76(sp) - 5d4c: 3821d13a srai r16,r7,4 - 5d50: 100d883a mov r6,r2 - 5d54: 180f883a mov r7,r3 - 5d58: 000b20c0 call b20c <__muldf3> - 5d5c: 1011883a mov r8,r2 - 5d60: 1813883a mov r9,r3 - 5d64: 1029883a mov r20,r2 - 5d68: 182b883a mov r21,r3 - 5d6c: 8001e526 beq r16,zero,6504 <_dtoa_r+0x14a0> - 5d70: 05800084 movi r22,2 - 5d74: 04400074 movhi r17,1 - 5d78: 8c414104 addi r17,r17,1284 - 5d7c: 8080004c andi r2,r16,1 - 5d80: 1005003a cmpeq r2,r2,zero - 5d84: 1000081e bne r2,zero,5da8 <_dtoa_r+0xd44> - 5d88: 89800017 ldw r6,0(r17) - 5d8c: 89c00117 ldw r7,4(r17) - 5d90: 480b883a mov r5,r9 - 5d94: 4009883a mov r4,r8 - 5d98: 000b20c0 call b20c <__muldf3> - 5d9c: 1011883a mov r8,r2 - 5da0: b5800044 addi r22,r22,1 - 5da4: 1813883a mov r9,r3 - 5da8: 8021d07a srai r16,r16,1 - 5dac: 8c400204 addi r17,r17,8 - 5db0: 803ff21e bne r16,zero,5d7c <_dtoa_r+0xd18> - 5db4: 4029883a mov r20,r8 - 5db8: 482b883a mov r21,r9 - 5dbc: 003dca06 br 54e8 <_dtoa_r+0x484> - 5dc0: d9000817 ldw r4,32(sp) - 5dc4: 2005003a cmpeq r2,r4,zero - 5dc8: 1001f61e bne r2,zero,65a4 <_dtoa_r+0x1540> - 5dcc: dc001117 ldw r16,68(sp) - 5dd0: dc801017 ldw r18,64(sp) - 5dd4: 18c10cc4 addi r3,r3,1075 - 5dd8: 003f6106 br 5b60 <_dtoa_r+0xafc> - 5ddc: d8000b15 stw zero,44(sp) - 5de0: d9802617 ldw r6,152(sp) - 5de4: d8c00d17 ldw r3,52(sp) - 5de8: 30800044 addi r2,r6,1 - 5dec: 18ad883a add r22,r3,r2 - 5df0: b13fffc4 addi r4,r22,-1 - 5df4: d9000e15 stw r4,56(sp) - 5df8: 0581f60e bge zero,r22,65d4 <_dtoa_r+0x1570> - 5dfc: dd800f15 stw r22,60(sp) - 5e00: 003f3006 br 5ac4 <_dtoa_r+0xa60> - 5e04: d8000b15 stw zero,44(sp) - 5e08: d9002617 ldw r4,152(sp) - 5e0c: 0101eb0e bge zero,r4,65bc <_dtoa_r+0x1558> - 5e10: 202d883a mov r22,r4 - 5e14: d9000e15 stw r4,56(sp) - 5e18: d9000f15 stw r4,60(sp) - 5e1c: 003f2906 br 5ac4 <_dtoa_r+0xa60> - 5e20: 01800044 movi r6,1 - 5e24: d9800b15 stw r6,44(sp) - 5e28: 003ff706 br 5e08 <_dtoa_r+0xda4> - 5e2c: 01000044 movi r4,1 - 5e30: d9000b15 stw r4,44(sp) - 5e34: 003fea06 br 5de0 <_dtoa_r+0xd7c> - 5e38: 04000c0e bge zero,r16,5e6c <_dtoa_r+0xe08> - 5e3c: d9400717 ldw r5,28(sp) - 5e40: d9001617 ldw r4,88(sp) - 5e44: 01800044 movi r6,1 - 5e48: 0008b700 call 8b70 <__lshift> - 5e4c: 1009883a mov r4,r2 - 5e50: 900b883a mov r5,r18 - 5e54: d8800715 stw r2,28(sp) - 5e58: 00083880 call 8388 <__mcmp> - 5e5c: 0081e00e bge zero,r2,65e0 <_dtoa_r+0x157c> - 5e60: bdc00044 addi r23,r23,1 - 5e64: 00800e84 movi r2,58 - 5e68: b881a226 beq r23,r2,64f4 <_dtoa_r+0x1490> - 5e6c: b7000044 addi fp,r22,1 - 5e70: b5c00005 stb r23,0(r22) - 5e74: 003f7406 br 5c48 <_dtoa_r+0xbe4> - 5e78: 00800e44 movi r2,57 - 5e7c: b8819d26 beq r23,r2,64f4 <_dtoa_r+0x1490> - 5e80: 053ffa0e bge zero,r20,5e6c <_dtoa_r+0xe08> - 5e84: 8dc00c44 addi r23,r17,49 - 5e88: 003ff806 br 5e6c <_dtoa_r+0xe08> - 5e8c: d9001617 ldw r4,88(sp) - 5e90: a80b883a mov r5,r21 - 5e94: 04000044 movi r16,1 - 5e98: 000822c0 call 822c <_Bfree> - 5e9c: 003edf06 br 5a1c <_dtoa_r+0x9b8> - 5ea0: d9001617 ldw r4,88(sp) - 5ea4: 980b883a mov r5,r19 - 5ea8: 01800284 movi r6,10 - 5eac: 000f883a mov r7,zero - 5eb0: 0008f4c0 call 8f4c <__multadd> - 5eb4: 1027883a mov r19,r2 - 5eb8: d8800615 stw r2,24(sp) - 5ebc: 003ebb06 br 59ac <_dtoa_r+0x948> - 5ec0: d9801117 ldw r6,68(sp) - 5ec4: d8800d17 ldw r2,52(sp) - 5ec8: d8000915 stw zero,36(sp) - 5ecc: 308dc83a sub r6,r6,r2 - 5ed0: 0087c83a sub r3,zero,r2 - 5ed4: d9801115 stw r6,68(sp) - 5ed8: d8c01015 stw r3,64(sp) - 5edc: 003cfe06 br 52d8 <_dtoa_r+0x274> - 5ee0: 018dc83a sub r6,zero,r6 - 5ee4: d9801115 stw r6,68(sp) - 5ee8: d8000a15 stw zero,40(sp) - 5eec: 003cf306 br 52bc <_dtoa_r+0x258> - 5ef0: d9000d17 ldw r4,52(sp) - 5ef4: 000bad00 call bad0 <__floatsidf> - 5ef8: 880b883a mov r5,r17 - 5efc: 8009883a mov r4,r16 - 5f00: 180f883a mov r7,r3 - 5f04: 100d883a mov r6,r2 - 5f08: 000b8b00 call b8b0 <__nedf2> - 5f0c: 103ce126 beq r2,zero,5294 <_dtoa_r+0x230> - 5f10: d9800d17 ldw r6,52(sp) - 5f14: 31bfffc4 addi r6,r6,-1 - 5f18: d9800d15 stw r6,52(sp) - 5f1c: 003cdd06 br 5294 <_dtoa_r+0x230> - 5f20: d9000717 ldw r4,28(sp) - 5f24: 900b883a mov r5,r18 - 5f28: 00083880 call 8388 <__mcmp> - 5f2c: 103e8d0e bge r2,zero,5964 <_dtoa_r+0x900> - 5f30: d9400717 ldw r5,28(sp) - 5f34: d9001617 ldw r4,88(sp) - 5f38: 01800284 movi r6,10 - 5f3c: 000f883a mov r7,zero - 5f40: 0008f4c0 call 8f4c <__multadd> - 5f44: d9800d17 ldw r6,52(sp) - 5f48: d8800715 stw r2,28(sp) - 5f4c: 31bfffc4 addi r6,r6,-1 - 5f50: d9800d15 stw r6,52(sp) - 5f54: b001a71e bne r22,zero,65f4 <_dtoa_r+0x1590> - 5f58: d8800e17 ldw r2,56(sp) - 5f5c: d8800f15 stw r2,60(sp) - 5f60: 003e8006 br 5964 <_dtoa_r+0x900> - 5f64: 90800417 ldw r2,16(r18) - 5f68: 1085883a add r2,r2,r2 - 5f6c: 1085883a add r2,r2,r2 - 5f70: 1485883a add r2,r2,r18 - 5f74: 11000417 ldw r4,16(r2) - 5f78: 00082540 call 8254 <__hi0bits> - 5f7c: 00c00804 movi r3,32 - 5f80: 1887c83a sub r3,r3,r2 - 5f84: 003e5a06 br 58f0 <_dtoa_r+0x88c> - 5f88: d9400717 ldw r5,28(sp) - 5f8c: d9801017 ldw r6,64(sp) - 5f90: d9001617 ldw r4,88(sp) - 5f94: 00090780 call 9078 <__pow5mult> - 5f98: d8800715 stw r2,28(sp) - 5f9c: 003e4306 br 58ac <_dtoa_r+0x848> - 5fa0: d9800f17 ldw r6,60(sp) - 5fa4: d8800d17 ldw r2,52(sp) - 5fa8: d9800315 stw r6,12(sp) - 5fac: d8800415 stw r2,16(sp) - 5fb0: d8c00b17 ldw r3,44(sp) - 5fb4: 1805003a cmpeq r2,r3,zero - 5fb8: 1000e21e bne r2,zero,6344 <_dtoa_r+0x12e0> - 5fbc: d9000317 ldw r4,12(sp) - 5fc0: 0005883a mov r2,zero - 5fc4: 00cff834 movhi r3,16352 - 5fc8: 200c90fa slli r6,r4,3 - 5fcc: 01000074 movhi r4,1 - 5fd0: 21010f04 addi r4,r4,1084 - 5fd4: 180b883a mov r5,r3 - 5fd8: 310d883a add r6,r6,r4 - 5fdc: 327fff17 ldw r9,-4(r6) - 5fe0: 323ffe17 ldw r8,-8(r6) - 5fe4: 1009883a mov r4,r2 - 5fe8: 480f883a mov r7,r9 - 5fec: 400d883a mov r6,r8 - 5ff0: 000b5d00 call b5d0 <__divdf3> - 5ff4: 180b883a mov r5,r3 - 5ff8: b00d883a mov r6,r22 - 5ffc: b80f883a mov r7,r23 - 6000: 1009883a mov r4,r2 - 6004: 000b1180 call b118 <__subdf3> - 6008: a80b883a mov r5,r21 - 600c: a009883a mov r4,r20 - 6010: d8c01915 stw r3,100(sp) - 6014: d8801815 stw r2,96(sp) - 6018: 000bbc80 call bbc8 <__fixdfsi> - 601c: 1009883a mov r4,r2 - 6020: 1027883a mov r19,r2 - 6024: 000bad00 call bad0 <__floatsidf> - 6028: a80b883a mov r5,r21 - 602c: a009883a mov r4,r20 - 6030: 180f883a mov r7,r3 - 6034: 100d883a mov r6,r2 - 6038: 000b1180 call b118 <__subdf3> - 603c: d9801817 ldw r6,96(sp) - 6040: 1823883a mov r17,r3 - 6044: d8801415 stw r2,80(sp) - 6048: 302d883a mov r22,r6 - 604c: d9800517 ldw r6,20(sp) - 6050: 9cc00c04 addi r19,r19,48 - 6054: dc401515 stw r17,84(sp) - 6058: d8c01917 ldw r3,100(sp) - 605c: 34c00005 stb r19,0(r6) - 6060: d8800517 ldw r2,20(sp) - 6064: d9401917 ldw r5,100(sp) - 6068: d9801417 ldw r6,80(sp) - 606c: b009883a mov r4,r22 - 6070: 880f883a mov r7,r17 - 6074: 182f883a mov r23,r3 - 6078: 17000044 addi fp,r2,1 - 607c: 000b9380 call b938 <__gtdf2> - 6080: 00804e16 blt zero,r2,61bc <_dtoa_r+0x1158> - 6084: d9801417 ldw r6,80(sp) - 6088: 0005883a mov r2,zero - 608c: 00cffc34 movhi r3,16368 - 6090: 180b883a mov r5,r3 - 6094: 880f883a mov r7,r17 - 6098: 1009883a mov r4,r2 - 609c: 000b1180 call b118 <__subdf3> - 60a0: d9401917 ldw r5,100(sp) - 60a4: 180f883a mov r7,r3 - 60a8: b009883a mov r4,r22 - 60ac: 100d883a mov r6,r2 - 60b0: 000b9380 call b938 <__gtdf2> - 60b4: 00bda216 blt zero,r2,5740 <_dtoa_r+0x6dc> - 60b8: d8c00317 ldw r3,12(sp) - 60bc: 00800044 movi r2,1 - 60c0: 10c01216 blt r2,r3,610c <_dtoa_r+0x10a8> - 60c4: 003d4506 br 55dc <_dtoa_r+0x578> - 60c8: d9801417 ldw r6,80(sp) - 60cc: 0005883a mov r2,zero - 60d0: 00cffc34 movhi r3,16368 - 60d4: 180b883a mov r5,r3 - 60d8: 880f883a mov r7,r17 - 60dc: 1009883a mov r4,r2 - 60e0: 000b1180 call b118 <__subdf3> - 60e4: d9c01b17 ldw r7,108(sp) - 60e8: 180b883a mov r5,r3 - 60ec: 1009883a mov r4,r2 - 60f0: b00d883a mov r6,r22 - 60f4: 000ba480 call ba48 <__ltdf2> - 60f8: 103d9116 blt r2,zero,5740 <_dtoa_r+0x6dc> - 60fc: d9800517 ldw r6,20(sp) - 6100: d9000317 ldw r4,12(sp) - 6104: 3105883a add r2,r6,r4 - 6108: e0bd3426 beq fp,r2,55dc <_dtoa_r+0x578> - 610c: 04500934 movhi r17,16420 - 6110: 0021883a mov r16,zero - 6114: b80b883a mov r5,r23 - 6118: b009883a mov r4,r22 - 611c: 800d883a mov r6,r16 - 6120: 880f883a mov r7,r17 - 6124: 000b20c0 call b20c <__muldf3> - 6128: d9401517 ldw r5,84(sp) - 612c: d9001417 ldw r4,80(sp) - 6130: 880f883a mov r7,r17 - 6134: 000d883a mov r6,zero - 6138: d8801a15 stw r2,104(sp) - 613c: d8c01b15 stw r3,108(sp) - 6140: 000b20c0 call b20c <__muldf3> - 6144: 180b883a mov r5,r3 - 6148: 1009883a mov r4,r2 - 614c: 1823883a mov r17,r3 - 6150: 1021883a mov r16,r2 - 6154: 000bbc80 call bbc8 <__fixdfsi> - 6158: 1009883a mov r4,r2 - 615c: 102b883a mov r21,r2 - 6160: 000bad00 call bad0 <__floatsidf> - 6164: 880b883a mov r5,r17 - 6168: 8009883a mov r4,r16 - 616c: 180f883a mov r7,r3 - 6170: 100d883a mov r6,r2 - 6174: 000b1180 call b118 <__subdf3> - 6178: 1021883a mov r16,r2 - 617c: d9001b17 ldw r4,108(sp) - 6180: 1823883a mov r17,r3 - 6184: dc001415 stw r16,80(sp) - 6188: ad400c04 addi r21,r21,48 - 618c: dc401515 stw r17,84(sp) - 6190: d8801a17 ldw r2,104(sp) - 6194: e5400005 stb r21,0(fp) - 6198: 202f883a mov r23,r4 - 619c: d9c01b17 ldw r7,108(sp) - 61a0: d9001417 ldw r4,80(sp) - 61a4: 880b883a mov r5,r17 - 61a8: 100d883a mov r6,r2 - 61ac: 102d883a mov r22,r2 - 61b0: e7000044 addi fp,fp,1 - 61b4: 000ba480 call ba48 <__ltdf2> - 61b8: 103fc30e bge r2,zero,60c8 <_dtoa_r+0x1064> - 61bc: d9000417 ldw r4,16(sp) - 61c0: d9000d15 stw r4,52(sp) - 61c4: 003d7106 br 578c <_dtoa_r+0x728> - 61c8: d9801717 ldw r6,92(sp) - 61cc: 00800084 movi r2,2 - 61d0: 11bde60e bge r2,r6,596c <_dtoa_r+0x908> - 61d4: 203cfb1e bne r4,zero,55c4 <_dtoa_r+0x560> - 61d8: d9001617 ldw r4,88(sp) - 61dc: 900b883a mov r5,r18 - 61e0: 01800144 movi r6,5 - 61e4: 000f883a mov r7,zero - 61e8: 0008f4c0 call 8f4c <__multadd> - 61ec: d9000717 ldw r4,28(sp) - 61f0: 100b883a mov r5,r2 - 61f4: 1025883a mov r18,r2 - 61f8: 00083880 call 8388 <__mcmp> - 61fc: 00bcf10e bge zero,r2,55c4 <_dtoa_r+0x560> - 6200: d8c00d17 ldw r3,52(sp) - 6204: d9000517 ldw r4,20(sp) - 6208: d8000615 stw zero,24(sp) - 620c: 18c00044 addi r3,r3,1 - 6210: d8c00d15 stw r3,52(sp) - 6214: 00800c44 movi r2,49 - 6218: 27000044 addi fp,r4,1 - 621c: 20800005 stb r2,0(r4) - 6220: 003e8906 br 5c48 <_dtoa_r+0xbe4> - 6224: d8c00517 ldw r3,20(sp) - 6228: 003bc206 br 5134 <_dtoa_r+0xd0> - 622c: 01800074 movhi r6,1 - 6230: 31814104 addi r6,r6,1284 - 6234: 30c00917 ldw r3,36(r6) - 6238: 30800817 ldw r2,32(r6) - 623c: d9001217 ldw r4,72(sp) - 6240: d9401317 ldw r5,76(sp) - 6244: 180f883a mov r7,r3 - 6248: 100d883a mov r6,r2 - 624c: 000b5d00 call b5d0 <__divdf3> - 6250: 948003cc andi r18,r18,15 - 6254: 058000c4 movi r22,3 - 6258: 1029883a mov r20,r2 - 625c: 182b883a mov r21,r3 - 6260: 003c8906 br 5488 <_dtoa_r+0x424> - 6264: d9001017 ldw r4,64(sp) - 6268: d9800917 ldw r6,36(sp) - 626c: 0025883a mov r18,zero - 6270: 1105c83a sub r2,r2,r4 - 6274: 2089883a add r4,r4,r2 - 6278: 308d883a add r6,r6,r2 - 627c: d9001015 stw r4,64(sp) - 6280: d9800915 stw r6,36(sp) - 6284: 003e3206 br 5b50 <_dtoa_r+0xaec> - 6288: 28800044 addi r2,r5,1 - 628c: 27000044 addi fp,r4,1 - 6290: 20800005 stb r2,0(r4) - 6294: 003e6c06 br 5c48 <_dtoa_r+0xbe4> - 6298: d8800f17 ldw r2,60(sp) - 629c: 00bce016 blt zero,r2,5620 <_dtoa_r+0x5bc> - 62a0: d9800f17 ldw r6,60(sp) - 62a4: 303cc51e bne r6,zero,55bc <_dtoa_r+0x558> - 62a8: 0005883a mov r2,zero - 62ac: 00d00534 movhi r3,16404 - 62b0: 980b883a mov r5,r19 - 62b4: 180f883a mov r7,r3 - 62b8: 9009883a mov r4,r18 - 62bc: 100d883a mov r6,r2 - 62c0: 000b20c0 call b20c <__muldf3> - 62c4: 180b883a mov r5,r3 - 62c8: a80f883a mov r7,r21 - 62cc: 1009883a mov r4,r2 - 62d0: a00d883a mov r6,r20 - 62d4: 000b9c00 call b9c0 <__gedf2> - 62d8: 103cb80e bge r2,zero,55bc <_dtoa_r+0x558> - 62dc: 0027883a mov r19,zero - 62e0: 0025883a mov r18,zero - 62e4: 003fc606 br 6200 <_dtoa_r+0x119c> - 62e8: 99400117 ldw r5,4(r19) - 62ec: d9001617 ldw r4,88(sp) - 62f0: 00087ac0 call 87ac <_Balloc> - 62f4: 99800417 ldw r6,16(r19) - 62f8: 11000304 addi r4,r2,12 - 62fc: 99400304 addi r5,r19,12 - 6300: 318d883a add r6,r6,r6 - 6304: 318d883a add r6,r6,r6 - 6308: 31800204 addi r6,r6,8 - 630c: 1023883a mov r17,r2 - 6310: 00080140 call 8014 - 6314: d9001617 ldw r4,88(sp) - 6318: 880b883a mov r5,r17 - 631c: 01800044 movi r6,1 - 6320: 0008b700 call 8b70 <__lshift> - 6324: 100b883a mov r5,r2 - 6328: 003d9c06 br 599c <_dtoa_r+0x938> - 632c: 00800e44 movi r2,57 - 6330: b8807026 beq r23,r2,64f4 <_dtoa_r+0x1490> - 6334: b8800044 addi r2,r23,1 - 6338: b7000044 addi fp,r22,1 - 633c: b0800005 stb r2,0(r22) - 6340: 003e4106 br 5c48 <_dtoa_r+0xbe4> - 6344: d8800317 ldw r2,12(sp) - 6348: 01800074 movhi r6,1 - 634c: 31810f04 addi r6,r6,1084 - 6350: b009883a mov r4,r22 - 6354: 100e90fa slli r7,r2,3 - 6358: b80b883a mov r5,r23 - 635c: 398f883a add r7,r7,r6 - 6360: 38bffe17 ldw r2,-8(r7) - 6364: d9800517 ldw r6,20(sp) - 6368: 38ffff17 ldw r3,-4(r7) - 636c: 37000044 addi fp,r6,1 - 6370: 180f883a mov r7,r3 - 6374: 100d883a mov r6,r2 - 6378: 000b20c0 call b20c <__muldf3> - 637c: a80b883a mov r5,r21 - 6380: a009883a mov r4,r20 - 6384: 182f883a mov r23,r3 - 6388: 102d883a mov r22,r2 - 638c: 000bbc80 call bbc8 <__fixdfsi> - 6390: 1009883a mov r4,r2 - 6394: 1027883a mov r19,r2 - 6398: 000bad00 call bad0 <__floatsidf> - 639c: a80b883a mov r5,r21 - 63a0: a009883a mov r4,r20 - 63a4: 180f883a mov r7,r3 - 63a8: 100d883a mov r6,r2 - 63ac: 000b1180 call b118 <__subdf3> - 63b0: 180b883a mov r5,r3 - 63b4: d8c00517 ldw r3,20(sp) - 63b8: 9cc00c04 addi r19,r19,48 - 63bc: 1009883a mov r4,r2 - 63c0: 1cc00005 stb r19,0(r3) - 63c4: 2021883a mov r16,r4 - 63c8: d9000317 ldw r4,12(sp) - 63cc: 00800044 movi r2,1 - 63d0: 2823883a mov r17,r5 - 63d4: 20802226 beq r4,r2,6460 <_dtoa_r+0x13fc> - 63d8: 1029883a mov r20,r2 - 63dc: 0005883a mov r2,zero - 63e0: 00d00934 movhi r3,16420 - 63e4: 180f883a mov r7,r3 - 63e8: 100d883a mov r6,r2 - 63ec: 880b883a mov r5,r17 - 63f0: 8009883a mov r4,r16 - 63f4: 000b20c0 call b20c <__muldf3> - 63f8: 180b883a mov r5,r3 - 63fc: 1009883a mov r4,r2 - 6400: 1823883a mov r17,r3 - 6404: 1021883a mov r16,r2 - 6408: 000bbc80 call bbc8 <__fixdfsi> - 640c: 1009883a mov r4,r2 - 6410: 102b883a mov r21,r2 - 6414: 000bad00 call bad0 <__floatsidf> - 6418: 880b883a mov r5,r17 - 641c: 8009883a mov r4,r16 - 6420: 180f883a mov r7,r3 - 6424: 100d883a mov r6,r2 - 6428: 000b1180 call b118 <__subdf3> - 642c: 180b883a mov r5,r3 - 6430: d8c00517 ldw r3,20(sp) - 6434: 1009883a mov r4,r2 - 6438: ad400c04 addi r21,r21,48 - 643c: 1d05883a add r2,r3,r20 - 6440: 15400005 stb r21,0(r2) - 6444: 2021883a mov r16,r4 - 6448: d9000317 ldw r4,12(sp) - 644c: a5000044 addi r20,r20,1 - 6450: 2823883a mov r17,r5 - 6454: a13fe11e bne r20,r4,63dc <_dtoa_r+0x1378> - 6458: e505883a add r2,fp,r20 - 645c: 173fffc4 addi fp,r2,-1 - 6460: 0025883a mov r18,zero - 6464: 04cff834 movhi r19,16352 - 6468: b009883a mov r4,r22 - 646c: b80b883a mov r5,r23 - 6470: 900d883a mov r6,r18 - 6474: 980f883a mov r7,r19 - 6478: 000b1980 call b198 <__adddf3> - 647c: 180b883a mov r5,r3 - 6480: 1009883a mov r4,r2 - 6484: 800d883a mov r6,r16 - 6488: 880f883a mov r7,r17 - 648c: 000ba480 call ba48 <__ltdf2> - 6490: 103cab16 blt r2,zero,5740 <_dtoa_r+0x6dc> - 6494: 0009883a mov r4,zero - 6498: 980b883a mov r5,r19 - 649c: b80f883a mov r7,r23 - 64a0: b00d883a mov r6,r22 - 64a4: 000b1180 call b118 <__subdf3> - 64a8: 180b883a mov r5,r3 - 64ac: 880f883a mov r7,r17 - 64b0: 1009883a mov r4,r2 - 64b4: 800d883a mov r6,r16 - 64b8: 000b9380 call b938 <__gtdf2> - 64bc: 00bc470e bge zero,r2,55dc <_dtoa_r+0x578> - 64c0: 00c00c04 movi r3,48 - 64c4: e73fffc4 addi fp,fp,-1 - 64c8: e0800007 ldb r2,0(fp) - 64cc: 10fffd26 beq r2,r3,64c4 <_dtoa_r+0x1460> - 64d0: d9800417 ldw r6,16(sp) - 64d4: e7000044 addi fp,fp,1 - 64d8: d9800d15 stw r6,52(sp) - 64dc: 003cab06 br 578c <_dtoa_r+0x728> - 64e0: d8c00f17 ldw r3,60(sp) - 64e4: d9001117 ldw r4,68(sp) - 64e8: 20e1c83a sub r16,r4,r3 - 64ec: 0007883a mov r3,zero - 64f0: 003d9b06 br 5b60 <_dtoa_r+0xafc> - 64f4: 00800e44 movi r2,57 - 64f8: b0800005 stb r2,0(r22) - 64fc: b5800044 addi r22,r22,1 - 6500: 003dc106 br 5c08 <_dtoa_r+0xba4> - 6504: 05800084 movi r22,2 - 6508: 003bf706 br 54e8 <_dtoa_r+0x484> - 650c: d9000f17 ldw r4,60(sp) - 6510: 013c000e bge zero,r4,5514 <_dtoa_r+0x4b0> - 6514: d9800e17 ldw r6,56(sp) - 6518: 01bc300e bge zero,r6,55dc <_dtoa_r+0x578> - 651c: 0005883a mov r2,zero - 6520: 00d00934 movhi r3,16420 - 6524: a80b883a mov r5,r21 - 6528: 180f883a mov r7,r3 - 652c: a009883a mov r4,r20 - 6530: 100d883a mov r6,r2 - 6534: 000b20c0 call b20c <__muldf3> - 6538: b1000044 addi r4,r22,1 - 653c: 1021883a mov r16,r2 - 6540: 1823883a mov r17,r3 - 6544: 000bad00 call bad0 <__floatsidf> - 6548: 880b883a mov r5,r17 - 654c: 8009883a mov r4,r16 - 6550: 180f883a mov r7,r3 - 6554: 100d883a mov r6,r2 - 6558: 000b20c0 call b20c <__muldf3> - 655c: 0011883a mov r8,zero - 6560: 02500734 movhi r9,16412 - 6564: 180b883a mov r5,r3 - 6568: 480f883a mov r7,r9 - 656c: 1009883a mov r4,r2 - 6570: 400d883a mov r6,r8 - 6574: 000b1980 call b198 <__adddf3> - 6578: 102d883a mov r22,r2 - 657c: 00bf3034 movhi r2,64704 - 6580: 10ef883a add r23,r2,r3 - 6584: d8800d17 ldw r2,52(sp) - 6588: d8c00e17 ldw r3,56(sp) - 658c: 8029883a mov r20,r16 - 6590: 10bfffc4 addi r2,r2,-1 - 6594: 882b883a mov r21,r17 - 6598: d8800415 stw r2,16(sp) - 659c: d8c00315 stw r3,12(sp) - 65a0: 003e8306 br 5fb0 <_dtoa_r+0xf4c> - 65a4: d8800117 ldw r2,4(sp) - 65a8: dc001117 ldw r16,68(sp) - 65ac: dc801017 ldw r18,64(sp) - 65b0: 00c00d84 movi r3,54 - 65b4: 1887c83a sub r3,r3,r2 - 65b8: 003d6906 br 5b60 <_dtoa_r+0xafc> - 65bc: 01800044 movi r6,1 - 65c0: 3021883a mov r16,r6 - 65c4: d9800f15 stw r6,60(sp) - 65c8: d9802615 stw r6,152(sp) - 65cc: d9800e15 stw r6,56(sp) - 65d0: 003b9306 br 5420 <_dtoa_r+0x3bc> - 65d4: b021883a mov r16,r22 - 65d8: dd800f15 stw r22,60(sp) - 65dc: 003b9006 br 5420 <_dtoa_r+0x3bc> - 65e0: 103e221e bne r2,zero,5e6c <_dtoa_r+0xe08> - 65e4: b880004c andi r2,r23,1 - 65e8: 1005003a cmpeq r2,r2,zero - 65ec: 103e1f1e bne r2,zero,5e6c <_dtoa_r+0xe08> - 65f0: 003e1b06 br 5e60 <_dtoa_r+0xdfc> - 65f4: d9001617 ldw r4,88(sp) - 65f8: 980b883a mov r5,r19 - 65fc: 01800284 movi r6,10 - 6600: 000f883a mov r7,zero - 6604: 0008f4c0 call 8f4c <__multadd> - 6608: d8c00e17 ldw r3,56(sp) - 660c: 1027883a mov r19,r2 - 6610: d8c00f15 stw r3,60(sp) - 6614: 003cd306 br 5964 <_dtoa_r+0x900> - -00006618 <_fflush_r>: - 6618: defffb04 addi sp,sp,-20 - 661c: dcc00315 stw r19,12(sp) - 6620: dc800215 stw r18,8(sp) - 6624: dfc00415 stw ra,16(sp) - 6628: dc400115 stw r17,4(sp) - 662c: dc000015 stw r16,0(sp) - 6630: 2027883a mov r19,r4 - 6634: 2825883a mov r18,r5 - 6638: 20000226 beq r4,zero,6644 <_fflush_r+0x2c> - 663c: 20800e17 ldw r2,56(r4) - 6640: 10005626 beq r2,zero,679c <_fflush_r+0x184> - 6644: 9100030b ldhu r4,12(r18) - 6648: 20ffffcc andi r3,r4,65535 - 664c: 18e0001c xori r3,r3,32768 - 6650: 18e00004 addi r3,r3,-32768 - 6654: 1880020c andi r2,r3,8 - 6658: 1000261e bne r2,zero,66f4 <_fflush_r+0xdc> - 665c: 90c00117 ldw r3,4(r18) - 6660: 20820014 ori r2,r4,2048 - 6664: 9080030d sth r2,12(r18) - 6668: 1009883a mov r4,r2 - 666c: 00c0400e bge zero,r3,6770 <_fflush_r+0x158> - 6670: 92000a17 ldw r8,40(r18) - 6674: 40004026 beq r8,zero,6778 <_fflush_r+0x160> - 6678: 2084000c andi r2,r4,4096 - 667c: 10005326 beq r2,zero,67cc <_fflush_r+0x1b4> - 6680: 94001417 ldw r16,80(r18) - 6684: 9080030b ldhu r2,12(r18) - 6688: 1080010c andi r2,r2,4 - 668c: 1000481e bne r2,zero,67b0 <_fflush_r+0x198> - 6690: 91400717 ldw r5,28(r18) - 6694: 9809883a mov r4,r19 - 6698: 800d883a mov r6,r16 - 669c: 000f883a mov r7,zero - 66a0: 403ee83a callr r8 - 66a4: 8080261e bne r16,r2,6740 <_fflush_r+0x128> - 66a8: 9080030b ldhu r2,12(r18) - 66ac: 91000417 ldw r4,16(r18) - 66b0: 90000115 stw zero,4(r18) - 66b4: 10bdffcc andi r2,r2,63487 - 66b8: 10ffffcc andi r3,r2,65535 - 66bc: 18c4000c andi r3,r3,4096 - 66c0: 9080030d sth r2,12(r18) - 66c4: 91000015 stw r4,0(r18) - 66c8: 18002b26 beq r3,zero,6778 <_fflush_r+0x160> - 66cc: 0007883a mov r3,zero - 66d0: 1805883a mov r2,r3 - 66d4: 94001415 stw r16,80(r18) - 66d8: dfc00417 ldw ra,16(sp) - 66dc: dcc00317 ldw r19,12(sp) - 66e0: dc800217 ldw r18,8(sp) - 66e4: dc400117 ldw r17,4(sp) - 66e8: dc000017 ldw r16,0(sp) - 66ec: dec00504 addi sp,sp,20 - 66f0: f800283a ret - 66f4: 94400417 ldw r17,16(r18) - 66f8: 88001f26 beq r17,zero,6778 <_fflush_r+0x160> - 66fc: 90800017 ldw r2,0(r18) - 6700: 18c000cc andi r3,r3,3 - 6704: 94400015 stw r17,0(r18) - 6708: 1461c83a sub r16,r2,r17 - 670c: 18002526 beq r3,zero,67a4 <_fflush_r+0x18c> - 6710: 0005883a mov r2,zero - 6714: 90800215 stw r2,8(r18) - 6718: 0400170e bge zero,r16,6778 <_fflush_r+0x160> - 671c: 90c00917 ldw r3,36(r18) - 6720: 91400717 ldw r5,28(r18) - 6724: 880d883a mov r6,r17 - 6728: 800f883a mov r7,r16 - 672c: 9809883a mov r4,r19 - 6730: 183ee83a callr r3 - 6734: 88a3883a add r17,r17,r2 - 6738: 80a1c83a sub r16,r16,r2 - 673c: 00bff616 blt zero,r2,6718 <_fflush_r+0x100> - 6740: 9080030b ldhu r2,12(r18) - 6744: 00ffffc4 movi r3,-1 - 6748: 10801014 ori r2,r2,64 - 674c: 9080030d sth r2,12(r18) - 6750: 1805883a mov r2,r3 - 6754: dfc00417 ldw ra,16(sp) - 6758: dcc00317 ldw r19,12(sp) - 675c: dc800217 ldw r18,8(sp) - 6760: dc400117 ldw r17,4(sp) - 6764: dc000017 ldw r16,0(sp) - 6768: dec00504 addi sp,sp,20 - 676c: f800283a ret - 6770: 90800f17 ldw r2,60(r18) - 6774: 00bfbe16 blt zero,r2,6670 <_fflush_r+0x58> - 6778: 0007883a mov r3,zero - 677c: 1805883a mov r2,r3 - 6780: dfc00417 ldw ra,16(sp) - 6784: dcc00317 ldw r19,12(sp) - 6788: dc800217 ldw r18,8(sp) - 678c: dc400117 ldw r17,4(sp) - 6790: dc000017 ldw r16,0(sp) - 6794: dec00504 addi sp,sp,20 - 6798: f800283a ret - 679c: 00068b00 call 68b0 <__sinit> - 67a0: 003fa806 br 6644 <_fflush_r+0x2c> - 67a4: 90800517 ldw r2,20(r18) - 67a8: 90800215 stw r2,8(r18) - 67ac: 003fda06 br 6718 <_fflush_r+0x100> - 67b0: 90800117 ldw r2,4(r18) - 67b4: 90c00c17 ldw r3,48(r18) - 67b8: 80a1c83a sub r16,r16,r2 - 67bc: 183fb426 beq r3,zero,6690 <_fflush_r+0x78> - 67c0: 90800f17 ldw r2,60(r18) - 67c4: 80a1c83a sub r16,r16,r2 - 67c8: 003fb106 br 6690 <_fflush_r+0x78> - 67cc: 91400717 ldw r5,28(r18) - 67d0: 9809883a mov r4,r19 - 67d4: 000d883a mov r6,zero - 67d8: 01c00044 movi r7,1 - 67dc: 403ee83a callr r8 - 67e0: 1021883a mov r16,r2 - 67e4: 00bfffc4 movi r2,-1 - 67e8: 80800226 beq r16,r2,67f4 <_fflush_r+0x1dc> - 67ec: 92000a17 ldw r8,40(r18) - 67f0: 003fa406 br 6684 <_fflush_r+0x6c> - 67f4: 98c00017 ldw r3,0(r19) - 67f8: 00800744 movi r2,29 - 67fc: 18bfde26 beq r3,r2,6778 <_fflush_r+0x160> - 6800: 9080030b ldhu r2,12(r18) - 6804: 8007883a mov r3,r16 - 6808: 10801014 ori r2,r2,64 - 680c: 9080030d sth r2,12(r18) - 6810: 003fcf06 br 6750 <_fflush_r+0x138> - -00006814 : - 6814: 01400034 movhi r5,0 - 6818: 29598604 addi r5,r5,26136 - 681c: 2007883a mov r3,r4 - 6820: 20000526 beq r4,zero,6838 - 6824: 00800074 movhi r2,1 - 6828: 10887e04 addi r2,r2,8696 - 682c: 11000017 ldw r4,0(r2) - 6830: 180b883a mov r5,r3 - 6834: 00066181 jmpi 6618 <_fflush_r> - 6838: 00800074 movhi r2,1 - 683c: 10887f04 addi r2,r2,8700 - 6840: 11000017 ldw r4,0(r2) - 6844: 00074181 jmpi 7418 <_fwalk_reent> - -00006848 : - 6848: 00800074 movhi r2,1 - 684c: 10a66304 addi r2,r2,-26228 - 6850: 20800b15 stw r2,44(r4) - 6854: 00800074 movhi r2,1 - 6858: 10a69e04 addi r2,r2,-25992 - 685c: 20800815 stw r2,32(r4) - 6860: 00c00074 movhi r3,1 - 6864: 18e67f04 addi r3,r3,-26116 - 6868: 00800074 movhi r2,1 - 686c: 10a66504 addi r2,r2,-26220 - 6870: 2140030d sth r5,12(r4) - 6874: 2180038d sth r6,14(r4) - 6878: 20c00915 stw r3,36(r4) - 687c: 20800a15 stw r2,40(r4) - 6880: 20000015 stw zero,0(r4) - 6884: 20000115 stw zero,4(r4) - 6888: 20000215 stw zero,8(r4) - 688c: 20000415 stw zero,16(r4) - 6890: 20000515 stw zero,20(r4) - 6894: 20000615 stw zero,24(r4) - 6898: 21000715 stw r4,28(r4) - 689c: f800283a ret - -000068a0 <__sfp_lock_acquire>: - 68a0: f800283a ret - -000068a4 <__sfp_lock_release>: - 68a4: f800283a ret - -000068a8 <__sinit_lock_acquire>: - 68a8: f800283a ret - -000068ac <__sinit_lock_release>: - 68ac: f800283a ret - -000068b0 <__sinit>: - 68b0: 20800e17 ldw r2,56(r4) - 68b4: defffd04 addi sp,sp,-12 - 68b8: dc400115 stw r17,4(sp) - 68bc: dc000015 stw r16,0(sp) - 68c0: dfc00215 stw ra,8(sp) - 68c4: 04400044 movi r17,1 - 68c8: 01400104 movi r5,4 - 68cc: 000d883a mov r6,zero - 68d0: 2021883a mov r16,r4 - 68d4: 2200bb04 addi r8,r4,748 - 68d8: 200f883a mov r7,r4 - 68dc: 10000526 beq r2,zero,68f4 <__sinit+0x44> - 68e0: dfc00217 ldw ra,8(sp) - 68e4: dc400117 ldw r17,4(sp) - 68e8: dc000017 ldw r16,0(sp) - 68ec: dec00304 addi sp,sp,12 - 68f0: f800283a ret - 68f4: 21000117 ldw r4,4(r4) - 68f8: 00800034 movhi r2,0 - 68fc: 109a6504 addi r2,r2,27028 - 6900: 00c000c4 movi r3,3 - 6904: 80800f15 stw r2,60(r16) - 6908: 80c0b915 stw r3,740(r16) - 690c: 8200ba15 stw r8,744(r16) - 6910: 84400e15 stw r17,56(r16) - 6914: 8000b815 stw zero,736(r16) - 6918: 00068480 call 6848 - 691c: 81000217 ldw r4,8(r16) - 6920: 880d883a mov r6,r17 - 6924: 800f883a mov r7,r16 - 6928: 01400284 movi r5,10 - 692c: 00068480 call 6848 - 6930: 81000317 ldw r4,12(r16) - 6934: 800f883a mov r7,r16 - 6938: 01400484 movi r5,18 - 693c: 01800084 movi r6,2 - 6940: dfc00217 ldw ra,8(sp) - 6944: dc400117 ldw r17,4(sp) - 6948: dc000017 ldw r16,0(sp) - 694c: dec00304 addi sp,sp,12 - 6950: 00068481 jmpi 6848 - -00006954 <__fp_lock>: - 6954: 0005883a mov r2,zero - 6958: f800283a ret - -0000695c <__fp_unlock>: - 695c: 0005883a mov r2,zero - 6960: f800283a ret - -00006964 <__fp_unlock_all>: - 6964: 00800074 movhi r2,1 - 6968: 10887e04 addi r2,r2,8696 - 696c: 11000017 ldw r4,0(r2) - 6970: 01400034 movhi r5,0 - 6974: 295a5704 addi r5,r5,26972 - 6978: 00074e01 jmpi 74e0 <_fwalk> - -0000697c <__fp_lock_all>: - 697c: 00800074 movhi r2,1 - 6980: 10887e04 addi r2,r2,8696 - 6984: 11000017 ldw r4,0(r2) - 6988: 01400034 movhi r5,0 - 698c: 295a5504 addi r5,r5,26964 - 6990: 00074e01 jmpi 74e0 <_fwalk> - -00006994 <_cleanup_r>: - 6994: 01400074 movhi r5,1 - 6998: 29679504 addi r5,r5,-25004 - 699c: 00074e01 jmpi 74e0 <_fwalk> - -000069a0 <_cleanup>: - 69a0: 00800074 movhi r2,1 - 69a4: 10887f04 addi r2,r2,8700 - 69a8: 11000017 ldw r4,0(r2) - 69ac: 00069941 jmpi 6994 <_cleanup_r> - -000069b0 <__sfmoreglue>: - 69b0: defffc04 addi sp,sp,-16 - 69b4: dc000015 stw r16,0(sp) - 69b8: 2821883a mov r16,r5 - 69bc: dc400115 stw r17,4(sp) - 69c0: 01401704 movi r5,92 - 69c4: 2023883a mov r17,r4 - 69c8: 8009883a mov r4,r16 - 69cc: dfc00315 stw ra,12(sp) - 69d0: dcc00215 stw r19,8(sp) - 69d4: 0002c240 call 2c24 <__mulsi3> - 69d8: 11400304 addi r5,r2,12 - 69dc: 8809883a mov r4,r17 - 69e0: 1027883a mov r19,r2 - 69e4: 00077f00 call 77f0 <_malloc_r> - 69e8: 10c00304 addi r3,r2,12 - 69ec: 1023883a mov r17,r2 - 69f0: 1809883a mov r4,r3 - 69f4: 980d883a mov r6,r19 - 69f8: 000b883a mov r5,zero - 69fc: 10000b26 beq r2,zero,6a2c <__sfmoreglue+0x7c> - 6a00: 14000115 stw r16,4(r2) - 6a04: 10c00215 stw r3,8(r2) - 6a08: 10000015 stw zero,0(r2) - 6a0c: 00081940 call 8194 - 6a10: 8805883a mov r2,r17 - 6a14: dfc00317 ldw ra,12(sp) - 6a18: dcc00217 ldw r19,8(sp) - 6a1c: dc400117 ldw r17,4(sp) - 6a20: dc000017 ldw r16,0(sp) - 6a24: dec00404 addi sp,sp,16 - 6a28: f800283a ret - 6a2c: 0023883a mov r17,zero - 6a30: 8805883a mov r2,r17 - 6a34: dfc00317 ldw ra,12(sp) - 6a38: dcc00217 ldw r19,8(sp) - 6a3c: dc400117 ldw r17,4(sp) - 6a40: dc000017 ldw r16,0(sp) - 6a44: dec00404 addi sp,sp,16 - 6a48: f800283a ret - -00006a4c <__sfp>: - 6a4c: defffd04 addi sp,sp,-12 - 6a50: 00800074 movhi r2,1 - 6a54: 10887f04 addi r2,r2,8700 - 6a58: dc000015 stw r16,0(sp) - 6a5c: 14000017 ldw r16,0(r2) - 6a60: dc400115 stw r17,4(sp) - 6a64: dfc00215 stw ra,8(sp) - 6a68: 80800e17 ldw r2,56(r16) - 6a6c: 2023883a mov r17,r4 - 6a70: 10002626 beq r2,zero,6b0c <__sfp+0xc0> - 6a74: 8400b804 addi r16,r16,736 - 6a78: 80800117 ldw r2,4(r16) - 6a7c: 81000217 ldw r4,8(r16) - 6a80: 10ffffc4 addi r3,r2,-1 - 6a84: 18000916 blt r3,zero,6aac <__sfp+0x60> - 6a88: 2080030f ldh r2,12(r4) - 6a8c: 10000b26 beq r2,zero,6abc <__sfp+0x70> - 6a90: 017fffc4 movi r5,-1 - 6a94: 00000206 br 6aa0 <__sfp+0x54> - 6a98: 2080030f ldh r2,12(r4) - 6a9c: 10000726 beq r2,zero,6abc <__sfp+0x70> - 6aa0: 18ffffc4 addi r3,r3,-1 - 6aa4: 21001704 addi r4,r4,92 - 6aa8: 197ffb1e bne r3,r5,6a98 <__sfp+0x4c> - 6aac: 80800017 ldw r2,0(r16) - 6ab0: 10001926 beq r2,zero,6b18 <__sfp+0xcc> - 6ab4: 1021883a mov r16,r2 - 6ab8: 003fef06 br 6a78 <__sfp+0x2c> - 6abc: 00bfffc4 movi r2,-1 - 6ac0: 00c00044 movi r3,1 - 6ac4: 2080038d sth r2,14(r4) - 6ac8: 20c0030d sth r3,12(r4) - 6acc: 20000015 stw zero,0(r4) - 6ad0: 20000215 stw zero,8(r4) - 6ad4: 20000115 stw zero,4(r4) - 6ad8: 20000415 stw zero,16(r4) - 6adc: 20000515 stw zero,20(r4) - 6ae0: 20000615 stw zero,24(r4) - 6ae4: 20000c15 stw zero,48(r4) - 6ae8: 20000d15 stw zero,52(r4) - 6aec: 20001115 stw zero,68(r4) - 6af0: 20001215 stw zero,72(r4) - 6af4: 2005883a mov r2,r4 - 6af8: dfc00217 ldw ra,8(sp) - 6afc: dc400117 ldw r17,4(sp) - 6b00: dc000017 ldw r16,0(sp) - 6b04: dec00304 addi sp,sp,12 - 6b08: f800283a ret - 6b0c: 8009883a mov r4,r16 - 6b10: 00068b00 call 68b0 <__sinit> - 6b14: 003fd706 br 6a74 <__sfp+0x28> - 6b18: 8809883a mov r4,r17 - 6b1c: 01400104 movi r5,4 - 6b20: 00069b00 call 69b0 <__sfmoreglue> - 6b24: 80800015 stw r2,0(r16) - 6b28: 103fe21e bne r2,zero,6ab4 <__sfp+0x68> - 6b2c: 00800304 movi r2,12 - 6b30: 0009883a mov r4,zero - 6b34: 88800015 stw r2,0(r17) - 6b38: 003fee06 br 6af4 <__sfp+0xa8> - -00006b3c <_malloc_trim_r>: - 6b3c: defffb04 addi sp,sp,-20 - 6b40: dcc00315 stw r19,12(sp) - 6b44: 04c00074 movhi r19,1 - 6b48: 9cc2b004 addi r19,r19,2752 - 6b4c: dc800215 stw r18,8(sp) - 6b50: dc400115 stw r17,4(sp) - 6b54: dc000015 stw r16,0(sp) - 6b58: 2823883a mov r17,r5 - 6b5c: 2025883a mov r18,r4 - 6b60: dfc00415 stw ra,16(sp) - 6b64: 000cb800 call cb80 <__malloc_lock> - 6b68: 98800217 ldw r2,8(r19) - 6b6c: 9009883a mov r4,r18 - 6b70: 000b883a mov r5,zero - 6b74: 10c00117 ldw r3,4(r2) - 6b78: 00bfff04 movi r2,-4 - 6b7c: 18a0703a and r16,r3,r2 - 6b80: 8463c83a sub r17,r16,r17 - 6b84: 8c43fbc4 addi r17,r17,4079 - 6b88: 8822d33a srli r17,r17,12 - 6b8c: 0083ffc4 movi r2,4095 - 6b90: 8c7fffc4 addi r17,r17,-1 - 6b94: 8822933a slli r17,r17,12 - 6b98: 1440060e bge r2,r17,6bb4 <_malloc_trim_r+0x78> - 6b9c: 000991c0 call 991c <_sbrk_r> - 6ba0: 98c00217 ldw r3,8(r19) - 6ba4: 9009883a mov r4,r18 - 6ba8: 044bc83a sub r5,zero,r17 - 6bac: 80c7883a add r3,r16,r3 - 6bb0: 10c00926 beq r2,r3,6bd8 <_malloc_trim_r+0x9c> - 6bb4: 000cba00 call cba0 <__malloc_unlock> - 6bb8: 0005883a mov r2,zero - 6bbc: dfc00417 ldw ra,16(sp) - 6bc0: dcc00317 ldw r19,12(sp) - 6bc4: dc800217 ldw r18,8(sp) - 6bc8: dc400117 ldw r17,4(sp) - 6bcc: dc000017 ldw r16,0(sp) - 6bd0: dec00504 addi sp,sp,20 - 6bd4: f800283a ret - 6bd8: 9009883a mov r4,r18 - 6bdc: 000991c0 call 991c <_sbrk_r> - 6be0: 844dc83a sub r6,r16,r17 - 6be4: 00ffffc4 movi r3,-1 - 6be8: 9009883a mov r4,r18 - 6bec: 000b883a mov r5,zero - 6bf0: 01c00074 movhi r7,1 - 6bf4: 39d0c304 addi r7,r7,17164 - 6bf8: 31800054 ori r6,r6,1 - 6bfc: 10c00926 beq r2,r3,6c24 <_malloc_trim_r+0xe8> - 6c00: 38800017 ldw r2,0(r7) - 6c04: 98c00217 ldw r3,8(r19) - 6c08: 9009883a mov r4,r18 - 6c0c: 1445c83a sub r2,r2,r17 - 6c10: 38800015 stw r2,0(r7) - 6c14: 19800115 stw r6,4(r3) - 6c18: 000cba00 call cba0 <__malloc_unlock> - 6c1c: 00800044 movi r2,1 - 6c20: 003fe606 br 6bbc <_malloc_trim_r+0x80> - 6c24: 000991c0 call 991c <_sbrk_r> - 6c28: 99800217 ldw r6,8(r19) - 6c2c: 100f883a mov r7,r2 - 6c30: 9009883a mov r4,r18 - 6c34: 1187c83a sub r3,r2,r6 - 6c38: 008003c4 movi r2,15 - 6c3c: 19400054 ori r5,r3,1 - 6c40: 10ffdc0e bge r2,r3,6bb4 <_malloc_trim_r+0x78> - 6c44: 00800074 movhi r2,1 - 6c48: 10888304 addi r2,r2,8716 - 6c4c: 10c00017 ldw r3,0(r2) - 6c50: 00800074 movhi r2,1 - 6c54: 1090c304 addi r2,r2,17164 - 6c58: 31400115 stw r5,4(r6) - 6c5c: 38c7c83a sub r3,r7,r3 - 6c60: 10c00015 stw r3,0(r2) - 6c64: 003fd306 br 6bb4 <_malloc_trim_r+0x78> - -00006c68 <_free_r>: - 6c68: defffd04 addi sp,sp,-12 - 6c6c: dc400115 stw r17,4(sp) - 6c70: dc000015 stw r16,0(sp) - 6c74: dfc00215 stw ra,8(sp) - 6c78: 2821883a mov r16,r5 - 6c7c: 2023883a mov r17,r4 - 6c80: 28005a26 beq r5,zero,6dec <_free_r+0x184> - 6c84: 000cb800 call cb80 <__malloc_lock> - 6c88: 823ffe04 addi r8,r16,-8 - 6c8c: 41400117 ldw r5,4(r8) - 6c90: 00bfff84 movi r2,-2 - 6c94: 02800074 movhi r10,1 - 6c98: 5282b004 addi r10,r10,2752 - 6c9c: 288e703a and r7,r5,r2 - 6ca0: 41cd883a add r6,r8,r7 - 6ca4: 30c00117 ldw r3,4(r6) - 6ca8: 51000217 ldw r4,8(r10) - 6cac: 00bfff04 movi r2,-4 - 6cb0: 1892703a and r9,r3,r2 - 6cb4: 5017883a mov r11,r10 - 6cb8: 31006726 beq r6,r4,6e58 <_free_r+0x1f0> - 6cbc: 2880004c andi r2,r5,1 - 6cc0: 1005003a cmpeq r2,r2,zero - 6cc4: 32400115 stw r9,4(r6) - 6cc8: 10001a1e bne r2,zero,6d34 <_free_r+0xcc> - 6ccc: 000b883a mov r5,zero - 6cd0: 3247883a add r3,r6,r9 - 6cd4: 18800117 ldw r2,4(r3) - 6cd8: 1080004c andi r2,r2,1 - 6cdc: 1000231e bne r2,zero,6d6c <_free_r+0x104> - 6ce0: 280ac03a cmpne r5,r5,zero - 6ce4: 3a4f883a add r7,r7,r9 - 6ce8: 2800451e bne r5,zero,6e00 <_free_r+0x198> - 6cec: 31000217 ldw r4,8(r6) - 6cf0: 00800074 movhi r2,1 - 6cf4: 1082b204 addi r2,r2,2760 - 6cf8: 20807b26 beq r4,r2,6ee8 <_free_r+0x280> - 6cfc: 30800317 ldw r2,12(r6) - 6d00: 3a07883a add r3,r7,r8 - 6d04: 19c00015 stw r7,0(r3) - 6d08: 11000215 stw r4,8(r2) - 6d0c: 20800315 stw r2,12(r4) - 6d10: 38800054 ori r2,r7,1 - 6d14: 40800115 stw r2,4(r8) - 6d18: 28001a26 beq r5,zero,6d84 <_free_r+0x11c> - 6d1c: 8809883a mov r4,r17 - 6d20: dfc00217 ldw ra,8(sp) - 6d24: dc400117 ldw r17,4(sp) - 6d28: dc000017 ldw r16,0(sp) - 6d2c: dec00304 addi sp,sp,12 - 6d30: 000cba01 jmpi cba0 <__malloc_unlock> - 6d34: 80bffe17 ldw r2,-8(r16) - 6d38: 50c00204 addi r3,r10,8 - 6d3c: 4091c83a sub r8,r8,r2 - 6d40: 41000217 ldw r4,8(r8) - 6d44: 388f883a add r7,r7,r2 - 6d48: 20c06126 beq r4,r3,6ed0 <_free_r+0x268> - 6d4c: 40800317 ldw r2,12(r8) - 6d50: 3247883a add r3,r6,r9 - 6d54: 000b883a mov r5,zero - 6d58: 11000215 stw r4,8(r2) - 6d5c: 20800315 stw r2,12(r4) - 6d60: 18800117 ldw r2,4(r3) - 6d64: 1080004c andi r2,r2,1 - 6d68: 103fdd26 beq r2,zero,6ce0 <_free_r+0x78> - 6d6c: 38800054 ori r2,r7,1 - 6d70: 3a07883a add r3,r7,r8 - 6d74: 280ac03a cmpne r5,r5,zero - 6d78: 40800115 stw r2,4(r8) - 6d7c: 19c00015 stw r7,0(r3) - 6d80: 283fe61e bne r5,zero,6d1c <_free_r+0xb4> - 6d84: 00807fc4 movi r2,511 - 6d88: 11c01f2e bgeu r2,r7,6e08 <_free_r+0x1a0> - 6d8c: 3806d27a srli r3,r7,9 - 6d90: 1800481e bne r3,zero,6eb4 <_free_r+0x24c> - 6d94: 3804d0fa srli r2,r7,3 - 6d98: 100690fa slli r3,r2,3 - 6d9c: 1acd883a add r6,r3,r11 - 6da0: 31400217 ldw r5,8(r6) - 6da4: 31405926 beq r6,r5,6f0c <_free_r+0x2a4> - 6da8: 28800117 ldw r2,4(r5) - 6dac: 00ffff04 movi r3,-4 - 6db0: 10c4703a and r2,r2,r3 - 6db4: 3880022e bgeu r7,r2,6dc0 <_free_r+0x158> - 6db8: 29400217 ldw r5,8(r5) - 6dbc: 317ffa1e bne r6,r5,6da8 <_free_r+0x140> - 6dc0: 29800317 ldw r6,12(r5) - 6dc4: 41800315 stw r6,12(r8) - 6dc8: 41400215 stw r5,8(r8) - 6dcc: 8809883a mov r4,r17 - 6dd0: 2a000315 stw r8,12(r5) - 6dd4: 32000215 stw r8,8(r6) - 6dd8: dfc00217 ldw ra,8(sp) - 6ddc: dc400117 ldw r17,4(sp) - 6de0: dc000017 ldw r16,0(sp) - 6de4: dec00304 addi sp,sp,12 - 6de8: 000cba01 jmpi cba0 <__malloc_unlock> - 6dec: dfc00217 ldw ra,8(sp) - 6df0: dc400117 ldw r17,4(sp) - 6df4: dc000017 ldw r16,0(sp) - 6df8: dec00304 addi sp,sp,12 - 6dfc: f800283a ret - 6e00: 31000217 ldw r4,8(r6) - 6e04: 003fbd06 br 6cfc <_free_r+0x94> - 6e08: 3806d0fa srli r3,r7,3 - 6e0c: 00800044 movi r2,1 - 6e10: 51400117 ldw r5,4(r10) - 6e14: 180890fa slli r4,r3,3 - 6e18: 1807d0ba srai r3,r3,2 - 6e1c: 22c9883a add r4,r4,r11 - 6e20: 21800217 ldw r6,8(r4) - 6e24: 10c4983a sll r2,r2,r3 - 6e28: 41000315 stw r4,12(r8) - 6e2c: 41800215 stw r6,8(r8) - 6e30: 288ab03a or r5,r5,r2 - 6e34: 22000215 stw r8,8(r4) - 6e38: 8809883a mov r4,r17 - 6e3c: 51400115 stw r5,4(r10) - 6e40: 32000315 stw r8,12(r6) - 6e44: dfc00217 ldw ra,8(sp) - 6e48: dc400117 ldw r17,4(sp) - 6e4c: dc000017 ldw r16,0(sp) - 6e50: dec00304 addi sp,sp,12 - 6e54: 000cba01 jmpi cba0 <__malloc_unlock> - 6e58: 2880004c andi r2,r5,1 - 6e5c: 3a4d883a add r6,r7,r9 - 6e60: 1000071e bne r2,zero,6e80 <_free_r+0x218> - 6e64: 80bffe17 ldw r2,-8(r16) - 6e68: 4091c83a sub r8,r8,r2 - 6e6c: 41000317 ldw r4,12(r8) - 6e70: 40c00217 ldw r3,8(r8) - 6e74: 308d883a add r6,r6,r2 - 6e78: 20c00215 stw r3,8(r4) - 6e7c: 19000315 stw r4,12(r3) - 6e80: 00800074 movhi r2,1 - 6e84: 10888204 addi r2,r2,8712 - 6e88: 11000017 ldw r4,0(r2) - 6e8c: 30c00054 ori r3,r6,1 - 6e90: 52000215 stw r8,8(r10) - 6e94: 40c00115 stw r3,4(r8) - 6e98: 313fa036 bltu r6,r4,6d1c <_free_r+0xb4> - 6e9c: 00800074 movhi r2,1 - 6ea0: 108f7904 addi r2,r2,15844 - 6ea4: 11400017 ldw r5,0(r2) - 6ea8: 8809883a mov r4,r17 - 6eac: 0006b3c0 call 6b3c <_malloc_trim_r> - 6eb0: 003f9a06 br 6d1c <_free_r+0xb4> - 6eb4: 00800104 movi r2,4 - 6eb8: 10c0072e bgeu r2,r3,6ed8 <_free_r+0x270> - 6ebc: 00800504 movi r2,20 - 6ec0: 10c01936 bltu r2,r3,6f28 <_free_r+0x2c0> - 6ec4: 188016c4 addi r2,r3,91 - 6ec8: 100690fa slli r3,r2,3 - 6ecc: 003fb306 br 6d9c <_free_r+0x134> - 6ed0: 01400044 movi r5,1 - 6ed4: 003f7e06 br 6cd0 <_free_r+0x68> - 6ed8: 3804d1ba srli r2,r7,6 - 6edc: 10800e04 addi r2,r2,56 - 6ee0: 100690fa slli r3,r2,3 - 6ee4: 003fad06 br 6d9c <_free_r+0x134> - 6ee8: 22000315 stw r8,12(r4) - 6eec: 22000215 stw r8,8(r4) - 6ef0: 3a05883a add r2,r7,r8 - 6ef4: 38c00054 ori r3,r7,1 - 6ef8: 11c00015 stw r7,0(r2) - 6efc: 41000215 stw r4,8(r8) - 6f00: 40c00115 stw r3,4(r8) - 6f04: 41000315 stw r4,12(r8) - 6f08: 003f8406 br 6d1c <_free_r+0xb4> - 6f0c: 1005d0ba srai r2,r2,2 - 6f10: 00c00044 movi r3,1 - 6f14: 51000117 ldw r4,4(r10) - 6f18: 1886983a sll r3,r3,r2 - 6f1c: 20c8b03a or r4,r4,r3 - 6f20: 51000115 stw r4,4(r10) - 6f24: 003fa706 br 6dc4 <_free_r+0x15c> - 6f28: 00801504 movi r2,84 - 6f2c: 10c00436 bltu r2,r3,6f40 <_free_r+0x2d8> - 6f30: 3804d33a srli r2,r7,12 - 6f34: 10801b84 addi r2,r2,110 - 6f38: 100690fa slli r3,r2,3 - 6f3c: 003f9706 br 6d9c <_free_r+0x134> - 6f40: 00805504 movi r2,340 - 6f44: 10c00436 bltu r2,r3,6f58 <_free_r+0x2f0> - 6f48: 3804d3fa srli r2,r7,15 - 6f4c: 10801dc4 addi r2,r2,119 - 6f50: 100690fa slli r3,r2,3 - 6f54: 003f9106 br 6d9c <_free_r+0x134> - 6f58: 00815504 movi r2,1364 - 6f5c: 10c0032e bgeu r2,r3,6f6c <_free_r+0x304> - 6f60: 00801f84 movi r2,126 - 6f64: 00c0fc04 movi r3,1008 - 6f68: 003f8c06 br 6d9c <_free_r+0x134> - 6f6c: 3804d4ba srli r2,r7,18 - 6f70: 10801f04 addi r2,r2,124 - 6f74: 100690fa slli r3,r2,3 - 6f78: 003f8806 br 6d9c <_free_r+0x134> - -00006f7c <__sfvwrite_r>: - 6f7c: 30800217 ldw r2,8(r6) - 6f80: defff504 addi sp,sp,-44 - 6f84: df000915 stw fp,36(sp) - 6f88: dd800715 stw r22,28(sp) - 6f8c: dc800315 stw r18,12(sp) - 6f90: dfc00a15 stw ra,40(sp) - 6f94: ddc00815 stw r23,32(sp) - 6f98: dd400615 stw r21,24(sp) - 6f9c: dd000515 stw r20,20(sp) - 6fa0: dcc00415 stw r19,16(sp) - 6fa4: dc400215 stw r17,8(sp) - 6fa8: dc000115 stw r16,4(sp) - 6fac: 302d883a mov r22,r6 - 6fb0: 2039883a mov fp,r4 - 6fb4: 2825883a mov r18,r5 - 6fb8: 10001c26 beq r2,zero,702c <__sfvwrite_r+0xb0> - 6fbc: 29c0030b ldhu r7,12(r5) - 6fc0: 3880020c andi r2,r7,8 - 6fc4: 10002726 beq r2,zero,7064 <__sfvwrite_r+0xe8> - 6fc8: 28800417 ldw r2,16(r5) - 6fcc: 10002526 beq r2,zero,7064 <__sfvwrite_r+0xe8> - 6fd0: 3880008c andi r2,r7,2 - 6fd4: b5400017 ldw r21,0(r22) - 6fd8: 10002826 beq r2,zero,707c <__sfvwrite_r+0x100> - 6fdc: 0021883a mov r16,zero - 6fe0: 0023883a mov r17,zero - 6fe4: 880d883a mov r6,r17 - 6fe8: e009883a mov r4,fp - 6fec: 00810004 movi r2,1024 - 6ff0: 80006e26 beq r16,zero,71ac <__sfvwrite_r+0x230> - 6ff4: 800f883a mov r7,r16 - 6ff8: 91400717 ldw r5,28(r18) - 6ffc: 1400012e bgeu r2,r16,7004 <__sfvwrite_r+0x88> - 7000: 100f883a mov r7,r2 - 7004: 90c00917 ldw r3,36(r18) - 7008: 183ee83a callr r3 - 700c: 1007883a mov r3,r2 - 7010: 80a1c83a sub r16,r16,r2 - 7014: 88a3883a add r17,r17,r2 - 7018: 00806d0e bge zero,r2,71d0 <__sfvwrite_r+0x254> - 701c: b0800217 ldw r2,8(r22) - 7020: 10c5c83a sub r2,r2,r3 - 7024: b0800215 stw r2,8(r22) - 7028: 103fee1e bne r2,zero,6fe4 <__sfvwrite_r+0x68> - 702c: 0009883a mov r4,zero - 7030: 2005883a mov r2,r4 - 7034: dfc00a17 ldw ra,40(sp) - 7038: df000917 ldw fp,36(sp) - 703c: ddc00817 ldw r23,32(sp) - 7040: dd800717 ldw r22,28(sp) - 7044: dd400617 ldw r21,24(sp) - 7048: dd000517 ldw r20,20(sp) - 704c: dcc00417 ldw r19,16(sp) - 7050: dc800317 ldw r18,12(sp) - 7054: dc400217 ldw r17,8(sp) - 7058: dc000117 ldw r16,4(sp) - 705c: dec00b04 addi sp,sp,44 - 7060: f800283a ret - 7064: 0004ce40 call 4ce4 <__swsetup_r> - 7068: 1000e41e bne r2,zero,73fc <__sfvwrite_r+0x480> - 706c: 91c0030b ldhu r7,12(r18) - 7070: b5400017 ldw r21,0(r22) - 7074: 3880008c andi r2,r7,2 - 7078: 103fd81e bne r2,zero,6fdc <__sfvwrite_r+0x60> - 707c: 3880004c andi r2,r7,1 - 7080: 1005003a cmpeq r2,r2,zero - 7084: 10005726 beq r2,zero,71e4 <__sfvwrite_r+0x268> - 7088: 0029883a mov r20,zero - 708c: 002f883a mov r23,zero - 7090: a0004226 beq r20,zero,719c <__sfvwrite_r+0x220> - 7094: 3880800c andi r2,r7,512 - 7098: 94000217 ldw r16,8(r18) - 709c: 10008b26 beq r2,zero,72cc <__sfvwrite_r+0x350> - 70a0: 800d883a mov r6,r16 - 70a4: a400a536 bltu r20,r16,733c <__sfvwrite_r+0x3c0> - 70a8: 3881200c andi r2,r7,1152 - 70ac: 10002726 beq r2,zero,714c <__sfvwrite_r+0x1d0> - 70b0: 90800517 ldw r2,20(r18) - 70b4: 92000417 ldw r8,16(r18) - 70b8: 91400017 ldw r5,0(r18) - 70bc: 1087883a add r3,r2,r2 - 70c0: 1887883a add r3,r3,r2 - 70c4: 1808d7fa srli r4,r3,31 - 70c8: 2a21c83a sub r16,r5,r8 - 70cc: 80800044 addi r2,r16,1 - 70d0: 20c9883a add r4,r4,r3 - 70d4: 2027d07a srai r19,r4,1 - 70d8: a085883a add r2,r20,r2 - 70dc: 980d883a mov r6,r19 - 70e0: 9880022e bgeu r19,r2,70ec <__sfvwrite_r+0x170> - 70e4: 1027883a mov r19,r2 - 70e8: 100d883a mov r6,r2 - 70ec: 3881000c andi r2,r7,1024 - 70f0: 1000b826 beq r2,zero,73d4 <__sfvwrite_r+0x458> - 70f4: 300b883a mov r5,r6 - 70f8: e009883a mov r4,fp - 70fc: 00077f00 call 77f0 <_malloc_r> - 7100: 10003126 beq r2,zero,71c8 <__sfvwrite_r+0x24c> - 7104: 91400417 ldw r5,16(r18) - 7108: 1009883a mov r4,r2 - 710c: 800d883a mov r6,r16 - 7110: 1023883a mov r17,r2 - 7114: 00080140 call 8014 - 7118: 90c0030b ldhu r3,12(r18) - 711c: 00beffc4 movi r2,-1025 - 7120: 1886703a and r3,r3,r2 - 7124: 18c02014 ori r3,r3,128 - 7128: 90c0030d sth r3,12(r18) - 712c: 9c07c83a sub r3,r19,r16 - 7130: 8c05883a add r2,r17,r16 - 7134: a00d883a mov r6,r20 - 7138: a021883a mov r16,r20 - 713c: 90800015 stw r2,0(r18) - 7140: 90c00215 stw r3,8(r18) - 7144: 94400415 stw r17,16(r18) - 7148: 94c00515 stw r19,20(r18) - 714c: 91000017 ldw r4,0(r18) - 7150: b80b883a mov r5,r23 - 7154: a023883a mov r17,r20 - 7158: 00080b40 call 80b4 - 715c: 90c00217 ldw r3,8(r18) - 7160: 90800017 ldw r2,0(r18) - 7164: a027883a mov r19,r20 - 7168: 1c07c83a sub r3,r3,r16 - 716c: 1405883a add r2,r2,r16 - 7170: 90c00215 stw r3,8(r18) - 7174: a021883a mov r16,r20 - 7178: 90800015 stw r2,0(r18) - 717c: b0800217 ldw r2,8(r22) - 7180: 1405c83a sub r2,r2,r16 - 7184: b0800215 stw r2,8(r22) - 7188: 103fa826 beq r2,zero,702c <__sfvwrite_r+0xb0> - 718c: a469c83a sub r20,r20,r17 - 7190: 91c0030b ldhu r7,12(r18) - 7194: bcef883a add r23,r23,r19 - 7198: a03fbe1e bne r20,zero,7094 <__sfvwrite_r+0x118> - 719c: adc00017 ldw r23,0(r21) - 71a0: ad000117 ldw r20,4(r21) - 71a4: ad400204 addi r21,r21,8 - 71a8: 003fb906 br 7090 <__sfvwrite_r+0x114> - 71ac: ac400017 ldw r17,0(r21) - 71b0: ac000117 ldw r16,4(r21) - 71b4: ad400204 addi r21,r21,8 - 71b8: 003f8a06 br 6fe4 <__sfvwrite_r+0x68> - 71bc: 91400417 ldw r5,16(r18) - 71c0: e009883a mov r4,fp - 71c4: 0006c680 call 6c68 <_free_r> - 71c8: 00800304 movi r2,12 - 71cc: e0800015 stw r2,0(fp) - 71d0: 9080030b ldhu r2,12(r18) - 71d4: 013fffc4 movi r4,-1 - 71d8: 10801014 ori r2,r2,64 - 71dc: 9080030d sth r2,12(r18) - 71e0: 003f9306 br 7030 <__sfvwrite_r+0xb4> - 71e4: 0027883a mov r19,zero - 71e8: 002f883a mov r23,zero - 71ec: d8000015 stw zero,0(sp) - 71f0: 0029883a mov r20,zero - 71f4: 98001e26 beq r19,zero,7270 <__sfvwrite_r+0x2f4> - 71f8: d8c00017 ldw r3,0(sp) - 71fc: 1804c03a cmpne r2,r3,zero - 7200: 10005e26 beq r2,zero,737c <__sfvwrite_r+0x400> - 7204: 9821883a mov r16,r19 - 7208: a4c0012e bgeu r20,r19,7210 <__sfvwrite_r+0x294> - 720c: a021883a mov r16,r20 - 7210: 91000017 ldw r4,0(r18) - 7214: 90800417 ldw r2,16(r18) - 7218: 91800217 ldw r6,8(r18) - 721c: 91c00517 ldw r7,20(r18) - 7220: 1100022e bgeu r2,r4,722c <__sfvwrite_r+0x2b0> - 7224: 31e3883a add r17,r6,r7 - 7228: 8c001616 blt r17,r16,7284 <__sfvwrite_r+0x308> - 722c: 81c03816 blt r16,r7,7310 <__sfvwrite_r+0x394> - 7230: 90c00917 ldw r3,36(r18) - 7234: 91400717 ldw r5,28(r18) - 7238: e009883a mov r4,fp - 723c: b80d883a mov r6,r23 - 7240: 183ee83a callr r3 - 7244: 1023883a mov r17,r2 - 7248: 00bfe10e bge zero,r2,71d0 <__sfvwrite_r+0x254> - 724c: a469c83a sub r20,r20,r17 - 7250: a0001826 beq r20,zero,72b4 <__sfvwrite_r+0x338> - 7254: b0800217 ldw r2,8(r22) - 7258: 1445c83a sub r2,r2,r17 - 725c: b0800215 stw r2,8(r22) - 7260: 103f7226 beq r2,zero,702c <__sfvwrite_r+0xb0> - 7264: 9c67c83a sub r19,r19,r17 - 7268: bc6f883a add r23,r23,r17 - 726c: 983fe21e bne r19,zero,71f8 <__sfvwrite_r+0x27c> - 7270: adc00017 ldw r23,0(r21) - 7274: acc00117 ldw r19,4(r21) - 7278: ad400204 addi r21,r21,8 - 727c: d8000015 stw zero,0(sp) - 7280: 003fdc06 br 71f4 <__sfvwrite_r+0x278> - 7284: b80b883a mov r5,r23 - 7288: 880d883a mov r6,r17 - 728c: 00080b40 call 80b4 - 7290: 90c00017 ldw r3,0(r18) - 7294: e009883a mov r4,fp - 7298: 900b883a mov r5,r18 - 729c: 1c47883a add r3,r3,r17 - 72a0: 90c00015 stw r3,0(r18) - 72a4: 00066180 call 6618 <_fflush_r> - 72a8: 103fc91e bne r2,zero,71d0 <__sfvwrite_r+0x254> - 72ac: a469c83a sub r20,r20,r17 - 72b0: a03fe81e bne r20,zero,7254 <__sfvwrite_r+0x2d8> - 72b4: e009883a mov r4,fp - 72b8: 900b883a mov r5,r18 - 72bc: 00066180 call 6618 <_fflush_r> - 72c0: 103fc31e bne r2,zero,71d0 <__sfvwrite_r+0x254> - 72c4: d8000015 stw zero,0(sp) - 72c8: 003fe206 br 7254 <__sfvwrite_r+0x2d8> - 72cc: 91000017 ldw r4,0(r18) - 72d0: 90800417 ldw r2,16(r18) - 72d4: 1100022e bgeu r2,r4,72e0 <__sfvwrite_r+0x364> - 72d8: 8023883a mov r17,r16 - 72dc: 85003136 bltu r16,r20,73a4 <__sfvwrite_r+0x428> - 72e0: 91c00517 ldw r7,20(r18) - 72e4: a1c01836 bltu r20,r7,7348 <__sfvwrite_r+0x3cc> - 72e8: 90c00917 ldw r3,36(r18) - 72ec: 91400717 ldw r5,28(r18) - 72f0: e009883a mov r4,fp - 72f4: b80d883a mov r6,r23 - 72f8: 183ee83a callr r3 - 72fc: 1021883a mov r16,r2 - 7300: 00bfb30e bge zero,r2,71d0 <__sfvwrite_r+0x254> - 7304: 1023883a mov r17,r2 - 7308: 1027883a mov r19,r2 - 730c: 003f9b06 br 717c <__sfvwrite_r+0x200> - 7310: b80b883a mov r5,r23 - 7314: 800d883a mov r6,r16 - 7318: 00080b40 call 80b4 - 731c: 90c00217 ldw r3,8(r18) - 7320: 90800017 ldw r2,0(r18) - 7324: 8023883a mov r17,r16 - 7328: 1c07c83a sub r3,r3,r16 - 732c: 1405883a add r2,r2,r16 - 7330: 90c00215 stw r3,8(r18) - 7334: 90800015 stw r2,0(r18) - 7338: 003fc406 br 724c <__sfvwrite_r+0x2d0> - 733c: a00d883a mov r6,r20 - 7340: a021883a mov r16,r20 - 7344: 003f8106 br 714c <__sfvwrite_r+0x1d0> - 7348: b80b883a mov r5,r23 - 734c: a00d883a mov r6,r20 - 7350: 00080b40 call 80b4 - 7354: 90c00217 ldw r3,8(r18) - 7358: 90800017 ldw r2,0(r18) - 735c: a021883a mov r16,r20 - 7360: 1d07c83a sub r3,r3,r20 - 7364: 1505883a add r2,r2,r20 - 7368: a023883a mov r17,r20 - 736c: a027883a mov r19,r20 - 7370: 90c00215 stw r3,8(r18) - 7374: 90800015 stw r2,0(r18) - 7378: 003f8006 br 717c <__sfvwrite_r+0x200> - 737c: b809883a mov r4,r23 - 7380: 01400284 movi r5,10 - 7384: 980d883a mov r6,r19 - 7388: 0007f300 call 7f30 - 738c: 10001726 beq r2,zero,73ec <__sfvwrite_r+0x470> - 7390: 15c5c83a sub r2,r2,r23 - 7394: 15000044 addi r20,r2,1 - 7398: 00800044 movi r2,1 - 739c: d8800015 stw r2,0(sp) - 73a0: 003f9806 br 7204 <__sfvwrite_r+0x288> - 73a4: b80b883a mov r5,r23 - 73a8: 800d883a mov r6,r16 - 73ac: 00080b40 call 80b4 - 73b0: 90c00017 ldw r3,0(r18) - 73b4: e009883a mov r4,fp - 73b8: 900b883a mov r5,r18 - 73bc: 1c07883a add r3,r3,r16 - 73c0: 90c00015 stw r3,0(r18) - 73c4: 8027883a mov r19,r16 - 73c8: 00066180 call 6618 <_fflush_r> - 73cc: 103f6b26 beq r2,zero,717c <__sfvwrite_r+0x200> - 73d0: 003f7f06 br 71d0 <__sfvwrite_r+0x254> - 73d4: 400b883a mov r5,r8 - 73d8: e009883a mov r4,fp - 73dc: 00092b80 call 92b8 <_realloc_r> - 73e0: 103f7626 beq r2,zero,71bc <__sfvwrite_r+0x240> - 73e4: 1023883a mov r17,r2 - 73e8: 003f5006 br 712c <__sfvwrite_r+0x1b0> - 73ec: 00c00044 movi r3,1 - 73f0: 9d000044 addi r20,r19,1 - 73f4: d8c00015 stw r3,0(sp) - 73f8: 003f8206 br 7204 <__sfvwrite_r+0x288> - 73fc: 9080030b ldhu r2,12(r18) - 7400: 00c00244 movi r3,9 - 7404: 013fffc4 movi r4,-1 - 7408: 10801014 ori r2,r2,64 - 740c: 9080030d sth r2,12(r18) - 7410: e0c00015 stw r3,0(fp) - 7414: 003f0606 br 7030 <__sfvwrite_r+0xb4> - -00007418 <_fwalk_reent>: - 7418: defff704 addi sp,sp,-36 - 741c: dcc00315 stw r19,12(sp) - 7420: 24c0b804 addi r19,r4,736 - 7424: dd800615 stw r22,24(sp) - 7428: dd400515 stw r21,20(sp) - 742c: dfc00815 stw ra,32(sp) - 7430: ddc00715 stw r23,28(sp) - 7434: dd000415 stw r20,16(sp) - 7438: dc800215 stw r18,8(sp) - 743c: dc400115 stw r17,4(sp) - 7440: dc000015 stw r16,0(sp) - 7444: 202b883a mov r21,r4 - 7448: 282d883a mov r22,r5 - 744c: 00068a00 call 68a0 <__sfp_lock_acquire> - 7450: 98002126 beq r19,zero,74d8 <_fwalk_reent+0xc0> - 7454: 002f883a mov r23,zero - 7458: 9c800117 ldw r18,4(r19) - 745c: 9c000217 ldw r16,8(r19) - 7460: 90bfffc4 addi r2,r18,-1 - 7464: 10000d16 blt r2,zero,749c <_fwalk_reent+0x84> - 7468: 0023883a mov r17,zero - 746c: 053fffc4 movi r20,-1 - 7470: 8080030f ldh r2,12(r16) - 7474: 8c400044 addi r17,r17,1 - 7478: 10000626 beq r2,zero,7494 <_fwalk_reent+0x7c> - 747c: 8080038f ldh r2,14(r16) - 7480: 800b883a mov r5,r16 - 7484: a809883a mov r4,r21 - 7488: 15000226 beq r2,r20,7494 <_fwalk_reent+0x7c> - 748c: b03ee83a callr r22 - 7490: b8aeb03a or r23,r23,r2 - 7494: 84001704 addi r16,r16,92 - 7498: 947ff51e bne r18,r17,7470 <_fwalk_reent+0x58> - 749c: 9cc00017 ldw r19,0(r19) - 74a0: 983fed1e bne r19,zero,7458 <_fwalk_reent+0x40> - 74a4: 00068a40 call 68a4 <__sfp_lock_release> - 74a8: b805883a mov r2,r23 - 74ac: dfc00817 ldw ra,32(sp) - 74b0: ddc00717 ldw r23,28(sp) - 74b4: dd800617 ldw r22,24(sp) - 74b8: dd400517 ldw r21,20(sp) - 74bc: dd000417 ldw r20,16(sp) - 74c0: dcc00317 ldw r19,12(sp) - 74c4: dc800217 ldw r18,8(sp) - 74c8: dc400117 ldw r17,4(sp) - 74cc: dc000017 ldw r16,0(sp) - 74d0: dec00904 addi sp,sp,36 - 74d4: f800283a ret - 74d8: 002f883a mov r23,zero - 74dc: 003ff106 br 74a4 <_fwalk_reent+0x8c> - -000074e0 <_fwalk>: - 74e0: defff804 addi sp,sp,-32 - 74e4: dcc00315 stw r19,12(sp) - 74e8: 24c0b804 addi r19,r4,736 - 74ec: dd400515 stw r21,20(sp) - 74f0: dfc00715 stw ra,28(sp) - 74f4: dd800615 stw r22,24(sp) - 74f8: dd000415 stw r20,16(sp) - 74fc: dc800215 stw r18,8(sp) - 7500: dc400115 stw r17,4(sp) - 7504: dc000015 stw r16,0(sp) - 7508: 282b883a mov r21,r5 - 750c: 00068a00 call 68a0 <__sfp_lock_acquire> - 7510: 98001f26 beq r19,zero,7590 <_fwalk+0xb0> - 7514: 002d883a mov r22,zero - 7518: 9c800117 ldw r18,4(r19) - 751c: 9c000217 ldw r16,8(r19) - 7520: 90bfffc4 addi r2,r18,-1 - 7524: 10000c16 blt r2,zero,7558 <_fwalk+0x78> - 7528: 0023883a mov r17,zero - 752c: 053fffc4 movi r20,-1 - 7530: 8080030f ldh r2,12(r16) - 7534: 8c400044 addi r17,r17,1 - 7538: 10000526 beq r2,zero,7550 <_fwalk+0x70> - 753c: 8080038f ldh r2,14(r16) - 7540: 8009883a mov r4,r16 - 7544: 15000226 beq r2,r20,7550 <_fwalk+0x70> - 7548: a83ee83a callr r21 - 754c: b0acb03a or r22,r22,r2 - 7550: 84001704 addi r16,r16,92 - 7554: 947ff61e bne r18,r17,7530 <_fwalk+0x50> - 7558: 9cc00017 ldw r19,0(r19) - 755c: 983fee1e bne r19,zero,7518 <_fwalk+0x38> - 7560: 00068a40 call 68a4 <__sfp_lock_release> - 7564: b005883a mov r2,r22 - 7568: dfc00717 ldw ra,28(sp) - 756c: dd800617 ldw r22,24(sp) - 7570: dd400517 ldw r21,20(sp) - 7574: dd000417 ldw r20,16(sp) - 7578: dcc00317 ldw r19,12(sp) - 757c: dc800217 ldw r18,8(sp) - 7580: dc400117 ldw r17,4(sp) - 7584: dc000017 ldw r16,0(sp) - 7588: dec00804 addi sp,sp,32 - 758c: f800283a ret - 7590: 002d883a mov r22,zero - 7594: 003ff206 br 7560 <_fwalk+0x80> - -00007598 <__locale_charset>: - 7598: d0a00517 ldw r2,-32748(gp) - 759c: f800283a ret - -000075a0 <_localeconv_r>: - 75a0: 00800074 movhi r2,1 - 75a4: 10810304 addi r2,r2,1036 - 75a8: f800283a ret - -000075ac : - 75ac: 00800074 movhi r2,1 - 75b0: 10887e04 addi r2,r2,8696 - 75b4: 11000017 ldw r4,0(r2) - 75b8: 00075a01 jmpi 75a0 <_localeconv_r> - -000075bc <_setlocale_r>: - 75bc: defffc04 addi sp,sp,-16 - 75c0: 00c00074 movhi r3,1 - 75c4: 18c0fe04 addi r3,r3,1016 - 75c8: dc800215 stw r18,8(sp) - 75cc: dc400115 stw r17,4(sp) - 75d0: dc000015 stw r16,0(sp) - 75d4: 2023883a mov r17,r4 - 75d8: 2825883a mov r18,r5 - 75dc: dfc00315 stw ra,12(sp) - 75e0: 3021883a mov r16,r6 - 75e4: 3009883a mov r4,r6 - 75e8: 180b883a mov r5,r3 - 75ec: 30000926 beq r6,zero,7614 <_setlocale_r+0x58> - 75f0: 0009ad80 call 9ad8 - 75f4: 8009883a mov r4,r16 - 75f8: 01400074 movhi r5,1 - 75fc: 2940e904 addi r5,r5,932 - 7600: 10000b1e bne r2,zero,7630 <_setlocale_r+0x74> - 7604: 8c000d15 stw r16,52(r17) - 7608: 8c800c15 stw r18,48(r17) - 760c: 00c00074 movhi r3,1 - 7610: 18c0fe04 addi r3,r3,1016 - 7614: 1805883a mov r2,r3 - 7618: dfc00317 ldw ra,12(sp) - 761c: dc800217 ldw r18,8(sp) - 7620: dc400117 ldw r17,4(sp) - 7624: dc000017 ldw r16,0(sp) - 7628: dec00404 addi sp,sp,16 - 762c: f800283a ret - 7630: 0009ad80 call 9ad8 - 7634: 0007883a mov r3,zero - 7638: 103ff226 beq r2,zero,7604 <_setlocale_r+0x48> - 763c: 003ff506 br 7614 <_setlocale_r+0x58> - -00007640 : - 7640: 01800074 movhi r6,1 - 7644: 31887e04 addi r6,r6,8696 - 7648: 2007883a mov r3,r4 - 764c: 31000017 ldw r4,0(r6) - 7650: 280d883a mov r6,r5 - 7654: 180b883a mov r5,r3 - 7658: 00075bc1 jmpi 75bc <_setlocale_r> - -0000765c <__smakebuf_r>: - 765c: 2880030b ldhu r2,12(r5) - 7660: deffed04 addi sp,sp,-76 - 7664: dc401015 stw r17,64(sp) - 7668: 1080008c andi r2,r2,2 - 766c: dc000f15 stw r16,60(sp) - 7670: dfc01215 stw ra,72(sp) - 7674: dc801115 stw r18,68(sp) - 7678: 2821883a mov r16,r5 - 767c: 2023883a mov r17,r4 - 7680: 10000b26 beq r2,zero,76b0 <__smakebuf_r+0x54> - 7684: 28c010c4 addi r3,r5,67 - 7688: 00800044 movi r2,1 - 768c: 28800515 stw r2,20(r5) - 7690: 28c00415 stw r3,16(r5) - 7694: 28c00015 stw r3,0(r5) - 7698: dfc01217 ldw ra,72(sp) - 769c: dc801117 ldw r18,68(sp) - 76a0: dc401017 ldw r17,64(sp) - 76a4: dc000f17 ldw r16,60(sp) - 76a8: dec01304 addi sp,sp,76 - 76ac: f800283a ret - 76b0: 2940038f ldh r5,14(r5) - 76b4: 28002116 blt r5,zero,773c <__smakebuf_r+0xe0> - 76b8: d80d883a mov r6,sp - 76bc: 0009e680 call 9e68 <_fstat_r> - 76c0: 10001e16 blt r2,zero,773c <__smakebuf_r+0xe0> - 76c4: d8800117 ldw r2,4(sp) - 76c8: 00e00014 movui r3,32768 - 76cc: 113c000c andi r4,r2,61440 - 76d0: 20c03126 beq r4,r3,7798 <__smakebuf_r+0x13c> - 76d4: 8080030b ldhu r2,12(r16) - 76d8: 00c80004 movi r3,8192 - 76dc: 10820014 ori r2,r2,2048 - 76e0: 8080030d sth r2,12(r16) - 76e4: 20c01e26 beq r4,r3,7760 <__smakebuf_r+0x104> - 76e8: 04810004 movi r18,1024 - 76ec: 8809883a mov r4,r17 - 76f0: 900b883a mov r5,r18 - 76f4: 00077f00 call 77f0 <_malloc_r> - 76f8: 1009883a mov r4,r2 - 76fc: 10003126 beq r2,zero,77c4 <__smakebuf_r+0x168> - 7700: 80c0030b ldhu r3,12(r16) - 7704: 00800034 movhi r2,0 - 7708: 109a6504 addi r2,r2,27028 - 770c: 88800f15 stw r2,60(r17) - 7710: 18c02014 ori r3,r3,128 - 7714: 84800515 stw r18,20(r16) - 7718: 80c0030d sth r3,12(r16) - 771c: 81000415 stw r4,16(r16) - 7720: 81000015 stw r4,0(r16) - 7724: dfc01217 ldw ra,72(sp) - 7728: dc801117 ldw r18,68(sp) - 772c: dc401017 ldw r17,64(sp) - 7730: dc000f17 ldw r16,60(sp) - 7734: dec01304 addi sp,sp,76 - 7738: f800283a ret - 773c: 80c0030b ldhu r3,12(r16) - 7740: 1880200c andi r2,r3,128 - 7744: 10000426 beq r2,zero,7758 <__smakebuf_r+0xfc> - 7748: 04801004 movi r18,64 - 774c: 18820014 ori r2,r3,2048 - 7750: 8080030d sth r2,12(r16) - 7754: 003fe506 br 76ec <__smakebuf_r+0x90> - 7758: 04810004 movi r18,1024 - 775c: 003ffb06 br 774c <__smakebuf_r+0xf0> - 7760: 8140038f ldh r5,14(r16) - 7764: 8809883a mov r4,r17 - 7768: 0009edc0 call 9edc <_isatty_r> - 776c: 103fde26 beq r2,zero,76e8 <__smakebuf_r+0x8c> - 7770: 8080030b ldhu r2,12(r16) - 7774: 80c010c4 addi r3,r16,67 - 7778: 04810004 movi r18,1024 - 777c: 10800054 ori r2,r2,1 - 7780: 8080030d sth r2,12(r16) - 7784: 00800044 movi r2,1 - 7788: 80c00415 stw r3,16(r16) - 778c: 80800515 stw r2,20(r16) - 7790: 80c00015 stw r3,0(r16) - 7794: 003fd506 br 76ec <__smakebuf_r+0x90> - 7798: 80c00a17 ldw r3,40(r16) - 779c: 00800074 movhi r2,1 - 77a0: 10a66504 addi r2,r2,-26220 - 77a4: 18bfcb1e bne r3,r2,76d4 <__smakebuf_r+0x78> - 77a8: 8080030b ldhu r2,12(r16) - 77ac: 00c10004 movi r3,1024 - 77b0: 1825883a mov r18,r3 - 77b4: 10c4b03a or r2,r2,r3 - 77b8: 8080030d sth r2,12(r16) - 77bc: 80c01315 stw r3,76(r16) - 77c0: 003fca06 br 76ec <__smakebuf_r+0x90> - 77c4: 8100030b ldhu r4,12(r16) - 77c8: 2080800c andi r2,r4,512 - 77cc: 103fb21e bne r2,zero,7698 <__smakebuf_r+0x3c> - 77d0: 80c010c4 addi r3,r16,67 - 77d4: 21000094 ori r4,r4,2 - 77d8: 00800044 movi r2,1 - 77dc: 80800515 stw r2,20(r16) - 77e0: 8100030d sth r4,12(r16) - 77e4: 80c00415 stw r3,16(r16) - 77e8: 80c00015 stw r3,0(r16) - 77ec: 003faa06 br 7698 <__smakebuf_r+0x3c> - -000077f0 <_malloc_r>: - 77f0: defff604 addi sp,sp,-40 - 77f4: 28c002c4 addi r3,r5,11 - 77f8: 00800584 movi r2,22 - 77fc: dc800215 stw r18,8(sp) - 7800: dfc00915 stw ra,36(sp) - 7804: df000815 stw fp,32(sp) - 7808: ddc00715 stw r23,28(sp) - 780c: dd800615 stw r22,24(sp) - 7810: dd400515 stw r21,20(sp) - 7814: dd000415 stw r20,16(sp) - 7818: dcc00315 stw r19,12(sp) - 781c: dc400115 stw r17,4(sp) - 7820: dc000015 stw r16,0(sp) - 7824: 2025883a mov r18,r4 - 7828: 10c01236 bltu r2,r3,7874 <_malloc_r+0x84> - 782c: 04400404 movi r17,16 - 7830: 8940142e bgeu r17,r5,7884 <_malloc_r+0x94> - 7834: 00800304 movi r2,12 - 7838: 0007883a mov r3,zero - 783c: 90800015 stw r2,0(r18) - 7840: 1805883a mov r2,r3 - 7844: dfc00917 ldw ra,36(sp) - 7848: df000817 ldw fp,32(sp) - 784c: ddc00717 ldw r23,28(sp) - 7850: dd800617 ldw r22,24(sp) - 7854: dd400517 ldw r21,20(sp) - 7858: dd000417 ldw r20,16(sp) - 785c: dcc00317 ldw r19,12(sp) - 7860: dc800217 ldw r18,8(sp) - 7864: dc400117 ldw r17,4(sp) - 7868: dc000017 ldw r16,0(sp) - 786c: dec00a04 addi sp,sp,40 - 7870: f800283a ret - 7874: 00bffe04 movi r2,-8 - 7878: 18a2703a and r17,r3,r2 - 787c: 883fed16 blt r17,zero,7834 <_malloc_r+0x44> - 7880: 897fec36 bltu r17,r5,7834 <_malloc_r+0x44> - 7884: 9009883a mov r4,r18 - 7888: 000cb800 call cb80 <__malloc_lock> - 788c: 00807dc4 movi r2,503 - 7890: 14402b2e bgeu r2,r17,7940 <_malloc_r+0x150> - 7894: 8806d27a srli r3,r17,9 - 7898: 18003f1e bne r3,zero,7998 <_malloc_r+0x1a8> - 789c: 880cd0fa srli r6,r17,3 - 78a0: 300490fa slli r2,r6,3 - 78a4: 02c00074 movhi r11,1 - 78a8: 5ac2b004 addi r11,r11,2752 - 78ac: 12cb883a add r5,r2,r11 - 78b0: 2c000317 ldw r16,12(r5) - 78b4: 580f883a mov r7,r11 - 78b8: 2c00041e bne r5,r16,78cc <_malloc_r+0xdc> - 78bc: 00000a06 br 78e8 <_malloc_r+0xf8> - 78c0: 1800860e bge r3,zero,7adc <_malloc_r+0x2ec> - 78c4: 84000317 ldw r16,12(r16) - 78c8: 2c000726 beq r5,r16,78e8 <_malloc_r+0xf8> - 78cc: 80800117 ldw r2,4(r16) - 78d0: 00ffff04 movi r3,-4 - 78d4: 10c8703a and r4,r2,r3 - 78d8: 2447c83a sub r3,r4,r17 - 78dc: 008003c4 movi r2,15 - 78e0: 10fff70e bge r2,r3,78c0 <_malloc_r+0xd0> - 78e4: 31bfffc4 addi r6,r6,-1 - 78e8: 32400044 addi r9,r6,1 - 78ec: 02800074 movhi r10,1 - 78f0: 5282b204 addi r10,r10,2760 - 78f4: 54000217 ldw r16,8(r10) - 78f8: 8280a026 beq r16,r10,7b7c <_malloc_r+0x38c> - 78fc: 80800117 ldw r2,4(r16) - 7900: 00ffff04 movi r3,-4 - 7904: 10ca703a and r5,r2,r3 - 7908: 2c4dc83a sub r6,r5,r17 - 790c: 008003c4 movi r2,15 - 7910: 11808316 blt r2,r6,7b20 <_malloc_r+0x330> - 7914: 52800315 stw r10,12(r10) - 7918: 52800215 stw r10,8(r10) - 791c: 30002916 blt r6,zero,79c4 <_malloc_r+0x1d4> - 7920: 8147883a add r3,r16,r5 - 7924: 18800117 ldw r2,4(r3) - 7928: 9009883a mov r4,r18 - 792c: 10800054 ori r2,r2,1 - 7930: 18800115 stw r2,4(r3) - 7934: 000cba00 call cba0 <__malloc_unlock> - 7938: 80c00204 addi r3,r16,8 - 793c: 003fc006 br 7840 <_malloc_r+0x50> - 7940: 02c00074 movhi r11,1 - 7944: 5ac2b004 addi r11,r11,2752 - 7948: 8ac5883a add r2,r17,r11 - 794c: 14000317 ldw r16,12(r2) - 7950: 580f883a mov r7,r11 - 7954: 8806d0fa srli r3,r17,3 - 7958: 14006c26 beq r2,r16,7b0c <_malloc_r+0x31c> - 795c: 80c00117 ldw r3,4(r16) - 7960: 00bfff04 movi r2,-4 - 7964: 81800317 ldw r6,12(r16) - 7968: 1886703a and r3,r3,r2 - 796c: 80c7883a add r3,r16,r3 - 7970: 18800117 ldw r2,4(r3) - 7974: 81400217 ldw r5,8(r16) - 7978: 9009883a mov r4,r18 - 797c: 10800054 ori r2,r2,1 - 7980: 18800115 stw r2,4(r3) - 7984: 31400215 stw r5,8(r6) - 7988: 29800315 stw r6,12(r5) - 798c: 000cba00 call cba0 <__malloc_unlock> - 7990: 80c00204 addi r3,r16,8 - 7994: 003faa06 br 7840 <_malloc_r+0x50> - 7998: 00800104 movi r2,4 - 799c: 10c0052e bgeu r2,r3,79b4 <_malloc_r+0x1c4> - 79a0: 00800504 movi r2,20 - 79a4: 10c07836 bltu r2,r3,7b88 <_malloc_r+0x398> - 79a8: 198016c4 addi r6,r3,91 - 79ac: 300490fa slli r2,r6,3 - 79b0: 003fbc06 br 78a4 <_malloc_r+0xb4> - 79b4: 8804d1ba srli r2,r17,6 - 79b8: 11800e04 addi r6,r2,56 - 79bc: 300490fa slli r2,r6,3 - 79c0: 003fb806 br 78a4 <_malloc_r+0xb4> - 79c4: 00807fc4 movi r2,511 - 79c8: 1140bb36 bltu r2,r5,7cb8 <_malloc_r+0x4c8> - 79cc: 2806d0fa srli r3,r5,3 - 79d0: 573ffe04 addi fp,r10,-8 - 79d4: 00800044 movi r2,1 - 79d8: 180890fa slli r4,r3,3 - 79dc: 1807d0ba srai r3,r3,2 - 79e0: e1c00117 ldw r7,4(fp) - 79e4: 5909883a add r4,r11,r4 - 79e8: 21400217 ldw r5,8(r4) - 79ec: 10c4983a sll r2,r2,r3 - 79f0: 81000315 stw r4,12(r16) - 79f4: 81400215 stw r5,8(r16) - 79f8: 388eb03a or r7,r7,r2 - 79fc: 2c000315 stw r16,12(r5) - 7a00: 24000215 stw r16,8(r4) - 7a04: e1c00115 stw r7,4(fp) - 7a08: 4807883a mov r3,r9 - 7a0c: 4800cd16 blt r9,zero,7d44 <_malloc_r+0x554> - 7a10: 1807d0ba srai r3,r3,2 - 7a14: 00800044 movi r2,1 - 7a18: 10c8983a sll r4,r2,r3 - 7a1c: 39004436 bltu r7,r4,7b30 <_malloc_r+0x340> - 7a20: 21c4703a and r2,r4,r7 - 7a24: 10000a1e bne r2,zero,7a50 <_malloc_r+0x260> - 7a28: 2109883a add r4,r4,r4 - 7a2c: 00bfff04 movi r2,-4 - 7a30: 4884703a and r2,r9,r2 - 7a34: 3906703a and r3,r7,r4 - 7a38: 12400104 addi r9,r2,4 - 7a3c: 1800041e bne r3,zero,7a50 <_malloc_r+0x260> - 7a40: 2109883a add r4,r4,r4 - 7a44: 3904703a and r2,r7,r4 - 7a48: 4a400104 addi r9,r9,4 - 7a4c: 103ffc26 beq r2,zero,7a40 <_malloc_r+0x250> - 7a50: 480490fa slli r2,r9,3 - 7a54: 4819883a mov r12,r9 - 7a58: 023fff04 movi r8,-4 - 7a5c: 589b883a add r13,r11,r2 - 7a60: 6807883a mov r3,r13 - 7a64: 014003c4 movi r5,15 - 7a68: 1c000317 ldw r16,12(r3) - 7a6c: 1c00041e bne r3,r16,7a80 <_malloc_r+0x290> - 7a70: 0000a706 br 7d10 <_malloc_r+0x520> - 7a74: 3000ab0e bge r6,zero,7d24 <_malloc_r+0x534> - 7a78: 84000317 ldw r16,12(r16) - 7a7c: 1c00a426 beq r3,r16,7d10 <_malloc_r+0x520> - 7a80: 80800117 ldw r2,4(r16) - 7a84: 1204703a and r2,r2,r8 - 7a88: 144dc83a sub r6,r2,r17 - 7a8c: 29bff90e bge r5,r6,7a74 <_malloc_r+0x284> - 7a90: 81000317 ldw r4,12(r16) - 7a94: 80c00217 ldw r3,8(r16) - 7a98: 89400054 ori r5,r17,1 - 7a9c: 8445883a add r2,r16,r17 - 7aa0: 20c00215 stw r3,8(r4) - 7aa4: 19000315 stw r4,12(r3) - 7aa8: 81400115 stw r5,4(r16) - 7aac: 1187883a add r3,r2,r6 - 7ab0: 31000054 ori r4,r6,1 - 7ab4: 50800315 stw r2,12(r10) - 7ab8: 50800215 stw r2,8(r10) - 7abc: 19800015 stw r6,0(r3) - 7ac0: 11000115 stw r4,4(r2) - 7ac4: 12800215 stw r10,8(r2) - 7ac8: 12800315 stw r10,12(r2) - 7acc: 9009883a mov r4,r18 - 7ad0: 000cba00 call cba0 <__malloc_unlock> - 7ad4: 80c00204 addi r3,r16,8 - 7ad8: 003f5906 br 7840 <_malloc_r+0x50> - 7adc: 8109883a add r4,r16,r4 - 7ae0: 20800117 ldw r2,4(r4) - 7ae4: 80c00217 ldw r3,8(r16) - 7ae8: 81400317 ldw r5,12(r16) - 7aec: 10800054 ori r2,r2,1 - 7af0: 20800115 stw r2,4(r4) - 7af4: 28c00215 stw r3,8(r5) - 7af8: 19400315 stw r5,12(r3) - 7afc: 9009883a mov r4,r18 - 7b00: 000cba00 call cba0 <__malloc_unlock> - 7b04: 80c00204 addi r3,r16,8 - 7b08: 003f4d06 br 7840 <_malloc_r+0x50> - 7b0c: 80800204 addi r2,r16,8 - 7b10: 14000317 ldw r16,12(r2) - 7b14: 143f911e bne r2,r16,795c <_malloc_r+0x16c> - 7b18: 1a400084 addi r9,r3,2 - 7b1c: 003f7306 br 78ec <_malloc_r+0xfc> - 7b20: 88c00054 ori r3,r17,1 - 7b24: 8445883a add r2,r16,r17 - 7b28: 80c00115 stw r3,4(r16) - 7b2c: 003fdf06 br 7aac <_malloc_r+0x2bc> - 7b30: e4000217 ldw r16,8(fp) - 7b34: 00bfff04 movi r2,-4 - 7b38: 80c00117 ldw r3,4(r16) - 7b3c: 802d883a mov r22,r16 - 7b40: 18aa703a and r21,r3,r2 - 7b44: ac401636 bltu r21,r17,7ba0 <_malloc_r+0x3b0> - 7b48: ac49c83a sub r4,r21,r17 - 7b4c: 008003c4 movi r2,15 - 7b50: 1100130e bge r2,r4,7ba0 <_malloc_r+0x3b0> - 7b54: 88800054 ori r2,r17,1 - 7b58: 8447883a add r3,r16,r17 - 7b5c: 80800115 stw r2,4(r16) - 7b60: 20800054 ori r2,r4,1 - 7b64: 18800115 stw r2,4(r3) - 7b68: e0c00215 stw r3,8(fp) - 7b6c: 9009883a mov r4,r18 - 7b70: 000cba00 call cba0 <__malloc_unlock> - 7b74: 80c00204 addi r3,r16,8 - 7b78: 003f3106 br 7840 <_malloc_r+0x50> - 7b7c: 39c00117 ldw r7,4(r7) - 7b80: 573ffe04 addi fp,r10,-8 - 7b84: 003fa006 br 7a08 <_malloc_r+0x218> - 7b88: 00801504 movi r2,84 - 7b8c: 10c06736 bltu r2,r3,7d2c <_malloc_r+0x53c> - 7b90: 8804d33a srli r2,r17,12 - 7b94: 11801b84 addi r6,r2,110 - 7b98: 300490fa slli r2,r6,3 - 7b9c: 003f4106 br 78a4 <_malloc_r+0xb4> - 7ba0: d0a6fd17 ldw r2,-25612(gp) - 7ba4: d0e00717 ldw r3,-32740(gp) - 7ba8: 053fffc4 movi r20,-1 - 7bac: 10800404 addi r2,r2,16 - 7bb0: 88a7883a add r19,r17,r2 - 7bb4: 1d000326 beq r3,r20,7bc4 <_malloc_r+0x3d4> - 7bb8: 98c3ffc4 addi r3,r19,4095 - 7bbc: 00bc0004 movi r2,-4096 - 7bc0: 18a6703a and r19,r3,r2 - 7bc4: 9009883a mov r4,r18 - 7bc8: 980b883a mov r5,r19 - 7bcc: 000991c0 call 991c <_sbrk_r> - 7bd0: 1009883a mov r4,r2 - 7bd4: 15000426 beq r2,r20,7be8 <_malloc_r+0x3f8> - 7bd8: 854b883a add r5,r16,r21 - 7bdc: 1029883a mov r20,r2 - 7be0: 11405a2e bgeu r2,r5,7d4c <_malloc_r+0x55c> - 7be4: 87000c26 beq r16,fp,7c18 <_malloc_r+0x428> - 7be8: e4000217 ldw r16,8(fp) - 7bec: 80c00117 ldw r3,4(r16) - 7bf0: 00bfff04 movi r2,-4 - 7bf4: 1884703a and r2,r3,r2 - 7bf8: 14400336 bltu r2,r17,7c08 <_malloc_r+0x418> - 7bfc: 1449c83a sub r4,r2,r17 - 7c00: 008003c4 movi r2,15 - 7c04: 113fd316 blt r2,r4,7b54 <_malloc_r+0x364> - 7c08: 9009883a mov r4,r18 - 7c0c: 000cba00 call cba0 <__malloc_unlock> - 7c10: 0007883a mov r3,zero - 7c14: 003f0a06 br 7840 <_malloc_r+0x50> - 7c18: 05c00074 movhi r23,1 - 7c1c: bdd0c304 addi r23,r23,17164 - 7c20: b8800017 ldw r2,0(r23) - 7c24: 988d883a add r6,r19,r2 - 7c28: b9800015 stw r6,0(r23) - 7c2c: d0e00717 ldw r3,-32740(gp) - 7c30: 00bfffc4 movi r2,-1 - 7c34: 18808e26 beq r3,r2,7e70 <_malloc_r+0x680> - 7c38: 2145c83a sub r2,r4,r5 - 7c3c: 3085883a add r2,r6,r2 - 7c40: b8800015 stw r2,0(r23) - 7c44: 20c001cc andi r3,r4,7 - 7c48: 18005f1e bne r3,zero,7dc8 <_malloc_r+0x5d8> - 7c4c: 000b883a mov r5,zero - 7c50: a4c5883a add r2,r20,r19 - 7c54: 1083ffcc andi r2,r2,4095 - 7c58: 00c40004 movi r3,4096 - 7c5c: 1887c83a sub r3,r3,r2 - 7c60: 28e7883a add r19,r5,r3 - 7c64: 9009883a mov r4,r18 - 7c68: 980b883a mov r5,r19 - 7c6c: 000991c0 call 991c <_sbrk_r> - 7c70: 1007883a mov r3,r2 - 7c74: 00bfffc4 movi r2,-1 - 7c78: 18807a26 beq r3,r2,7e64 <_malloc_r+0x674> - 7c7c: 1d05c83a sub r2,r3,r20 - 7c80: 9885883a add r2,r19,r2 - 7c84: 10c00054 ori r3,r2,1 - 7c88: b8800017 ldw r2,0(r23) - 7c8c: a021883a mov r16,r20 - 7c90: a0c00115 stw r3,4(r20) - 7c94: 9885883a add r2,r19,r2 - 7c98: b8800015 stw r2,0(r23) - 7c9c: e5000215 stw r20,8(fp) - 7ca0: b7003626 beq r22,fp,7d7c <_malloc_r+0x58c> - 7ca4: 018003c4 movi r6,15 - 7ca8: 35404b36 bltu r6,r21,7dd8 <_malloc_r+0x5e8> - 7cac: 00800044 movi r2,1 - 7cb0: a0800115 stw r2,4(r20) - 7cb4: 003fcd06 br 7bec <_malloc_r+0x3fc> - 7cb8: 2808d27a srli r4,r5,9 - 7cbc: 2000371e bne r4,zero,7d9c <_malloc_r+0x5ac> - 7cc0: 2808d0fa srli r4,r5,3 - 7cc4: 200690fa slli r3,r4,3 - 7cc8: 1ad1883a add r8,r3,r11 - 7ccc: 41800217 ldw r6,8(r8) - 7cd0: 41805b26 beq r8,r6,7e40 <_malloc_r+0x650> - 7cd4: 30800117 ldw r2,4(r6) - 7cd8: 00ffff04 movi r3,-4 - 7cdc: 10c4703a and r2,r2,r3 - 7ce0: 2880022e bgeu r5,r2,7cec <_malloc_r+0x4fc> - 7ce4: 31800217 ldw r6,8(r6) - 7ce8: 41bffa1e bne r8,r6,7cd4 <_malloc_r+0x4e4> - 7cec: 32000317 ldw r8,12(r6) - 7cf0: 39c00117 ldw r7,4(r7) - 7cf4: 82000315 stw r8,12(r16) - 7cf8: 81800215 stw r6,8(r16) - 7cfc: 07000074 movhi fp,1 - 7d00: e702b004 addi fp,fp,2752 - 7d04: 34000315 stw r16,12(r6) - 7d08: 44000215 stw r16,8(r8) - 7d0c: 003f3e06 br 7a08 <_malloc_r+0x218> - 7d10: 63000044 addi r12,r12,1 - 7d14: 608000cc andi r2,r12,3 - 7d18: 10005d26 beq r2,zero,7e90 <_malloc_r+0x6a0> - 7d1c: 18c00204 addi r3,r3,8 - 7d20: 003f5106 br 7a68 <_malloc_r+0x278> - 7d24: 8089883a add r4,r16,r2 - 7d28: 003f6d06 br 7ae0 <_malloc_r+0x2f0> - 7d2c: 00805504 movi r2,340 - 7d30: 10c02036 bltu r2,r3,7db4 <_malloc_r+0x5c4> - 7d34: 8804d3fa srli r2,r17,15 - 7d38: 11801dc4 addi r6,r2,119 - 7d3c: 300490fa slli r2,r6,3 - 7d40: 003ed806 br 78a4 <_malloc_r+0xb4> - 7d44: 48c000c4 addi r3,r9,3 - 7d48: 003f3106 br 7a10 <_malloc_r+0x220> - 7d4c: 05c00074 movhi r23,1 - 7d50: bdd0c304 addi r23,r23,17164 - 7d54: b8800017 ldw r2,0(r23) - 7d58: 988d883a add r6,r19,r2 - 7d5c: b9800015 stw r6,0(r23) - 7d60: 293fb21e bne r5,r4,7c2c <_malloc_r+0x43c> - 7d64: 2083ffcc andi r2,r4,4095 - 7d68: 103fb01e bne r2,zero,7c2c <_malloc_r+0x43c> - 7d6c: e4000217 ldw r16,8(fp) - 7d70: 9d45883a add r2,r19,r21 - 7d74: 10800054 ori r2,r2,1 - 7d78: 80800115 stw r2,4(r16) - 7d7c: b8c00017 ldw r3,0(r23) - 7d80: d0a6fe17 ldw r2,-25608(gp) - 7d84: 10c0012e bgeu r2,r3,7d8c <_malloc_r+0x59c> - 7d88: d0e6fe15 stw r3,-25608(gp) - 7d8c: d0a6ff17 ldw r2,-25604(gp) - 7d90: 10ff962e bgeu r2,r3,7bec <_malloc_r+0x3fc> - 7d94: d0e6ff15 stw r3,-25604(gp) - 7d98: 003f9406 br 7bec <_malloc_r+0x3fc> - 7d9c: 00800104 movi r2,4 - 7da0: 11001e36 bltu r2,r4,7e1c <_malloc_r+0x62c> - 7da4: 2804d1ba srli r2,r5,6 - 7da8: 11000e04 addi r4,r2,56 - 7dac: 200690fa slli r3,r4,3 - 7db0: 003fc506 br 7cc8 <_malloc_r+0x4d8> - 7db4: 00815504 movi r2,1364 - 7db8: 10c01d2e bgeu r2,r3,7e30 <_malloc_r+0x640> - 7dbc: 01801f84 movi r6,126 - 7dc0: 0080fc04 movi r2,1008 - 7dc4: 003eb706 br 78a4 <_malloc_r+0xb4> - 7dc8: 00800204 movi r2,8 - 7dcc: 10cbc83a sub r5,r2,r3 - 7dd0: 2169883a add r20,r4,r5 - 7dd4: 003f9e06 br 7c50 <_malloc_r+0x460> - 7dd8: 00bffe04 movi r2,-8 - 7ddc: a93ffd04 addi r4,r21,-12 - 7de0: 2088703a and r4,r4,r2 - 7de4: b10b883a add r5,r22,r4 - 7de8: 00c00144 movi r3,5 - 7dec: 28c00215 stw r3,8(r5) - 7df0: 28c00115 stw r3,4(r5) - 7df4: b0800117 ldw r2,4(r22) - 7df8: 1080004c andi r2,r2,1 - 7dfc: 2084b03a or r2,r4,r2 - 7e00: b0800115 stw r2,4(r22) - 7e04: 313fdd2e bgeu r6,r4,7d7c <_malloc_r+0x58c> - 7e08: b1400204 addi r5,r22,8 - 7e0c: 9009883a mov r4,r18 - 7e10: 0006c680 call 6c68 <_free_r> - 7e14: e4000217 ldw r16,8(fp) - 7e18: 003fd806 br 7d7c <_malloc_r+0x58c> - 7e1c: 00800504 movi r2,20 - 7e20: 11001536 bltu r2,r4,7e78 <_malloc_r+0x688> - 7e24: 210016c4 addi r4,r4,91 - 7e28: 200690fa slli r3,r4,3 - 7e2c: 003fa606 br 7cc8 <_malloc_r+0x4d8> - 7e30: 8804d4ba srli r2,r17,18 - 7e34: 11801f04 addi r6,r2,124 - 7e38: 300490fa slli r2,r6,3 - 7e3c: 003e9906 br 78a4 <_malloc_r+0xb4> - 7e40: 2009d0ba srai r4,r4,2 - 7e44: 01400074 movhi r5,1 - 7e48: 2942b004 addi r5,r5,2752 - 7e4c: 00c00044 movi r3,1 - 7e50: 28800117 ldw r2,4(r5) - 7e54: 1906983a sll r3,r3,r4 - 7e58: 10c4b03a or r2,r2,r3 - 7e5c: 28800115 stw r2,4(r5) - 7e60: 003fa306 br 7cf0 <_malloc_r+0x500> - 7e64: 0027883a mov r19,zero - 7e68: 00c00044 movi r3,1 - 7e6c: 003f8606 br 7c88 <_malloc_r+0x498> - 7e70: d1200715 stw r4,-32740(gp) - 7e74: 003f7306 br 7c44 <_malloc_r+0x454> - 7e78: 00801504 movi r2,84 - 7e7c: 11001936 bltu r2,r4,7ee4 <_malloc_r+0x6f4> - 7e80: 2804d33a srli r2,r5,12 - 7e84: 11001b84 addi r4,r2,110 - 7e88: 200690fa slli r3,r4,3 - 7e8c: 003f8e06 br 7cc8 <_malloc_r+0x4d8> - 7e90: 480b883a mov r5,r9 - 7e94: 6807883a mov r3,r13 - 7e98: 288000cc andi r2,r5,3 - 7e9c: 18fffe04 addi r3,r3,-8 - 7ea0: 297fffc4 addi r5,r5,-1 - 7ea4: 10001526 beq r2,zero,7efc <_malloc_r+0x70c> - 7ea8: 18800217 ldw r2,8(r3) - 7eac: 10fffa26 beq r2,r3,7e98 <_malloc_r+0x6a8> - 7eb0: 2109883a add r4,r4,r4 - 7eb4: 393f1e36 bltu r7,r4,7b30 <_malloc_r+0x340> - 7eb8: 203f1d26 beq r4,zero,7b30 <_malloc_r+0x340> - 7ebc: 21c4703a and r2,r4,r7 - 7ec0: 10000226 beq r2,zero,7ecc <_malloc_r+0x6dc> - 7ec4: 6013883a mov r9,r12 - 7ec8: 003ee106 br 7a50 <_malloc_r+0x260> - 7ecc: 2109883a add r4,r4,r4 - 7ed0: 3904703a and r2,r7,r4 - 7ed4: 63000104 addi r12,r12,4 - 7ed8: 103ffc26 beq r2,zero,7ecc <_malloc_r+0x6dc> - 7edc: 6013883a mov r9,r12 - 7ee0: 003edb06 br 7a50 <_malloc_r+0x260> - 7ee4: 00805504 movi r2,340 - 7ee8: 11000836 bltu r2,r4,7f0c <_malloc_r+0x71c> - 7eec: 2804d3fa srli r2,r5,15 - 7ef0: 11001dc4 addi r4,r2,119 - 7ef4: 200690fa slli r3,r4,3 - 7ef8: 003f7306 br 7cc8 <_malloc_r+0x4d8> - 7efc: 0104303a nor r2,zero,r4 - 7f00: 388e703a and r7,r7,r2 - 7f04: e1c00115 stw r7,4(fp) - 7f08: 003fe906 br 7eb0 <_malloc_r+0x6c0> - 7f0c: 00815504 movi r2,1364 - 7f10: 1100032e bgeu r2,r4,7f20 <_malloc_r+0x730> - 7f14: 01001f84 movi r4,126 - 7f18: 00c0fc04 movi r3,1008 - 7f1c: 003f6a06 br 7cc8 <_malloc_r+0x4d8> - 7f20: 2804d4ba srli r2,r5,18 - 7f24: 11001f04 addi r4,r2,124 - 7f28: 200690fa slli r3,r4,3 - 7f2c: 003f6606 br 7cc8 <_malloc_r+0x4d8> - -00007f30 : - 7f30: 008000c4 movi r2,3 - 7f34: 29403fcc andi r5,r5,255 - 7f38: 2007883a mov r3,r4 - 7f3c: 1180022e bgeu r2,r6,7f48 - 7f40: 2084703a and r2,r4,r2 - 7f44: 10000b26 beq r2,zero,7f74 - 7f48: 313fffc4 addi r4,r6,-1 - 7f4c: 3000051e bne r6,zero,7f64 - 7f50: 00002c06 br 8004 - 7f54: 213fffc4 addi r4,r4,-1 - 7f58: 00bfffc4 movi r2,-1 - 7f5c: 18c00044 addi r3,r3,1 - 7f60: 20802826 beq r4,r2,8004 - 7f64: 18800003 ldbu r2,0(r3) - 7f68: 28bffa1e bne r5,r2,7f54 - 7f6c: 1805883a mov r2,r3 - 7f70: f800283a ret - 7f74: 0011883a mov r8,zero - 7f78: 0007883a mov r3,zero - 7f7c: 01c00104 movi r7,4 - 7f80: 4004923a slli r2,r8,8 - 7f84: 18c00044 addi r3,r3,1 - 7f88: 1151883a add r8,r2,r5 - 7f8c: 19fffc1e bne r3,r7,7f80 - 7f90: 02bfbff4 movhi r10,65279 - 7f94: 52bfbfc4 addi r10,r10,-257 - 7f98: 02602074 movhi r9,32897 - 7f9c: 4a602004 addi r9,r9,-32640 - 7fa0: 02c000c4 movi r11,3 - 7fa4: 20800017 ldw r2,0(r4) - 7fa8: 31bfff04 addi r6,r6,-4 - 7fac: 200f883a mov r7,r4 - 7fb0: 1204f03a xor r2,r2,r8 - 7fb4: 1287883a add r3,r2,r10 - 7fb8: 1a46703a and r3,r3,r9 - 7fbc: 0084303a nor r2,zero,r2 - 7fc0: 10c4703a and r2,r2,r3 - 7fc4: 10000b26 beq r2,zero,7ff4 - 7fc8: 20800003 ldbu r2,0(r4) - 7fcc: 28800f26 beq r5,r2,800c - 7fd0: 20800043 ldbu r2,1(r4) - 7fd4: 21c00044 addi r7,r4,1 - 7fd8: 28800c26 beq r5,r2,800c - 7fdc: 20800083 ldbu r2,2(r4) - 7fe0: 21c00084 addi r7,r4,2 - 7fe4: 28800926 beq r5,r2,800c - 7fe8: 208000c3 ldbu r2,3(r4) - 7fec: 21c000c4 addi r7,r4,3 - 7ff0: 28800626 beq r5,r2,800c - 7ff4: 21000104 addi r4,r4,4 - 7ff8: 59bfea36 bltu r11,r6,7fa4 - 7ffc: 2007883a mov r3,r4 - 8000: 003fd106 br 7f48 - 8004: 0005883a mov r2,zero - 8008: f800283a ret - 800c: 3805883a mov r2,r7 - 8010: f800283a ret - -00008014 : - 8014: 01c003c4 movi r7,15 - 8018: 2007883a mov r3,r4 - 801c: 3980032e bgeu r7,r6,802c - 8020: 2904b03a or r2,r5,r4 - 8024: 108000cc andi r2,r2,3 - 8028: 10000926 beq r2,zero,8050 - 802c: 30000626 beq r6,zero,8048 - 8030: 30cd883a add r6,r6,r3 - 8034: 28800003 ldbu r2,0(r5) - 8038: 29400044 addi r5,r5,1 - 803c: 18800005 stb r2,0(r3) - 8040: 18c00044 addi r3,r3,1 - 8044: 30fffb1e bne r6,r3,8034 - 8048: 2005883a mov r2,r4 - 804c: f800283a ret - 8050: 3811883a mov r8,r7 - 8054: 200f883a mov r7,r4 - 8058: 28c00017 ldw r3,0(r5) - 805c: 31bffc04 addi r6,r6,-16 - 8060: 38c00015 stw r3,0(r7) - 8064: 28800117 ldw r2,4(r5) - 8068: 38800115 stw r2,4(r7) - 806c: 28c00217 ldw r3,8(r5) - 8070: 38c00215 stw r3,8(r7) - 8074: 28800317 ldw r2,12(r5) - 8078: 29400404 addi r5,r5,16 - 807c: 38800315 stw r2,12(r7) - 8080: 39c00404 addi r7,r7,16 - 8084: 41bff436 bltu r8,r6,8058 - 8088: 008000c4 movi r2,3 - 808c: 1180072e bgeu r2,r6,80ac - 8090: 1007883a mov r3,r2 - 8094: 28800017 ldw r2,0(r5) - 8098: 31bfff04 addi r6,r6,-4 - 809c: 29400104 addi r5,r5,4 - 80a0: 38800015 stw r2,0(r7) - 80a4: 39c00104 addi r7,r7,4 - 80a8: 19bffa36 bltu r3,r6,8094 - 80ac: 3807883a mov r3,r7 - 80b0: 003fde06 br 802c - -000080b4 : - 80b4: 2807883a mov r3,r5 - 80b8: 2011883a mov r8,r4 - 80bc: 29000c2e bgeu r5,r4,80f0 - 80c0: 298f883a add r7,r5,r6 - 80c4: 21c00a2e bgeu r4,r7,80f0 - 80c8: 30000726 beq r6,zero,80e8 - 80cc: 2187883a add r3,r4,r6 - 80d0: 198dc83a sub r6,r3,r6 - 80d4: 39ffffc4 addi r7,r7,-1 - 80d8: 38800003 ldbu r2,0(r7) - 80dc: 18ffffc4 addi r3,r3,-1 - 80e0: 18800005 stb r2,0(r3) - 80e4: 19bffb1e bne r3,r6,80d4 - 80e8: 2005883a mov r2,r4 - 80ec: f800283a ret - 80f0: 01c003c4 movi r7,15 - 80f4: 39800a36 bltu r7,r6,8120 - 80f8: 303ffb26 beq r6,zero,80e8 - 80fc: 400f883a mov r7,r8 - 8100: 320d883a add r6,r6,r8 - 8104: 28800003 ldbu r2,0(r5) - 8108: 29400044 addi r5,r5,1 - 810c: 38800005 stb r2,0(r7) - 8110: 39c00044 addi r7,r7,1 - 8114: 39bffb1e bne r7,r6,8104 - 8118: 2005883a mov r2,r4 - 811c: f800283a ret - 8120: 1904b03a or r2,r3,r4 - 8124: 108000cc andi r2,r2,3 - 8128: 103ff31e bne r2,zero,80f8 - 812c: 3811883a mov r8,r7 - 8130: 180b883a mov r5,r3 - 8134: 200f883a mov r7,r4 - 8138: 28c00017 ldw r3,0(r5) - 813c: 31bffc04 addi r6,r6,-16 - 8140: 38c00015 stw r3,0(r7) - 8144: 28800117 ldw r2,4(r5) - 8148: 38800115 stw r2,4(r7) - 814c: 28c00217 ldw r3,8(r5) - 8150: 38c00215 stw r3,8(r7) - 8154: 28800317 ldw r2,12(r5) - 8158: 29400404 addi r5,r5,16 - 815c: 38800315 stw r2,12(r7) - 8160: 39c00404 addi r7,r7,16 - 8164: 41bff436 bltu r8,r6,8138 - 8168: 008000c4 movi r2,3 - 816c: 1180072e bgeu r2,r6,818c - 8170: 1007883a mov r3,r2 - 8174: 28800017 ldw r2,0(r5) - 8178: 31bfff04 addi r6,r6,-4 - 817c: 29400104 addi r5,r5,4 - 8180: 38800015 stw r2,0(r7) - 8184: 39c00104 addi r7,r7,4 - 8188: 19bffa36 bltu r3,r6,8174 - 818c: 3811883a mov r8,r7 - 8190: 003fd906 br 80f8 - -00008194 : - 8194: 008000c4 movi r2,3 - 8198: 29403fcc andi r5,r5,255 - 819c: 2007883a mov r3,r4 - 81a0: 1180022e bgeu r2,r6,81ac - 81a4: 2084703a and r2,r4,r2 - 81a8: 10000826 beq r2,zero,81cc - 81ac: 30000526 beq r6,zero,81c4 - 81b0: 2805883a mov r2,r5 - 81b4: 30cd883a add r6,r6,r3 - 81b8: 18800005 stb r2,0(r3) - 81bc: 18c00044 addi r3,r3,1 - 81c0: 19bffd1e bne r3,r6,81b8 - 81c4: 2005883a mov r2,r4 - 81c8: f800283a ret - 81cc: 2804923a slli r2,r5,8 - 81d0: 020003c4 movi r8,15 - 81d4: 200f883a mov r7,r4 - 81d8: 2884b03a or r2,r5,r2 - 81dc: 1006943a slli r3,r2,16 - 81e0: 10c6b03a or r3,r2,r3 - 81e4: 41800a2e bgeu r8,r6,8210 - 81e8: 4005883a mov r2,r8 - 81ec: 31bffc04 addi r6,r6,-16 - 81f0: 38c00015 stw r3,0(r7) - 81f4: 38c00115 stw r3,4(r7) - 81f8: 38c00215 stw r3,8(r7) - 81fc: 38c00315 stw r3,12(r7) - 8200: 39c00404 addi r7,r7,16 - 8204: 11bff936 bltu r2,r6,81ec - 8208: 008000c4 movi r2,3 - 820c: 1180052e bgeu r2,r6,8224 - 8210: 31bfff04 addi r6,r6,-4 - 8214: 008000c4 movi r2,3 - 8218: 38c00015 stw r3,0(r7) - 821c: 39c00104 addi r7,r7,4 - 8220: 11bffb36 bltu r2,r6,8210 - 8224: 3807883a mov r3,r7 - 8228: 003fe006 br 81ac - -0000822c <_Bfree>: - 822c: 28000826 beq r5,zero,8250 <_Bfree+0x24> - 8230: 28800117 ldw r2,4(r5) - 8234: 21001317 ldw r4,76(r4) - 8238: 1085883a add r2,r2,r2 - 823c: 1085883a add r2,r2,r2 - 8240: 1105883a add r2,r2,r4 - 8244: 10c00017 ldw r3,0(r2) - 8248: 28c00015 stw r3,0(r5) - 824c: 11400015 stw r5,0(r2) - 8250: f800283a ret - -00008254 <__hi0bits>: - 8254: 20bfffec andhi r2,r4,65535 - 8258: 10001426 beq r2,zero,82ac <__hi0bits+0x58> - 825c: 0007883a mov r3,zero - 8260: 20bfc02c andhi r2,r4,65280 - 8264: 1000021e bne r2,zero,8270 <__hi0bits+0x1c> - 8268: 2008923a slli r4,r4,8 - 826c: 18c00204 addi r3,r3,8 - 8270: 20bc002c andhi r2,r4,61440 - 8274: 1000021e bne r2,zero,8280 <__hi0bits+0x2c> - 8278: 2008913a slli r4,r4,4 - 827c: 18c00104 addi r3,r3,4 - 8280: 20b0002c andhi r2,r4,49152 - 8284: 1000031e bne r2,zero,8294 <__hi0bits+0x40> - 8288: 2105883a add r2,r4,r4 - 828c: 18c00084 addi r3,r3,2 - 8290: 1089883a add r4,r2,r2 - 8294: 20000316 blt r4,zero,82a4 <__hi0bits+0x50> - 8298: 2090002c andhi r2,r4,16384 - 829c: 10000626 beq r2,zero,82b8 <__hi0bits+0x64> - 82a0: 18c00044 addi r3,r3,1 - 82a4: 1805883a mov r2,r3 - 82a8: f800283a ret - 82ac: 2008943a slli r4,r4,16 - 82b0: 00c00404 movi r3,16 - 82b4: 003fea06 br 8260 <__hi0bits+0xc> - 82b8: 00c00804 movi r3,32 - 82bc: 1805883a mov r2,r3 - 82c0: f800283a ret - -000082c4 <__lo0bits>: - 82c4: 20c00017 ldw r3,0(r4) - 82c8: 188001cc andi r2,r3,7 - 82cc: 10000a26 beq r2,zero,82f8 <__lo0bits+0x34> - 82d0: 1880004c andi r2,r3,1 - 82d4: 1005003a cmpeq r2,r2,zero - 82d8: 10002126 beq r2,zero,8360 <__lo0bits+0x9c> - 82dc: 1880008c andi r2,r3,2 - 82e0: 1000251e bne r2,zero,8378 <__lo0bits+0xb4> - 82e4: 1804d0ba srli r2,r3,2 - 82e8: 01400084 movi r5,2 - 82ec: 20800015 stw r2,0(r4) - 82f0: 2805883a mov r2,r5 - 82f4: f800283a ret - 82f8: 18bfffcc andi r2,r3,65535 - 82fc: 10001526 beq r2,zero,8354 <__lo0bits+0x90> - 8300: 000b883a mov r5,zero - 8304: 18803fcc andi r2,r3,255 - 8308: 1000021e bne r2,zero,8314 <__lo0bits+0x50> - 830c: 1806d23a srli r3,r3,8 - 8310: 29400204 addi r5,r5,8 - 8314: 188003cc andi r2,r3,15 - 8318: 1000021e bne r2,zero,8324 <__lo0bits+0x60> - 831c: 1806d13a srli r3,r3,4 - 8320: 29400104 addi r5,r5,4 - 8324: 188000cc andi r2,r3,3 - 8328: 1000021e bne r2,zero,8334 <__lo0bits+0x70> - 832c: 1806d0ba srli r3,r3,2 - 8330: 29400084 addi r5,r5,2 - 8334: 1880004c andi r2,r3,1 - 8338: 1000031e bne r2,zero,8348 <__lo0bits+0x84> - 833c: 1806d07a srli r3,r3,1 - 8340: 18000a26 beq r3,zero,836c <__lo0bits+0xa8> - 8344: 29400044 addi r5,r5,1 - 8348: 2805883a mov r2,r5 - 834c: 20c00015 stw r3,0(r4) - 8350: f800283a ret - 8354: 1806d43a srli r3,r3,16 - 8358: 01400404 movi r5,16 - 835c: 003fe906 br 8304 <__lo0bits+0x40> - 8360: 000b883a mov r5,zero - 8364: 2805883a mov r2,r5 - 8368: f800283a ret - 836c: 01400804 movi r5,32 - 8370: 2805883a mov r2,r5 - 8374: f800283a ret - 8378: 1804d07a srli r2,r3,1 - 837c: 01400044 movi r5,1 - 8380: 20800015 stw r2,0(r4) - 8384: 003fda06 br 82f0 <__lo0bits+0x2c> - -00008388 <__mcmp>: - 8388: 20800417 ldw r2,16(r4) - 838c: 28c00417 ldw r3,16(r5) - 8390: 10cfc83a sub r7,r2,r3 - 8394: 38000c1e bne r7,zero,83c8 <__mcmp+0x40> - 8398: 18c5883a add r2,r3,r3 - 839c: 1085883a add r2,r2,r2 - 83a0: 10c00504 addi r3,r2,20 - 83a4: 21000504 addi r4,r4,20 - 83a8: 28cb883a add r5,r5,r3 - 83ac: 2085883a add r2,r4,r2 - 83b0: 10bfff04 addi r2,r2,-4 - 83b4: 297fff04 addi r5,r5,-4 - 83b8: 11800017 ldw r6,0(r2) - 83bc: 28c00017 ldw r3,0(r5) - 83c0: 30c0031e bne r6,r3,83d0 <__mcmp+0x48> - 83c4: 20bffa36 bltu r4,r2,83b0 <__mcmp+0x28> - 83c8: 3805883a mov r2,r7 - 83cc: f800283a ret - 83d0: 30c00336 bltu r6,r3,83e0 <__mcmp+0x58> - 83d4: 01c00044 movi r7,1 - 83d8: 3805883a mov r2,r7 - 83dc: f800283a ret - 83e0: 01ffffc4 movi r7,-1 - 83e4: 003ff806 br 83c8 <__mcmp+0x40> - -000083e8 <__ulp>: - 83e8: 295ffc2c andhi r5,r5,32752 - 83ec: 013f3034 movhi r4,64704 - 83f0: 290b883a add r5,r5,r4 - 83f4: 0145c83a sub r2,zero,r5 - 83f8: 1007d53a srai r3,r2,20 - 83fc: 000d883a mov r6,zero - 8400: 0140040e bge zero,r5,8414 <__ulp+0x2c> - 8404: 280f883a mov r7,r5 - 8408: 3807883a mov r3,r7 - 840c: 3005883a mov r2,r6 - 8410: f800283a ret - 8414: 008004c4 movi r2,19 - 8418: 193ffb04 addi r4,r3,-20 - 841c: 10c00c0e bge r2,r3,8450 <__ulp+0x68> - 8420: 008007c4 movi r2,31 - 8424: 1107c83a sub r3,r2,r4 - 8428: 00800784 movi r2,30 - 842c: 01400044 movi r5,1 - 8430: 11000216 blt r2,r4,843c <__ulp+0x54> - 8434: 00800044 movi r2,1 - 8438: 10ca983a sll r5,r2,r3 - 843c: 000f883a mov r7,zero - 8440: 280d883a mov r6,r5 - 8444: 3807883a mov r3,r7 - 8448: 3005883a mov r2,r6 - 844c: f800283a ret - 8450: 00800234 movhi r2,8 - 8454: 10cfd83a sra r7,r2,r3 - 8458: 000d883a mov r6,zero - 845c: 3005883a mov r2,r6 - 8460: 3807883a mov r3,r7 - 8464: f800283a ret - -00008468 <__b2d>: - 8468: 20800417 ldw r2,16(r4) - 846c: defff904 addi sp,sp,-28 - 8470: dd000415 stw r20,16(sp) - 8474: 1085883a add r2,r2,r2 - 8478: 25000504 addi r20,r4,20 - 847c: 1085883a add r2,r2,r2 - 8480: dc000015 stw r16,0(sp) - 8484: a0a1883a add r16,r20,r2 - 8488: dd400515 stw r21,20(sp) - 848c: 857fff17 ldw r21,-4(r16) - 8490: dc400115 stw r17,4(sp) - 8494: dfc00615 stw ra,24(sp) - 8498: a809883a mov r4,r21 - 849c: 2823883a mov r17,r5 - 84a0: dcc00315 stw r19,12(sp) - 84a4: dc800215 stw r18,8(sp) - 84a8: 00082540 call 8254 <__hi0bits> - 84ac: 100b883a mov r5,r2 - 84b0: 00800804 movi r2,32 - 84b4: 1145c83a sub r2,r2,r5 - 84b8: 88800015 stw r2,0(r17) - 84bc: 00800284 movi r2,10 - 84c0: 80ffff04 addi r3,r16,-4 - 84c4: 11401416 blt r2,r5,8518 <__b2d+0xb0> - 84c8: 008002c4 movi r2,11 - 84cc: 1149c83a sub r4,r2,r5 - 84d0: a0c02736 bltu r20,r3,8570 <__b2d+0x108> - 84d4: 000d883a mov r6,zero - 84d8: 28800544 addi r2,r5,21 - 84dc: a906d83a srl r3,r21,r4 - 84e0: a884983a sll r2,r21,r2 - 84e4: 1ccffc34 orhi r19,r3,16368 - 84e8: 11a4b03a or r18,r2,r6 - 84ec: 9005883a mov r2,r18 - 84f0: 9807883a mov r3,r19 - 84f4: dfc00617 ldw ra,24(sp) - 84f8: dd400517 ldw r21,20(sp) - 84fc: dd000417 ldw r20,16(sp) - 8500: dcc00317 ldw r19,12(sp) - 8504: dc800217 ldw r18,8(sp) - 8508: dc400117 ldw r17,4(sp) - 850c: dc000017 ldw r16,0(sp) - 8510: dec00704 addi sp,sp,28 - 8514: f800283a ret - 8518: a0c00e36 bltu r20,r3,8554 <__b2d+0xec> - 851c: 293ffd44 addi r4,r5,-11 - 8520: 000d883a mov r6,zero - 8524: 20000f26 beq r4,zero,8564 <__b2d+0xfc> - 8528: 00800804 movi r2,32 - 852c: 110bc83a sub r5,r2,r4 - 8530: a0c01236 bltu r20,r3,857c <__b2d+0x114> - 8534: 000f883a mov r7,zero - 8538: a904983a sll r2,r21,r4 - 853c: 3146d83a srl r3,r6,r5 - 8540: 3108983a sll r4,r6,r4 - 8544: 108ffc34 orhi r2,r2,16368 - 8548: 18a6b03a or r19,r3,r2 - 854c: 3924b03a or r18,r7,r4 - 8550: 003fe606 br 84ec <__b2d+0x84> - 8554: 293ffd44 addi r4,r5,-11 - 8558: 81bffe17 ldw r6,-8(r16) - 855c: 80fffe04 addi r3,r16,-8 - 8560: 203ff11e bne r4,zero,8528 <__b2d+0xc0> - 8564: accffc34 orhi r19,r21,16368 - 8568: 3025883a mov r18,r6 - 856c: 003fdf06 br 84ec <__b2d+0x84> - 8570: 18bfff17 ldw r2,-4(r3) - 8574: 110cd83a srl r6,r2,r4 - 8578: 003fd706 br 84d8 <__b2d+0x70> - 857c: 18bfff17 ldw r2,-4(r3) - 8580: 114ed83a srl r7,r2,r5 - 8584: 003fec06 br 8538 <__b2d+0xd0> - -00008588 <__ratio>: - 8588: defff904 addi sp,sp,-28 - 858c: dc400215 stw r17,8(sp) - 8590: 2823883a mov r17,r5 - 8594: d80b883a mov r5,sp - 8598: dfc00615 stw ra,24(sp) - 859c: dd000515 stw r20,20(sp) - 85a0: dcc00415 stw r19,16(sp) - 85a4: dc800315 stw r18,12(sp) - 85a8: 2025883a mov r18,r4 - 85ac: 00084680 call 8468 <__b2d> - 85b0: 8809883a mov r4,r17 - 85b4: d9400104 addi r5,sp,4 - 85b8: 1027883a mov r19,r2 - 85bc: 1829883a mov r20,r3 - 85c0: 00084680 call 8468 <__b2d> - 85c4: 89000417 ldw r4,16(r17) - 85c8: 91c00417 ldw r7,16(r18) - 85cc: d9800117 ldw r6,4(sp) - 85d0: 180b883a mov r5,r3 - 85d4: 390fc83a sub r7,r7,r4 - 85d8: 1009883a mov r4,r2 - 85dc: d8800017 ldw r2,0(sp) - 85e0: 380e917a slli r7,r7,5 - 85e4: 2011883a mov r8,r4 - 85e8: 1185c83a sub r2,r2,r6 - 85ec: 11c5883a add r2,r2,r7 - 85f0: 1006953a slli r3,r2,20 - 85f4: 2813883a mov r9,r5 - 85f8: 00800d0e bge zero,r2,8630 <__ratio+0xa8> - 85fc: 1d29883a add r20,r3,r20 - 8600: a00b883a mov r5,r20 - 8604: 480f883a mov r7,r9 - 8608: 9809883a mov r4,r19 - 860c: 400d883a mov r6,r8 - 8610: 000b5d00 call b5d0 <__divdf3> - 8614: dfc00617 ldw ra,24(sp) - 8618: dd000517 ldw r20,20(sp) - 861c: dcc00417 ldw r19,16(sp) - 8620: dc800317 ldw r18,12(sp) - 8624: dc400217 ldw r17,8(sp) - 8628: dec00704 addi sp,sp,28 - 862c: f800283a ret - 8630: 28d3c83a sub r9,r5,r3 - 8634: 003ff206 br 8600 <__ratio+0x78> - -00008638 <_mprec_log10>: - 8638: defffe04 addi sp,sp,-8 - 863c: 008005c4 movi r2,23 - 8640: dc000015 stw r16,0(sp) - 8644: dfc00115 stw ra,4(sp) - 8648: 2021883a mov r16,r4 - 864c: 11000c16 blt r2,r4,8680 <_mprec_log10+0x48> - 8650: 200490fa slli r2,r4,3 - 8654: 00c00074 movhi r3,1 - 8658: 18c10f04 addi r3,r3,1084 - 865c: 10c5883a add r2,r2,r3 - 8660: 12400117 ldw r9,4(r2) - 8664: 12000017 ldw r8,0(r2) - 8668: 4807883a mov r3,r9 - 866c: 4005883a mov r2,r8 - 8670: dfc00117 ldw ra,4(sp) - 8674: dc000017 ldw r16,0(sp) - 8678: dec00204 addi sp,sp,8 - 867c: f800283a ret - 8680: 0011883a mov r8,zero - 8684: 024ffc34 movhi r9,16368 - 8688: 0005883a mov r2,zero - 868c: 00d00934 movhi r3,16420 - 8690: 480b883a mov r5,r9 - 8694: 4009883a mov r4,r8 - 8698: 180f883a mov r7,r3 - 869c: 100d883a mov r6,r2 - 86a0: 000b20c0 call b20c <__muldf3> - 86a4: 843fffc4 addi r16,r16,-1 - 86a8: 1011883a mov r8,r2 - 86ac: 1813883a mov r9,r3 - 86b0: 803ff51e bne r16,zero,8688 <_mprec_log10+0x50> - 86b4: 4005883a mov r2,r8 - 86b8: 4807883a mov r3,r9 - 86bc: dfc00117 ldw ra,4(sp) - 86c0: dc000017 ldw r16,0(sp) - 86c4: dec00204 addi sp,sp,8 - 86c8: f800283a ret - -000086cc <__copybits>: - 86cc: 297fffc4 addi r5,r5,-1 - 86d0: 30800417 ldw r2,16(r6) - 86d4: 280bd17a srai r5,r5,5 - 86d8: 31800504 addi r6,r6,20 - 86dc: 1085883a add r2,r2,r2 - 86e0: 294b883a add r5,r5,r5 - 86e4: 294b883a add r5,r5,r5 - 86e8: 1085883a add r2,r2,r2 - 86ec: 290b883a add r5,r5,r4 - 86f0: 3087883a add r3,r6,r2 - 86f4: 29400104 addi r5,r5,4 - 86f8: 30c0052e bgeu r6,r3,8710 <__copybits+0x44> - 86fc: 30800017 ldw r2,0(r6) - 8700: 31800104 addi r6,r6,4 - 8704: 20800015 stw r2,0(r4) - 8708: 21000104 addi r4,r4,4 - 870c: 30fffb36 bltu r6,r3,86fc <__copybits+0x30> - 8710: 2140032e bgeu r4,r5,8720 <__copybits+0x54> - 8714: 20000015 stw zero,0(r4) - 8718: 21000104 addi r4,r4,4 - 871c: 217ffd36 bltu r4,r5,8714 <__copybits+0x48> - 8720: f800283a ret - -00008724 <__any_on>: - 8724: 20800417 ldw r2,16(r4) - 8728: 2807d17a srai r3,r5,5 - 872c: 21000504 addi r4,r4,20 - 8730: 10c00d0e bge r2,r3,8768 <__any_on+0x44> - 8734: 1085883a add r2,r2,r2 - 8738: 1085883a add r2,r2,r2 - 873c: 208d883a add r6,r4,r2 - 8740: 2180182e bgeu r4,r6,87a4 <__any_on+0x80> - 8744: 30bfff17 ldw r2,-4(r6) - 8748: 30ffff04 addi r3,r6,-4 - 874c: 1000041e bne r2,zero,8760 <__any_on+0x3c> - 8750: 20c0142e bgeu r4,r3,87a4 <__any_on+0x80> - 8754: 18ffff04 addi r3,r3,-4 - 8758: 18800017 ldw r2,0(r3) - 875c: 103ffc26 beq r2,zero,8750 <__any_on+0x2c> - 8760: 00800044 movi r2,1 - 8764: f800283a ret - 8768: 18800a0e bge r3,r2,8794 <__any_on+0x70> - 876c: 294007cc andi r5,r5,31 - 8770: 28000826 beq r5,zero,8794 <__any_on+0x70> - 8774: 18c5883a add r2,r3,r3 - 8778: 1085883a add r2,r2,r2 - 877c: 208d883a add r6,r4,r2 - 8780: 30c00017 ldw r3,0(r6) - 8784: 1944d83a srl r2,r3,r5 - 8788: 1144983a sll r2,r2,r5 - 878c: 18bff41e bne r3,r2,8760 <__any_on+0x3c> - 8790: 003feb06 br 8740 <__any_on+0x1c> - 8794: 18c5883a add r2,r3,r3 - 8798: 1085883a add r2,r2,r2 - 879c: 208d883a add r6,r4,r2 - 87a0: 003fe706 br 8740 <__any_on+0x1c> - 87a4: 0005883a mov r2,zero - 87a8: f800283a ret - -000087ac <_Balloc>: - 87ac: 20c01317 ldw r3,76(r4) - 87b0: defffb04 addi sp,sp,-20 - 87b4: dcc00315 stw r19,12(sp) - 87b8: dc800215 stw r18,8(sp) - 87bc: dfc00415 stw ra,16(sp) - 87c0: 2825883a mov r18,r5 - 87c4: dc400115 stw r17,4(sp) - 87c8: dc000015 stw r16,0(sp) - 87cc: 2027883a mov r19,r4 - 87d0: 01800404 movi r6,16 - 87d4: 01400104 movi r5,4 - 87d8: 18001726 beq r3,zero,8838 <_Balloc+0x8c> - 87dc: 01400044 movi r5,1 - 87e0: 9485883a add r2,r18,r18 - 87e4: 2ca2983a sll r17,r5,r18 - 87e8: 1085883a add r2,r2,r2 - 87ec: 10c7883a add r3,r2,r3 - 87f0: 1c000017 ldw r16,0(r3) - 87f4: 8c4d883a add r6,r17,r17 - 87f8: 318d883a add r6,r6,r6 - 87fc: 9809883a mov r4,r19 - 8800: 31800504 addi r6,r6,20 - 8804: 80001226 beq r16,zero,8850 <_Balloc+0xa4> - 8808: 80800017 ldw r2,0(r16) - 880c: 18800015 stw r2,0(r3) - 8810: 80000415 stw zero,16(r16) - 8814: 80000315 stw zero,12(r16) - 8818: 8005883a mov r2,r16 - 881c: dfc00417 ldw ra,16(sp) - 8820: dcc00317 ldw r19,12(sp) - 8824: dc800217 ldw r18,8(sp) - 8828: dc400117 ldw r17,4(sp) - 882c: dc000017 ldw r16,0(sp) - 8830: dec00504 addi sp,sp,20 - 8834: f800283a ret - 8838: 0009c0c0 call 9c0c <_calloc_r> - 883c: 1007883a mov r3,r2 - 8840: 0021883a mov r16,zero - 8844: 98801315 stw r2,76(r19) - 8848: 103fe41e bne r2,zero,87dc <_Balloc+0x30> - 884c: 003ff206 br 8818 <_Balloc+0x6c> - 8850: 0009c0c0 call 9c0c <_calloc_r> - 8854: 103ff026 beq r2,zero,8818 <_Balloc+0x6c> - 8858: 1021883a mov r16,r2 - 885c: 14800115 stw r18,4(r2) - 8860: 14400215 stw r17,8(r2) - 8864: 003fea06 br 8810 <_Balloc+0x64> - -00008868 <__d2b>: - 8868: defff504 addi sp,sp,-44 - 886c: dcc00515 stw r19,20(sp) - 8870: 04c00044 movi r19,1 - 8874: dc000215 stw r16,8(sp) - 8878: 2821883a mov r16,r5 - 887c: 980b883a mov r5,r19 - 8880: ddc00915 stw r23,36(sp) - 8884: dd800815 stw r22,32(sp) - 8888: dd400715 stw r21,28(sp) - 888c: dd000615 stw r20,24(sp) - 8890: dc800415 stw r18,16(sp) - 8894: dc400315 stw r17,12(sp) - 8898: dfc00a15 stw ra,40(sp) - 889c: 3023883a mov r17,r6 - 88a0: 382d883a mov r22,r7 - 88a4: ddc00b17 ldw r23,44(sp) - 88a8: 00087ac0 call 87ac <_Balloc> - 88ac: 1025883a mov r18,r2 - 88b0: 00a00034 movhi r2,32768 - 88b4: 10bfffc4 addi r2,r2,-1 - 88b8: 8888703a and r4,r17,r2 - 88bc: 202ad53a srli r21,r4,20 - 88c0: 00800434 movhi r2,16 - 88c4: 10bfffc4 addi r2,r2,-1 - 88c8: 8886703a and r3,r17,r2 - 88cc: a829003a cmpeq r20,r21,zero - 88d0: 800b883a mov r5,r16 - 88d4: d8c00115 stw r3,4(sp) - 88d8: 94000504 addi r16,r18,20 - 88dc: a000021e bne r20,zero,88e8 <__d2b+0x80> - 88e0: 18c00434 orhi r3,r3,16 - 88e4: d8c00115 stw r3,4(sp) - 88e8: 28002726 beq r5,zero,8988 <__d2b+0x120> - 88ec: d809883a mov r4,sp - 88f0: d9400015 stw r5,0(sp) - 88f4: 00082c40 call 82c4 <__lo0bits> - 88f8: 100d883a mov r6,r2 - 88fc: 10003526 beq r2,zero,89d4 <__d2b+0x16c> - 8900: d8c00117 ldw r3,4(sp) - 8904: 00800804 movi r2,32 - 8908: 1185c83a sub r2,r2,r6 - 890c: d9000017 ldw r4,0(sp) - 8910: 1886983a sll r3,r3,r2 - 8914: 1906b03a or r3,r3,r4 - 8918: 90c00515 stw r3,20(r18) - 891c: d8c00117 ldw r3,4(sp) - 8920: 1986d83a srl r3,r3,r6 - 8924: d8c00115 stw r3,4(sp) - 8928: 180b003a cmpeq r5,r3,zero - 892c: 00800084 movi r2,2 - 8930: 114bc83a sub r5,r2,r5 - 8934: 80c00115 stw r3,4(r16) - 8938: 91400415 stw r5,16(r18) - 893c: a0001a1e bne r20,zero,89a8 <__d2b+0x140> - 8940: 3545883a add r2,r6,r21 - 8944: 10bef344 addi r2,r2,-1075 - 8948: 00c00d44 movi r3,53 - 894c: b0800015 stw r2,0(r22) - 8950: 1987c83a sub r3,r3,r6 - 8954: b8c00015 stw r3,0(r23) - 8958: 9005883a mov r2,r18 - 895c: dfc00a17 ldw ra,40(sp) - 8960: ddc00917 ldw r23,36(sp) - 8964: dd800817 ldw r22,32(sp) - 8968: dd400717 ldw r21,28(sp) - 896c: dd000617 ldw r20,24(sp) - 8970: dcc00517 ldw r19,20(sp) - 8974: dc800417 ldw r18,16(sp) - 8978: dc400317 ldw r17,12(sp) - 897c: dc000217 ldw r16,8(sp) - 8980: dec00b04 addi sp,sp,44 - 8984: f800283a ret - 8988: d9000104 addi r4,sp,4 - 898c: 00082c40 call 82c4 <__lo0bits> - 8990: 11800804 addi r6,r2,32 - 8994: d8800117 ldw r2,4(sp) - 8998: 94c00415 stw r19,16(r18) - 899c: 980b883a mov r5,r19 - 89a0: 90800515 stw r2,20(r18) - 89a4: a03fe626 beq r20,zero,8940 <__d2b+0xd8> - 89a8: 2945883a add r2,r5,r5 - 89ac: 1085883a add r2,r2,r2 - 89b0: 1405883a add r2,r2,r16 - 89b4: 113fff17 ldw r4,-4(r2) - 89b8: 30fef384 addi r3,r6,-1074 - 89bc: 2820917a slli r16,r5,5 - 89c0: b0c00015 stw r3,0(r22) - 89c4: 00082540 call 8254 <__hi0bits> - 89c8: 80a1c83a sub r16,r16,r2 - 89cc: bc000015 stw r16,0(r23) - 89d0: 003fe106 br 8958 <__d2b+0xf0> - 89d4: d8800017 ldw r2,0(sp) - 89d8: 90800515 stw r2,20(r18) - 89dc: d8c00117 ldw r3,4(sp) - 89e0: 003fd106 br 8928 <__d2b+0xc0> - -000089e4 <__mdiff>: - 89e4: defffb04 addi sp,sp,-20 - 89e8: dc000015 stw r16,0(sp) - 89ec: 2821883a mov r16,r5 - 89f0: dc800215 stw r18,8(sp) - 89f4: 300b883a mov r5,r6 - 89f8: 2025883a mov r18,r4 - 89fc: 8009883a mov r4,r16 - 8a00: dc400115 stw r17,4(sp) - 8a04: dfc00415 stw ra,16(sp) - 8a08: dcc00315 stw r19,12(sp) - 8a0c: 3023883a mov r17,r6 - 8a10: 00083880 call 8388 <__mcmp> - 8a14: 10004226 beq r2,zero,8b20 <__mdiff+0x13c> - 8a18: 10005016 blt r2,zero,8b5c <__mdiff+0x178> - 8a1c: 0027883a mov r19,zero - 8a20: 81400117 ldw r5,4(r16) - 8a24: 9009883a mov r4,r18 - 8a28: 00087ac0 call 87ac <_Balloc> - 8a2c: 1019883a mov r12,r2 - 8a30: 82800417 ldw r10,16(r16) - 8a34: 88800417 ldw r2,16(r17) - 8a38: 81800504 addi r6,r16,20 - 8a3c: 5287883a add r3,r10,r10 - 8a40: 1085883a add r2,r2,r2 - 8a44: 18c7883a add r3,r3,r3 - 8a48: 1085883a add r2,r2,r2 - 8a4c: 8a000504 addi r8,r17,20 - 8a50: 64c00315 stw r19,12(r12) - 8a54: 30db883a add r13,r6,r3 - 8a58: 4097883a add r11,r8,r2 - 8a5c: 61c00504 addi r7,r12,20 - 8a60: 0013883a mov r9,zero - 8a64: 31000017 ldw r4,0(r6) - 8a68: 41400017 ldw r5,0(r8) - 8a6c: 42000104 addi r8,r8,4 - 8a70: 20bfffcc andi r2,r4,65535 - 8a74: 28ffffcc andi r3,r5,65535 - 8a78: 10c5c83a sub r2,r2,r3 - 8a7c: 1245883a add r2,r2,r9 - 8a80: 2008d43a srli r4,r4,16 - 8a84: 280ad43a srli r5,r5,16 - 8a88: 1007d43a srai r3,r2,16 - 8a8c: 3880000d sth r2,0(r7) - 8a90: 2149c83a sub r4,r4,r5 - 8a94: 20c9883a add r4,r4,r3 - 8a98: 3900008d sth r4,2(r7) - 8a9c: 31800104 addi r6,r6,4 - 8aa0: 39c00104 addi r7,r7,4 - 8aa4: 2013d43a srai r9,r4,16 - 8aa8: 42ffee36 bltu r8,r11,8a64 <__mdiff+0x80> - 8aac: 33400c2e bgeu r6,r13,8ae0 <__mdiff+0xfc> - 8ab0: 30800017 ldw r2,0(r6) - 8ab4: 31800104 addi r6,r6,4 - 8ab8: 10ffffcc andi r3,r2,65535 - 8abc: 1a47883a add r3,r3,r9 - 8ac0: 1004d43a srli r2,r2,16 - 8ac4: 1809d43a srai r4,r3,16 - 8ac8: 38c0000d sth r3,0(r7) - 8acc: 1105883a add r2,r2,r4 - 8ad0: 3880008d sth r2,2(r7) - 8ad4: 1013d43a srai r9,r2,16 - 8ad8: 39c00104 addi r7,r7,4 - 8adc: 337ff436 bltu r6,r13,8ab0 <__mdiff+0xcc> - 8ae0: 38bfff17 ldw r2,-4(r7) - 8ae4: 38ffff04 addi r3,r7,-4 - 8ae8: 1000041e bne r2,zero,8afc <__mdiff+0x118> - 8aec: 18ffff04 addi r3,r3,-4 - 8af0: 18800017 ldw r2,0(r3) - 8af4: 52bfffc4 addi r10,r10,-1 - 8af8: 103ffc26 beq r2,zero,8aec <__mdiff+0x108> - 8afc: 6005883a mov r2,r12 - 8b00: 62800415 stw r10,16(r12) - 8b04: dfc00417 ldw ra,16(sp) - 8b08: dcc00317 ldw r19,12(sp) - 8b0c: dc800217 ldw r18,8(sp) - 8b10: dc400117 ldw r17,4(sp) - 8b14: dc000017 ldw r16,0(sp) - 8b18: dec00504 addi sp,sp,20 - 8b1c: f800283a ret - 8b20: 9009883a mov r4,r18 - 8b24: 000b883a mov r5,zero - 8b28: 00087ac0 call 87ac <_Balloc> - 8b2c: 1019883a mov r12,r2 - 8b30: 00800044 movi r2,1 - 8b34: 60800415 stw r2,16(r12) - 8b38: 6005883a mov r2,r12 - 8b3c: 60000515 stw zero,20(r12) - 8b40: dfc00417 ldw ra,16(sp) - 8b44: dcc00317 ldw r19,12(sp) - 8b48: dc800217 ldw r18,8(sp) - 8b4c: dc400117 ldw r17,4(sp) - 8b50: dc000017 ldw r16,0(sp) - 8b54: dec00504 addi sp,sp,20 - 8b58: f800283a ret - 8b5c: 880d883a mov r6,r17 - 8b60: 04c00044 movi r19,1 - 8b64: 8023883a mov r17,r16 - 8b68: 3021883a mov r16,r6 - 8b6c: 003fac06 br 8a20 <__mdiff+0x3c> - -00008b70 <__lshift>: - 8b70: defff904 addi sp,sp,-28 - 8b74: 28800417 ldw r2,16(r5) - 8b78: dc000015 stw r16,0(sp) - 8b7c: 3021d17a srai r16,r6,5 - 8b80: 28c00217 ldw r3,8(r5) - 8b84: 10800044 addi r2,r2,1 - 8b88: dc400115 stw r17,4(sp) - 8b8c: 80a3883a add r17,r16,r2 - 8b90: dd400515 stw r21,20(sp) - 8b94: dd000415 stw r20,16(sp) - 8b98: dc800215 stw r18,8(sp) - 8b9c: dfc00615 stw ra,24(sp) - 8ba0: 2825883a mov r18,r5 - 8ba4: dcc00315 stw r19,12(sp) - 8ba8: 3029883a mov r20,r6 - 8bac: 202b883a mov r21,r4 - 8bb0: 29400117 ldw r5,4(r5) - 8bb4: 1c40030e bge r3,r17,8bc4 <__lshift+0x54> - 8bb8: 18c7883a add r3,r3,r3 - 8bbc: 29400044 addi r5,r5,1 - 8bc0: 1c7ffd16 blt r3,r17,8bb8 <__lshift+0x48> - 8bc4: a809883a mov r4,r21 - 8bc8: 00087ac0 call 87ac <_Balloc> - 8bcc: 1027883a mov r19,r2 - 8bd0: 11400504 addi r5,r2,20 - 8bd4: 0400090e bge zero,r16,8bfc <__lshift+0x8c> - 8bd8: 2805883a mov r2,r5 - 8bdc: 0007883a mov r3,zero - 8be0: 18c00044 addi r3,r3,1 - 8be4: 10000015 stw zero,0(r2) - 8be8: 10800104 addi r2,r2,4 - 8bec: 80fffc1e bne r16,r3,8be0 <__lshift+0x70> - 8bf0: 8405883a add r2,r16,r16 - 8bf4: 1085883a add r2,r2,r2 - 8bf8: 288b883a add r5,r5,r2 - 8bfc: 90800417 ldw r2,16(r18) - 8c00: 91000504 addi r4,r18,20 - 8c04: a18007cc andi r6,r20,31 - 8c08: 1085883a add r2,r2,r2 - 8c0c: 1085883a add r2,r2,r2 - 8c10: 208f883a add r7,r4,r2 - 8c14: 30001e26 beq r6,zero,8c90 <__lshift+0x120> - 8c18: 00800804 movi r2,32 - 8c1c: 1191c83a sub r8,r2,r6 - 8c20: 0007883a mov r3,zero - 8c24: 20800017 ldw r2,0(r4) - 8c28: 1184983a sll r2,r2,r6 - 8c2c: 1884b03a or r2,r3,r2 - 8c30: 28800015 stw r2,0(r5) - 8c34: 20c00017 ldw r3,0(r4) - 8c38: 21000104 addi r4,r4,4 - 8c3c: 29400104 addi r5,r5,4 - 8c40: 1a06d83a srl r3,r3,r8 - 8c44: 21fff736 bltu r4,r7,8c24 <__lshift+0xb4> - 8c48: 28c00015 stw r3,0(r5) - 8c4c: 18000126 beq r3,zero,8c54 <__lshift+0xe4> - 8c50: 8c400044 addi r17,r17,1 - 8c54: 88bfffc4 addi r2,r17,-1 - 8c58: 98800415 stw r2,16(r19) - 8c5c: a809883a mov r4,r21 - 8c60: 900b883a mov r5,r18 - 8c64: 000822c0 call 822c <_Bfree> - 8c68: 9805883a mov r2,r19 - 8c6c: dfc00617 ldw ra,24(sp) - 8c70: dd400517 ldw r21,20(sp) - 8c74: dd000417 ldw r20,16(sp) - 8c78: dcc00317 ldw r19,12(sp) - 8c7c: dc800217 ldw r18,8(sp) - 8c80: dc400117 ldw r17,4(sp) - 8c84: dc000017 ldw r16,0(sp) - 8c88: dec00704 addi sp,sp,28 - 8c8c: f800283a ret - 8c90: 20800017 ldw r2,0(r4) - 8c94: 21000104 addi r4,r4,4 - 8c98: 28800015 stw r2,0(r5) - 8c9c: 29400104 addi r5,r5,4 - 8ca0: 21ffec2e bgeu r4,r7,8c54 <__lshift+0xe4> - 8ca4: 20800017 ldw r2,0(r4) - 8ca8: 21000104 addi r4,r4,4 - 8cac: 28800015 stw r2,0(r5) - 8cb0: 29400104 addi r5,r5,4 - 8cb4: 21fff636 bltu r4,r7,8c90 <__lshift+0x120> - 8cb8: 003fe606 br 8c54 <__lshift+0xe4> - -00008cbc <__multiply>: - 8cbc: defff004 addi sp,sp,-64 - 8cc0: dc800815 stw r18,32(sp) - 8cc4: dc400715 stw r17,28(sp) - 8cc8: 2c800417 ldw r18,16(r5) - 8ccc: 34400417 ldw r17,16(r6) - 8cd0: dcc00915 stw r19,36(sp) - 8cd4: dc000615 stw r16,24(sp) - 8cd8: dfc00f15 stw ra,60(sp) - 8cdc: df000e15 stw fp,56(sp) - 8ce0: ddc00d15 stw r23,52(sp) - 8ce4: dd800c15 stw r22,48(sp) - 8ce8: dd400b15 stw r21,44(sp) - 8cec: dd000a15 stw r20,40(sp) - 8cf0: 2821883a mov r16,r5 - 8cf4: 3027883a mov r19,r6 - 8cf8: 9440040e bge r18,r17,8d0c <__multiply+0x50> - 8cfc: 8825883a mov r18,r17 - 8d00: 2c400417 ldw r17,16(r5) - 8d04: 2827883a mov r19,r5 - 8d08: 3021883a mov r16,r6 - 8d0c: 80800217 ldw r2,8(r16) - 8d10: 9447883a add r3,r18,r17 - 8d14: d8c00415 stw r3,16(sp) - 8d18: 81400117 ldw r5,4(r16) - 8d1c: 10c0010e bge r2,r3,8d24 <__multiply+0x68> - 8d20: 29400044 addi r5,r5,1 - 8d24: 00087ac0 call 87ac <_Balloc> - 8d28: d8800515 stw r2,20(sp) - 8d2c: d9000417 ldw r4,16(sp) - 8d30: d8c00517 ldw r3,20(sp) - 8d34: 2105883a add r2,r4,r4 - 8d38: 1085883a add r2,r2,r2 - 8d3c: 19000504 addi r4,r3,20 - 8d40: 2085883a add r2,r4,r2 - 8d44: d8800315 stw r2,12(sp) - 8d48: 2080052e bgeu r4,r2,8d60 <__multiply+0xa4> - 8d4c: 2005883a mov r2,r4 - 8d50: d8c00317 ldw r3,12(sp) - 8d54: 10000015 stw zero,0(r2) - 8d58: 10800104 addi r2,r2,4 - 8d5c: 10fffc36 bltu r2,r3,8d50 <__multiply+0x94> - 8d60: 8c45883a add r2,r17,r17 - 8d64: 9487883a add r3,r18,r18 - 8d68: 9dc00504 addi r23,r19,20 - 8d6c: 1085883a add r2,r2,r2 - 8d70: 84000504 addi r16,r16,20 - 8d74: 18c7883a add r3,r3,r3 - 8d78: b885883a add r2,r23,r2 - 8d7c: dc000015 stw r16,0(sp) - 8d80: d8800215 stw r2,8(sp) - 8d84: 80f9883a add fp,r16,r3 - 8d88: b880432e bgeu r23,r2,8e98 <__multiply+0x1dc> - 8d8c: d9000115 stw r4,4(sp) - 8d90: b9000017 ldw r4,0(r23) - 8d94: 253fffcc andi r20,r4,65535 - 8d98: a0001a26 beq r20,zero,8e04 <__multiply+0x148> - 8d9c: dcc00017 ldw r19,0(sp) - 8da0: dc800117 ldw r18,4(sp) - 8da4: 002b883a mov r21,zero - 8da8: 9c400017 ldw r17,0(r19) - 8dac: 94000017 ldw r16,0(r18) - 8db0: a009883a mov r4,r20 - 8db4: 897fffcc andi r5,r17,65535 - 8db8: 0002c240 call 2c24 <__mulsi3> - 8dbc: 880ad43a srli r5,r17,16 - 8dc0: 80ffffcc andi r3,r16,65535 - 8dc4: a8c7883a add r3,r21,r3 - 8dc8: a009883a mov r4,r20 - 8dcc: 10e3883a add r17,r2,r3 - 8dd0: 8020d43a srli r16,r16,16 - 8dd4: 0002c240 call 2c24 <__mulsi3> - 8dd8: 8806d43a srli r3,r17,16 - 8ddc: 1405883a add r2,r2,r16 - 8de0: 9cc00104 addi r19,r19,4 - 8de4: 1887883a add r3,r3,r2 - 8de8: 90c0008d sth r3,2(r18) - 8dec: 9440000d sth r17,0(r18) - 8df0: 182ad43a srli r21,r3,16 - 8df4: 94800104 addi r18,r18,4 - 8df8: 9f3feb36 bltu r19,fp,8da8 <__multiply+0xec> - 8dfc: 95400015 stw r21,0(r18) - 8e00: b9000017 ldw r4,0(r23) - 8e04: 202ad43a srli r21,r4,16 - 8e08: a8001c26 beq r21,zero,8e7c <__multiply+0x1c0> - 8e0c: d9000117 ldw r4,4(sp) - 8e10: dd000017 ldw r20,0(sp) - 8e14: 002d883a mov r22,zero - 8e18: 24c00017 ldw r19,0(r4) - 8e1c: 2025883a mov r18,r4 - 8e20: 9823883a mov r17,r19 - 8e24: a4000017 ldw r16,0(r20) - 8e28: a809883a mov r4,r21 - 8e2c: a5000104 addi r20,r20,4 - 8e30: 817fffcc andi r5,r16,65535 - 8e34: 0002c240 call 2c24 <__mulsi3> - 8e38: 8806d43a srli r3,r17,16 - 8e3c: 800ad43a srli r5,r16,16 - 8e40: 94c0000d sth r19,0(r18) - 8e44: b0c7883a add r3,r22,r3 - 8e48: 10e1883a add r16,r2,r3 - 8e4c: 9400008d sth r16,2(r18) - 8e50: a809883a mov r4,r21 - 8e54: 94800104 addi r18,r18,4 - 8e58: 0002c240 call 2c24 <__mulsi3> - 8e5c: 94400017 ldw r17,0(r18) - 8e60: 8020d43a srli r16,r16,16 - 8e64: 88ffffcc andi r3,r17,65535 - 8e68: 10c5883a add r2,r2,r3 - 8e6c: 80a7883a add r19,r16,r2 - 8e70: 982cd43a srli r22,r19,16 - 8e74: a73feb36 bltu r20,fp,8e24 <__multiply+0x168> - 8e78: 94c00015 stw r19,0(r18) - 8e7c: d8800217 ldw r2,8(sp) - 8e80: bdc00104 addi r23,r23,4 - 8e84: b880042e bgeu r23,r2,8e98 <__multiply+0x1dc> - 8e88: d8c00117 ldw r3,4(sp) - 8e8c: 18c00104 addi r3,r3,4 - 8e90: d8c00115 stw r3,4(sp) - 8e94: 003fbe06 br 8d90 <__multiply+0xd4> - 8e98: d9000417 ldw r4,16(sp) - 8e9c: 01000c0e bge zero,r4,8ed0 <__multiply+0x214> - 8ea0: d8c00317 ldw r3,12(sp) - 8ea4: 18bfff17 ldw r2,-4(r3) - 8ea8: 18ffff04 addi r3,r3,-4 - 8eac: 10000326 beq r2,zero,8ebc <__multiply+0x200> - 8eb0: 00000706 br 8ed0 <__multiply+0x214> - 8eb4: 18800017 ldw r2,0(r3) - 8eb8: 1000051e bne r2,zero,8ed0 <__multiply+0x214> - 8ebc: d9000417 ldw r4,16(sp) - 8ec0: 18ffff04 addi r3,r3,-4 - 8ec4: 213fffc4 addi r4,r4,-1 - 8ec8: d9000415 stw r4,16(sp) - 8ecc: 203ff91e bne r4,zero,8eb4 <__multiply+0x1f8> - 8ed0: d8800417 ldw r2,16(sp) - 8ed4: d8c00517 ldw r3,20(sp) - 8ed8: 18800415 stw r2,16(r3) - 8edc: 1805883a mov r2,r3 - 8ee0: dfc00f17 ldw ra,60(sp) - 8ee4: df000e17 ldw fp,56(sp) - 8ee8: ddc00d17 ldw r23,52(sp) - 8eec: dd800c17 ldw r22,48(sp) - 8ef0: dd400b17 ldw r21,44(sp) - 8ef4: dd000a17 ldw r20,40(sp) - 8ef8: dcc00917 ldw r19,36(sp) - 8efc: dc800817 ldw r18,32(sp) - 8f00: dc400717 ldw r17,28(sp) - 8f04: dc000617 ldw r16,24(sp) - 8f08: dec01004 addi sp,sp,64 - 8f0c: f800283a ret - -00008f10 <__i2b>: - 8f10: defffd04 addi sp,sp,-12 - 8f14: dc000015 stw r16,0(sp) - 8f18: 04000044 movi r16,1 - 8f1c: dc800115 stw r18,4(sp) - 8f20: 2825883a mov r18,r5 - 8f24: 800b883a mov r5,r16 - 8f28: dfc00215 stw ra,8(sp) - 8f2c: 00087ac0 call 87ac <_Balloc> - 8f30: 14000415 stw r16,16(r2) - 8f34: 14800515 stw r18,20(r2) - 8f38: dfc00217 ldw ra,8(sp) - 8f3c: dc800117 ldw r18,4(sp) - 8f40: dc000017 ldw r16,0(sp) - 8f44: dec00304 addi sp,sp,12 - 8f48: f800283a ret - -00008f4c <__multadd>: - 8f4c: defff604 addi sp,sp,-40 - 8f50: dd800615 stw r22,24(sp) - 8f54: 2d800417 ldw r22,16(r5) - 8f58: df000815 stw fp,32(sp) - 8f5c: ddc00715 stw r23,28(sp) - 8f60: dd400515 stw r21,20(sp) - 8f64: dd000415 stw r20,16(sp) - 8f68: dcc00315 stw r19,12(sp) - 8f6c: dc800215 stw r18,8(sp) - 8f70: dfc00915 stw ra,36(sp) - 8f74: dc400115 stw r17,4(sp) - 8f78: dc000015 stw r16,0(sp) - 8f7c: 282f883a mov r23,r5 - 8f80: 2039883a mov fp,r4 - 8f84: 302b883a mov r21,r6 - 8f88: 3829883a mov r20,r7 - 8f8c: 2c800504 addi r18,r5,20 - 8f90: 0027883a mov r19,zero - 8f94: 94400017 ldw r17,0(r18) - 8f98: a80b883a mov r5,r21 - 8f9c: 9cc00044 addi r19,r19,1 - 8fa0: 893fffcc andi r4,r17,65535 - 8fa4: 0002c240 call 2c24 <__mulsi3> - 8fa8: 8808d43a srli r4,r17,16 - 8fac: 1521883a add r16,r2,r20 - 8fb0: a80b883a mov r5,r21 - 8fb4: 0002c240 call 2c24 <__mulsi3> - 8fb8: 8008d43a srli r4,r16,16 - 8fbc: 843fffcc andi r16,r16,65535 - 8fc0: 1105883a add r2,r2,r4 - 8fc4: 1006943a slli r3,r2,16 - 8fc8: 1028d43a srli r20,r2,16 - 8fcc: 1c07883a add r3,r3,r16 - 8fd0: 90c00015 stw r3,0(r18) - 8fd4: 94800104 addi r18,r18,4 - 8fd8: 9dbfee16 blt r19,r22,8f94 <__multadd+0x48> - 8fdc: a0000826 beq r20,zero,9000 <__multadd+0xb4> - 8fe0: b8800217 ldw r2,8(r23) - 8fe4: b080130e bge r22,r2,9034 <__multadd+0xe8> - 8fe8: b585883a add r2,r22,r22 - 8fec: 1085883a add r2,r2,r2 - 8ff0: 15c5883a add r2,r2,r23 - 8ff4: b0c00044 addi r3,r22,1 - 8ff8: 15000515 stw r20,20(r2) - 8ffc: b8c00415 stw r3,16(r23) - 9000: b805883a mov r2,r23 - 9004: dfc00917 ldw ra,36(sp) - 9008: df000817 ldw fp,32(sp) - 900c: ddc00717 ldw r23,28(sp) - 9010: dd800617 ldw r22,24(sp) - 9014: dd400517 ldw r21,20(sp) - 9018: dd000417 ldw r20,16(sp) - 901c: dcc00317 ldw r19,12(sp) - 9020: dc800217 ldw r18,8(sp) - 9024: dc400117 ldw r17,4(sp) - 9028: dc000017 ldw r16,0(sp) - 902c: dec00a04 addi sp,sp,40 - 9030: f800283a ret - 9034: b9400117 ldw r5,4(r23) - 9038: e009883a mov r4,fp - 903c: 29400044 addi r5,r5,1 - 9040: 00087ac0 call 87ac <_Balloc> - 9044: b9800417 ldw r6,16(r23) - 9048: b9400304 addi r5,r23,12 - 904c: 11000304 addi r4,r2,12 - 9050: 318d883a add r6,r6,r6 - 9054: 318d883a add r6,r6,r6 - 9058: 31800204 addi r6,r6,8 - 905c: 1023883a mov r17,r2 - 9060: 00080140 call 8014 - 9064: b80b883a mov r5,r23 - 9068: e009883a mov r4,fp - 906c: 000822c0 call 822c <_Bfree> - 9070: 882f883a mov r23,r17 - 9074: 003fdc06 br 8fe8 <__multadd+0x9c> - -00009078 <__pow5mult>: - 9078: defffa04 addi sp,sp,-24 - 907c: 308000cc andi r2,r6,3 - 9080: dd000415 stw r20,16(sp) - 9084: dcc00315 stw r19,12(sp) - 9088: dc000015 stw r16,0(sp) - 908c: dfc00515 stw ra,20(sp) - 9090: dc800215 stw r18,8(sp) - 9094: dc400115 stw r17,4(sp) - 9098: 3021883a mov r16,r6 - 909c: 2027883a mov r19,r4 - 90a0: 2829883a mov r20,r5 - 90a4: 10002b1e bne r2,zero,9154 <__pow5mult+0xdc> - 90a8: 8025d0ba srai r18,r16,2 - 90ac: 90001b26 beq r18,zero,911c <__pow5mult+0xa4> - 90b0: 9c001217 ldw r16,72(r19) - 90b4: 8000081e bne r16,zero,90d8 <__pow5mult+0x60> - 90b8: 00003006 br 917c <__pow5mult+0x104> - 90bc: 800b883a mov r5,r16 - 90c0: 800d883a mov r6,r16 - 90c4: 9809883a mov r4,r19 - 90c8: 90001426 beq r18,zero,911c <__pow5mult+0xa4> - 90cc: 80800017 ldw r2,0(r16) - 90d0: 10001b26 beq r2,zero,9140 <__pow5mult+0xc8> - 90d4: 1021883a mov r16,r2 - 90d8: 9080004c andi r2,r18,1 - 90dc: 1005003a cmpeq r2,r2,zero - 90e0: 9025d07a srai r18,r18,1 - 90e4: 800d883a mov r6,r16 - 90e8: 9809883a mov r4,r19 - 90ec: a00b883a mov r5,r20 - 90f0: 103ff21e bne r2,zero,90bc <__pow5mult+0x44> - 90f4: 0008cbc0 call 8cbc <__multiply> - 90f8: a00b883a mov r5,r20 - 90fc: 9809883a mov r4,r19 - 9100: 1023883a mov r17,r2 - 9104: 000822c0 call 822c <_Bfree> - 9108: 8829883a mov r20,r17 - 910c: 800b883a mov r5,r16 - 9110: 800d883a mov r6,r16 - 9114: 9809883a mov r4,r19 - 9118: 903fec1e bne r18,zero,90cc <__pow5mult+0x54> - 911c: a005883a mov r2,r20 - 9120: dfc00517 ldw ra,20(sp) - 9124: dd000417 ldw r20,16(sp) - 9128: dcc00317 ldw r19,12(sp) - 912c: dc800217 ldw r18,8(sp) - 9130: dc400117 ldw r17,4(sp) - 9134: dc000017 ldw r16,0(sp) - 9138: dec00604 addi sp,sp,24 - 913c: f800283a ret - 9140: 0008cbc0 call 8cbc <__multiply> - 9144: 80800015 stw r2,0(r16) - 9148: 1021883a mov r16,r2 - 914c: 10000015 stw zero,0(r2) - 9150: 003fe106 br 90d8 <__pow5mult+0x60> - 9154: 1085883a add r2,r2,r2 - 9158: 00c00074 movhi r3,1 - 915c: 18c15504 addi r3,r3,1364 - 9160: 1085883a add r2,r2,r2 - 9164: 10c5883a add r2,r2,r3 - 9168: 11bfff17 ldw r6,-4(r2) - 916c: 000f883a mov r7,zero - 9170: 0008f4c0 call 8f4c <__multadd> - 9174: 1029883a mov r20,r2 - 9178: 003fcb06 br 90a8 <__pow5mult+0x30> - 917c: 9809883a mov r4,r19 - 9180: 01409c44 movi r5,625 - 9184: 0008f100 call 8f10 <__i2b> - 9188: 98801215 stw r2,72(r19) - 918c: 1021883a mov r16,r2 - 9190: 10000015 stw zero,0(r2) - 9194: 003fd006 br 90d8 <__pow5mult+0x60> - -00009198 <__s2b>: - 9198: defff904 addi sp,sp,-28 - 919c: dcc00315 stw r19,12(sp) - 91a0: dc800215 stw r18,8(sp) - 91a4: 2827883a mov r19,r5 - 91a8: 2025883a mov r18,r4 - 91ac: 01400244 movi r5,9 - 91b0: 39000204 addi r4,r7,8 - 91b4: dd000415 stw r20,16(sp) - 91b8: dc400115 stw r17,4(sp) - 91bc: dfc00615 stw ra,24(sp) - 91c0: dd400515 stw r21,20(sp) - 91c4: dc000015 stw r16,0(sp) - 91c8: 3829883a mov r20,r7 - 91cc: 3023883a mov r17,r6 - 91d0: 0002b540 call 2b54 <__divsi3> - 91d4: 00c00044 movi r3,1 - 91d8: 1880350e bge r3,r2,92b0 <__s2b+0x118> - 91dc: 000b883a mov r5,zero - 91e0: 18c7883a add r3,r3,r3 - 91e4: 29400044 addi r5,r5,1 - 91e8: 18bffd16 blt r3,r2,91e0 <__s2b+0x48> - 91ec: 9009883a mov r4,r18 - 91f0: 00087ac0 call 87ac <_Balloc> - 91f4: 1011883a mov r8,r2 - 91f8: d8800717 ldw r2,28(sp) - 91fc: 00c00044 movi r3,1 - 9200: 01800244 movi r6,9 - 9204: 40800515 stw r2,20(r8) - 9208: 40c00415 stw r3,16(r8) - 920c: 3440260e bge r6,r17,92a8 <__s2b+0x110> - 9210: 3021883a mov r16,r6 - 9214: 99ab883a add r21,r19,r6 - 9218: 9c05883a add r2,r19,r16 - 921c: 11c00007 ldb r7,0(r2) - 9220: 400b883a mov r5,r8 - 9224: 9009883a mov r4,r18 - 9228: 39fff404 addi r7,r7,-48 - 922c: 01800284 movi r6,10 - 9230: 0008f4c0 call 8f4c <__multadd> - 9234: 84000044 addi r16,r16,1 - 9238: 1011883a mov r8,r2 - 923c: 8c3ff61e bne r17,r16,9218 <__s2b+0x80> - 9240: ac45883a add r2,r21,r17 - 9244: 117ffe04 addi r5,r2,-8 - 9248: 880d883a mov r6,r17 - 924c: 35000c0e bge r6,r20,9280 <__s2b+0xe8> - 9250: a185c83a sub r2,r20,r6 - 9254: 2821883a mov r16,r5 - 9258: 28a3883a add r17,r5,r2 - 925c: 81c00007 ldb r7,0(r16) - 9260: 400b883a mov r5,r8 - 9264: 9009883a mov r4,r18 - 9268: 39fff404 addi r7,r7,-48 - 926c: 01800284 movi r6,10 - 9270: 0008f4c0 call 8f4c <__multadd> - 9274: 84000044 addi r16,r16,1 - 9278: 1011883a mov r8,r2 - 927c: 847ff71e bne r16,r17,925c <__s2b+0xc4> - 9280: 4005883a mov r2,r8 - 9284: dfc00617 ldw ra,24(sp) - 9288: dd400517 ldw r21,20(sp) - 928c: dd000417 ldw r20,16(sp) - 9290: dcc00317 ldw r19,12(sp) - 9294: dc800217 ldw r18,8(sp) - 9298: dc400117 ldw r17,4(sp) - 929c: dc000017 ldw r16,0(sp) - 92a0: dec00704 addi sp,sp,28 - 92a4: f800283a ret - 92a8: 99400284 addi r5,r19,10 - 92ac: 003fe706 br 924c <__s2b+0xb4> - 92b0: 000b883a mov r5,zero - 92b4: 003fcd06 br 91ec <__s2b+0x54> - -000092b8 <_realloc_r>: - 92b8: defff404 addi sp,sp,-48 - 92bc: dd800815 stw r22,32(sp) - 92c0: dc800415 stw r18,16(sp) - 92c4: dc400315 stw r17,12(sp) - 92c8: dfc00b15 stw ra,44(sp) - 92cc: df000a15 stw fp,40(sp) - 92d0: ddc00915 stw r23,36(sp) - 92d4: dd400715 stw r21,28(sp) - 92d8: dd000615 stw r20,24(sp) - 92dc: dcc00515 stw r19,20(sp) - 92e0: dc000215 stw r16,8(sp) - 92e4: 2825883a mov r18,r5 - 92e8: 3023883a mov r17,r6 - 92ec: 202d883a mov r22,r4 - 92f0: 2800c926 beq r5,zero,9618 <_realloc_r+0x360> - 92f4: 000cb800 call cb80 <__malloc_lock> - 92f8: 943ffe04 addi r16,r18,-8 - 92fc: 88c002c4 addi r3,r17,11 - 9300: 00800584 movi r2,22 - 9304: 82000117 ldw r8,4(r16) - 9308: 10c01b2e bgeu r2,r3,9378 <_realloc_r+0xc0> - 930c: 00bffe04 movi r2,-8 - 9310: 188e703a and r7,r3,r2 - 9314: 3839883a mov fp,r7 - 9318: 38001a16 blt r7,zero,9384 <_realloc_r+0xcc> - 931c: e4401936 bltu fp,r17,9384 <_realloc_r+0xcc> - 9320: 013fff04 movi r4,-4 - 9324: 4126703a and r19,r8,r4 - 9328: 99c02616 blt r19,r7,93c4 <_realloc_r+0x10c> - 932c: 802b883a mov r21,r16 - 9330: 9829883a mov r20,r19 - 9334: 84000204 addi r16,r16,8 - 9338: a80f883a mov r7,r21 - 933c: a70dc83a sub r6,r20,fp - 9340: 008003c4 movi r2,15 - 9344: 1180c136 bltu r2,r6,964c <_realloc_r+0x394> - 9348: 38800117 ldw r2,4(r7) - 934c: a549883a add r4,r20,r21 - 9350: 1080004c andi r2,r2,1 - 9354: a084b03a or r2,r20,r2 - 9358: 38800115 stw r2,4(r7) - 935c: 20c00117 ldw r3,4(r4) - 9360: 18c00054 ori r3,r3,1 - 9364: 20c00115 stw r3,4(r4) - 9368: b009883a mov r4,r22 - 936c: 000cba00 call cba0 <__malloc_unlock> - 9370: 8023883a mov r17,r16 - 9374: 00000606 br 9390 <_realloc_r+0xd8> - 9378: 01c00404 movi r7,16 - 937c: 3839883a mov fp,r7 - 9380: e47fe72e bgeu fp,r17,9320 <_realloc_r+0x68> - 9384: 00800304 movi r2,12 - 9388: 0023883a mov r17,zero - 938c: b0800015 stw r2,0(r22) - 9390: 8805883a mov r2,r17 - 9394: dfc00b17 ldw ra,44(sp) - 9398: df000a17 ldw fp,40(sp) - 939c: ddc00917 ldw r23,36(sp) - 93a0: dd800817 ldw r22,32(sp) - 93a4: dd400717 ldw r21,28(sp) - 93a8: dd000617 ldw r20,24(sp) - 93ac: dcc00517 ldw r19,20(sp) - 93b0: dc800417 ldw r18,16(sp) - 93b4: dc400317 ldw r17,12(sp) - 93b8: dc000217 ldw r16,8(sp) - 93bc: dec00c04 addi sp,sp,48 - 93c0: f800283a ret - 93c4: 00800074 movhi r2,1 - 93c8: 1082b004 addi r2,r2,2752 - 93cc: 12400217 ldw r9,8(r2) - 93d0: 84cd883a add r6,r16,r19 - 93d4: 802b883a mov r21,r16 - 93d8: 3240b926 beq r6,r9,96c0 <_realloc_r+0x408> - 93dc: 31400117 ldw r5,4(r6) - 93e0: 00bfff84 movi r2,-2 - 93e4: 2884703a and r2,r5,r2 - 93e8: 1185883a add r2,r2,r6 - 93ec: 10c00117 ldw r3,4(r2) - 93f0: 18c0004c andi r3,r3,1 - 93f4: 1807003a cmpeq r3,r3,zero - 93f8: 1800a326 beq r3,zero,9688 <_realloc_r+0x3d0> - 93fc: 2908703a and r4,r5,r4 - 9400: 9929883a add r20,r19,r4 - 9404: a1c0a30e bge r20,r7,9694 <_realloc_r+0x3dc> - 9408: 4080004c andi r2,r8,1 - 940c: 1000551e bne r2,zero,9564 <_realloc_r+0x2ac> - 9410: 80800017 ldw r2,0(r16) - 9414: 80afc83a sub r23,r16,r2 - 9418: b8c00117 ldw r3,4(r23) - 941c: 00bfff04 movi r2,-4 - 9420: 1884703a and r2,r3,r2 - 9424: 30002e26 beq r6,zero,94e0 <_realloc_r+0x228> - 9428: 3240b926 beq r6,r9,9710 <_realloc_r+0x458> - 942c: 98a9883a add r20,r19,r2 - 9430: 2509883a add r4,r4,r20 - 9434: d9000015 stw r4,0(sp) - 9438: 21c02a16 blt r4,r7,94e4 <_realloc_r+0x22c> - 943c: 30800317 ldw r2,12(r6) - 9440: 30c00217 ldw r3,8(r6) - 9444: 01400904 movi r5,36 - 9448: 99bfff04 addi r6,r19,-4 - 944c: 18800315 stw r2,12(r3) - 9450: 10c00215 stw r3,8(r2) - 9454: b9000317 ldw r4,12(r23) - 9458: b8800217 ldw r2,8(r23) - 945c: b82b883a mov r21,r23 - 9460: bc000204 addi r16,r23,8 - 9464: 20800215 stw r2,8(r4) - 9468: 11000315 stw r4,12(r2) - 946c: 2980e436 bltu r5,r6,9800 <_realloc_r+0x548> - 9470: 008004c4 movi r2,19 - 9474: 9009883a mov r4,r18 - 9478: 8011883a mov r8,r16 - 947c: 11800f2e bgeu r2,r6,94bc <_realloc_r+0x204> - 9480: 90800017 ldw r2,0(r18) - 9484: ba000404 addi r8,r23,16 - 9488: 91000204 addi r4,r18,8 - 948c: b8800215 stw r2,8(r23) - 9490: 90c00117 ldw r3,4(r18) - 9494: 008006c4 movi r2,27 - 9498: b8c00315 stw r3,12(r23) - 949c: 1180072e bgeu r2,r6,94bc <_realloc_r+0x204> - 94a0: 90c00217 ldw r3,8(r18) - 94a4: ba000604 addi r8,r23,24 - 94a8: 91000404 addi r4,r18,16 - 94ac: b8c00415 stw r3,16(r23) - 94b0: 90800317 ldw r2,12(r18) - 94b4: b8800515 stw r2,20(r23) - 94b8: 3140e726 beq r6,r5,9858 <_realloc_r+0x5a0> - 94bc: 20800017 ldw r2,0(r4) - 94c0: dd000017 ldw r20,0(sp) - 94c4: b80f883a mov r7,r23 - 94c8: 40800015 stw r2,0(r8) - 94cc: 20c00117 ldw r3,4(r4) - 94d0: 40c00115 stw r3,4(r8) - 94d4: 20800217 ldw r2,8(r4) - 94d8: 40800215 stw r2,8(r8) - 94dc: 003f9706 br 933c <_realloc_r+0x84> - 94e0: 98a9883a add r20,r19,r2 - 94e4: a1c01f16 blt r20,r7,9564 <_realloc_r+0x2ac> - 94e8: b8c00317 ldw r3,12(r23) - 94ec: b8800217 ldw r2,8(r23) - 94f0: 99bfff04 addi r6,r19,-4 - 94f4: 01400904 movi r5,36 - 94f8: b82b883a mov r21,r23 - 94fc: 18800215 stw r2,8(r3) - 9500: 10c00315 stw r3,12(r2) - 9504: bc000204 addi r16,r23,8 - 9508: 2980c336 bltu r5,r6,9818 <_realloc_r+0x560> - 950c: 008004c4 movi r2,19 - 9510: 9009883a mov r4,r18 - 9514: 8011883a mov r8,r16 - 9518: 11800f2e bgeu r2,r6,9558 <_realloc_r+0x2a0> - 951c: 90800017 ldw r2,0(r18) - 9520: ba000404 addi r8,r23,16 - 9524: 91000204 addi r4,r18,8 - 9528: b8800215 stw r2,8(r23) - 952c: 90c00117 ldw r3,4(r18) - 9530: 008006c4 movi r2,27 - 9534: b8c00315 stw r3,12(r23) - 9538: 1180072e bgeu r2,r6,9558 <_realloc_r+0x2a0> - 953c: 90c00217 ldw r3,8(r18) - 9540: ba000604 addi r8,r23,24 - 9544: 91000404 addi r4,r18,16 - 9548: b8c00415 stw r3,16(r23) - 954c: 90800317 ldw r2,12(r18) - 9550: b8800515 stw r2,20(r23) - 9554: 3140c726 beq r6,r5,9874 <_realloc_r+0x5bc> - 9558: 20800017 ldw r2,0(r4) - 955c: b80f883a mov r7,r23 - 9560: 003fd906 br 94c8 <_realloc_r+0x210> - 9564: 880b883a mov r5,r17 - 9568: b009883a mov r4,r22 - 956c: 00077f00 call 77f0 <_malloc_r> - 9570: 1023883a mov r17,r2 - 9574: 10002526 beq r2,zero,960c <_realloc_r+0x354> - 9578: 80800117 ldw r2,4(r16) - 957c: 00ffff84 movi r3,-2 - 9580: 893ffe04 addi r4,r17,-8 - 9584: 10c4703a and r2,r2,r3 - 9588: 8085883a add r2,r16,r2 - 958c: 20809526 beq r4,r2,97e4 <_realloc_r+0x52c> - 9590: 99bfff04 addi r6,r19,-4 - 9594: 01c00904 movi r7,36 - 9598: 39804536 bltu r7,r6,96b0 <_realloc_r+0x3f8> - 959c: 008004c4 movi r2,19 - 95a0: 9009883a mov r4,r18 - 95a4: 880b883a mov r5,r17 - 95a8: 11800f2e bgeu r2,r6,95e8 <_realloc_r+0x330> - 95ac: 90800017 ldw r2,0(r18) - 95b0: 89400204 addi r5,r17,8 - 95b4: 91000204 addi r4,r18,8 - 95b8: 88800015 stw r2,0(r17) - 95bc: 90c00117 ldw r3,4(r18) - 95c0: 008006c4 movi r2,27 - 95c4: 88c00115 stw r3,4(r17) - 95c8: 1180072e bgeu r2,r6,95e8 <_realloc_r+0x330> - 95cc: 90c00217 ldw r3,8(r18) - 95d0: 89400404 addi r5,r17,16 - 95d4: 91000404 addi r4,r18,16 - 95d8: 88c00215 stw r3,8(r17) - 95dc: 90800317 ldw r2,12(r18) - 95e0: 88800315 stw r2,12(r17) - 95e4: 31c09126 beq r6,r7,982c <_realloc_r+0x574> - 95e8: 20800017 ldw r2,0(r4) - 95ec: 28800015 stw r2,0(r5) - 95f0: 20c00117 ldw r3,4(r4) - 95f4: 28c00115 stw r3,4(r5) - 95f8: 20800217 ldw r2,8(r4) - 95fc: 28800215 stw r2,8(r5) - 9600: 900b883a mov r5,r18 - 9604: b009883a mov r4,r22 - 9608: 0006c680 call 6c68 <_free_r> - 960c: b009883a mov r4,r22 - 9610: 000cba00 call cba0 <__malloc_unlock> - 9614: 003f5e06 br 9390 <_realloc_r+0xd8> - 9618: 300b883a mov r5,r6 - 961c: dfc00b17 ldw ra,44(sp) - 9620: df000a17 ldw fp,40(sp) - 9624: ddc00917 ldw r23,36(sp) - 9628: dd800817 ldw r22,32(sp) - 962c: dd400717 ldw r21,28(sp) - 9630: dd000617 ldw r20,24(sp) - 9634: dcc00517 ldw r19,20(sp) - 9638: dc800417 ldw r18,16(sp) - 963c: dc400317 ldw r17,12(sp) - 9640: dc000217 ldw r16,8(sp) - 9644: dec00c04 addi sp,sp,48 - 9648: 00077f01 jmpi 77f0 <_malloc_r> - 964c: 38800117 ldw r2,4(r7) - 9650: e54b883a add r5,fp,r21 - 9654: 31000054 ori r4,r6,1 - 9658: 1080004c andi r2,r2,1 - 965c: 1704b03a or r2,r2,fp - 9660: 38800115 stw r2,4(r7) - 9664: 29000115 stw r4,4(r5) - 9668: 2987883a add r3,r5,r6 - 966c: 18800117 ldw r2,4(r3) - 9670: 29400204 addi r5,r5,8 - 9674: b009883a mov r4,r22 - 9678: 10800054 ori r2,r2,1 - 967c: 18800115 stw r2,4(r3) - 9680: 0006c680 call 6c68 <_free_r> - 9684: 003f3806 br 9368 <_realloc_r+0xb0> - 9688: 000d883a mov r6,zero - 968c: 0009883a mov r4,zero - 9690: 003f5d06 br 9408 <_realloc_r+0x150> - 9694: 30c00217 ldw r3,8(r6) - 9698: 30800317 ldw r2,12(r6) - 969c: 800f883a mov r7,r16 - 96a0: 84000204 addi r16,r16,8 - 96a4: 10c00215 stw r3,8(r2) - 96a8: 18800315 stw r2,12(r3) - 96ac: 003f2306 br 933c <_realloc_r+0x84> - 96b0: 8809883a mov r4,r17 - 96b4: 900b883a mov r5,r18 - 96b8: 00080b40 call 80b4 - 96bc: 003fd006 br 9600 <_realloc_r+0x348> - 96c0: 30800117 ldw r2,4(r6) - 96c4: e0c00404 addi r3,fp,16 - 96c8: 1108703a and r4,r2,r4 - 96cc: 9905883a add r2,r19,r4 - 96d0: 10ff4d16 blt r2,r3,9408 <_realloc_r+0x150> - 96d4: 1705c83a sub r2,r2,fp - 96d8: 870b883a add r5,r16,fp - 96dc: 10800054 ori r2,r2,1 - 96e0: 28800115 stw r2,4(r5) - 96e4: 80c00117 ldw r3,4(r16) - 96e8: 00800074 movhi r2,1 - 96ec: 1082b004 addi r2,r2,2752 - 96f0: b009883a mov r4,r22 - 96f4: 18c0004c andi r3,r3,1 - 96f8: e0c6b03a or r3,fp,r3 - 96fc: 11400215 stw r5,8(r2) - 9700: 80c00115 stw r3,4(r16) - 9704: 000cba00 call cba0 <__malloc_unlock> - 9708: 84400204 addi r17,r16,8 - 970c: 003f2006 br 9390 <_realloc_r+0xd8> - 9710: 98a9883a add r20,r19,r2 - 9714: 2509883a add r4,r4,r20 - 9718: e0800404 addi r2,fp,16 - 971c: d9000115 stw r4,4(sp) - 9720: 20bf7016 blt r4,r2,94e4 <_realloc_r+0x22c> - 9724: b8c00317 ldw r3,12(r23) - 9728: b8800217 ldw r2,8(r23) - 972c: 99bfff04 addi r6,r19,-4 - 9730: 01400904 movi r5,36 - 9734: 18800215 stw r2,8(r3) - 9738: 10c00315 stw r3,12(r2) - 973c: bc400204 addi r17,r23,8 - 9740: 29804136 bltu r5,r6,9848 <_realloc_r+0x590> - 9744: 008004c4 movi r2,19 - 9748: 9009883a mov r4,r18 - 974c: 880f883a mov r7,r17 - 9750: 11800f2e bgeu r2,r6,9790 <_realloc_r+0x4d8> - 9754: 90800017 ldw r2,0(r18) - 9758: b9c00404 addi r7,r23,16 - 975c: 91000204 addi r4,r18,8 - 9760: b8800215 stw r2,8(r23) - 9764: 90c00117 ldw r3,4(r18) - 9768: 008006c4 movi r2,27 - 976c: b8c00315 stw r3,12(r23) - 9770: 1180072e bgeu r2,r6,9790 <_realloc_r+0x4d8> - 9774: 90c00217 ldw r3,8(r18) - 9778: b9c00604 addi r7,r23,24 - 977c: 91000404 addi r4,r18,16 - 9780: b8c00415 stw r3,16(r23) - 9784: 90800317 ldw r2,12(r18) - 9788: b8800515 stw r2,20(r23) - 978c: 31404026 beq r6,r5,9890 <_realloc_r+0x5d8> - 9790: 20800017 ldw r2,0(r4) - 9794: 38800015 stw r2,0(r7) - 9798: 20c00117 ldw r3,4(r4) - 979c: 38c00115 stw r3,4(r7) - 97a0: 20800217 ldw r2,8(r4) - 97a4: 38800215 stw r2,8(r7) - 97a8: d8c00117 ldw r3,4(sp) - 97ac: bf0b883a add r5,r23,fp - 97b0: b009883a mov r4,r22 - 97b4: 1f05c83a sub r2,r3,fp - 97b8: 10800054 ori r2,r2,1 - 97bc: 28800115 stw r2,4(r5) - 97c0: b8c00117 ldw r3,4(r23) - 97c4: 00800074 movhi r2,1 - 97c8: 1082b004 addi r2,r2,2752 - 97cc: 11400215 stw r5,8(r2) - 97d0: 18c0004c andi r3,r3,1 - 97d4: e0c6b03a or r3,fp,r3 - 97d8: b8c00115 stw r3,4(r23) - 97dc: 000cba00 call cba0 <__malloc_unlock> - 97e0: 003eeb06 br 9390 <_realloc_r+0xd8> - 97e4: 20800117 ldw r2,4(r4) - 97e8: 00ffff04 movi r3,-4 - 97ec: 800f883a mov r7,r16 - 97f0: 10c4703a and r2,r2,r3 - 97f4: 98a9883a add r20,r19,r2 - 97f8: 84000204 addi r16,r16,8 - 97fc: 003ecf06 br 933c <_realloc_r+0x84> - 9800: 900b883a mov r5,r18 - 9804: 8009883a mov r4,r16 - 9808: 00080b40 call 80b4 - 980c: dd000017 ldw r20,0(sp) - 9810: b80f883a mov r7,r23 - 9814: 003ec906 br 933c <_realloc_r+0x84> - 9818: 900b883a mov r5,r18 - 981c: 8009883a mov r4,r16 - 9820: 00080b40 call 80b4 - 9824: b80f883a mov r7,r23 - 9828: 003ec406 br 933c <_realloc_r+0x84> - 982c: 90c00417 ldw r3,16(r18) - 9830: 89400604 addi r5,r17,24 - 9834: 91000604 addi r4,r18,24 - 9838: 88c00415 stw r3,16(r17) - 983c: 90800517 ldw r2,20(r18) - 9840: 88800515 stw r2,20(r17) - 9844: 003f6806 br 95e8 <_realloc_r+0x330> - 9848: 900b883a mov r5,r18 - 984c: 8809883a mov r4,r17 - 9850: 00080b40 call 80b4 - 9854: 003fd406 br 97a8 <_realloc_r+0x4f0> - 9858: 90c00417 ldw r3,16(r18) - 985c: 91000604 addi r4,r18,24 - 9860: ba000804 addi r8,r23,32 - 9864: b8c00615 stw r3,24(r23) - 9868: 90800517 ldw r2,20(r18) - 986c: b8800715 stw r2,28(r23) - 9870: 003f1206 br 94bc <_realloc_r+0x204> - 9874: 90c00417 ldw r3,16(r18) - 9878: 91000604 addi r4,r18,24 - 987c: ba000804 addi r8,r23,32 - 9880: b8c00615 stw r3,24(r23) - 9884: 90800517 ldw r2,20(r18) - 9888: b8800715 stw r2,28(r23) - 988c: 003f3206 br 9558 <_realloc_r+0x2a0> - 9890: 90c00417 ldw r3,16(r18) - 9894: 91000604 addi r4,r18,24 - 9898: b9c00804 addi r7,r23,32 - 989c: b8c00615 stw r3,24(r23) - 98a0: 90800517 ldw r2,20(r18) - 98a4: b8800715 stw r2,28(r23) - 98a8: 003fb906 br 9790 <_realloc_r+0x4d8> - -000098ac <__isinfd>: - 98ac: 200d883a mov r6,r4 - 98b0: 0109c83a sub r4,zero,r4 - 98b4: 2188b03a or r4,r4,r6 - 98b8: 2008d7fa srli r4,r4,31 - 98bc: 00a00034 movhi r2,32768 - 98c0: 10bfffc4 addi r2,r2,-1 - 98c4: 1144703a and r2,r2,r5 - 98c8: 2088b03a or r4,r4,r2 - 98cc: 009ffc34 movhi r2,32752 - 98d0: 1105c83a sub r2,r2,r4 - 98d4: 0087c83a sub r3,zero,r2 - 98d8: 10c4b03a or r2,r2,r3 - 98dc: 1004d7fa srli r2,r2,31 - 98e0: 00c00044 movi r3,1 - 98e4: 1885c83a sub r2,r3,r2 - 98e8: f800283a ret - -000098ec <__isnand>: - 98ec: 200d883a mov r6,r4 - 98f0: 0109c83a sub r4,zero,r4 - 98f4: 2188b03a or r4,r4,r6 - 98f8: 2008d7fa srli r4,r4,31 - 98fc: 00a00034 movhi r2,32768 - 9900: 10bfffc4 addi r2,r2,-1 - 9904: 1144703a and r2,r2,r5 - 9908: 2088b03a or r4,r4,r2 - 990c: 009ffc34 movhi r2,32752 - 9910: 1105c83a sub r2,r2,r4 - 9914: 1004d7fa srli r2,r2,31 - 9918: f800283a ret - -0000991c <_sbrk_r>: - 991c: defffd04 addi sp,sp,-12 - 9920: dc000015 stw r16,0(sp) - 9924: 04000074 movhi r16,1 - 9928: 840f7c04 addi r16,r16,15856 - 992c: dc400115 stw r17,4(sp) - 9930: 80000015 stw zero,0(r16) - 9934: 2023883a mov r17,r4 - 9938: 2809883a mov r4,r5 - 993c: dfc00215 stw ra,8(sp) - 9940: 000cdbc0 call cdbc - 9944: 1007883a mov r3,r2 - 9948: 00bfffc4 movi r2,-1 - 994c: 18800626 beq r3,r2,9968 <_sbrk_r+0x4c> - 9950: 1805883a mov r2,r3 - 9954: dfc00217 ldw ra,8(sp) - 9958: dc400117 ldw r17,4(sp) - 995c: dc000017 ldw r16,0(sp) - 9960: dec00304 addi sp,sp,12 - 9964: f800283a ret - 9968: 80800017 ldw r2,0(r16) - 996c: 103ff826 beq r2,zero,9950 <_sbrk_r+0x34> - 9970: 88800015 stw r2,0(r17) - 9974: 1805883a mov r2,r3 - 9978: dfc00217 ldw ra,8(sp) - 997c: dc400117 ldw r17,4(sp) - 9980: dc000017 ldw r16,0(sp) - 9984: dec00304 addi sp,sp,12 - 9988: f800283a ret - -0000998c <__sclose>: - 998c: 2940038f ldh r5,14(r5) - 9990: 0009cd41 jmpi 9cd4 <_close_r> - -00009994 <__sseek>: - 9994: defffe04 addi sp,sp,-8 - 9998: dc000015 stw r16,0(sp) - 999c: 2821883a mov r16,r5 - 99a0: 2940038f ldh r5,14(r5) - 99a4: dfc00115 stw ra,4(sp) - 99a8: 0009f4c0 call 9f4c <_lseek_r> - 99ac: 1007883a mov r3,r2 - 99b0: 00bfffc4 movi r2,-1 - 99b4: 18800926 beq r3,r2,99dc <__sseek+0x48> - 99b8: 8080030b ldhu r2,12(r16) - 99bc: 80c01415 stw r3,80(r16) - 99c0: 10840014 ori r2,r2,4096 - 99c4: 8080030d sth r2,12(r16) - 99c8: 1805883a mov r2,r3 - 99cc: dfc00117 ldw ra,4(sp) - 99d0: dc000017 ldw r16,0(sp) - 99d4: dec00204 addi sp,sp,8 - 99d8: f800283a ret - 99dc: 8080030b ldhu r2,12(r16) - 99e0: 10bbffcc andi r2,r2,61439 - 99e4: 8080030d sth r2,12(r16) - 99e8: 1805883a mov r2,r3 - 99ec: dfc00117 ldw ra,4(sp) - 99f0: dc000017 ldw r16,0(sp) - 99f4: dec00204 addi sp,sp,8 - 99f8: f800283a ret - -000099fc <__swrite>: - 99fc: 2880030b ldhu r2,12(r5) - 9a00: defffb04 addi sp,sp,-20 - 9a04: dcc00315 stw r19,12(sp) - 9a08: 1080400c andi r2,r2,256 - 9a0c: dc800215 stw r18,8(sp) - 9a10: dc400115 stw r17,4(sp) - 9a14: dc000015 stw r16,0(sp) - 9a18: 3027883a mov r19,r6 - 9a1c: 3825883a mov r18,r7 - 9a20: dfc00415 stw ra,16(sp) - 9a24: 2821883a mov r16,r5 - 9a28: 000d883a mov r6,zero - 9a2c: 01c00084 movi r7,2 - 9a30: 2023883a mov r17,r4 - 9a34: 10000226 beq r2,zero,9a40 <__swrite+0x44> - 9a38: 2940038f ldh r5,14(r5) - 9a3c: 0009f4c0 call 9f4c <_lseek_r> - 9a40: 8080030b ldhu r2,12(r16) - 9a44: 8140038f ldh r5,14(r16) - 9a48: 8809883a mov r4,r17 - 9a4c: 10bbffcc andi r2,r2,61439 - 9a50: 980d883a mov r6,r19 - 9a54: 900f883a mov r7,r18 - 9a58: 8080030d sth r2,12(r16) - 9a5c: dfc00417 ldw ra,16(sp) - 9a60: dcc00317 ldw r19,12(sp) - 9a64: dc800217 ldw r18,8(sp) - 9a68: dc400117 ldw r17,4(sp) - 9a6c: dc000017 ldw r16,0(sp) - 9a70: dec00504 addi sp,sp,20 - 9a74: 0009b941 jmpi 9b94 <_write_r> - -00009a78 <__sread>: - 9a78: defffe04 addi sp,sp,-8 - 9a7c: dc000015 stw r16,0(sp) - 9a80: 2821883a mov r16,r5 - 9a84: 2940038f ldh r5,14(r5) - 9a88: dfc00115 stw ra,4(sp) - 9a8c: 0009fc40 call 9fc4 <_read_r> - 9a90: 1007883a mov r3,r2 - 9a94: 10000816 blt r2,zero,9ab8 <__sread+0x40> - 9a98: 80801417 ldw r2,80(r16) - 9a9c: 10c5883a add r2,r2,r3 - 9aa0: 80801415 stw r2,80(r16) - 9aa4: 1805883a mov r2,r3 - 9aa8: dfc00117 ldw ra,4(sp) - 9aac: dc000017 ldw r16,0(sp) - 9ab0: dec00204 addi sp,sp,8 - 9ab4: f800283a ret - 9ab8: 8080030b ldhu r2,12(r16) - 9abc: 10bbffcc andi r2,r2,61439 - 9ac0: 8080030d sth r2,12(r16) - 9ac4: 1805883a mov r2,r3 - 9ac8: dfc00117 ldw ra,4(sp) - 9acc: dc000017 ldw r16,0(sp) - 9ad0: dec00204 addi sp,sp,8 - 9ad4: f800283a ret - -00009ad8 : - 9ad8: 2144b03a or r2,r4,r5 - 9adc: 108000cc andi r2,r2,3 - 9ae0: 10001d1e bne r2,zero,9b58 - 9ae4: 200f883a mov r7,r4 - 9ae8: 28800017 ldw r2,0(r5) - 9aec: 21000017 ldw r4,0(r4) - 9af0: 280d883a mov r6,r5 - 9af4: 2080161e bne r4,r2,9b50 - 9af8: 023fbff4 movhi r8,65279 - 9afc: 423fbfc4 addi r8,r8,-257 - 9b00: 2207883a add r3,r4,r8 - 9b04: 01602074 movhi r5,32897 - 9b08: 29602004 addi r5,r5,-32640 - 9b0c: 1946703a and r3,r3,r5 - 9b10: 0104303a nor r2,zero,r4 - 9b14: 10c4703a and r2,r2,r3 - 9b18: 10001c1e bne r2,zero,9b8c - 9b1c: 4013883a mov r9,r8 - 9b20: 2811883a mov r8,r5 - 9b24: 00000106 br 9b2c - 9b28: 1800181e bne r3,zero,9b8c - 9b2c: 39c00104 addi r7,r7,4 - 9b30: 39000017 ldw r4,0(r7) - 9b34: 31800104 addi r6,r6,4 - 9b38: 31400017 ldw r5,0(r6) - 9b3c: 2245883a add r2,r4,r9 - 9b40: 1204703a and r2,r2,r8 - 9b44: 0106303a nor r3,zero,r4 - 9b48: 1886703a and r3,r3,r2 - 9b4c: 217ff626 beq r4,r5,9b28 - 9b50: 3809883a mov r4,r7 - 9b54: 300b883a mov r5,r6 - 9b58: 20c00007 ldb r3,0(r4) - 9b5c: 1800051e bne r3,zero,9b74 - 9b60: 00000606 br 9b7c - 9b64: 21000044 addi r4,r4,1 - 9b68: 20c00007 ldb r3,0(r4) - 9b6c: 29400044 addi r5,r5,1 - 9b70: 18000226 beq r3,zero,9b7c - 9b74: 28800007 ldb r2,0(r5) - 9b78: 18bffa26 beq r3,r2,9b64 - 9b7c: 20c00003 ldbu r3,0(r4) - 9b80: 28800003 ldbu r2,0(r5) - 9b84: 1885c83a sub r2,r3,r2 - 9b88: f800283a ret - 9b8c: 0005883a mov r2,zero - 9b90: f800283a ret - -00009b94 <_write_r>: - 9b94: defffd04 addi sp,sp,-12 - 9b98: dc000015 stw r16,0(sp) - 9b9c: 04000074 movhi r16,1 - 9ba0: 840f7c04 addi r16,r16,15856 - 9ba4: dc400115 stw r17,4(sp) - 9ba8: 80000015 stw zero,0(r16) - 9bac: 2023883a mov r17,r4 - 9bb0: 2809883a mov r4,r5 - 9bb4: 300b883a mov r5,r6 - 9bb8: 380d883a mov r6,r7 - 9bbc: dfc00215 stw ra,8(sp) - 9bc0: 000cea80 call cea8 - 9bc4: 1007883a mov r3,r2 - 9bc8: 00bfffc4 movi r2,-1 - 9bcc: 18800626 beq r3,r2,9be8 <_write_r+0x54> - 9bd0: 1805883a mov r2,r3 - 9bd4: dfc00217 ldw ra,8(sp) - 9bd8: dc400117 ldw r17,4(sp) - 9bdc: dc000017 ldw r16,0(sp) - 9be0: dec00304 addi sp,sp,12 - 9be4: f800283a ret - 9be8: 80800017 ldw r2,0(r16) - 9bec: 103ff826 beq r2,zero,9bd0 <_write_r+0x3c> - 9bf0: 88800015 stw r2,0(r17) - 9bf4: 1805883a mov r2,r3 - 9bf8: dfc00217 ldw ra,8(sp) - 9bfc: dc400117 ldw r17,4(sp) - 9c00: dc000017 ldw r16,0(sp) - 9c04: dec00304 addi sp,sp,12 - 9c08: f800283a ret - -00009c0c <_calloc_r>: - 9c0c: defffe04 addi sp,sp,-8 - 9c10: dc400015 stw r17,0(sp) - 9c14: 2023883a mov r17,r4 - 9c18: 2809883a mov r4,r5 - 9c1c: 300b883a mov r5,r6 - 9c20: dfc00115 stw ra,4(sp) - 9c24: 0002c240 call 2c24 <__mulsi3> - 9c28: 100b883a mov r5,r2 - 9c2c: 8809883a mov r4,r17 - 9c30: 00077f00 call 77f0 <_malloc_r> - 9c34: 1023883a mov r17,r2 - 9c38: 01c00904 movi r7,36 - 9c3c: 10000d26 beq r2,zero,9c74 <_calloc_r+0x68> - 9c40: 10ffff17 ldw r3,-4(r2) - 9c44: 1009883a mov r4,r2 - 9c48: 00bfff04 movi r2,-4 - 9c4c: 1886703a and r3,r3,r2 - 9c50: 1887883a add r3,r3,r2 - 9c54: 180d883a mov r6,r3 - 9c58: 000b883a mov r5,zero - 9c5c: 38c01736 bltu r7,r3,9cbc <_calloc_r+0xb0> - 9c60: 008004c4 movi r2,19 - 9c64: 10c00836 bltu r2,r3,9c88 <_calloc_r+0x7c> - 9c68: 20000215 stw zero,8(r4) - 9c6c: 20000015 stw zero,0(r4) - 9c70: 20000115 stw zero,4(r4) - 9c74: 8805883a mov r2,r17 - 9c78: dfc00117 ldw ra,4(sp) - 9c7c: dc400017 ldw r17,0(sp) - 9c80: dec00204 addi sp,sp,8 - 9c84: f800283a ret - 9c88: 008006c4 movi r2,27 - 9c8c: 88000015 stw zero,0(r17) - 9c90: 88000115 stw zero,4(r17) - 9c94: 89000204 addi r4,r17,8 - 9c98: 10fff32e bgeu r2,r3,9c68 <_calloc_r+0x5c> - 9c9c: 88000215 stw zero,8(r17) - 9ca0: 88000315 stw zero,12(r17) - 9ca4: 89000404 addi r4,r17,16 - 9ca8: 19ffef1e bne r3,r7,9c68 <_calloc_r+0x5c> - 9cac: 89000604 addi r4,r17,24 - 9cb0: 88000415 stw zero,16(r17) - 9cb4: 88000515 stw zero,20(r17) - 9cb8: 003feb06 br 9c68 <_calloc_r+0x5c> - 9cbc: 00081940 call 8194 - 9cc0: 8805883a mov r2,r17 - 9cc4: dfc00117 ldw ra,4(sp) - 9cc8: dc400017 ldw r17,0(sp) - 9ccc: dec00204 addi sp,sp,8 - 9cd0: f800283a ret - -00009cd4 <_close_r>: - 9cd4: defffd04 addi sp,sp,-12 - 9cd8: dc000015 stw r16,0(sp) - 9cdc: 04000074 movhi r16,1 - 9ce0: 840f7c04 addi r16,r16,15856 - 9ce4: dc400115 stw r17,4(sp) - 9ce8: 80000015 stw zero,0(r16) - 9cec: 2023883a mov r17,r4 - 9cf0: 2809883a mov r4,r5 - 9cf4: dfc00215 stw ra,8(sp) - 9cf8: 000c4ec0 call c4ec - 9cfc: 1007883a mov r3,r2 - 9d00: 00bfffc4 movi r2,-1 - 9d04: 18800626 beq r3,r2,9d20 <_close_r+0x4c> - 9d08: 1805883a mov r2,r3 - 9d0c: dfc00217 ldw ra,8(sp) - 9d10: dc400117 ldw r17,4(sp) - 9d14: dc000017 ldw r16,0(sp) - 9d18: dec00304 addi sp,sp,12 - 9d1c: f800283a ret - 9d20: 80800017 ldw r2,0(r16) - 9d24: 103ff826 beq r2,zero,9d08 <_close_r+0x34> - 9d28: 88800015 stw r2,0(r17) - 9d2c: 1805883a mov r2,r3 - 9d30: dfc00217 ldw ra,8(sp) - 9d34: dc400117 ldw r17,4(sp) - 9d38: dc000017 ldw r16,0(sp) - 9d3c: dec00304 addi sp,sp,12 - 9d40: f800283a ret - -00009d44 <_fclose_r>: - 9d44: defffc04 addi sp,sp,-16 - 9d48: dc400115 stw r17,4(sp) - 9d4c: dc000015 stw r16,0(sp) - 9d50: dfc00315 stw ra,12(sp) - 9d54: dc800215 stw r18,8(sp) - 9d58: 2821883a mov r16,r5 - 9d5c: 2023883a mov r17,r4 - 9d60: 28002926 beq r5,zero,9e08 <_fclose_r+0xc4> - 9d64: 00068a00 call 68a0 <__sfp_lock_acquire> - 9d68: 88000226 beq r17,zero,9d74 <_fclose_r+0x30> - 9d6c: 88800e17 ldw r2,56(r17) - 9d70: 10002d26 beq r2,zero,9e28 <_fclose_r+0xe4> - 9d74: 8080030f ldh r2,12(r16) - 9d78: 10002226 beq r2,zero,9e04 <_fclose_r+0xc0> - 9d7c: 8809883a mov r4,r17 - 9d80: 800b883a mov r5,r16 - 9d84: 00066180 call 6618 <_fflush_r> - 9d88: 1025883a mov r18,r2 - 9d8c: 80800b17 ldw r2,44(r16) - 9d90: 10000426 beq r2,zero,9da4 <_fclose_r+0x60> - 9d94: 81400717 ldw r5,28(r16) - 9d98: 8809883a mov r4,r17 - 9d9c: 103ee83a callr r2 - 9da0: 10002a16 blt r2,zero,9e4c <_fclose_r+0x108> - 9da4: 8080030b ldhu r2,12(r16) - 9da8: 1080200c andi r2,r2,128 - 9dac: 1000231e bne r2,zero,9e3c <_fclose_r+0xf8> - 9db0: 81400c17 ldw r5,48(r16) - 9db4: 28000526 beq r5,zero,9dcc <_fclose_r+0x88> - 9db8: 80801004 addi r2,r16,64 - 9dbc: 28800226 beq r5,r2,9dc8 <_fclose_r+0x84> - 9dc0: 8809883a mov r4,r17 - 9dc4: 0006c680 call 6c68 <_free_r> - 9dc8: 80000c15 stw zero,48(r16) - 9dcc: 81401117 ldw r5,68(r16) - 9dd0: 28000326 beq r5,zero,9de0 <_fclose_r+0x9c> - 9dd4: 8809883a mov r4,r17 - 9dd8: 0006c680 call 6c68 <_free_r> - 9ddc: 80001115 stw zero,68(r16) - 9de0: 8000030d sth zero,12(r16) - 9de4: 00068a40 call 68a4 <__sfp_lock_release> - 9de8: 9005883a mov r2,r18 - 9dec: dfc00317 ldw ra,12(sp) - 9df0: dc800217 ldw r18,8(sp) - 9df4: dc400117 ldw r17,4(sp) - 9df8: dc000017 ldw r16,0(sp) - 9dfc: dec00404 addi sp,sp,16 - 9e00: f800283a ret - 9e04: 00068a40 call 68a4 <__sfp_lock_release> - 9e08: 0025883a mov r18,zero - 9e0c: 9005883a mov r2,r18 - 9e10: dfc00317 ldw ra,12(sp) - 9e14: dc800217 ldw r18,8(sp) - 9e18: dc400117 ldw r17,4(sp) - 9e1c: dc000017 ldw r16,0(sp) - 9e20: dec00404 addi sp,sp,16 - 9e24: f800283a ret - 9e28: 8809883a mov r4,r17 - 9e2c: 00068b00 call 68b0 <__sinit> - 9e30: 8080030f ldh r2,12(r16) - 9e34: 103fd11e bne r2,zero,9d7c <_fclose_r+0x38> - 9e38: 003ff206 br 9e04 <_fclose_r+0xc0> - 9e3c: 81400417 ldw r5,16(r16) - 9e40: 8809883a mov r4,r17 - 9e44: 0006c680 call 6c68 <_free_r> - 9e48: 003fd906 br 9db0 <_fclose_r+0x6c> - 9e4c: 04bfffc4 movi r18,-1 - 9e50: 003fd406 br 9da4 <_fclose_r+0x60> - -00009e54 : - 9e54: 00800074 movhi r2,1 - 9e58: 10887e04 addi r2,r2,8696 - 9e5c: 200b883a mov r5,r4 - 9e60: 11000017 ldw r4,0(r2) - 9e64: 0009d441 jmpi 9d44 <_fclose_r> - -00009e68 <_fstat_r>: - 9e68: defffd04 addi sp,sp,-12 - 9e6c: dc000015 stw r16,0(sp) - 9e70: 04000074 movhi r16,1 - 9e74: 840f7c04 addi r16,r16,15856 - 9e78: dc400115 stw r17,4(sp) - 9e7c: 80000015 stw zero,0(r16) - 9e80: 2023883a mov r17,r4 - 9e84: 2809883a mov r4,r5 - 9e88: 300b883a mov r5,r6 - 9e8c: dfc00215 stw ra,8(sp) - 9e90: 000c6780 call c678 - 9e94: 1007883a mov r3,r2 - 9e98: 00bfffc4 movi r2,-1 - 9e9c: 18800626 beq r3,r2,9eb8 <_fstat_r+0x50> - 9ea0: 1805883a mov r2,r3 - 9ea4: dfc00217 ldw ra,8(sp) - 9ea8: dc400117 ldw r17,4(sp) - 9eac: dc000017 ldw r16,0(sp) - 9eb0: dec00304 addi sp,sp,12 - 9eb4: f800283a ret - 9eb8: 80800017 ldw r2,0(r16) - 9ebc: 103ff826 beq r2,zero,9ea0 <_fstat_r+0x38> - 9ec0: 88800015 stw r2,0(r17) - 9ec4: 1805883a mov r2,r3 - 9ec8: dfc00217 ldw ra,8(sp) - 9ecc: dc400117 ldw r17,4(sp) - 9ed0: dc000017 ldw r16,0(sp) - 9ed4: dec00304 addi sp,sp,12 - 9ed8: f800283a ret - -00009edc <_isatty_r>: - 9edc: defffd04 addi sp,sp,-12 - 9ee0: dc000015 stw r16,0(sp) - 9ee4: 04000074 movhi r16,1 - 9ee8: 840f7c04 addi r16,r16,15856 - 9eec: dc400115 stw r17,4(sp) - 9ef0: 80000015 stw zero,0(r16) - 9ef4: 2023883a mov r17,r4 - 9ef8: 2809883a mov r4,r5 - 9efc: dfc00215 stw ra,8(sp) - 9f00: 000c7b00 call c7b0 - 9f04: 1007883a mov r3,r2 - 9f08: 00bfffc4 movi r2,-1 - 9f0c: 18800626 beq r3,r2,9f28 <_isatty_r+0x4c> - 9f10: 1805883a mov r2,r3 - 9f14: dfc00217 ldw ra,8(sp) - 9f18: dc400117 ldw r17,4(sp) - 9f1c: dc000017 ldw r16,0(sp) - 9f20: dec00304 addi sp,sp,12 - 9f24: f800283a ret - 9f28: 80800017 ldw r2,0(r16) - 9f2c: 103ff826 beq r2,zero,9f10 <_isatty_r+0x34> - 9f30: 88800015 stw r2,0(r17) - 9f34: 1805883a mov r2,r3 - 9f38: dfc00217 ldw ra,8(sp) - 9f3c: dc400117 ldw r17,4(sp) - 9f40: dc000017 ldw r16,0(sp) - 9f44: dec00304 addi sp,sp,12 - 9f48: f800283a ret - -00009f4c <_lseek_r>: - 9f4c: defffd04 addi sp,sp,-12 - 9f50: dc000015 stw r16,0(sp) - 9f54: 04000074 movhi r16,1 - 9f58: 840f7c04 addi r16,r16,15856 - 9f5c: dc400115 stw r17,4(sp) - 9f60: 80000015 stw zero,0(r16) - 9f64: 2023883a mov r17,r4 - 9f68: 2809883a mov r4,r5 - 9f6c: 300b883a mov r5,r6 - 9f70: 380d883a mov r6,r7 - 9f74: dfc00215 stw ra,8(sp) - 9f78: 000c9c00 call c9c0 - 9f7c: 1007883a mov r3,r2 - 9f80: 00bfffc4 movi r2,-1 - 9f84: 18800626 beq r3,r2,9fa0 <_lseek_r+0x54> - 9f88: 1805883a mov r2,r3 - 9f8c: dfc00217 ldw ra,8(sp) - 9f90: dc400117 ldw r17,4(sp) - 9f94: dc000017 ldw r16,0(sp) - 9f98: dec00304 addi sp,sp,12 - 9f9c: f800283a ret - 9fa0: 80800017 ldw r2,0(r16) - 9fa4: 103ff826 beq r2,zero,9f88 <_lseek_r+0x3c> - 9fa8: 88800015 stw r2,0(r17) - 9fac: 1805883a mov r2,r3 - 9fb0: dfc00217 ldw ra,8(sp) - 9fb4: dc400117 ldw r17,4(sp) - 9fb8: dc000017 ldw r16,0(sp) - 9fbc: dec00304 addi sp,sp,12 - 9fc0: f800283a ret - -00009fc4 <_read_r>: - 9fc4: defffd04 addi sp,sp,-12 - 9fc8: dc000015 stw r16,0(sp) - 9fcc: 04000074 movhi r16,1 - 9fd0: 840f7c04 addi r16,r16,15856 - 9fd4: dc400115 stw r17,4(sp) - 9fd8: 80000015 stw zero,0(r16) - 9fdc: 2023883a mov r17,r4 - 9fe0: 2809883a mov r4,r5 - 9fe4: 300b883a mov r5,r6 - 9fe8: 380d883a mov r6,r7 - 9fec: dfc00215 stw ra,8(sp) - 9ff0: 000cbc00 call cbc0 - 9ff4: 1007883a mov r3,r2 - 9ff8: 00bfffc4 movi r2,-1 - 9ffc: 18800626 beq r3,r2,a018 <_read_r+0x54> - a000: 1805883a mov r2,r3 - a004: dfc00217 ldw ra,8(sp) - a008: dc400117 ldw r17,4(sp) - a00c: dc000017 ldw r16,0(sp) - a010: dec00304 addi sp,sp,12 - a014: f800283a ret - a018: 80800017 ldw r2,0(r16) - a01c: 103ff826 beq r2,zero,a000 <_read_r+0x3c> - a020: 88800015 stw r2,0(r17) - a024: 1805883a mov r2,r3 - a028: dfc00217 ldw ra,8(sp) - a02c: dc400117 ldw r17,4(sp) - a030: dc000017 ldw r16,0(sp) - a034: dec00304 addi sp,sp,12 - a038: f800283a ret - -0000a03c <__udivdi3>: - a03c: defff104 addi sp,sp,-60 - a040: 0015883a mov r10,zero - a044: 2005883a mov r2,r4 - a048: 3011883a mov r8,r6 - a04c: df000d15 stw fp,52(sp) - a050: dd400a15 stw r21,40(sp) - a054: dcc00815 stw r19,32(sp) - a058: dfc00e15 stw ra,56(sp) - a05c: ddc00c15 stw r23,48(sp) - a060: dd800b15 stw r22,44(sp) - a064: dd000915 stw r20,36(sp) - a068: dc800715 stw r18,28(sp) - a06c: dc400615 stw r17,24(sp) - a070: dc000515 stw r16,20(sp) - a074: da800315 stw r10,12(sp) - a078: 4027883a mov r19,r8 - a07c: 1039883a mov fp,r2 - a080: 282b883a mov r21,r5 - a084: da800415 stw r10,16(sp) - a088: 3800401e bne r7,zero,a18c <__udivdi3+0x150> - a08c: 2a006536 bltu r5,r8,a224 <__udivdi3+0x1e8> - a090: 4000b526 beq r8,zero,a368 <__udivdi3+0x32c> - a094: 00bfffd4 movui r2,65535 - a098: 14c0ad36 bltu r2,r19,a350 <__udivdi3+0x314> - a09c: 00803fc4 movi r2,255 - a0a0: 14c15e36 bltu r2,r19,a61c <__udivdi3+0x5e0> - a0a4: 000b883a mov r5,zero - a0a8: 0005883a mov r2,zero - a0ac: 9884d83a srl r2,r19,r2 - a0b0: 01000074 movhi r4,1 - a0b4: 21015d04 addi r4,r4,1396 - a0b8: 01800804 movi r6,32 - a0bc: 1105883a add r2,r2,r4 - a0c0: 10c00003 ldbu r3,0(r2) - a0c4: 28c7883a add r3,r5,r3 - a0c8: 30e9c83a sub r20,r6,r3 - a0cc: a0010a1e bne r20,zero,a4f8 <__udivdi3+0x4bc> - a0d0: 982ed43a srli r23,r19,16 - a0d4: acebc83a sub r21,r21,r19 - a0d8: 9dbfffcc andi r22,r19,65535 - a0dc: 05000044 movi r20,1 - a0e0: a809883a mov r4,r21 - a0e4: b80b883a mov r5,r23 - a0e8: 0002c140 call 2c14 <__udivsi3> - a0ec: 100b883a mov r5,r2 - a0f0: b009883a mov r4,r22 - a0f4: 1021883a mov r16,r2 - a0f8: 0002c240 call 2c24 <__mulsi3> - a0fc: a809883a mov r4,r21 - a100: b80b883a mov r5,r23 - a104: 1023883a mov r17,r2 - a108: 0002c1c0 call 2c1c <__umodsi3> - a10c: 1004943a slli r2,r2,16 - a110: e006d43a srli r3,fp,16 - a114: 10c4b03a or r2,r2,r3 - a118: 1440042e bgeu r2,r17,a12c <__udivdi3+0xf0> - a11c: 14c5883a add r2,r2,r19 - a120: 843fffc4 addi r16,r16,-1 - a124: 14c00136 bltu r2,r19,a12c <__udivdi3+0xf0> - a128: 14415c36 bltu r2,r17,a69c <__udivdi3+0x660> - a12c: 1463c83a sub r17,r2,r17 - a130: 8809883a mov r4,r17 - a134: b80b883a mov r5,r23 - a138: 0002c140 call 2c14 <__udivsi3> - a13c: 100b883a mov r5,r2 - a140: b009883a mov r4,r22 - a144: 102b883a mov r21,r2 - a148: 0002c240 call 2c24 <__mulsi3> - a14c: 8809883a mov r4,r17 - a150: b80b883a mov r5,r23 - a154: 1025883a mov r18,r2 - a158: 0002c1c0 call 2c1c <__umodsi3> - a15c: 1004943a slli r2,r2,16 - a160: e0ffffcc andi r3,fp,65535 - a164: 10c4b03a or r2,r2,r3 - a168: 1480042e bgeu r2,r18,a17c <__udivdi3+0x140> - a16c: 9885883a add r2,r19,r2 - a170: ad7fffc4 addi r21,r21,-1 - a174: 14c00136 bltu r2,r19,a17c <__udivdi3+0x140> - a178: 14813c36 bltu r2,r18,a66c <__udivdi3+0x630> - a17c: 8004943a slli r2,r16,16 - a180: a009883a mov r4,r20 - a184: a884b03a or r2,r21,r2 - a188: 00001506 br a1e0 <__udivdi3+0x1a4> - a18c: 380d883a mov r6,r7 - a190: 29c06c36 bltu r5,r7,a344 <__udivdi3+0x308> - a194: 00bfffd4 movui r2,65535 - a198: 11c06436 bltu r2,r7,a32c <__udivdi3+0x2f0> - a19c: 00803fc4 movi r2,255 - a1a0: 11c11836 bltu r2,r7,a604 <__udivdi3+0x5c8> - a1a4: 000b883a mov r5,zero - a1a8: 0005883a mov r2,zero - a1ac: 3084d83a srl r2,r6,r2 - a1b0: 01000074 movhi r4,1 - a1b4: 21015d04 addi r4,r4,1396 - a1b8: 01c00804 movi r7,32 - a1bc: 1105883a add r2,r2,r4 - a1c0: 10c00003 ldbu r3,0(r2) - a1c4: 28c7883a add r3,r5,r3 - a1c8: 38edc83a sub r22,r7,r3 - a1cc: b000731e bne r22,zero,a39c <__udivdi3+0x360> - a1d0: 35400136 bltu r6,r21,a1d8 <__udivdi3+0x19c> - a1d4: e4c05b36 bltu fp,r19,a344 <__udivdi3+0x308> - a1d8: 00800044 movi r2,1 - a1dc: 0009883a mov r4,zero - a1e0: d8800315 stw r2,12(sp) - a1e4: d9400317 ldw r5,12(sp) - a1e8: 2007883a mov r3,r4 - a1ec: d9000415 stw r4,16(sp) - a1f0: 2805883a mov r2,r5 - a1f4: dfc00e17 ldw ra,56(sp) - a1f8: df000d17 ldw fp,52(sp) - a1fc: ddc00c17 ldw r23,48(sp) - a200: dd800b17 ldw r22,44(sp) - a204: dd400a17 ldw r21,40(sp) - a208: dd000917 ldw r20,36(sp) - a20c: dcc00817 ldw r19,32(sp) - a210: dc800717 ldw r18,28(sp) - a214: dc400617 ldw r17,24(sp) - a218: dc000517 ldw r16,20(sp) - a21c: dec00f04 addi sp,sp,60 - a220: f800283a ret - a224: 00bfffd4 movui r2,65535 - a228: 12005636 bltu r2,r8,a384 <__udivdi3+0x348> - a22c: 00803fc4 movi r2,255 - a230: 12010036 bltu r2,r8,a634 <__udivdi3+0x5f8> - a234: 000b883a mov r5,zero - a238: 0005883a mov r2,zero - a23c: 9884d83a srl r2,r19,r2 - a240: 01000074 movhi r4,1 - a244: 21015d04 addi r4,r4,1396 - a248: 01800804 movi r6,32 - a24c: 1105883a add r2,r2,r4 - a250: 10c00003 ldbu r3,0(r2) - a254: 28c7883a add r3,r5,r3 - a258: 30cbc83a sub r5,r6,r3 - a25c: 28000626 beq r5,zero,a278 <__udivdi3+0x23c> - a260: 3145c83a sub r2,r6,r5 - a264: e084d83a srl r2,fp,r2 - a268: a946983a sll r3,r21,r5 - a26c: e178983a sll fp,fp,r5 - a270: 9966983a sll r19,r19,r5 - a274: 18aab03a or r21,r3,r2 - a278: 982ed43a srli r23,r19,16 - a27c: a809883a mov r4,r21 - a280: 9cbfffcc andi r18,r19,65535 - a284: b80b883a mov r5,r23 - a288: 0002c140 call 2c14 <__udivsi3> - a28c: 100b883a mov r5,r2 - a290: 9009883a mov r4,r18 - a294: 1021883a mov r16,r2 - a298: 0002c240 call 2c24 <__mulsi3> - a29c: a809883a mov r4,r21 - a2a0: b80b883a mov r5,r23 - a2a4: 1023883a mov r17,r2 - a2a8: 0002c1c0 call 2c1c <__umodsi3> - a2ac: 1004943a slli r2,r2,16 - a2b0: e006d43a srli r3,fp,16 - a2b4: 10c4b03a or r2,r2,r3 - a2b8: 1440042e bgeu r2,r17,a2cc <__udivdi3+0x290> - a2bc: 14c5883a add r2,r2,r19 - a2c0: 843fffc4 addi r16,r16,-1 - a2c4: 14c00136 bltu r2,r19,a2cc <__udivdi3+0x290> - a2c8: 1440ea36 bltu r2,r17,a674 <__udivdi3+0x638> - a2cc: 1463c83a sub r17,r2,r17 - a2d0: 8809883a mov r4,r17 - a2d4: b80b883a mov r5,r23 - a2d8: 0002c140 call 2c14 <__udivsi3> - a2dc: 100b883a mov r5,r2 - a2e0: 9009883a mov r4,r18 - a2e4: 102b883a mov r21,r2 - a2e8: 0002c240 call 2c24 <__mulsi3> - a2ec: 8809883a mov r4,r17 - a2f0: b80b883a mov r5,r23 - a2f4: 1025883a mov r18,r2 - a2f8: 0002c1c0 call 2c1c <__umodsi3> - a2fc: 1004943a slli r2,r2,16 - a300: e0ffffcc andi r3,fp,65535 - a304: 10c4b03a or r2,r2,r3 - a308: 1480042e bgeu r2,r18,a31c <__udivdi3+0x2e0> - a30c: 9885883a add r2,r19,r2 - a310: ad7fffc4 addi r21,r21,-1 - a314: 14c00136 bltu r2,r19,a31c <__udivdi3+0x2e0> - a318: 1480d936 bltu r2,r18,a680 <__udivdi3+0x644> - a31c: 8004943a slli r2,r16,16 - a320: 0009883a mov r4,zero - a324: a884b03a or r2,r21,r2 - a328: 003fad06 br a1e0 <__udivdi3+0x1a4> - a32c: 00804034 movhi r2,256 - a330: 10bfffc4 addi r2,r2,-1 - a334: 11c0b636 bltu r2,r7,a610 <__udivdi3+0x5d4> - a338: 01400404 movi r5,16 - a33c: 2805883a mov r2,r5 - a340: 003f9a06 br a1ac <__udivdi3+0x170> - a344: 0005883a mov r2,zero - a348: 0009883a mov r4,zero - a34c: 003fa406 br a1e0 <__udivdi3+0x1a4> - a350: 00804034 movhi r2,256 - a354: 10bfffc4 addi r2,r2,-1 - a358: 14c0b336 bltu r2,r19,a628 <__udivdi3+0x5ec> - a35c: 01400404 movi r5,16 - a360: 2805883a mov r2,r5 - a364: 003f5106 br a0ac <__udivdi3+0x70> - a368: 01000044 movi r4,1 - a36c: 000b883a mov r5,zero - a370: 0002c140 call 2c14 <__udivsi3> - a374: 1027883a mov r19,r2 - a378: 00bfffd4 movui r2,65535 - a37c: 14fff436 bltu r2,r19,a350 <__udivdi3+0x314> - a380: 003f4606 br a09c <__udivdi3+0x60> - a384: 00804034 movhi r2,256 - a388: 10bfffc4 addi r2,r2,-1 - a38c: 1200ac36 bltu r2,r8,a640 <__udivdi3+0x604> - a390: 01400404 movi r5,16 - a394: 2805883a mov r2,r5 - a398: 003fa806 br a23c <__udivdi3+0x200> - a39c: 3d85c83a sub r2,r7,r22 - a3a0: 3588983a sll r4,r6,r22 - a3a4: 9886d83a srl r3,r19,r2 - a3a8: a8a2d83a srl r17,r21,r2 - a3ac: e084d83a srl r2,fp,r2 - a3b0: 20eeb03a or r23,r4,r3 - a3b4: b824d43a srli r18,r23,16 - a3b8: ad86983a sll r3,r21,r22 - a3bc: 8809883a mov r4,r17 - a3c0: 900b883a mov r5,r18 - a3c4: 1886b03a or r3,r3,r2 - a3c8: d8c00115 stw r3,4(sp) - a3cc: bc3fffcc andi r16,r23,65535 - a3d0: 0002c140 call 2c14 <__udivsi3> - a3d4: 100b883a mov r5,r2 - a3d8: 8009883a mov r4,r16 - a3dc: 1029883a mov r20,r2 - a3e0: 0002c240 call 2c24 <__mulsi3> - a3e4: 900b883a mov r5,r18 - a3e8: 8809883a mov r4,r17 - a3ec: 102b883a mov r21,r2 - a3f0: 0002c1c0 call 2c1c <__umodsi3> - a3f4: d9400117 ldw r5,4(sp) - a3f8: 1004943a slli r2,r2,16 - a3fc: 9da6983a sll r19,r19,r22 - a400: 2806d43a srli r3,r5,16 - a404: 10c4b03a or r2,r2,r3 - a408: 1540032e bgeu r2,r21,a418 <__udivdi3+0x3dc> - a40c: 15c5883a add r2,r2,r23 - a410: a53fffc4 addi r20,r20,-1 - a414: 15c0912e bgeu r2,r23,a65c <__udivdi3+0x620> - a418: 1563c83a sub r17,r2,r21 - a41c: 8809883a mov r4,r17 - a420: 900b883a mov r5,r18 - a424: 0002c140 call 2c14 <__udivsi3> - a428: 100b883a mov r5,r2 - a42c: 8009883a mov r4,r16 - a430: 102b883a mov r21,r2 - a434: 0002c240 call 2c24 <__mulsi3> - a438: 8809883a mov r4,r17 - a43c: 900b883a mov r5,r18 - a440: 1021883a mov r16,r2 - a444: 0002c1c0 call 2c1c <__umodsi3> - a448: da800117 ldw r10,4(sp) - a44c: 1004943a slli r2,r2,16 - a450: 50ffffcc andi r3,r10,65535 - a454: 10c6b03a or r3,r2,r3 - a458: 1c00032e bgeu r3,r16,a468 <__udivdi3+0x42c> - a45c: 1dc7883a add r3,r3,r23 - a460: ad7fffc4 addi r21,r21,-1 - a464: 1dc0792e bgeu r3,r23,a64c <__udivdi3+0x610> - a468: a004943a slli r2,r20,16 - a46c: 982ed43a srli r23,r19,16 - a470: 9cffffcc andi r19,r19,65535 - a474: a8a4b03a or r18,r21,r2 - a478: 947fffcc andi r17,r18,65535 - a47c: 902ad43a srli r21,r18,16 - a480: 8809883a mov r4,r17 - a484: 980b883a mov r5,r19 - a488: 1c21c83a sub r16,r3,r16 - a48c: 0002c240 call 2c24 <__mulsi3> - a490: 8809883a mov r4,r17 - a494: b80b883a mov r5,r23 - a498: 1029883a mov r20,r2 - a49c: 0002c240 call 2c24 <__mulsi3> - a4a0: 980b883a mov r5,r19 - a4a4: a809883a mov r4,r21 - a4a8: 1023883a mov r17,r2 - a4ac: 0002c240 call 2c24 <__mulsi3> - a4b0: a809883a mov r4,r21 - a4b4: b80b883a mov r5,r23 - a4b8: 1027883a mov r19,r2 - a4bc: 0002c240 call 2c24 <__mulsi3> - a4c0: 1009883a mov r4,r2 - a4c4: a004d43a srli r2,r20,16 - a4c8: 8ce3883a add r17,r17,r19 - a4cc: 1447883a add r3,r2,r17 - a4d0: 1cc0022e bgeu r3,r19,a4dc <__udivdi3+0x4a0> - a4d4: 00800074 movhi r2,1 - a4d8: 2089883a add r4,r4,r2 - a4dc: 1804d43a srli r2,r3,16 - a4e0: 2085883a add r2,r4,r2 - a4e4: 80804436 bltu r16,r2,a5f8 <__udivdi3+0x5bc> - a4e8: 80803e26 beq r16,r2,a5e4 <__udivdi3+0x5a8> - a4ec: 9005883a mov r2,r18 - a4f0: 0009883a mov r4,zero - a4f4: 003f3a06 br a1e0 <__udivdi3+0x1a4> - a4f8: 9d26983a sll r19,r19,r20 - a4fc: 3505c83a sub r2,r6,r20 - a500: a8a2d83a srl r17,r21,r2 - a504: 982ed43a srli r23,r19,16 - a508: e084d83a srl r2,fp,r2 - a50c: ad06983a sll r3,r21,r20 - a510: 8809883a mov r4,r17 - a514: b80b883a mov r5,r23 - a518: 1886b03a or r3,r3,r2 - a51c: d8c00015 stw r3,0(sp) - a520: 9dbfffcc andi r22,r19,65535 - a524: 0002c140 call 2c14 <__udivsi3> - a528: 100b883a mov r5,r2 - a52c: b009883a mov r4,r22 - a530: d8800215 stw r2,8(sp) - a534: 0002c240 call 2c24 <__mulsi3> - a538: 8809883a mov r4,r17 - a53c: b80b883a mov r5,r23 - a540: 102b883a mov r21,r2 - a544: 0002c1c0 call 2c1c <__umodsi3> - a548: d9000017 ldw r4,0(sp) - a54c: 1004943a slli r2,r2,16 - a550: 2006d43a srli r3,r4,16 - a554: 10c4b03a or r2,r2,r3 - a558: 1540052e bgeu r2,r21,a570 <__udivdi3+0x534> - a55c: d9400217 ldw r5,8(sp) - a560: 14c5883a add r2,r2,r19 - a564: 297fffc4 addi r5,r5,-1 - a568: d9400215 stw r5,8(sp) - a56c: 14c0462e bgeu r2,r19,a688 <__udivdi3+0x64c> - a570: 1563c83a sub r17,r2,r21 - a574: 8809883a mov r4,r17 - a578: b80b883a mov r5,r23 - a57c: 0002c140 call 2c14 <__udivsi3> - a580: 100b883a mov r5,r2 - a584: b009883a mov r4,r22 - a588: 1025883a mov r18,r2 - a58c: 0002c240 call 2c24 <__mulsi3> - a590: 8809883a mov r4,r17 - a594: b80b883a mov r5,r23 - a598: 1021883a mov r16,r2 - a59c: 0002c1c0 call 2c1c <__umodsi3> - a5a0: da800017 ldw r10,0(sp) - a5a4: 1004943a slli r2,r2,16 - a5a8: 50ffffcc andi r3,r10,65535 - a5ac: 10c6b03a or r3,r2,r3 - a5b0: 1c00062e bgeu r3,r16,a5cc <__udivdi3+0x590> - a5b4: 1cc7883a add r3,r3,r19 - a5b8: 94bfffc4 addi r18,r18,-1 - a5bc: 1cc00336 bltu r3,r19,a5cc <__udivdi3+0x590> - a5c0: 1c00022e bgeu r3,r16,a5cc <__udivdi3+0x590> - a5c4: 94bfffc4 addi r18,r18,-1 - a5c8: 1cc7883a add r3,r3,r19 - a5cc: d9000217 ldw r4,8(sp) - a5d0: e538983a sll fp,fp,r20 - a5d4: 1c2bc83a sub r21,r3,r16 - a5d8: 2004943a slli r2,r4,16 - a5dc: 90a8b03a or r20,r18,r2 - a5e0: 003ebf06 br a0e0 <__udivdi3+0xa4> - a5e4: 1804943a slli r2,r3,16 - a5e8: e588983a sll r4,fp,r22 - a5ec: a0ffffcc andi r3,r20,65535 - a5f0: 10c5883a add r2,r2,r3 - a5f4: 20bfbd2e bgeu r4,r2,a4ec <__udivdi3+0x4b0> - a5f8: 90bfffc4 addi r2,r18,-1 - a5fc: 0009883a mov r4,zero - a600: 003ef706 br a1e0 <__udivdi3+0x1a4> - a604: 01400204 movi r5,8 - a608: 2805883a mov r2,r5 - a60c: 003ee706 br a1ac <__udivdi3+0x170> - a610: 01400604 movi r5,24 - a614: 2805883a mov r2,r5 - a618: 003ee406 br a1ac <__udivdi3+0x170> - a61c: 01400204 movi r5,8 - a620: 2805883a mov r2,r5 - a624: 003ea106 br a0ac <__udivdi3+0x70> - a628: 01400604 movi r5,24 - a62c: 2805883a mov r2,r5 - a630: 003e9e06 br a0ac <__udivdi3+0x70> - a634: 01400204 movi r5,8 - a638: 2805883a mov r2,r5 - a63c: 003eff06 br a23c <__udivdi3+0x200> - a640: 01400604 movi r5,24 - a644: 2805883a mov r2,r5 - a648: 003efc06 br a23c <__udivdi3+0x200> - a64c: 1c3f862e bgeu r3,r16,a468 <__udivdi3+0x42c> - a650: 1dc7883a add r3,r3,r23 - a654: ad7fffc4 addi r21,r21,-1 - a658: 003f8306 br a468 <__udivdi3+0x42c> - a65c: 157f6e2e bgeu r2,r21,a418 <__udivdi3+0x3dc> - a660: a53fffc4 addi r20,r20,-1 - a664: 15c5883a add r2,r2,r23 - a668: 003f6b06 br a418 <__udivdi3+0x3dc> - a66c: ad7fffc4 addi r21,r21,-1 - a670: 003ec206 br a17c <__udivdi3+0x140> - a674: 843fffc4 addi r16,r16,-1 - a678: 14c5883a add r2,r2,r19 - a67c: 003f1306 br a2cc <__udivdi3+0x290> - a680: ad7fffc4 addi r21,r21,-1 - a684: 003f2506 br a31c <__udivdi3+0x2e0> - a688: 157fb92e bgeu r2,r21,a570 <__udivdi3+0x534> - a68c: 297fffc4 addi r5,r5,-1 - a690: 14c5883a add r2,r2,r19 - a694: d9400215 stw r5,8(sp) - a698: 003fb506 br a570 <__udivdi3+0x534> - a69c: 843fffc4 addi r16,r16,-1 - a6a0: 14c5883a add r2,r2,r19 - a6a4: 003ea106 br a12c <__udivdi3+0xf0> - -0000a6a8 <__umoddi3>: - a6a8: defff004 addi sp,sp,-64 - a6ac: 3011883a mov r8,r6 - a6b0: 000d883a mov r6,zero - a6b4: dd400b15 stw r21,44(sp) - a6b8: dcc00915 stw r19,36(sp) - a6bc: dc000615 stw r16,24(sp) - a6c0: dfc00f15 stw ra,60(sp) - a6c4: df000e15 stw fp,56(sp) - a6c8: ddc00d15 stw r23,52(sp) - a6cc: dd800c15 stw r22,48(sp) - a6d0: dd000a15 stw r20,40(sp) - a6d4: dc800815 stw r18,32(sp) - a6d8: dc400715 stw r17,28(sp) - a6dc: 2817883a mov r11,r5 - a6e0: d9800415 stw r6,16(sp) - a6e4: 4027883a mov r19,r8 - a6e8: d9800515 stw r6,20(sp) - a6ec: 2021883a mov r16,r4 - a6f0: 282b883a mov r21,r5 - a6f4: 38002c1e bne r7,zero,a7a8 <__umoddi3+0x100> - a6f8: 2a005636 bltu r5,r8,a854 <__umoddi3+0x1ac> - a6fc: 40009a26 beq r8,zero,a968 <__umoddi3+0x2c0> - a700: 00bfffd4 movui r2,65535 - a704: 14c09236 bltu r2,r19,a950 <__umoddi3+0x2a8> - a708: 00803fc4 movi r2,255 - a70c: 14c15c36 bltu r2,r19,ac80 <__umoddi3+0x5d8> - a710: 000b883a mov r5,zero - a714: 0005883a mov r2,zero - a718: 9884d83a srl r2,r19,r2 - a71c: 01000074 movhi r4,1 - a720: 21015d04 addi r4,r4,1396 - a724: 01800804 movi r6,32 - a728: 1105883a add r2,r2,r4 - a72c: 10c00003 ldbu r3,0(r2) - a730: 28c7883a add r3,r5,r3 - a734: 30e5c83a sub r18,r6,r3 - a738: 9000a41e bne r18,zero,a9cc <__umoddi3+0x324> - a73c: 982ed43a srli r23,r19,16 - a740: acebc83a sub r21,r21,r19 - a744: 9d3fffcc andi r20,r19,65535 - a748: 002d883a mov r22,zero - a74c: a809883a mov r4,r21 - a750: b80b883a mov r5,r23 - a754: 0002c140 call 2c14 <__udivsi3> - a758: 100b883a mov r5,r2 - a75c: a009883a mov r4,r20 - a760: 0002c240 call 2c24 <__mulsi3> - a764: a809883a mov r4,r21 - a768: b80b883a mov r5,r23 - a76c: 1023883a mov r17,r2 - a770: 0002c1c0 call 2c1c <__umodsi3> - a774: 1004943a slli r2,r2,16 - a778: 8006d43a srli r3,r16,16 - a77c: 10c4b03a or r2,r2,r3 - a780: 1440032e bgeu r2,r17,a790 <__umoddi3+0xe8> - a784: 14c5883a add r2,r2,r19 - a788: 14c00136 bltu r2,r19,a790 <__umoddi3+0xe8> - a78c: 14415836 bltu r2,r17,acf0 <__umoddi3+0x648> - a790: 1463c83a sub r17,r2,r17 - a794: 8809883a mov r4,r17 - a798: b80b883a mov r5,r23 - a79c: 0002c140 call 2c14 <__udivsi3> - a7a0: a009883a mov r4,r20 - a7a4: 00005306 br a8f4 <__umoddi3+0x24c> - a7a8: 380d883a mov r6,r7 - a7ac: 29c0132e bgeu r5,r7,a7fc <__umoddi3+0x154> - a7b0: d9000415 stw r4,16(sp) - a7b4: d9400515 stw r5,20(sp) - a7b8: d9400417 ldw r5,16(sp) - a7bc: 5813883a mov r9,r11 - a7c0: 2811883a mov r8,r5 - a7c4: 4005883a mov r2,r8 - a7c8: 4807883a mov r3,r9 - a7cc: dfc00f17 ldw ra,60(sp) - a7d0: df000e17 ldw fp,56(sp) - a7d4: ddc00d17 ldw r23,52(sp) - a7d8: dd800c17 ldw r22,48(sp) - a7dc: dd400b17 ldw r21,44(sp) - a7e0: dd000a17 ldw r20,40(sp) - a7e4: dcc00917 ldw r19,36(sp) - a7e8: dc800817 ldw r18,32(sp) - a7ec: dc400717 ldw r17,28(sp) - a7f0: dc000617 ldw r16,24(sp) - a7f4: dec01004 addi sp,sp,64 - a7f8: f800283a ret - a7fc: 00bfffd4 movui r2,65535 - a800: 11c06636 bltu r2,r7,a99c <__umoddi3+0x2f4> - a804: 00803fc4 movi r2,255 - a808: 11c12036 bltu r2,r7,ac8c <__umoddi3+0x5e4> - a80c: 000b883a mov r5,zero - a810: 0005883a mov r2,zero - a814: 3084d83a srl r2,r6,r2 - a818: 01000074 movhi r4,1 - a81c: 21015d04 addi r4,r4,1396 - a820: 01c00804 movi r7,32 - a824: 1105883a add r2,r2,r4 - a828: 10c00003 ldbu r3,0(r2) - a82c: 28c7883a add r3,r5,r3 - a830: 38e5c83a sub r18,r7,r3 - a834: 9000941e bne r18,zero,aa88 <__umoddi3+0x3e0> - a838: 35405e36 bltu r6,r21,a9b4 <__umoddi3+0x30c> - a83c: 84c05d2e bgeu r16,r19,a9b4 <__umoddi3+0x30c> - a840: 8011883a mov r8,r16 - a844: a813883a mov r9,r21 - a848: dc000415 stw r16,16(sp) - a84c: dd400515 stw r21,20(sp) - a850: 003fdc06 br a7c4 <__umoddi3+0x11c> - a854: 00bfffd4 movui r2,65535 - a858: 12004a36 bltu r2,r8,a984 <__umoddi3+0x2dc> - a85c: 00803fc4 movi r2,255 - a860: 12010d36 bltu r2,r8,ac98 <__umoddi3+0x5f0> - a864: 000b883a mov r5,zero - a868: 0005883a mov r2,zero - a86c: 9884d83a srl r2,r19,r2 - a870: 01000074 movhi r4,1 - a874: 21015d04 addi r4,r4,1396 - a878: 01800804 movi r6,32 - a87c: 1105883a add r2,r2,r4 - a880: 10c00003 ldbu r3,0(r2) - a884: 28c7883a add r3,r5,r3 - a888: 30c7c83a sub r3,r6,r3 - a88c: 1800dc1e bne r3,zero,ac00 <__umoddi3+0x558> - a890: 002d883a mov r22,zero - a894: 982ed43a srli r23,r19,16 - a898: a809883a mov r4,r21 - a89c: 9cbfffcc andi r18,r19,65535 - a8a0: b80b883a mov r5,r23 - a8a4: 0002c140 call 2c14 <__udivsi3> - a8a8: 100b883a mov r5,r2 - a8ac: 9009883a mov r4,r18 - a8b0: 0002c240 call 2c24 <__mulsi3> - a8b4: a809883a mov r4,r21 - a8b8: b80b883a mov r5,r23 - a8bc: 1023883a mov r17,r2 - a8c0: 0002c1c0 call 2c1c <__umodsi3> - a8c4: 1004943a slli r2,r2,16 - a8c8: 8006d43a srli r3,r16,16 - a8cc: 10c4b03a or r2,r2,r3 - a8d0: 1440032e bgeu r2,r17,a8e0 <__umoddi3+0x238> - a8d4: 14c5883a add r2,r2,r19 - a8d8: 14c00136 bltu r2,r19,a8e0 <__umoddi3+0x238> - a8dc: 14410236 bltu r2,r17,ace8 <__umoddi3+0x640> - a8e0: 1463c83a sub r17,r2,r17 - a8e4: 8809883a mov r4,r17 - a8e8: b80b883a mov r5,r23 - a8ec: 0002c140 call 2c14 <__udivsi3> - a8f0: 9009883a mov r4,r18 - a8f4: 100b883a mov r5,r2 - a8f8: 0002c240 call 2c24 <__mulsi3> - a8fc: 8809883a mov r4,r17 - a900: b80b883a mov r5,r23 - a904: 102b883a mov r21,r2 - a908: 0002c1c0 call 2c1c <__umodsi3> - a90c: 1004943a slli r2,r2,16 - a910: 80ffffcc andi r3,r16,65535 - a914: 10c4b03a or r2,r2,r3 - a918: 1540042e bgeu r2,r21,a92c <__umoddi3+0x284> - a91c: 14c5883a add r2,r2,r19 - a920: 14c00236 bltu r2,r19,a92c <__umoddi3+0x284> - a924: 1540012e bgeu r2,r21,a92c <__umoddi3+0x284> - a928: 14c5883a add r2,r2,r19 - a92c: 1545c83a sub r2,r2,r21 - a930: 1584d83a srl r2,r2,r22 - a934: 0013883a mov r9,zero - a938: d8800415 stw r2,16(sp) - a93c: d8c00417 ldw r3,16(sp) - a940: 0005883a mov r2,zero - a944: d8800515 stw r2,20(sp) - a948: 1811883a mov r8,r3 - a94c: 003f9d06 br a7c4 <__umoddi3+0x11c> - a950: 00804034 movhi r2,256 - a954: 10bfffc4 addi r2,r2,-1 - a958: 14c0c636 bltu r2,r19,ac74 <__umoddi3+0x5cc> - a95c: 01400404 movi r5,16 - a960: 2805883a mov r2,r5 - a964: 003f6c06 br a718 <__umoddi3+0x70> - a968: 01000044 movi r4,1 - a96c: 000b883a mov r5,zero - a970: 0002c140 call 2c14 <__udivsi3> - a974: 1027883a mov r19,r2 - a978: 00bfffd4 movui r2,65535 - a97c: 14fff436 bltu r2,r19,a950 <__umoddi3+0x2a8> - a980: 003f6106 br a708 <__umoddi3+0x60> - a984: 00804034 movhi r2,256 - a988: 10bfffc4 addi r2,r2,-1 - a98c: 1200c536 bltu r2,r8,aca4 <__umoddi3+0x5fc> - a990: 01400404 movi r5,16 - a994: 2805883a mov r2,r5 - a998: 003fb406 br a86c <__umoddi3+0x1c4> - a99c: 00804034 movhi r2,256 - a9a0: 10bfffc4 addi r2,r2,-1 - a9a4: 11c0c236 bltu r2,r7,acb0 <__umoddi3+0x608> - a9a8: 01400404 movi r5,16 - a9ac: 2805883a mov r2,r5 - a9b0: 003f9806 br a814 <__umoddi3+0x16c> - a9b4: 84c9c83a sub r4,r16,r19 - a9b8: 8105803a cmpltu r2,r16,r4 - a9bc: a987c83a sub r3,r21,r6 - a9c0: 18abc83a sub r21,r3,r2 - a9c4: 2021883a mov r16,r4 - a9c8: 003f9d06 br a840 <__umoddi3+0x198> - a9cc: 9ca6983a sll r19,r19,r18 - a9d0: 3485c83a sub r2,r6,r18 - a9d4: a8a2d83a srl r17,r21,r2 - a9d8: 982ed43a srli r23,r19,16 - a9dc: ac86983a sll r3,r21,r18 - a9e0: 8084d83a srl r2,r16,r2 - a9e4: 8809883a mov r4,r17 - a9e8: b80b883a mov r5,r23 - a9ec: 18b8b03a or fp,r3,r2 - a9f0: 9d3fffcc andi r20,r19,65535 - a9f4: 0002c140 call 2c14 <__udivsi3> - a9f8: 100b883a mov r5,r2 - a9fc: a009883a mov r4,r20 - aa00: 0002c240 call 2c24 <__mulsi3> - aa04: 8809883a mov r4,r17 - aa08: b80b883a mov r5,r23 - aa0c: 102b883a mov r21,r2 - aa10: 0002c1c0 call 2c1c <__umodsi3> - aa14: 1004943a slli r2,r2,16 - aa18: e006d43a srli r3,fp,16 - aa1c: 902d883a mov r22,r18 - aa20: 10c4b03a or r2,r2,r3 - aa24: 1540022e bgeu r2,r21,aa30 <__umoddi3+0x388> - aa28: 14c5883a add r2,r2,r19 - aa2c: 14c0ab2e bgeu r2,r19,acdc <__umoddi3+0x634> - aa30: 1563c83a sub r17,r2,r21 - aa34: 8809883a mov r4,r17 - aa38: b80b883a mov r5,r23 - aa3c: 0002c140 call 2c14 <__udivsi3> - aa40: 100b883a mov r5,r2 - aa44: a009883a mov r4,r20 - aa48: 0002c240 call 2c24 <__mulsi3> - aa4c: 8809883a mov r4,r17 - aa50: b80b883a mov r5,r23 - aa54: 102b883a mov r21,r2 - aa58: 0002c1c0 call 2c1c <__umodsi3> - aa5c: 1004943a slli r2,r2,16 - aa60: e0ffffcc andi r3,fp,65535 - aa64: 10c4b03a or r2,r2,r3 - aa68: 1540042e bgeu r2,r21,aa7c <__umoddi3+0x3d4> - aa6c: 14c5883a add r2,r2,r19 - aa70: 14c00236 bltu r2,r19,aa7c <__umoddi3+0x3d4> - aa74: 1540012e bgeu r2,r21,aa7c <__umoddi3+0x3d4> - aa78: 14c5883a add r2,r2,r19 - aa7c: 84a0983a sll r16,r16,r18 - aa80: 156bc83a sub r21,r2,r21 - aa84: 003f3106 br a74c <__umoddi3+0xa4> - aa88: 3c8fc83a sub r7,r7,r18 - aa8c: 3486983a sll r3,r6,r18 - aa90: 99c4d83a srl r2,r19,r7 - aa94: a9e2d83a srl r17,r21,r7 - aa98: ac8c983a sll r6,r21,r18 - aa9c: 18acb03a or r22,r3,r2 - aaa0: b02ed43a srli r23,r22,16 - aaa4: 81c4d83a srl r2,r16,r7 - aaa8: 8809883a mov r4,r17 - aaac: b80b883a mov r5,r23 - aab0: 308cb03a or r6,r6,r2 - aab4: d9c00315 stw r7,12(sp) - aab8: d9800215 stw r6,8(sp) - aabc: b53fffcc andi r20,r22,65535 - aac0: 0002c140 call 2c14 <__udivsi3> - aac4: 100b883a mov r5,r2 - aac8: a009883a mov r4,r20 - aacc: 1039883a mov fp,r2 - aad0: 0002c240 call 2c24 <__mulsi3> - aad4: 8809883a mov r4,r17 - aad8: b80b883a mov r5,r23 - aadc: 102b883a mov r21,r2 - aae0: 0002c1c0 call 2c1c <__umodsi3> - aae4: d9000217 ldw r4,8(sp) - aae8: 1004943a slli r2,r2,16 - aaec: 9ca6983a sll r19,r19,r18 - aaf0: 2006d43a srli r3,r4,16 - aaf4: 84a0983a sll r16,r16,r18 - aaf8: dcc00015 stw r19,0(sp) - aafc: 10c4b03a or r2,r2,r3 - ab00: dc000115 stw r16,4(sp) - ab04: 1540032e bgeu r2,r21,ab14 <__umoddi3+0x46c> - ab08: 1585883a add r2,r2,r22 - ab0c: e73fffc4 addi fp,fp,-1 - ab10: 15806e2e bgeu r2,r22,accc <__umoddi3+0x624> - ab14: 1563c83a sub r17,r2,r21 - ab18: 8809883a mov r4,r17 - ab1c: b80b883a mov r5,r23 - ab20: 0002c140 call 2c14 <__udivsi3> - ab24: 100b883a mov r5,r2 - ab28: a009883a mov r4,r20 - ab2c: 1021883a mov r16,r2 - ab30: 0002c240 call 2c24 <__mulsi3> - ab34: b80b883a mov r5,r23 - ab38: 8809883a mov r4,r17 - ab3c: 1029883a mov r20,r2 - ab40: 0002c1c0 call 2c1c <__umodsi3> - ab44: d9400217 ldw r5,8(sp) - ab48: 1004943a slli r2,r2,16 - ab4c: 28ffffcc andi r3,r5,65535 - ab50: 10c4b03a or r2,r2,r3 - ab54: 1500032e bgeu r2,r20,ab64 <__umoddi3+0x4bc> - ab58: 1585883a add r2,r2,r22 - ab5c: 843fffc4 addi r16,r16,-1 - ab60: 1580562e bgeu r2,r22,acbc <__umoddi3+0x614> - ab64: d9800017 ldw r6,0(sp) - ab68: e022943a slli r17,fp,16 - ab6c: 302ed43a srli r23,r6,16 - ab70: 8462b03a or r17,r16,r17 - ab74: 34ffffcc andi r19,r6,65535 - ab78: 882ad43a srli r21,r17,16 - ab7c: 8c7fffcc andi r17,r17,65535 - ab80: 8809883a mov r4,r17 - ab84: 980b883a mov r5,r19 - ab88: 1521c83a sub r16,r2,r20 - ab8c: 0002c240 call 2c24 <__mulsi3> - ab90: 8809883a mov r4,r17 - ab94: b80b883a mov r5,r23 - ab98: 1029883a mov r20,r2 - ab9c: 0002c240 call 2c24 <__mulsi3> - aba0: 980b883a mov r5,r19 - aba4: a809883a mov r4,r21 - aba8: 1023883a mov r17,r2 - abac: 0002c240 call 2c24 <__mulsi3> - abb0: a809883a mov r4,r21 - abb4: b80b883a mov r5,r23 - abb8: 1027883a mov r19,r2 - abbc: 0002c240 call 2c24 <__mulsi3> - abc0: 100b883a mov r5,r2 - abc4: a004d43a srli r2,r20,16 - abc8: 8ce3883a add r17,r17,r19 - abcc: 1449883a add r4,r2,r17 - abd0: 24c0022e bgeu r4,r19,abdc <__umoddi3+0x534> - abd4: 00800074 movhi r2,1 - abd8: 288b883a add r5,r5,r2 - abdc: 2004d43a srli r2,r4,16 - abe0: 2008943a slli r4,r4,16 - abe4: a0ffffcc andi r3,r20,65535 - abe8: 288d883a add r6,r5,r2 - abec: 20c9883a add r4,r4,r3 - abf0: 81800b36 bltu r16,r6,ac20 <__umoddi3+0x578> - abf4: 81804026 beq r16,r6,acf8 <__umoddi3+0x650> - abf8: 818dc83a sub r6,r16,r6 - abfc: 00000f06 br ac3c <__umoddi3+0x594> - ac00: 30c5c83a sub r2,r6,r3 - ac04: 182d883a mov r22,r3 - ac08: 8084d83a srl r2,r16,r2 - ac0c: a8c6983a sll r3,r21,r3 - ac10: 9da6983a sll r19,r19,r22 - ac14: 85a0983a sll r16,r16,r22 - ac18: 18aab03a or r21,r3,r2 - ac1c: 003f1d06 br a894 <__umoddi3+0x1ec> - ac20: d8c00017 ldw r3,0(sp) - ac24: 20c5c83a sub r2,r4,r3 - ac28: 2089803a cmpltu r4,r4,r2 - ac2c: 3587c83a sub r3,r6,r22 - ac30: 1907c83a sub r3,r3,r4 - ac34: 80cdc83a sub r6,r16,r3 - ac38: 1009883a mov r4,r2 - ac3c: d9400117 ldw r5,4(sp) - ac40: 2905c83a sub r2,r5,r4 - ac44: 2887803a cmpltu r3,r5,r2 - ac48: 30c7c83a sub r3,r6,r3 - ac4c: d9800317 ldw r6,12(sp) - ac50: 1484d83a srl r2,r2,r18 - ac54: 1988983a sll r4,r3,r6 - ac58: 1c86d83a srl r3,r3,r18 - ac5c: 2088b03a or r4,r4,r2 - ac60: 2011883a mov r8,r4 - ac64: 1813883a mov r9,r3 - ac68: d9000415 stw r4,16(sp) - ac6c: d8c00515 stw r3,20(sp) - ac70: 003ed406 br a7c4 <__umoddi3+0x11c> - ac74: 01400604 movi r5,24 - ac78: 2805883a mov r2,r5 - ac7c: 003ea606 br a718 <__umoddi3+0x70> - ac80: 01400204 movi r5,8 - ac84: 2805883a mov r2,r5 - ac88: 003ea306 br a718 <__umoddi3+0x70> - ac8c: 01400204 movi r5,8 - ac90: 2805883a mov r2,r5 - ac94: 003edf06 br a814 <__umoddi3+0x16c> - ac98: 01400204 movi r5,8 - ac9c: 2805883a mov r2,r5 - aca0: 003ef206 br a86c <__umoddi3+0x1c4> - aca4: 01400604 movi r5,24 - aca8: 2805883a mov r2,r5 - acac: 003eef06 br a86c <__umoddi3+0x1c4> - acb0: 01400604 movi r5,24 - acb4: 2805883a mov r2,r5 - acb8: 003ed606 br a814 <__umoddi3+0x16c> - acbc: 153fa92e bgeu r2,r20,ab64 <__umoddi3+0x4bc> - acc0: 843fffc4 addi r16,r16,-1 - acc4: 1585883a add r2,r2,r22 - acc8: 003fa606 br ab64 <__umoddi3+0x4bc> - accc: 157f912e bgeu r2,r21,ab14 <__umoddi3+0x46c> - acd0: e73fffc4 addi fp,fp,-1 - acd4: 1585883a add r2,r2,r22 - acd8: 003f8e06 br ab14 <__umoddi3+0x46c> - acdc: 157f542e bgeu r2,r21,aa30 <__umoddi3+0x388> - ace0: 14c5883a add r2,r2,r19 - ace4: 003f5206 br aa30 <__umoddi3+0x388> - ace8: 14c5883a add r2,r2,r19 - acec: 003efc06 br a8e0 <__umoddi3+0x238> - acf0: 14c5883a add r2,r2,r19 - acf4: 003ea606 br a790 <__umoddi3+0xe8> - acf8: d8800117 ldw r2,4(sp) - acfc: 113fc836 bltu r2,r4,ac20 <__umoddi3+0x578> - ad00: 000d883a mov r6,zero - ad04: 003fcd06 br ac3c <__umoddi3+0x594> - -0000ad08 <_fpadd_parts>: - ad08: defff804 addi sp,sp,-32 - ad0c: dcc00315 stw r19,12(sp) - ad10: 2027883a mov r19,r4 - ad14: 21000017 ldw r4,0(r4) - ad18: 00c00044 movi r3,1 - ad1c: dd400515 stw r21,20(sp) - ad20: dd000415 stw r20,16(sp) - ad24: ddc00715 stw r23,28(sp) - ad28: dd800615 stw r22,24(sp) - ad2c: dc800215 stw r18,8(sp) - ad30: dc400115 stw r17,4(sp) - ad34: dc000015 stw r16,0(sp) - ad38: 282b883a mov r21,r5 - ad3c: 3029883a mov r20,r6 - ad40: 1900632e bgeu r3,r4,aed0 <_fpadd_parts+0x1c8> - ad44: 28800017 ldw r2,0(r5) - ad48: 1880812e bgeu r3,r2,af50 <_fpadd_parts+0x248> - ad4c: 00c00104 movi r3,4 - ad50: 20c0dc26 beq r4,r3,b0c4 <_fpadd_parts+0x3bc> - ad54: 10c07e26 beq r2,r3,af50 <_fpadd_parts+0x248> - ad58: 00c00084 movi r3,2 - ad5c: 10c06726 beq r2,r3,aefc <_fpadd_parts+0x1f4> - ad60: 20c07b26 beq r4,r3,af50 <_fpadd_parts+0x248> - ad64: 9dc00217 ldw r23,8(r19) - ad68: 28c00217 ldw r3,8(r5) - ad6c: 9c400317 ldw r17,12(r19) - ad70: 2bc00317 ldw r15,12(r5) - ad74: b8cdc83a sub r6,r23,r3 - ad78: 9c800417 ldw r18,16(r19) - ad7c: 2c000417 ldw r16,16(r5) - ad80: 3009883a mov r4,r6 - ad84: 30009716 blt r6,zero,afe4 <_fpadd_parts+0x2dc> - ad88: 00800fc4 movi r2,63 - ad8c: 11806b16 blt r2,r6,af3c <_fpadd_parts+0x234> - ad90: 0100a40e bge zero,r4,b024 <_fpadd_parts+0x31c> - ad94: 35bff804 addi r22,r6,-32 - ad98: b000bc16 blt r22,zero,b08c <_fpadd_parts+0x384> - ad9c: 8596d83a srl r11,r16,r22 - ada0: 0019883a mov r12,zero - ada4: 0013883a mov r9,zero - ada8: 01000044 movi r4,1 - adac: 0015883a mov r10,zero - adb0: b000be16 blt r22,zero,b0ac <_fpadd_parts+0x3a4> - adb4: 2590983a sll r8,r4,r22 - adb8: 000f883a mov r7,zero - adbc: 00bfffc4 movi r2,-1 - adc0: 3889883a add r4,r7,r2 - adc4: 408b883a add r5,r8,r2 - adc8: 21cd803a cmpltu r6,r4,r7 - adcc: 314b883a add r5,r6,r5 - add0: 7904703a and r2,r15,r4 - add4: 8146703a and r3,r16,r5 - add8: 10c4b03a or r2,r2,r3 - addc: 10000226 beq r2,zero,ade8 <_fpadd_parts+0xe0> - ade0: 02400044 movi r9,1 - ade4: 0015883a mov r10,zero - ade8: 5a5eb03a or r15,r11,r9 - adec: 62a0b03a or r16,r12,r10 - adf0: 99400117 ldw r5,4(r19) - adf4: a8800117 ldw r2,4(r21) - adf8: 28806e26 beq r5,r2,afb4 <_fpadd_parts+0x2ac> - adfc: 28006626 beq r5,zero,af98 <_fpadd_parts+0x290> - ae00: 7c45c83a sub r2,r15,r17 - ae04: 7889803a cmpltu r4,r15,r2 - ae08: 8487c83a sub r3,r16,r18 - ae0c: 1909c83a sub r4,r3,r4 - ae10: 100d883a mov r6,r2 - ae14: 200f883a mov r7,r4 - ae18: 38007716 blt r7,zero,aff8 <_fpadd_parts+0x2f0> - ae1c: a5c00215 stw r23,8(r20) - ae20: a1c00415 stw r7,16(r20) - ae24: a0000115 stw zero,4(r20) - ae28: a1800315 stw r6,12(r20) - ae2c: a2000317 ldw r8,12(r20) - ae30: a2400417 ldw r9,16(r20) - ae34: 00bfffc4 movi r2,-1 - ae38: 408b883a add r5,r8,r2 - ae3c: 2a09803a cmpltu r4,r5,r8 - ae40: 488d883a add r6,r9,r2 - ae44: 01c40034 movhi r7,4096 - ae48: 39ffffc4 addi r7,r7,-1 - ae4c: 218d883a add r6,r4,r6 - ae50: 39801736 bltu r7,r6,aeb0 <_fpadd_parts+0x1a8> - ae54: 31c06526 beq r6,r7,afec <_fpadd_parts+0x2e4> - ae58: a3000217 ldw r12,8(r20) - ae5c: 4209883a add r4,r8,r8 - ae60: 00bfffc4 movi r2,-1 - ae64: 220f803a cmpltu r7,r4,r8 - ae68: 4a4b883a add r5,r9,r9 - ae6c: 394f883a add r7,r7,r5 - ae70: 2095883a add r10,r4,r2 - ae74: 3897883a add r11,r7,r2 - ae78: 510d803a cmpltu r6,r10,r4 - ae7c: 6099883a add r12,r12,r2 - ae80: 32d7883a add r11,r6,r11 - ae84: 00840034 movhi r2,4096 - ae88: 10bfffc4 addi r2,r2,-1 - ae8c: 2011883a mov r8,r4 - ae90: 3813883a mov r9,r7 - ae94: a1000315 stw r4,12(r20) - ae98: a1c00415 stw r7,16(r20) - ae9c: a3000215 stw r12,8(r20) - aea0: 12c00336 bltu r2,r11,aeb0 <_fpadd_parts+0x1a8> - aea4: 58bfed1e bne r11,r2,ae5c <_fpadd_parts+0x154> - aea8: 00bfff84 movi r2,-2 - aeac: 12bfeb2e bgeu r2,r10,ae5c <_fpadd_parts+0x154> - aeb0: a2800417 ldw r10,16(r20) - aeb4: 008000c4 movi r2,3 - aeb8: 00c80034 movhi r3,8192 - aebc: 18ffffc4 addi r3,r3,-1 - aec0: a2400317 ldw r9,12(r20) - aec4: a0800015 stw r2,0(r20) - aec8: 1a802336 bltu r3,r10,af58 <_fpadd_parts+0x250> - aecc: a027883a mov r19,r20 - aed0: 9805883a mov r2,r19 - aed4: ddc00717 ldw r23,28(sp) - aed8: dd800617 ldw r22,24(sp) - aedc: dd400517 ldw r21,20(sp) - aee0: dd000417 ldw r20,16(sp) - aee4: dcc00317 ldw r19,12(sp) - aee8: dc800217 ldw r18,8(sp) - aeec: dc400117 ldw r17,4(sp) - aef0: dc000017 ldw r16,0(sp) - aef4: dec00804 addi sp,sp,32 - aef8: f800283a ret - aefc: 20fff41e bne r4,r3,aed0 <_fpadd_parts+0x1c8> - af00: 31000015 stw r4,0(r6) - af04: 98800117 ldw r2,4(r19) - af08: 30800115 stw r2,4(r6) - af0c: 98c00217 ldw r3,8(r19) - af10: 30c00215 stw r3,8(r6) - af14: 98800317 ldw r2,12(r19) - af18: 30800315 stw r2,12(r6) - af1c: 98c00417 ldw r3,16(r19) - af20: 30c00415 stw r3,16(r6) - af24: 98800117 ldw r2,4(r19) - af28: 28c00117 ldw r3,4(r5) - af2c: 3027883a mov r19,r6 - af30: 10c4703a and r2,r2,r3 - af34: 30800115 stw r2,4(r6) - af38: 003fe506 br aed0 <_fpadd_parts+0x1c8> - af3c: 1dc02616 blt r3,r23,afd8 <_fpadd_parts+0x2d0> - af40: 0023883a mov r17,zero - af44: 182f883a mov r23,r3 - af48: 0025883a mov r18,zero - af4c: 003fa806 br adf0 <_fpadd_parts+0xe8> - af50: a827883a mov r19,r21 - af54: 003fde06 br aed0 <_fpadd_parts+0x1c8> - af58: 01800044 movi r6,1 - af5c: 500497fa slli r2,r10,31 - af60: 4808d07a srli r4,r9,1 - af64: 518ad83a srl r5,r10,r6 - af68: a2000217 ldw r8,8(r20) - af6c: 1108b03a or r4,r2,r4 - af70: 0007883a mov r3,zero - af74: 4984703a and r2,r9,r6 - af78: 208cb03a or r6,r4,r2 - af7c: 28ceb03a or r7,r5,r3 - af80: 42000044 addi r8,r8,1 - af84: a027883a mov r19,r20 - af88: a1c00415 stw r7,16(r20) - af8c: a2000215 stw r8,8(r20) - af90: a1800315 stw r6,12(r20) - af94: 003fce06 br aed0 <_fpadd_parts+0x1c8> - af98: 8bc5c83a sub r2,r17,r15 - af9c: 8889803a cmpltu r4,r17,r2 - afa0: 9407c83a sub r3,r18,r16 - afa4: 1909c83a sub r4,r3,r4 - afa8: 100d883a mov r6,r2 - afac: 200f883a mov r7,r4 - afb0: 003f9906 br ae18 <_fpadd_parts+0x110> - afb4: 7c45883a add r2,r15,r17 - afb8: 13c9803a cmpltu r4,r2,r15 - afbc: 8487883a add r3,r16,r18 - afc0: 20c9883a add r4,r4,r3 - afc4: a1400115 stw r5,4(r20) - afc8: a5c00215 stw r23,8(r20) - afcc: a0800315 stw r2,12(r20) - afd0: a1000415 stw r4,16(r20) - afd4: 003fb606 br aeb0 <_fpadd_parts+0x1a8> - afd8: 001f883a mov r15,zero - afdc: 0021883a mov r16,zero - afe0: 003f8306 br adf0 <_fpadd_parts+0xe8> - afe4: 018dc83a sub r6,zero,r6 - afe8: 003f6706 br ad88 <_fpadd_parts+0x80> - afec: 00bfff84 movi r2,-2 - aff0: 117faf36 bltu r2,r5,aeb0 <_fpadd_parts+0x1a8> - aff4: 003f9806 br ae58 <_fpadd_parts+0x150> - aff8: 0005883a mov r2,zero - affc: 1189c83a sub r4,r2,r6 - b000: 1105803a cmpltu r2,r2,r4 - b004: 01cbc83a sub r5,zero,r7 - b008: 2885c83a sub r2,r5,r2 - b00c: 01800044 movi r6,1 - b010: a1800115 stw r6,4(r20) - b014: a5c00215 stw r23,8(r20) - b018: a1000315 stw r4,12(r20) - b01c: a0800415 stw r2,16(r20) - b020: 003f8206 br ae2c <_fpadd_parts+0x124> - b024: 203f7226 beq r4,zero,adf0 <_fpadd_parts+0xe8> - b028: 35bff804 addi r22,r6,-32 - b02c: b9af883a add r23,r23,r6 - b030: b0003116 blt r22,zero,b0f8 <_fpadd_parts+0x3f0> - b034: 959ad83a srl r13,r18,r22 - b038: 001d883a mov r14,zero - b03c: 000f883a mov r7,zero - b040: 01000044 movi r4,1 - b044: 0011883a mov r8,zero - b048: b0002516 blt r22,zero,b0e0 <_fpadd_parts+0x3d8> - b04c: 2594983a sll r10,r4,r22 - b050: 0013883a mov r9,zero - b054: 00bfffc4 movi r2,-1 - b058: 4889883a add r4,r9,r2 - b05c: 508b883a add r5,r10,r2 - b060: 224d803a cmpltu r6,r4,r9 - b064: 314b883a add r5,r6,r5 - b068: 8904703a and r2,r17,r4 - b06c: 9146703a and r3,r18,r5 - b070: 10c4b03a or r2,r2,r3 - b074: 10000226 beq r2,zero,b080 <_fpadd_parts+0x378> - b078: 01c00044 movi r7,1 - b07c: 0011883a mov r8,zero - b080: 69e2b03a or r17,r13,r7 - b084: 7224b03a or r18,r14,r8 - b088: 003f5906 br adf0 <_fpadd_parts+0xe8> - b08c: 8407883a add r3,r16,r16 - b090: 008007c4 movi r2,31 - b094: 1185c83a sub r2,r2,r6 - b098: 1886983a sll r3,r3,r2 - b09c: 7996d83a srl r11,r15,r6 - b0a0: 8198d83a srl r12,r16,r6 - b0a4: 1ad6b03a or r11,r3,r11 - b0a8: 003f3e06 br ada4 <_fpadd_parts+0x9c> - b0ac: 2006d07a srli r3,r4,1 - b0b0: 008007c4 movi r2,31 - b0b4: 1185c83a sub r2,r2,r6 - b0b8: 1890d83a srl r8,r3,r2 - b0bc: 218e983a sll r7,r4,r6 - b0c0: 003f3e06 br adbc <_fpadd_parts+0xb4> - b0c4: 113f821e bne r2,r4,aed0 <_fpadd_parts+0x1c8> - b0c8: 28c00117 ldw r3,4(r5) - b0cc: 98800117 ldw r2,4(r19) - b0d0: 10ff7f26 beq r2,r3,aed0 <_fpadd_parts+0x1c8> - b0d4: 04c00074 movhi r19,1 - b0d8: 9cc15804 addi r19,r19,1376 - b0dc: 003f7c06 br aed0 <_fpadd_parts+0x1c8> - b0e0: 2006d07a srli r3,r4,1 - b0e4: 008007c4 movi r2,31 - b0e8: 1185c83a sub r2,r2,r6 - b0ec: 1894d83a srl r10,r3,r2 - b0f0: 2192983a sll r9,r4,r6 - b0f4: 003fd706 br b054 <_fpadd_parts+0x34c> - b0f8: 9487883a add r3,r18,r18 - b0fc: 008007c4 movi r2,31 - b100: 1185c83a sub r2,r2,r6 - b104: 1886983a sll r3,r3,r2 - b108: 899ad83a srl r13,r17,r6 - b10c: 919cd83a srl r14,r18,r6 - b110: 1b5ab03a or r13,r3,r13 - b114: 003fc906 br b03c <_fpadd_parts+0x334> - -0000b118 <__subdf3>: - b118: deffea04 addi sp,sp,-88 - b11c: dcc01415 stw r19,80(sp) - b120: dcc00404 addi r19,sp,16 - b124: 2011883a mov r8,r4 - b128: 2813883a mov r9,r5 - b12c: dc401315 stw r17,76(sp) - b130: d809883a mov r4,sp - b134: 980b883a mov r5,r19 - b138: dc400904 addi r17,sp,36 - b13c: dfc01515 stw ra,84(sp) - b140: da400115 stw r9,4(sp) - b144: d9c00315 stw r7,12(sp) - b148: da000015 stw r8,0(sp) - b14c: d9800215 stw r6,8(sp) - b150: 000c2ec0 call c2ec <__unpack_d> - b154: d9000204 addi r4,sp,8 - b158: 880b883a mov r5,r17 - b15c: 000c2ec0 call c2ec <__unpack_d> - b160: d8800a17 ldw r2,40(sp) - b164: 880b883a mov r5,r17 - b168: 9809883a mov r4,r19 - b16c: d9800e04 addi r6,sp,56 - b170: 1080005c xori r2,r2,1 - b174: d8800a15 stw r2,40(sp) - b178: 000ad080 call ad08 <_fpadd_parts> - b17c: 1009883a mov r4,r2 - b180: 000bfd80 call bfd8 <__pack_d> - b184: dfc01517 ldw ra,84(sp) - b188: dcc01417 ldw r19,80(sp) - b18c: dc401317 ldw r17,76(sp) - b190: dec01604 addi sp,sp,88 - b194: f800283a ret - -0000b198 <__adddf3>: - b198: deffea04 addi sp,sp,-88 - b19c: dcc01415 stw r19,80(sp) - b1a0: dcc00404 addi r19,sp,16 - b1a4: 2011883a mov r8,r4 - b1a8: 2813883a mov r9,r5 - b1ac: dc401315 stw r17,76(sp) - b1b0: d809883a mov r4,sp - b1b4: 980b883a mov r5,r19 - b1b8: dc400904 addi r17,sp,36 - b1bc: dfc01515 stw ra,84(sp) - b1c0: da400115 stw r9,4(sp) - b1c4: d9c00315 stw r7,12(sp) - b1c8: da000015 stw r8,0(sp) - b1cc: d9800215 stw r6,8(sp) - b1d0: 000c2ec0 call c2ec <__unpack_d> - b1d4: d9000204 addi r4,sp,8 - b1d8: 880b883a mov r5,r17 - b1dc: 000c2ec0 call c2ec <__unpack_d> - b1e0: d9800e04 addi r6,sp,56 - b1e4: 9809883a mov r4,r19 - b1e8: 880b883a mov r5,r17 - b1ec: 000ad080 call ad08 <_fpadd_parts> - b1f0: 1009883a mov r4,r2 - b1f4: 000bfd80 call bfd8 <__pack_d> - b1f8: dfc01517 ldw ra,84(sp) - b1fc: dcc01417 ldw r19,80(sp) - b200: dc401317 ldw r17,76(sp) - b204: dec01604 addi sp,sp,88 - b208: f800283a ret - -0000b20c <__muldf3>: - b20c: deffe004 addi sp,sp,-128 - b210: dc401815 stw r17,96(sp) - b214: dc400404 addi r17,sp,16 - b218: 2011883a mov r8,r4 - b21c: 2813883a mov r9,r5 - b220: dc001715 stw r16,92(sp) - b224: d809883a mov r4,sp - b228: 880b883a mov r5,r17 - b22c: dc000904 addi r16,sp,36 - b230: dfc01f15 stw ra,124(sp) - b234: da400115 stw r9,4(sp) - b238: d9c00315 stw r7,12(sp) - b23c: da000015 stw r8,0(sp) - b240: d9800215 stw r6,8(sp) - b244: ddc01e15 stw r23,120(sp) - b248: dd801d15 stw r22,116(sp) - b24c: dd401c15 stw r21,112(sp) - b250: dd001b15 stw r20,108(sp) - b254: dcc01a15 stw r19,104(sp) - b258: dc801915 stw r18,100(sp) - b25c: 000c2ec0 call c2ec <__unpack_d> - b260: d9000204 addi r4,sp,8 - b264: 800b883a mov r5,r16 - b268: 000c2ec0 call c2ec <__unpack_d> - b26c: d9000417 ldw r4,16(sp) - b270: 00800044 movi r2,1 - b274: 1100102e bgeu r2,r4,b2b8 <__muldf3+0xac> - b278: d8c00917 ldw r3,36(sp) - b27c: 10c0062e bgeu r2,r3,b298 <__muldf3+0x8c> - b280: 00800104 movi r2,4 - b284: 20800a26 beq r4,r2,b2b0 <__muldf3+0xa4> - b288: 1880cc26 beq r3,r2,b5bc <__muldf3+0x3b0> - b28c: 00800084 movi r2,2 - b290: 20800926 beq r4,r2,b2b8 <__muldf3+0xac> - b294: 1880191e bne r3,r2,b2fc <__muldf3+0xf0> - b298: d8c00a17 ldw r3,40(sp) - b29c: d8800517 ldw r2,20(sp) - b2a0: 8009883a mov r4,r16 - b2a4: 10c4c03a cmpne r2,r2,r3 - b2a8: d8800a15 stw r2,40(sp) - b2ac: 00000706 br b2cc <__muldf3+0xc0> - b2b0: 00800084 movi r2,2 - b2b4: 1880c326 beq r3,r2,b5c4 <__muldf3+0x3b8> - b2b8: d8800517 ldw r2,20(sp) - b2bc: d8c00a17 ldw r3,40(sp) - b2c0: 8809883a mov r4,r17 - b2c4: 10c4c03a cmpne r2,r2,r3 - b2c8: d8800515 stw r2,20(sp) - b2cc: 000bfd80 call bfd8 <__pack_d> - b2d0: dfc01f17 ldw ra,124(sp) - b2d4: ddc01e17 ldw r23,120(sp) - b2d8: dd801d17 ldw r22,116(sp) - b2dc: dd401c17 ldw r21,112(sp) - b2e0: dd001b17 ldw r20,108(sp) - b2e4: dcc01a17 ldw r19,104(sp) - b2e8: dc801917 ldw r18,100(sp) - b2ec: dc401817 ldw r17,96(sp) - b2f0: dc001717 ldw r16,92(sp) - b2f4: dec02004 addi sp,sp,128 - b2f8: f800283a ret - b2fc: dd800717 ldw r22,28(sp) - b300: dc800c17 ldw r18,48(sp) - b304: 002b883a mov r21,zero - b308: 0023883a mov r17,zero - b30c: a80b883a mov r5,r21 - b310: b00d883a mov r6,r22 - b314: 880f883a mov r7,r17 - b318: ddc00817 ldw r23,32(sp) - b31c: dcc00d17 ldw r19,52(sp) - b320: 9009883a mov r4,r18 - b324: 000be340 call be34 <__muldi3> - b328: 001b883a mov r13,zero - b32c: 680f883a mov r7,r13 - b330: b009883a mov r4,r22 - b334: 000b883a mov r5,zero - b338: 980d883a mov r6,r19 - b33c: b82d883a mov r22,r23 - b340: 002f883a mov r23,zero - b344: db401615 stw r13,88(sp) - b348: d8801315 stw r2,76(sp) - b34c: d8c01415 stw r3,80(sp) - b350: dcc01515 stw r19,84(sp) - b354: 000be340 call be34 <__muldi3> - b358: b00d883a mov r6,r22 - b35c: 000b883a mov r5,zero - b360: 9009883a mov r4,r18 - b364: b80f883a mov r7,r23 - b368: 1021883a mov r16,r2 - b36c: 1823883a mov r17,r3 - b370: 000be340 call be34 <__muldi3> - b374: 8085883a add r2,r16,r2 - b378: 140d803a cmpltu r6,r2,r16 - b37c: 88c7883a add r3,r17,r3 - b380: 30cd883a add r6,r6,r3 - b384: 1029883a mov r20,r2 - b388: 302b883a mov r21,r6 - b38c: da801317 ldw r10,76(sp) - b390: dac01417 ldw r11,80(sp) - b394: db001517 ldw r12,84(sp) - b398: db401617 ldw r13,88(sp) - b39c: 3440612e bgeu r6,r17,b524 <__muldf3+0x318> - b3a0: 0009883a mov r4,zero - b3a4: 5105883a add r2,r10,r4 - b3a8: 128d803a cmpltu r6,r2,r10 - b3ac: 5d07883a add r3,r11,r20 - b3b0: 30cd883a add r6,r6,r3 - b3b4: 0021883a mov r16,zero - b3b8: 04400044 movi r17,1 - b3bc: 1025883a mov r18,r2 - b3c0: 3027883a mov r19,r6 - b3c4: 32c06236 bltu r6,r11,b550 <__muldf3+0x344> - b3c8: 59807a26 beq r11,r6,b5b4 <__muldf3+0x3a8> - b3cc: 680b883a mov r5,r13 - b3d0: b80f883a mov r7,r23 - b3d4: 6009883a mov r4,r12 - b3d8: b00d883a mov r6,r22 - b3dc: 000be340 call be34 <__muldi3> - b3e0: 1009883a mov r4,r2 - b3e4: 000f883a mov r7,zero - b3e8: 1545883a add r2,r2,r21 - b3ec: 1111803a cmpltu r8,r2,r4 - b3f0: 19c7883a add r3,r3,r7 - b3f4: 40c7883a add r3,r8,r3 - b3f8: 88cb883a add r5,r17,r3 - b3fc: d8c00617 ldw r3,24(sp) - b400: 8089883a add r4,r16,r2 - b404: d8800b17 ldw r2,44(sp) - b408: 18c00104 addi r3,r3,4 - b40c: 240d803a cmpltu r6,r4,r16 - b410: 10c7883a add r3,r2,r3 - b414: 2013883a mov r9,r4 - b418: d8800a17 ldw r2,40(sp) - b41c: d9000517 ldw r4,20(sp) - b420: 314d883a add r6,r6,r5 - b424: 3015883a mov r10,r6 - b428: 2088c03a cmpne r4,r4,r2 - b42c: 00880034 movhi r2,8192 - b430: 10bfffc4 addi r2,r2,-1 - b434: d9000f15 stw r4,60(sp) - b438: d8c01015 stw r3,64(sp) - b43c: 1180162e bgeu r2,r6,b498 <__muldf3+0x28c> - b440: 1811883a mov r8,r3 - b444: 101f883a mov r15,r2 - b448: 980497fa slli r2,r19,31 - b44c: 9016d07a srli r11,r18,1 - b450: 500697fa slli r3,r10,31 - b454: 480cd07a srli r6,r9,1 - b458: 500ed07a srli r7,r10,1 - b45c: 12d6b03a or r11,r2,r11 - b460: 00800044 movi r2,1 - b464: 198cb03a or r6,r3,r6 - b468: 4888703a and r4,r9,r2 - b46c: 9818d07a srli r12,r19,1 - b470: 001b883a mov r13,zero - b474: 03a00034 movhi r14,32768 - b478: 3013883a mov r9,r6 - b47c: 3815883a mov r10,r7 - b480: 4091883a add r8,r8,r2 - b484: 20000226 beq r4,zero,b490 <__muldf3+0x284> - b488: 5b64b03a or r18,r11,r13 - b48c: 63a6b03a or r19,r12,r14 - b490: 7abfed36 bltu r15,r10,b448 <__muldf3+0x23c> - b494: da001015 stw r8,64(sp) - b498: 00840034 movhi r2,4096 - b49c: 10bfffc4 addi r2,r2,-1 - b4a0: 12801436 bltu r2,r10,b4f4 <__muldf3+0x2e8> - b4a4: da001017 ldw r8,64(sp) - b4a8: 101f883a mov r15,r2 - b4ac: 4a45883a add r2,r9,r9 - b4b0: 124d803a cmpltu r6,r2,r9 - b4b4: 5287883a add r3,r10,r10 - b4b8: 9497883a add r11,r18,r18 - b4bc: 5c8f803a cmpltu r7,r11,r18 - b4c0: 9cd9883a add r12,r19,r19 - b4c4: 01000044 movi r4,1 - b4c8: 30cd883a add r6,r6,r3 - b4cc: 3b0f883a add r7,r7,r12 - b4d0: 423fffc4 addi r8,r8,-1 - b4d4: 1013883a mov r9,r2 - b4d8: 3015883a mov r10,r6 - b4dc: 111ab03a or r13,r2,r4 - b4e0: 98003016 blt r19,zero,b5a4 <__muldf3+0x398> - b4e4: 5825883a mov r18,r11 - b4e8: 3827883a mov r19,r7 - b4ec: 7abfef2e bgeu r15,r10,b4ac <__muldf3+0x2a0> - b4f0: da001015 stw r8,64(sp) - b4f4: 00803fc4 movi r2,255 - b4f8: 488e703a and r7,r9,r2 - b4fc: 00802004 movi r2,128 - b500: 0007883a mov r3,zero - b504: 0011883a mov r8,zero - b508: 38801826 beq r7,r2,b56c <__muldf3+0x360> - b50c: 008000c4 movi r2,3 - b510: d9000e04 addi r4,sp,56 - b514: da801215 stw r10,72(sp) - b518: d8800e15 stw r2,56(sp) - b51c: da401115 stw r9,68(sp) - b520: 003f6a06 br b2cc <__muldf3+0xc0> - b524: 89802126 beq r17,r6,b5ac <__muldf3+0x3a0> - b528: 0009883a mov r4,zero - b52c: 5105883a add r2,r10,r4 - b530: 128d803a cmpltu r6,r2,r10 - b534: 5d07883a add r3,r11,r20 - b538: 30cd883a add r6,r6,r3 - b53c: 0021883a mov r16,zero - b540: 0023883a mov r17,zero - b544: 1025883a mov r18,r2 - b548: 3027883a mov r19,r6 - b54c: 32ff9e2e bgeu r6,r11,b3c8 <__muldf3+0x1bc> - b550: 00800044 movi r2,1 - b554: 8089883a add r4,r16,r2 - b558: 240d803a cmpltu r6,r4,r16 - b55c: 344d883a add r6,r6,r17 - b560: 2021883a mov r16,r4 - b564: 3023883a mov r17,r6 - b568: 003f9806 br b3cc <__muldf3+0x1c0> - b56c: 403fe71e bne r8,zero,b50c <__muldf3+0x300> - b570: 01004004 movi r4,256 - b574: 4904703a and r2,r9,r4 - b578: 10c4b03a or r2,r2,r3 - b57c: 103fe31e bne r2,zero,b50c <__muldf3+0x300> - b580: 94c4b03a or r2,r18,r19 - b584: 103fe126 beq r2,zero,b50c <__muldf3+0x300> - b588: 49c5883a add r2,r9,r7 - b58c: 1251803a cmpltu r8,r2,r9 - b590: 4291883a add r8,r8,r10 - b594: 013fc004 movi r4,-256 - b598: 1112703a and r9,r2,r4 - b59c: 4015883a mov r10,r8 - b5a0: 003fda06 br b50c <__muldf3+0x300> - b5a4: 6813883a mov r9,r13 - b5a8: 003fce06 br b4e4 <__muldf3+0x2d8> - b5ac: 143f7c36 bltu r2,r16,b3a0 <__muldf3+0x194> - b5b0: 003fdd06 br b528 <__muldf3+0x31c> - b5b4: 12bf852e bgeu r2,r10,b3cc <__muldf3+0x1c0> - b5b8: 003fe506 br b550 <__muldf3+0x344> - b5bc: 00800084 movi r2,2 - b5c0: 20bf351e bne r4,r2,b298 <__muldf3+0x8c> - b5c4: 01000074 movhi r4,1 - b5c8: 21015804 addi r4,r4,1376 - b5cc: 003f3f06 br b2cc <__muldf3+0xc0> - -0000b5d0 <__divdf3>: - b5d0: deffed04 addi sp,sp,-76 - b5d4: dcc01115 stw r19,68(sp) - b5d8: dcc00404 addi r19,sp,16 - b5dc: 2011883a mov r8,r4 - b5e0: 2813883a mov r9,r5 - b5e4: dc000e15 stw r16,56(sp) - b5e8: d809883a mov r4,sp - b5ec: 980b883a mov r5,r19 - b5f0: dc000904 addi r16,sp,36 - b5f4: dfc01215 stw ra,72(sp) - b5f8: da400115 stw r9,4(sp) - b5fc: d9c00315 stw r7,12(sp) - b600: da000015 stw r8,0(sp) - b604: d9800215 stw r6,8(sp) - b608: dc801015 stw r18,64(sp) - b60c: dc400f15 stw r17,60(sp) - b610: 000c2ec0 call c2ec <__unpack_d> - b614: d9000204 addi r4,sp,8 - b618: 800b883a mov r5,r16 - b61c: 000c2ec0 call c2ec <__unpack_d> - b620: d9000417 ldw r4,16(sp) - b624: 00800044 movi r2,1 - b628: 11000b2e bgeu r2,r4,b658 <__divdf3+0x88> - b62c: d9400917 ldw r5,36(sp) - b630: 1140762e bgeu r2,r5,b80c <__divdf3+0x23c> - b634: d8800517 ldw r2,20(sp) - b638: d8c00a17 ldw r3,40(sp) - b63c: 01800104 movi r6,4 - b640: 10c4f03a xor r2,r2,r3 - b644: d8800515 stw r2,20(sp) - b648: 21800226 beq r4,r6,b654 <__divdf3+0x84> - b64c: 00800084 movi r2,2 - b650: 2080141e bne r4,r2,b6a4 <__divdf3+0xd4> - b654: 29000926 beq r5,r4,b67c <__divdf3+0xac> - b658: 9809883a mov r4,r19 - b65c: 000bfd80 call bfd8 <__pack_d> - b660: dfc01217 ldw ra,72(sp) - b664: dcc01117 ldw r19,68(sp) - b668: dc801017 ldw r18,64(sp) - b66c: dc400f17 ldw r17,60(sp) - b670: dc000e17 ldw r16,56(sp) - b674: dec01304 addi sp,sp,76 - b678: f800283a ret - b67c: 01000074 movhi r4,1 - b680: 21015804 addi r4,r4,1376 - b684: 000bfd80 call bfd8 <__pack_d> - b688: dfc01217 ldw ra,72(sp) - b68c: dcc01117 ldw r19,68(sp) - b690: dc801017 ldw r18,64(sp) - b694: dc400f17 ldw r17,60(sp) - b698: dc000e17 ldw r16,56(sp) - b69c: dec01304 addi sp,sp,76 - b6a0: f800283a ret - b6a4: 29805b26 beq r5,r6,b814 <__divdf3+0x244> - b6a8: 28802d26 beq r5,r2,b760 <__divdf3+0x190> - b6ac: d8c00617 ldw r3,24(sp) - b6b0: d8800b17 ldw r2,44(sp) - b6b4: d9c00817 ldw r7,32(sp) - b6b8: dc400d17 ldw r17,52(sp) - b6bc: 188bc83a sub r5,r3,r2 - b6c0: d9800717 ldw r6,28(sp) - b6c4: dc000c17 ldw r16,48(sp) - b6c8: d9400615 stw r5,24(sp) - b6cc: 3c403836 bltu r7,r17,b7b0 <__divdf3+0x1e0> - b6d0: 89c03626 beq r17,r7,b7ac <__divdf3+0x1dc> - b6d4: 0015883a mov r10,zero - b6d8: 001d883a mov r14,zero - b6dc: 02c40034 movhi r11,4096 - b6e0: 001f883a mov r15,zero - b6e4: 003f883a mov ra,zero - b6e8: 04800f44 movi r18,61 - b6ec: 00000f06 br b72c <__divdf3+0x15c> - b6f0: 601d883a mov r14,r12 - b6f4: 681f883a mov r15,r13 - b6f8: 400d883a mov r6,r8 - b6fc: 100f883a mov r7,r2 - b700: 3191883a add r8,r6,r6 - b704: 5808d07a srli r4,r11,1 - b708: 4185803a cmpltu r2,r8,r6 - b70c: 39d3883a add r9,r7,r7 - b710: 28c6b03a or r3,r5,r3 - b714: 1245883a add r2,r2,r9 - b718: 1815883a mov r10,r3 - b71c: 2017883a mov r11,r4 - b720: 400d883a mov r6,r8 - b724: 100f883a mov r7,r2 - b728: fc801726 beq ra,r18,b788 <__divdf3+0x1b8> - b72c: 580a97fa slli r5,r11,31 - b730: 5006d07a srli r3,r10,1 - b734: ffc00044 addi ra,ra,1 - b738: 3c7ff136 bltu r7,r17,b700 <__divdf3+0x130> - b73c: 3411c83a sub r8,r6,r16 - b740: 3205803a cmpltu r2,r6,r8 - b744: 3c53c83a sub r9,r7,r17 - b748: 7298b03a or r12,r14,r10 - b74c: 7adab03a or r13,r15,r11 - b750: 4885c83a sub r2,r9,r2 - b754: 89ffe61e bne r17,r7,b6f0 <__divdf3+0x120> - b758: 343fe936 bltu r6,r16,b700 <__divdf3+0x130> - b75c: 003fe406 br b6f0 <__divdf3+0x120> - b760: 9809883a mov r4,r19 - b764: d9800415 stw r6,16(sp) - b768: 000bfd80 call bfd8 <__pack_d> - b76c: dfc01217 ldw ra,72(sp) - b770: dcc01117 ldw r19,68(sp) - b774: dc801017 ldw r18,64(sp) - b778: dc400f17 ldw r17,60(sp) - b77c: dc000e17 ldw r16,56(sp) - b780: dec01304 addi sp,sp,76 - b784: f800283a ret - b788: 00803fc4 movi r2,255 - b78c: 7090703a and r8,r14,r2 - b790: 00802004 movi r2,128 - b794: 0007883a mov r3,zero - b798: 0013883a mov r9,zero - b79c: 40800d26 beq r8,r2,b7d4 <__divdf3+0x204> - b7a0: dbc00815 stw r15,32(sp) - b7a4: db800715 stw r14,28(sp) - b7a8: 003fab06 br b658 <__divdf3+0x88> - b7ac: 343fc92e bgeu r6,r16,b6d4 <__divdf3+0x104> - b7b0: 3185883a add r2,r6,r6 - b7b4: 1189803a cmpltu r4,r2,r6 - b7b8: 39c7883a add r3,r7,r7 - b7bc: 20c9883a add r4,r4,r3 - b7c0: 297fffc4 addi r5,r5,-1 - b7c4: 100d883a mov r6,r2 - b7c8: 200f883a mov r7,r4 - b7cc: d9400615 stw r5,24(sp) - b7d0: 003fc006 br b6d4 <__divdf3+0x104> - b7d4: 483ff21e bne r9,zero,b7a0 <__divdf3+0x1d0> - b7d8: 01004004 movi r4,256 - b7dc: 7104703a and r2,r14,r4 - b7e0: 10c4b03a or r2,r2,r3 - b7e4: 103fee1e bne r2,zero,b7a0 <__divdf3+0x1d0> - b7e8: 31c4b03a or r2,r6,r7 - b7ec: 103fec26 beq r2,zero,b7a0 <__divdf3+0x1d0> - b7f0: 7205883a add r2,r14,r8 - b7f4: 1391803a cmpltu r8,r2,r14 - b7f8: 43d1883a add r8,r8,r15 - b7fc: 013fc004 movi r4,-256 - b800: 111c703a and r14,r2,r4 - b804: 401f883a mov r15,r8 - b808: 003fe506 br b7a0 <__divdf3+0x1d0> - b80c: 8009883a mov r4,r16 - b810: 003f9206 br b65c <__divdf3+0x8c> - b814: 9809883a mov r4,r19 - b818: d8000715 stw zero,28(sp) - b81c: d8000815 stw zero,32(sp) - b820: d8000615 stw zero,24(sp) - b824: 003f8d06 br b65c <__divdf3+0x8c> - -0000b828 <__eqdf2>: - b828: deffef04 addi sp,sp,-68 - b82c: dc400f15 stw r17,60(sp) - b830: dc400404 addi r17,sp,16 - b834: 2005883a mov r2,r4 - b838: 2807883a mov r3,r5 - b83c: dc000e15 stw r16,56(sp) - b840: d809883a mov r4,sp - b844: 880b883a mov r5,r17 - b848: dc000904 addi r16,sp,36 - b84c: d8c00115 stw r3,4(sp) - b850: d8800015 stw r2,0(sp) - b854: d9800215 stw r6,8(sp) - b858: dfc01015 stw ra,64(sp) - b85c: d9c00315 stw r7,12(sp) - b860: 000c2ec0 call c2ec <__unpack_d> - b864: d9000204 addi r4,sp,8 - b868: 800b883a mov r5,r16 - b86c: 000c2ec0 call c2ec <__unpack_d> - b870: d8800417 ldw r2,16(sp) - b874: 00c00044 movi r3,1 - b878: 180d883a mov r6,r3 - b87c: 1880062e bgeu r3,r2,b898 <__eqdf2+0x70> - b880: d8800917 ldw r2,36(sp) - b884: 8809883a mov r4,r17 - b888: 800b883a mov r5,r16 - b88c: 1880022e bgeu r3,r2,b898 <__eqdf2+0x70> - b890: 000c4240 call c424 <__fpcmp_parts_d> - b894: 100d883a mov r6,r2 - b898: 3005883a mov r2,r6 - b89c: dfc01017 ldw ra,64(sp) - b8a0: dc400f17 ldw r17,60(sp) - b8a4: dc000e17 ldw r16,56(sp) - b8a8: dec01104 addi sp,sp,68 - b8ac: f800283a ret - -0000b8b0 <__nedf2>: - b8b0: deffef04 addi sp,sp,-68 - b8b4: dc400f15 stw r17,60(sp) - b8b8: dc400404 addi r17,sp,16 - b8bc: 2005883a mov r2,r4 - b8c0: 2807883a mov r3,r5 - b8c4: dc000e15 stw r16,56(sp) - b8c8: d809883a mov r4,sp - b8cc: 880b883a mov r5,r17 - b8d0: dc000904 addi r16,sp,36 - b8d4: d8c00115 stw r3,4(sp) - b8d8: d8800015 stw r2,0(sp) - b8dc: d9800215 stw r6,8(sp) - b8e0: dfc01015 stw ra,64(sp) - b8e4: d9c00315 stw r7,12(sp) - b8e8: 000c2ec0 call c2ec <__unpack_d> - b8ec: d9000204 addi r4,sp,8 - b8f0: 800b883a mov r5,r16 - b8f4: 000c2ec0 call c2ec <__unpack_d> - b8f8: d8800417 ldw r2,16(sp) - b8fc: 00c00044 movi r3,1 - b900: 180d883a mov r6,r3 - b904: 1880062e bgeu r3,r2,b920 <__nedf2+0x70> - b908: d8800917 ldw r2,36(sp) - b90c: 8809883a mov r4,r17 - b910: 800b883a mov r5,r16 - b914: 1880022e bgeu r3,r2,b920 <__nedf2+0x70> - b918: 000c4240 call c424 <__fpcmp_parts_d> - b91c: 100d883a mov r6,r2 - b920: 3005883a mov r2,r6 - b924: dfc01017 ldw ra,64(sp) - b928: dc400f17 ldw r17,60(sp) - b92c: dc000e17 ldw r16,56(sp) - b930: dec01104 addi sp,sp,68 - b934: f800283a ret - -0000b938 <__gtdf2>: - b938: deffef04 addi sp,sp,-68 - b93c: dc400f15 stw r17,60(sp) - b940: dc400404 addi r17,sp,16 - b944: 2005883a mov r2,r4 - b948: 2807883a mov r3,r5 - b94c: dc000e15 stw r16,56(sp) - b950: d809883a mov r4,sp - b954: 880b883a mov r5,r17 - b958: dc000904 addi r16,sp,36 - b95c: d8c00115 stw r3,4(sp) - b960: d8800015 stw r2,0(sp) - b964: d9800215 stw r6,8(sp) - b968: dfc01015 stw ra,64(sp) - b96c: d9c00315 stw r7,12(sp) - b970: 000c2ec0 call c2ec <__unpack_d> - b974: d9000204 addi r4,sp,8 - b978: 800b883a mov r5,r16 - b97c: 000c2ec0 call c2ec <__unpack_d> - b980: d8800417 ldw r2,16(sp) - b984: 00c00044 movi r3,1 - b988: 01bfffc4 movi r6,-1 - b98c: 1880062e bgeu r3,r2,b9a8 <__gtdf2+0x70> - b990: d8800917 ldw r2,36(sp) - b994: 8809883a mov r4,r17 - b998: 800b883a mov r5,r16 - b99c: 1880022e bgeu r3,r2,b9a8 <__gtdf2+0x70> - b9a0: 000c4240 call c424 <__fpcmp_parts_d> - b9a4: 100d883a mov r6,r2 - b9a8: 3005883a mov r2,r6 - b9ac: dfc01017 ldw ra,64(sp) - b9b0: dc400f17 ldw r17,60(sp) - b9b4: dc000e17 ldw r16,56(sp) - b9b8: dec01104 addi sp,sp,68 - b9bc: f800283a ret - -0000b9c0 <__gedf2>: - b9c0: deffef04 addi sp,sp,-68 - b9c4: dc400f15 stw r17,60(sp) - b9c8: dc400404 addi r17,sp,16 - b9cc: 2005883a mov r2,r4 - b9d0: 2807883a mov r3,r5 - b9d4: dc000e15 stw r16,56(sp) - b9d8: d809883a mov r4,sp - b9dc: 880b883a mov r5,r17 - b9e0: dc000904 addi r16,sp,36 - b9e4: d8c00115 stw r3,4(sp) - b9e8: d8800015 stw r2,0(sp) - b9ec: d9800215 stw r6,8(sp) - b9f0: dfc01015 stw ra,64(sp) - b9f4: d9c00315 stw r7,12(sp) - b9f8: 000c2ec0 call c2ec <__unpack_d> - b9fc: d9000204 addi r4,sp,8 - ba00: 800b883a mov r5,r16 - ba04: 000c2ec0 call c2ec <__unpack_d> - ba08: d8800417 ldw r2,16(sp) - ba0c: 00c00044 movi r3,1 - ba10: 01bfffc4 movi r6,-1 - ba14: 1880062e bgeu r3,r2,ba30 <__gedf2+0x70> - ba18: d8800917 ldw r2,36(sp) - ba1c: 8809883a mov r4,r17 - ba20: 800b883a mov r5,r16 - ba24: 1880022e bgeu r3,r2,ba30 <__gedf2+0x70> - ba28: 000c4240 call c424 <__fpcmp_parts_d> - ba2c: 100d883a mov r6,r2 - ba30: 3005883a mov r2,r6 - ba34: dfc01017 ldw ra,64(sp) - ba38: dc400f17 ldw r17,60(sp) - ba3c: dc000e17 ldw r16,56(sp) - ba40: dec01104 addi sp,sp,68 - ba44: f800283a ret - -0000ba48 <__ltdf2>: - ba48: deffef04 addi sp,sp,-68 - ba4c: dc400f15 stw r17,60(sp) - ba50: dc400404 addi r17,sp,16 - ba54: 2005883a mov r2,r4 - ba58: 2807883a mov r3,r5 - ba5c: dc000e15 stw r16,56(sp) - ba60: d809883a mov r4,sp - ba64: 880b883a mov r5,r17 - ba68: dc000904 addi r16,sp,36 - ba6c: d8c00115 stw r3,4(sp) - ba70: d8800015 stw r2,0(sp) - ba74: d9800215 stw r6,8(sp) - ba78: dfc01015 stw ra,64(sp) - ba7c: d9c00315 stw r7,12(sp) - ba80: 000c2ec0 call c2ec <__unpack_d> - ba84: d9000204 addi r4,sp,8 - ba88: 800b883a mov r5,r16 - ba8c: 000c2ec0 call c2ec <__unpack_d> - ba90: d8800417 ldw r2,16(sp) - ba94: 00c00044 movi r3,1 - ba98: 180d883a mov r6,r3 - ba9c: 1880062e bgeu r3,r2,bab8 <__ltdf2+0x70> - baa0: d8800917 ldw r2,36(sp) - baa4: 8809883a mov r4,r17 - baa8: 800b883a mov r5,r16 - baac: 1880022e bgeu r3,r2,bab8 <__ltdf2+0x70> - bab0: 000c4240 call c424 <__fpcmp_parts_d> - bab4: 100d883a mov r6,r2 - bab8: 3005883a mov r2,r6 - babc: dfc01017 ldw ra,64(sp) - bac0: dc400f17 ldw r17,60(sp) - bac4: dc000e17 ldw r16,56(sp) - bac8: dec01104 addi sp,sp,68 - bacc: f800283a ret - -0000bad0 <__floatsidf>: - bad0: 2006d7fa srli r3,r4,31 - bad4: defff604 addi sp,sp,-40 - bad8: 008000c4 movi r2,3 - badc: dfc00915 stw ra,36(sp) - bae0: dcc00815 stw r19,32(sp) - bae4: dc800715 stw r18,28(sp) - bae8: dc400615 stw r17,24(sp) - baec: dc000515 stw r16,20(sp) - baf0: d8800015 stw r2,0(sp) - baf4: d8c00115 stw r3,4(sp) - baf8: 20000f1e bne r4,zero,bb38 <__floatsidf+0x68> - bafc: 00800084 movi r2,2 - bb00: d8800015 stw r2,0(sp) - bb04: d809883a mov r4,sp - bb08: 000bfd80 call bfd8 <__pack_d> - bb0c: 1009883a mov r4,r2 - bb10: 180b883a mov r5,r3 - bb14: 2005883a mov r2,r4 - bb18: 2807883a mov r3,r5 - bb1c: dfc00917 ldw ra,36(sp) - bb20: dcc00817 ldw r19,32(sp) - bb24: dc800717 ldw r18,28(sp) - bb28: dc400617 ldw r17,24(sp) - bb2c: dc000517 ldw r16,20(sp) - bb30: dec00a04 addi sp,sp,40 - bb34: f800283a ret - bb38: 00800f04 movi r2,60 - bb3c: 1807003a cmpeq r3,r3,zero - bb40: d8800215 stw r2,8(sp) - bb44: 18001126 beq r3,zero,bb8c <__floatsidf+0xbc> - bb48: 0027883a mov r19,zero - bb4c: 2025883a mov r18,r4 - bb50: d9000315 stw r4,12(sp) - bb54: dcc00415 stw r19,16(sp) - bb58: 000bf580 call bf58 <__clzsi2> - bb5c: 11000744 addi r4,r2,29 - bb60: 013fe80e bge zero,r4,bb04 <__floatsidf+0x34> - bb64: 10bfff44 addi r2,r2,-3 - bb68: 10000c16 blt r2,zero,bb9c <__floatsidf+0xcc> - bb6c: 90a2983a sll r17,r18,r2 - bb70: 0021883a mov r16,zero - bb74: d8800217 ldw r2,8(sp) - bb78: dc400415 stw r17,16(sp) - bb7c: dc000315 stw r16,12(sp) - bb80: 1105c83a sub r2,r2,r4 - bb84: d8800215 stw r2,8(sp) - bb88: 003fde06 br bb04 <__floatsidf+0x34> - bb8c: 00a00034 movhi r2,32768 - bb90: 20800a26 beq r4,r2,bbbc <__floatsidf+0xec> - bb94: 0109c83a sub r4,zero,r4 - bb98: 003feb06 br bb48 <__floatsidf+0x78> - bb9c: 9006d07a srli r3,r18,1 - bba0: 008007c4 movi r2,31 - bba4: 1105c83a sub r2,r2,r4 - bba8: 1886d83a srl r3,r3,r2 - bbac: 9922983a sll r17,r19,r4 - bbb0: 9120983a sll r16,r18,r4 - bbb4: 1c62b03a or r17,r3,r17 - bbb8: 003fee06 br bb74 <__floatsidf+0xa4> - bbbc: 0009883a mov r4,zero - bbc0: 01707834 movhi r5,49632 - bbc4: 003fd306 br bb14 <__floatsidf+0x44> - -0000bbc8 <__fixdfsi>: - bbc8: defff804 addi sp,sp,-32 - bbcc: 2005883a mov r2,r4 - bbd0: 2807883a mov r3,r5 - bbd4: d809883a mov r4,sp - bbd8: d9400204 addi r5,sp,8 - bbdc: d8c00115 stw r3,4(sp) - bbe0: d8800015 stw r2,0(sp) - bbe4: dfc00715 stw ra,28(sp) - bbe8: 000c2ec0 call c2ec <__unpack_d> - bbec: d8c00217 ldw r3,8(sp) - bbf0: 00800084 movi r2,2 - bbf4: 1880051e bne r3,r2,bc0c <__fixdfsi+0x44> - bbf8: 0007883a mov r3,zero - bbfc: 1805883a mov r2,r3 - bc00: dfc00717 ldw ra,28(sp) - bc04: dec00804 addi sp,sp,32 - bc08: f800283a ret - bc0c: 00800044 movi r2,1 - bc10: 10fff92e bgeu r2,r3,bbf8 <__fixdfsi+0x30> - bc14: 00800104 movi r2,4 - bc18: 18800426 beq r3,r2,bc2c <__fixdfsi+0x64> - bc1c: d8c00417 ldw r3,16(sp) - bc20: 183ff516 blt r3,zero,bbf8 <__fixdfsi+0x30> - bc24: 00800784 movi r2,30 - bc28: 10c0080e bge r2,r3,bc4c <__fixdfsi+0x84> - bc2c: d8800317 ldw r2,12(sp) - bc30: 1000121e bne r2,zero,bc7c <__fixdfsi+0xb4> - bc34: 00e00034 movhi r3,32768 - bc38: 18ffffc4 addi r3,r3,-1 - bc3c: 1805883a mov r2,r3 - bc40: dfc00717 ldw ra,28(sp) - bc44: dec00804 addi sp,sp,32 - bc48: f800283a ret - bc4c: 00800f04 movi r2,60 - bc50: 10d1c83a sub r8,r2,r3 - bc54: 40bff804 addi r2,r8,-32 - bc58: d9800517 ldw r6,20(sp) - bc5c: d9c00617 ldw r7,24(sp) - bc60: 10000816 blt r2,zero,bc84 <__fixdfsi+0xbc> - bc64: 3888d83a srl r4,r7,r2 - bc68: d8800317 ldw r2,12(sp) - bc6c: 2007883a mov r3,r4 - bc70: 103fe226 beq r2,zero,bbfc <__fixdfsi+0x34> - bc74: 0107c83a sub r3,zero,r4 - bc78: 003fe006 br bbfc <__fixdfsi+0x34> - bc7c: 00e00034 movhi r3,32768 - bc80: 003fde06 br bbfc <__fixdfsi+0x34> - bc84: 39c7883a add r3,r7,r7 - bc88: 008007c4 movi r2,31 - bc8c: 1205c83a sub r2,r2,r8 - bc90: 1886983a sll r3,r3,r2 - bc94: 3208d83a srl r4,r6,r8 - bc98: 1908b03a or r4,r3,r4 - bc9c: 003ff206 br bc68 <__fixdfsi+0xa0> - -0000bca0 <__floatunsidf>: - bca0: defff204 addi sp,sp,-56 - bca4: dfc00d15 stw ra,52(sp) - bca8: ddc00c15 stw r23,48(sp) - bcac: dd800b15 stw r22,44(sp) - bcb0: dd400a15 stw r21,40(sp) - bcb4: dd000915 stw r20,36(sp) - bcb8: dcc00815 stw r19,32(sp) - bcbc: dc800715 stw r18,28(sp) - bcc0: dc400615 stw r17,24(sp) - bcc4: dc000515 stw r16,20(sp) - bcc8: d8000115 stw zero,4(sp) - bccc: 20000f1e bne r4,zero,bd0c <__floatunsidf+0x6c> - bcd0: 00800084 movi r2,2 - bcd4: d8800015 stw r2,0(sp) - bcd8: d809883a mov r4,sp - bcdc: 000bfd80 call bfd8 <__pack_d> - bce0: dfc00d17 ldw ra,52(sp) - bce4: ddc00c17 ldw r23,48(sp) - bce8: dd800b17 ldw r22,44(sp) - bcec: dd400a17 ldw r21,40(sp) - bcf0: dd000917 ldw r20,36(sp) - bcf4: dcc00817 ldw r19,32(sp) - bcf8: dc800717 ldw r18,28(sp) - bcfc: dc400617 ldw r17,24(sp) - bd00: dc000517 ldw r16,20(sp) - bd04: dec00e04 addi sp,sp,56 - bd08: f800283a ret - bd0c: 008000c4 movi r2,3 - bd10: 00c00f04 movi r3,60 - bd14: 002f883a mov r23,zero - bd18: 202d883a mov r22,r4 - bd1c: d8800015 stw r2,0(sp) - bd20: d8c00215 stw r3,8(sp) - bd24: d9000315 stw r4,12(sp) - bd28: ddc00415 stw r23,16(sp) - bd2c: 000bf580 call bf58 <__clzsi2> - bd30: 12400744 addi r9,r2,29 - bd34: 48000b16 blt r9,zero,bd64 <__floatunsidf+0xc4> - bd38: 483fe726 beq r9,zero,bcd8 <__floatunsidf+0x38> - bd3c: 10bfff44 addi r2,r2,-3 - bd40: 10002e16 blt r2,zero,bdfc <__floatunsidf+0x15c> - bd44: b0a2983a sll r17,r22,r2 - bd48: 0021883a mov r16,zero - bd4c: d8800217 ldw r2,8(sp) - bd50: dc400415 stw r17,16(sp) - bd54: dc000315 stw r16,12(sp) - bd58: 1245c83a sub r2,r2,r9 - bd5c: d8800215 stw r2,8(sp) - bd60: 003fdd06 br bcd8 <__floatunsidf+0x38> - bd64: 0255c83a sub r10,zero,r9 - bd68: 51bff804 addi r6,r10,-32 - bd6c: 30001b16 blt r6,zero,bddc <__floatunsidf+0x13c> - bd70: b9a8d83a srl r20,r23,r6 - bd74: 002b883a mov r21,zero - bd78: 000f883a mov r7,zero - bd7c: 01000044 movi r4,1 - bd80: 0011883a mov r8,zero - bd84: 30002516 blt r6,zero,be1c <__floatunsidf+0x17c> - bd88: 21a6983a sll r19,r4,r6 - bd8c: 0025883a mov r18,zero - bd90: 00bfffc4 movi r2,-1 - bd94: 9089883a add r4,r18,r2 - bd98: 988b883a add r5,r19,r2 - bd9c: 248d803a cmpltu r6,r4,r18 - bda0: 314b883a add r5,r6,r5 - bda4: b104703a and r2,r22,r4 - bda8: b946703a and r3,r23,r5 - bdac: 10c4b03a or r2,r2,r3 - bdb0: 10000226 beq r2,zero,bdbc <__floatunsidf+0x11c> - bdb4: 01c00044 movi r7,1 - bdb8: 0011883a mov r8,zero - bdbc: d9000217 ldw r4,8(sp) - bdc0: a1c4b03a or r2,r20,r7 - bdc4: aa06b03a or r3,r21,r8 - bdc8: 2249c83a sub r4,r4,r9 - bdcc: d8c00415 stw r3,16(sp) - bdd0: d9000215 stw r4,8(sp) - bdd4: d8800315 stw r2,12(sp) - bdd8: 003fbf06 br bcd8 <__floatunsidf+0x38> - bddc: bdc7883a add r3,r23,r23 - bde0: 008007c4 movi r2,31 - bde4: 1285c83a sub r2,r2,r10 - bde8: 1886983a sll r3,r3,r2 - bdec: b2a8d83a srl r20,r22,r10 - bdf0: baaad83a srl r21,r23,r10 - bdf4: 1d28b03a or r20,r3,r20 - bdf8: 003fdf06 br bd78 <__floatunsidf+0xd8> - bdfc: b006d07a srli r3,r22,1 - be00: 008007c4 movi r2,31 - be04: 1245c83a sub r2,r2,r9 - be08: 1886d83a srl r3,r3,r2 - be0c: ba62983a sll r17,r23,r9 - be10: b260983a sll r16,r22,r9 - be14: 1c62b03a or r17,r3,r17 - be18: 003fcc06 br bd4c <__floatunsidf+0xac> - be1c: 2006d07a srli r3,r4,1 - be20: 008007c4 movi r2,31 - be24: 1285c83a sub r2,r2,r10 - be28: 18a6d83a srl r19,r3,r2 - be2c: 22a4983a sll r18,r4,r10 - be30: 003fd706 br bd90 <__floatunsidf+0xf0> - -0000be34 <__muldi3>: - be34: defff204 addi sp,sp,-56 - be38: df000c15 stw fp,48(sp) - be3c: 3038d43a srli fp,r6,16 - be40: dd000815 stw r20,32(sp) - be44: dc400515 stw r17,20(sp) - be48: 2028d43a srli r20,r4,16 - be4c: 247fffcc andi r17,r4,65535 - be50: dc000415 stw r16,16(sp) - be54: 343fffcc andi r16,r6,65535 - be58: dcc00715 stw r19,28(sp) - be5c: d9000015 stw r4,0(sp) - be60: 2827883a mov r19,r5 - be64: 8809883a mov r4,r17 - be68: d9400115 stw r5,4(sp) - be6c: 800b883a mov r5,r16 - be70: d9800215 stw r6,8(sp) - be74: dfc00d15 stw ra,52(sp) - be78: d9c00315 stw r7,12(sp) - be7c: dd800a15 stw r22,40(sp) - be80: dd400915 stw r21,36(sp) - be84: 302d883a mov r22,r6 - be88: ddc00b15 stw r23,44(sp) - be8c: dc800615 stw r18,24(sp) - be90: 0002c240 call 2c24 <__mulsi3> - be94: 8809883a mov r4,r17 - be98: e00b883a mov r5,fp - be9c: 102b883a mov r21,r2 - bea0: 0002c240 call 2c24 <__mulsi3> - bea4: 800b883a mov r5,r16 - bea8: a009883a mov r4,r20 - beac: 1023883a mov r17,r2 - beb0: 0002c240 call 2c24 <__mulsi3> - beb4: a009883a mov r4,r20 - beb8: e00b883a mov r5,fp - bebc: 1021883a mov r16,r2 - bec0: 0002c240 call 2c24 <__mulsi3> - bec4: a8ffffcc andi r3,r21,65535 - bec8: a82ad43a srli r21,r21,16 - becc: 8c23883a add r17,r17,r16 - bed0: 1011883a mov r8,r2 - bed4: ac6b883a add r21,r21,r17 - bed8: a804943a slli r2,r21,16 - bedc: b009883a mov r4,r22 - bee0: 980b883a mov r5,r19 - bee4: 10c7883a add r3,r2,r3 - bee8: a812d43a srli r9,r21,16 - beec: 180d883a mov r6,r3 - bef0: ac00022e bgeu r21,r16,befc <__muldi3+0xc8> - bef4: 00800074 movhi r2,1 - bef8: 4091883a add r8,r8,r2 - befc: 4267883a add r19,r8,r9 - bf00: 302d883a mov r22,r6 - bf04: 0002c240 call 2c24 <__mulsi3> - bf08: d9400317 ldw r5,12(sp) - bf0c: d9000017 ldw r4,0(sp) - bf10: 1023883a mov r17,r2 - bf14: 0002c240 call 2c24 <__mulsi3> - bf18: 14cb883a add r5,r2,r19 - bf1c: 894b883a add r5,r17,r5 - bf20: b005883a mov r2,r22 - bf24: 2807883a mov r3,r5 - bf28: dfc00d17 ldw ra,52(sp) - bf2c: df000c17 ldw fp,48(sp) - bf30: ddc00b17 ldw r23,44(sp) - bf34: dd800a17 ldw r22,40(sp) - bf38: dd400917 ldw r21,36(sp) - bf3c: dd000817 ldw r20,32(sp) - bf40: dcc00717 ldw r19,28(sp) - bf44: dc800617 ldw r18,24(sp) - bf48: dc400517 ldw r17,20(sp) - bf4c: dc000417 ldw r16,16(sp) - bf50: dec00e04 addi sp,sp,56 - bf54: f800283a ret - -0000bf58 <__clzsi2>: - bf58: 00bfffd4 movui r2,65535 - bf5c: 11000e36 bltu r2,r4,bf98 <__clzsi2+0x40> - bf60: 00803fc4 movi r2,255 - bf64: 01400204 movi r5,8 - bf68: 0007883a mov r3,zero - bf6c: 11001036 bltu r2,r4,bfb0 <__clzsi2+0x58> - bf70: 000b883a mov r5,zero - bf74: 20c6d83a srl r3,r4,r3 - bf78: 00800074 movhi r2,1 - bf7c: 10815d04 addi r2,r2,1396 - bf80: 1887883a add r3,r3,r2 - bf84: 18800003 ldbu r2,0(r3) - bf88: 00c00804 movi r3,32 - bf8c: 2885883a add r2,r5,r2 - bf90: 1885c83a sub r2,r3,r2 - bf94: f800283a ret - bf98: 01400404 movi r5,16 - bf9c: 00804034 movhi r2,256 - bfa0: 10bfffc4 addi r2,r2,-1 - bfa4: 2807883a mov r3,r5 - bfa8: 113ff22e bgeu r2,r4,bf74 <__clzsi2+0x1c> - bfac: 01400604 movi r5,24 - bfb0: 2807883a mov r3,r5 - bfb4: 20c6d83a srl r3,r4,r3 - bfb8: 00800074 movhi r2,1 - bfbc: 10815d04 addi r2,r2,1396 - bfc0: 1887883a add r3,r3,r2 - bfc4: 18800003 ldbu r2,0(r3) - bfc8: 00c00804 movi r3,32 - bfcc: 2885883a add r2,r5,r2 - bfd0: 1885c83a sub r2,r3,r2 - bfd4: f800283a ret - -0000bfd8 <__pack_d>: - bfd8: 20c00017 ldw r3,0(r4) - bfdc: defffd04 addi sp,sp,-12 - bfe0: dc000015 stw r16,0(sp) - bfe4: dc800215 stw r18,8(sp) - bfe8: dc400115 stw r17,4(sp) - bfec: 00800044 movi r2,1 - bff0: 22000317 ldw r8,12(r4) - bff4: 001f883a mov r15,zero - bff8: 22400417 ldw r9,16(r4) - bffc: 24000117 ldw r16,4(r4) - c000: 10c0552e bgeu r2,r3,c158 <__pack_d+0x180> - c004: 00800104 movi r2,4 - c008: 18804f26 beq r3,r2,c148 <__pack_d+0x170> - c00c: 00800084 movi r2,2 - c010: 18800226 beq r3,r2,c01c <__pack_d+0x44> - c014: 4244b03a or r2,r8,r9 - c018: 10001a1e bne r2,zero,c084 <__pack_d+0xac> - c01c: 000d883a mov r6,zero - c020: 000f883a mov r7,zero - c024: 0011883a mov r8,zero - c028: 00800434 movhi r2,16 - c02c: 10bfffc4 addi r2,r2,-1 - c030: 301d883a mov r14,r6 - c034: 3884703a and r2,r7,r2 - c038: 400a953a slli r5,r8,20 - c03c: 79bffc2c andhi r6,r15,65520 - c040: 308cb03a or r6,r6,r2 - c044: 00e00434 movhi r3,32784 - c048: 18ffffc4 addi r3,r3,-1 - c04c: 800497fa slli r2,r16,31 - c050: 30c6703a and r3,r6,r3 - c054: 1946b03a or r3,r3,r5 - c058: 01600034 movhi r5,32768 - c05c: 297fffc4 addi r5,r5,-1 - c060: 194a703a and r5,r3,r5 - c064: 288ab03a or r5,r5,r2 - c068: 2807883a mov r3,r5 - c06c: 7005883a mov r2,r14 - c070: dc800217 ldw r18,8(sp) - c074: dc400117 ldw r17,4(sp) - c078: dc000017 ldw r16,0(sp) - c07c: dec00304 addi sp,sp,12 - c080: f800283a ret - c084: 21000217 ldw r4,8(r4) - c088: 00bf0084 movi r2,-1022 - c08c: 20803f16 blt r4,r2,c18c <__pack_d+0x1b4> - c090: 0080ffc4 movi r2,1023 - c094: 11002c16 blt r2,r4,c148 <__pack_d+0x170> - c098: 00803fc4 movi r2,255 - c09c: 408c703a and r6,r8,r2 - c0a0: 00802004 movi r2,128 - c0a4: 0007883a mov r3,zero - c0a8: 000f883a mov r7,zero - c0ac: 2280ffc4 addi r10,r4,1023 - c0b0: 30801e26 beq r6,r2,c12c <__pack_d+0x154> - c0b4: 00801fc4 movi r2,127 - c0b8: 4089883a add r4,r8,r2 - c0bc: 220d803a cmpltu r6,r4,r8 - c0c0: 324d883a add r6,r6,r9 - c0c4: 2011883a mov r8,r4 - c0c8: 3013883a mov r9,r6 - c0cc: 00880034 movhi r2,8192 - c0d0: 10bfffc4 addi r2,r2,-1 - c0d4: 12400d36 bltu r2,r9,c10c <__pack_d+0x134> - c0d8: 4804963a slli r2,r9,24 - c0dc: 400cd23a srli r6,r8,8 - c0e0: 480ed23a srli r7,r9,8 - c0e4: 013fffc4 movi r4,-1 - c0e8: 118cb03a or r6,r2,r6 - c0ec: 01400434 movhi r5,16 - c0f0: 297fffc4 addi r5,r5,-1 - c0f4: 3104703a and r2,r6,r4 - c0f8: 3946703a and r3,r7,r5 - c0fc: 5201ffcc andi r8,r10,2047 - c100: 100d883a mov r6,r2 - c104: 180f883a mov r7,r3 - c108: 003fc706 br c028 <__pack_d+0x50> - c10c: 480897fa slli r4,r9,31 - c110: 4004d07a srli r2,r8,1 - c114: 4806d07a srli r3,r9,1 - c118: 52800044 addi r10,r10,1 - c11c: 2084b03a or r2,r4,r2 - c120: 1011883a mov r8,r2 - c124: 1813883a mov r9,r3 - c128: 003feb06 br c0d8 <__pack_d+0x100> - c12c: 383fe11e bne r7,zero,c0b4 <__pack_d+0xdc> - c130: 01004004 movi r4,256 - c134: 4104703a and r2,r8,r4 - c138: 10c4b03a or r2,r2,r3 - c13c: 103fe326 beq r2,zero,c0cc <__pack_d+0xf4> - c140: 3005883a mov r2,r6 - c144: 003fdc06 br c0b8 <__pack_d+0xe0> - c148: 000d883a mov r6,zero - c14c: 000f883a mov r7,zero - c150: 0201ffc4 movi r8,2047 - c154: 003fb406 br c028 <__pack_d+0x50> - c158: 0005883a mov r2,zero - c15c: 00c00234 movhi r3,8 - c160: 408cb03a or r6,r8,r2 - c164: 48ceb03a or r7,r9,r3 - c168: 013fffc4 movi r4,-1 - c16c: 01400434 movhi r5,16 - c170: 297fffc4 addi r5,r5,-1 - c174: 3104703a and r2,r6,r4 - c178: 3946703a and r3,r7,r5 - c17c: 100d883a mov r6,r2 - c180: 180f883a mov r7,r3 - c184: 0201ffc4 movi r8,2047 - c188: 003fa706 br c028 <__pack_d+0x50> - c18c: 1109c83a sub r4,r2,r4 - c190: 00800e04 movi r2,56 - c194: 11004316 blt r2,r4,c2a4 <__pack_d+0x2cc> - c198: 21fff804 addi r7,r4,-32 - c19c: 38004516 blt r7,zero,c2b4 <__pack_d+0x2dc> - c1a0: 49d8d83a srl r12,r9,r7 - c1a4: 001b883a mov r13,zero - c1a8: 0023883a mov r17,zero - c1ac: 01400044 movi r5,1 - c1b0: 0025883a mov r18,zero - c1b4: 38004716 blt r7,zero,c2d4 <__pack_d+0x2fc> - c1b8: 29d6983a sll r11,r5,r7 - c1bc: 0015883a mov r10,zero - c1c0: 00bfffc4 movi r2,-1 - c1c4: 5089883a add r4,r10,r2 - c1c8: 588b883a add r5,r11,r2 - c1cc: 228d803a cmpltu r6,r4,r10 - c1d0: 314b883a add r5,r6,r5 - c1d4: 4104703a and r2,r8,r4 - c1d8: 4946703a and r3,r9,r5 - c1dc: 10c4b03a or r2,r2,r3 - c1e0: 10000226 beq r2,zero,c1ec <__pack_d+0x214> - c1e4: 04400044 movi r17,1 - c1e8: 0025883a mov r18,zero - c1ec: 00803fc4 movi r2,255 - c1f0: 644eb03a or r7,r12,r17 - c1f4: 3892703a and r9,r7,r2 - c1f8: 00802004 movi r2,128 - c1fc: 6c90b03a or r8,r13,r18 - c200: 0015883a mov r10,zero - c204: 48801626 beq r9,r2,c260 <__pack_d+0x288> - c208: 01001fc4 movi r4,127 - c20c: 3905883a add r2,r7,r4 - c210: 11cd803a cmpltu r6,r2,r7 - c214: 320d883a add r6,r6,r8 - c218: 100f883a mov r7,r2 - c21c: 00840034 movhi r2,4096 - c220: 10bfffc4 addi r2,r2,-1 - c224: 3011883a mov r8,r6 - c228: 0007883a mov r3,zero - c22c: 11801b36 bltu r2,r6,c29c <__pack_d+0x2c4> - c230: 4004963a slli r2,r8,24 - c234: 3808d23a srli r4,r7,8 - c238: 400ad23a srli r5,r8,8 - c23c: 1813883a mov r9,r3 - c240: 1108b03a or r4,r2,r4 - c244: 00bfffc4 movi r2,-1 - c248: 00c00434 movhi r3,16 - c24c: 18ffffc4 addi r3,r3,-1 - c250: 208c703a and r6,r4,r2 - c254: 28ce703a and r7,r5,r3 - c258: 4a01ffcc andi r8,r9,2047 - c25c: 003f7206 br c028 <__pack_d+0x50> - c260: 503fe91e bne r10,zero,c208 <__pack_d+0x230> - c264: 01004004 movi r4,256 - c268: 3904703a and r2,r7,r4 - c26c: 0007883a mov r3,zero - c270: 10c4b03a or r2,r2,r3 - c274: 10000626 beq r2,zero,c290 <__pack_d+0x2b8> - c278: 3a45883a add r2,r7,r9 - c27c: 11cd803a cmpltu r6,r2,r7 - c280: 320d883a add r6,r6,r8 - c284: 100f883a mov r7,r2 - c288: 3011883a mov r8,r6 - c28c: 0007883a mov r3,zero - c290: 00840034 movhi r2,4096 - c294: 10bfffc4 addi r2,r2,-1 - c298: 123fe52e bgeu r2,r8,c230 <__pack_d+0x258> - c29c: 00c00044 movi r3,1 - c2a0: 003fe306 br c230 <__pack_d+0x258> - c2a4: 0009883a mov r4,zero - c2a8: 0013883a mov r9,zero - c2ac: 000b883a mov r5,zero - c2b0: 003fe406 br c244 <__pack_d+0x26c> - c2b4: 4a47883a add r3,r9,r9 - c2b8: 008007c4 movi r2,31 - c2bc: 1105c83a sub r2,r2,r4 - c2c0: 1886983a sll r3,r3,r2 - c2c4: 4118d83a srl r12,r8,r4 - c2c8: 491ad83a srl r13,r9,r4 - c2cc: 1b18b03a or r12,r3,r12 - c2d0: 003fb506 br c1a8 <__pack_d+0x1d0> - c2d4: 2806d07a srli r3,r5,1 - c2d8: 008007c4 movi r2,31 - c2dc: 1105c83a sub r2,r2,r4 - c2e0: 1896d83a srl r11,r3,r2 - c2e4: 2914983a sll r10,r5,r4 - c2e8: 003fb506 br c1c0 <__pack_d+0x1e8> - -0000c2ec <__unpack_d>: - c2ec: 20c00117 ldw r3,4(r4) - c2f0: 22400017 ldw r9,0(r4) - c2f4: 00800434 movhi r2,16 - c2f8: 10bfffc4 addi r2,r2,-1 - c2fc: 1808d53a srli r4,r3,20 - c300: 180cd7fa srli r6,r3,31 - c304: 1894703a and r10,r3,r2 - c308: 2201ffcc andi r8,r4,2047 - c30c: 281b883a mov r13,r5 - c310: 4817883a mov r11,r9 - c314: 29800115 stw r6,4(r5) - c318: 5019883a mov r12,r10 - c31c: 40001e1e bne r8,zero,c398 <__unpack_d+0xac> - c320: 4a84b03a or r2,r9,r10 - c324: 10001926 beq r2,zero,c38c <__unpack_d+0xa0> - c328: 4804d63a srli r2,r9,24 - c32c: 500c923a slli r6,r10,8 - c330: 013f0084 movi r4,-1022 - c334: 00c40034 movhi r3,4096 - c338: 18ffffc4 addi r3,r3,-1 - c33c: 118cb03a or r6,r2,r6 - c340: 008000c4 movi r2,3 - c344: 480a923a slli r5,r9,8 - c348: 68800015 stw r2,0(r13) - c34c: 69000215 stw r4,8(r13) - c350: 19800b36 bltu r3,r6,c380 <__unpack_d+0x94> - c354: 200f883a mov r7,r4 - c358: 1811883a mov r8,r3 - c35c: 2945883a add r2,r5,r5 - c360: 1149803a cmpltu r4,r2,r5 - c364: 3187883a add r3,r6,r6 - c368: 20c9883a add r4,r4,r3 - c36c: 100b883a mov r5,r2 - c370: 200d883a mov r6,r4 - c374: 39ffffc4 addi r7,r7,-1 - c378: 413ff82e bgeu r8,r4,c35c <__unpack_d+0x70> - c37c: 69c00215 stw r7,8(r13) - c380: 69800415 stw r6,16(r13) - c384: 69400315 stw r5,12(r13) - c388: f800283a ret - c38c: 00800084 movi r2,2 - c390: 28800015 stw r2,0(r5) - c394: f800283a ret - c398: 0081ffc4 movi r2,2047 - c39c: 40800f26 beq r8,r2,c3dc <__unpack_d+0xf0> - c3a0: 480cd63a srli r6,r9,24 - c3a4: 5006923a slli r3,r10,8 - c3a8: 4804923a slli r2,r9,8 - c3ac: 0009883a mov r4,zero - c3b0: 30c6b03a or r3,r6,r3 - c3b4: 01440034 movhi r5,4096 - c3b8: 110cb03a or r6,r2,r4 - c3bc: 423f0044 addi r8,r8,-1023 - c3c0: 194eb03a or r7,r3,r5 - c3c4: 008000c4 movi r2,3 - c3c8: 69c00415 stw r7,16(r13) - c3cc: 6a000215 stw r8,8(r13) - c3d0: 68800015 stw r2,0(r13) - c3d4: 69800315 stw r6,12(r13) - c3d8: f800283a ret - c3dc: 4a84b03a or r2,r9,r10 - c3e0: 1000031e bne r2,zero,c3f0 <__unpack_d+0x104> - c3e4: 00800104 movi r2,4 - c3e8: 28800015 stw r2,0(r5) - c3ec: f800283a ret - c3f0: 0009883a mov r4,zero - c3f4: 01400234 movhi r5,8 - c3f8: 4904703a and r2,r9,r4 - c3fc: 5146703a and r3,r10,r5 - c400: 10c4b03a or r2,r2,r3 - c404: 10000526 beq r2,zero,c41c <__unpack_d+0x130> - c408: 00800044 movi r2,1 - c40c: 68800015 stw r2,0(r13) - c410: 6b000415 stw r12,16(r13) - c414: 6ac00315 stw r11,12(r13) - c418: f800283a ret - c41c: 68000015 stw zero,0(r13) - c420: 003ffb06 br c410 <__unpack_d+0x124> - -0000c424 <__fpcmp_parts_d>: - c424: 21800017 ldw r6,0(r4) - c428: 00c00044 movi r3,1 - c42c: 19800a2e bgeu r3,r6,c458 <__fpcmp_parts_d+0x34> - c430: 28800017 ldw r2,0(r5) - c434: 1880082e bgeu r3,r2,c458 <__fpcmp_parts_d+0x34> - c438: 00c00104 movi r3,4 - c43c: 30c02626 beq r6,r3,c4d8 <__fpcmp_parts_d+0xb4> - c440: 10c02226 beq r2,r3,c4cc <__fpcmp_parts_d+0xa8> - c444: 00c00084 movi r3,2 - c448: 30c00526 beq r6,r3,c460 <__fpcmp_parts_d+0x3c> - c44c: 10c0071e bne r2,r3,c46c <__fpcmp_parts_d+0x48> - c450: 20800117 ldw r2,4(r4) - c454: 1000091e bne r2,zero,c47c <__fpcmp_parts_d+0x58> - c458: 00800044 movi r2,1 - c45c: f800283a ret - c460: 10c01a1e bne r2,r3,c4cc <__fpcmp_parts_d+0xa8> - c464: 0005883a mov r2,zero - c468: f800283a ret - c46c: 22000117 ldw r8,4(r4) - c470: 28800117 ldw r2,4(r5) - c474: 40800326 beq r8,r2,c484 <__fpcmp_parts_d+0x60> - c478: 403ff726 beq r8,zero,c458 <__fpcmp_parts_d+0x34> - c47c: 00bfffc4 movi r2,-1 - c480: f800283a ret - c484: 20c00217 ldw r3,8(r4) - c488: 28800217 ldw r2,8(r5) - c48c: 10fffa16 blt r2,r3,c478 <__fpcmp_parts_d+0x54> - c490: 18800916 blt r3,r2,c4b8 <__fpcmp_parts_d+0x94> - c494: 21c00417 ldw r7,16(r4) - c498: 28c00417 ldw r3,16(r5) - c49c: 21800317 ldw r6,12(r4) - c4a0: 28800317 ldw r2,12(r5) - c4a4: 19fff436 bltu r3,r7,c478 <__fpcmp_parts_d+0x54> - c4a8: 38c00526 beq r7,r3,c4c0 <__fpcmp_parts_d+0x9c> - c4ac: 38c00236 bltu r7,r3,c4b8 <__fpcmp_parts_d+0x94> - c4b0: 19ffec1e bne r3,r7,c464 <__fpcmp_parts_d+0x40> - c4b4: 30bfeb2e bgeu r6,r2,c464 <__fpcmp_parts_d+0x40> - c4b8: 403fe71e bne r8,zero,c458 <__fpcmp_parts_d+0x34> - c4bc: 003fef06 br c47c <__fpcmp_parts_d+0x58> - c4c0: 11bffa2e bgeu r2,r6,c4ac <__fpcmp_parts_d+0x88> - c4c4: 403fe426 beq r8,zero,c458 <__fpcmp_parts_d+0x34> - c4c8: 003fec06 br c47c <__fpcmp_parts_d+0x58> - c4cc: 28800117 ldw r2,4(r5) - c4d0: 103fe11e bne r2,zero,c458 <__fpcmp_parts_d+0x34> - c4d4: 003fe906 br c47c <__fpcmp_parts_d+0x58> - c4d8: 11bfdd1e bne r2,r6,c450 <__fpcmp_parts_d+0x2c> - c4dc: 28c00117 ldw r3,4(r5) - c4e0: 20800117 ldw r2,4(r4) - c4e4: 1885c83a sub r2,r3,r2 - c4e8: f800283a ret - -0000c4ec : - * - * ALT_CLOSE is mapped onto the close() system call in alt_syscall.h - */ - -int ALT_CLOSE (int fildes) -{ - c4ec: defff804 addi sp,sp,-32 - c4f0: dfc00715 stw ra,28(sp) - c4f4: df000615 stw fp,24(sp) - c4f8: df000604 addi fp,sp,24 - c4fc: e13ffc15 stw r4,-16(fp) - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (fildes < 0) ? NULL : &alt_fd_list[fildes]; - c500: e0bffc17 ldw r2,-16(fp) - c504: 1004803a cmplt r2,r2,zero - c508: 1000091e bne r2,zero,c530 - c50c: e13ffc17 ldw r4,-16(fp) - c510: 01400304 movi r5,12 - c514: 0002c240 call 2c24 <__mulsi3> - c518: 1007883a mov r3,r2 - c51c: 00800074 movhi r2,1 - c520: 1083bc04 addi r2,r2,3824 - c524: 1887883a add r3,r3,r2 - c528: e0ffff15 stw r3,-4(fp) - c52c: 00000106 br c534 - c530: e03fff15 stw zero,-4(fp) - c534: e0bfff17 ldw r2,-4(fp) - c538: e0bffb15 stw r2,-20(fp) - - if (fd) - c53c: e0bffb17 ldw r2,-20(fp) - c540: 1005003a cmpeq r2,r2,zero - c544: 10001d1e bne r2,zero,c5bc - /* - * If the associated file system/device has a close function, call it so - * that any necessary cleanup code can run. - */ - - rval = (fd->dev->close) ? fd->dev->close(fd) : 0; - c548: e0bffb17 ldw r2,-20(fp) - c54c: 10800017 ldw r2,0(r2) - c550: 10800417 ldw r2,16(r2) - c554: 1005003a cmpeq r2,r2,zero - c558: 1000071e bne r2,zero,c578 - c55c: e0bffb17 ldw r2,-20(fp) - c560: 10800017 ldw r2,0(r2) - c564: 10800417 ldw r2,16(r2) - c568: e13ffb17 ldw r4,-20(fp) - c56c: 103ee83a callr r2 - c570: e0bffe15 stw r2,-8(fp) - c574: 00000106 br c57c - c578: e03ffe15 stw zero,-8(fp) - c57c: e0bffe17 ldw r2,-8(fp) - c580: e0bffa15 stw r2,-24(fp) - - /* Free the file descriptor structure and return. */ - - alt_release_fd (fildes); - c584: e13ffc17 ldw r4,-16(fp) - c588: 000cd440 call cd44 - if (rval < 0) - c58c: e0bffa17 ldw r2,-24(fp) - c590: 1004403a cmpge r2,r2,zero - c594: 1000071e bne r2,zero,c5b4 - { - ALT_ERRNO = -rval; - c598: 000c5ec0 call c5ec - c59c: e0fffa17 ldw r3,-24(fp) - c5a0: 00c7c83a sub r3,zero,r3 - c5a4: 10c00015 stw r3,0(r2) - return -1; - c5a8: 00bfffc4 movi r2,-1 - c5ac: e0bffd15 stw r2,-12(fp) - c5b0: 00000806 br c5d4 - } - return 0; - c5b4: e03ffd15 stw zero,-12(fp) - c5b8: 00000606 br c5d4 - } - else - { - ALT_ERRNO = EBADFD; - c5bc: 000c5ec0 call c5ec - c5c0: 1007883a mov r3,r2 - c5c4: 00801444 movi r2,81 - c5c8: 18800015 stw r2,0(r3) - return -1; - c5cc: 00bfffc4 movi r2,-1 - c5d0: e0bffd15 stw r2,-12(fp) - c5d4: e0bffd17 ldw r2,-12(fp) - } -} - c5d8: e037883a mov sp,fp - c5dc: dfc00117 ldw ra,4(sp) - c5e0: df000017 ldw fp,0(sp) - c5e4: dec00204 addi sp,sp,8 - c5e8: f800283a ret - -0000c5ec : -#undef errno - -extern int errno; - -static ALT_INLINE int* alt_get_errno(void) -{ - c5ec: defffd04 addi sp,sp,-12 - c5f0: dfc00215 stw ra,8(sp) - c5f4: df000115 stw fp,4(sp) - c5f8: df000104 addi fp,sp,4 - return ((alt_errno) ? alt_errno() : &errno); - c5fc: 00800074 movhi r2,1 - c600: 10888904 addi r2,r2,8740 - c604: 10800017 ldw r2,0(r2) - c608: 1005003a cmpeq r2,r2,zero - c60c: 1000061e bne r2,zero,c628 - c610: 00800074 movhi r2,1 - c614: 10888904 addi r2,r2,8740 - c618: 10800017 ldw r2,0(r2) - c61c: 103ee83a callr r2 - c620: e0bfff15 stw r2,-4(fp) - c624: 00000306 br c634 - c628: 00800074 movhi r2,1 - c62c: 108f7c04 addi r2,r2,15856 - c630: e0bfff15 stw r2,-4(fp) - c634: e0bfff17 ldw r2,-4(fp) -} - c638: e037883a mov sp,fp - c63c: dfc00117 ldw ra,4(sp) - c640: df000017 ldw fp,0(sp) - c644: dec00204 addi sp,sp,8 - c648: f800283a ret - -0000c64c : - * by the alt_dev_null device. It simple discards all data passed to it, and - * indicates that the data has been successfully transmitted. - */ - -static int alt_dev_null_write (alt_fd* fd, const char* ptr, int len) -{ - c64c: defffc04 addi sp,sp,-16 - c650: df000315 stw fp,12(sp) - c654: df000304 addi fp,sp,12 - c658: e13ffd15 stw r4,-12(fp) - c65c: e17ffe15 stw r5,-8(fp) - c660: e1bfff15 stw r6,-4(fp) - return len; - c664: e0bfff17 ldw r2,-4(fp) -} - c668: e037883a mov sp,fp - c66c: df000017 ldw fp,0(sp) - c670: dec00104 addi sp,sp,4 - c674: f800283a ret - -0000c678 : -} - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -int ALT_FSTAT (int file, struct stat *st) -{ - c678: defff904 addi sp,sp,-28 - c67c: dfc00615 stw ra,24(sp) - c680: df000515 stw fp,20(sp) - c684: df000504 addi fp,sp,20 - c688: e13ffc15 stw r4,-16(fp) - c68c: e17ffd15 stw r5,-12(fp) - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (file < 0) ? NULL : &alt_fd_list[file]; - c690: e0bffc17 ldw r2,-16(fp) - c694: 1004803a cmplt r2,r2,zero - c698: 1000091e bne r2,zero,c6c0 - c69c: e13ffc17 ldw r4,-16(fp) - c6a0: 01400304 movi r5,12 - c6a4: 0002c240 call 2c24 <__mulsi3> - c6a8: 1007883a mov r3,r2 - c6ac: 00800074 movhi r2,1 - c6b0: 1083bc04 addi r2,r2,3824 - c6b4: 1887883a add r3,r3,r2 - c6b8: e0ffff15 stw r3,-4(fp) - c6bc: 00000106 br c6c4 - c6c0: e03fff15 stw zero,-4(fp) - c6c4: e0bfff17 ldw r2,-4(fp) - c6c8: e0bffb15 stw r2,-20(fp) - - if (fd) - c6cc: e0bffb17 ldw r2,-20(fp) - c6d0: 1005003a cmpeq r2,r2,zero - c6d4: 1000121e bne r2,zero,c720 - { - /* Call the drivers fstat() function to fill out the "st" structure. */ - - if (fd->dev->fstat) - c6d8: e0bffb17 ldw r2,-20(fp) - c6dc: 10800017 ldw r2,0(r2) - c6e0: 10800817 ldw r2,32(r2) - c6e4: 1005003a cmpeq r2,r2,zero - c6e8: 1000081e bne r2,zero,c70c - { - return fd->dev->fstat(fd, st); - c6ec: e0bffb17 ldw r2,-20(fp) - c6f0: 10800017 ldw r2,0(r2) - c6f4: 10800817 ldw r2,32(r2) - c6f8: e13ffb17 ldw r4,-20(fp) - c6fc: e17ffd17 ldw r5,-12(fp) - c700: 103ee83a callr r2 - c704: e0bffe15 stw r2,-8(fp) - c708: 00000b06 br c738 - * device. - */ - - else - { - st->st_mode = _IFCHR; - c70c: e0fffd17 ldw r3,-12(fp) - c710: 00880004 movi r2,8192 - c714: 18800115 stw r2,4(r3) - return 0; - c718: e03ffe15 stw zero,-8(fp) - c71c: 00000606 br c738 - } - } - else - { - ALT_ERRNO = EBADFD; - c720: 000c7500 call c750 - c724: 1007883a mov r3,r2 - c728: 00801444 movi r2,81 - c72c: 18800015 stw r2,0(r3) - return -1; - c730: 00bfffc4 movi r2,-1 - c734: e0bffe15 stw r2,-8(fp) - c738: e0bffe17 ldw r2,-8(fp) - } -} - c73c: e037883a mov sp,fp - c740: dfc00117 ldw ra,4(sp) - c744: df000017 ldw fp,0(sp) - c748: dec00204 addi sp,sp,8 - c74c: f800283a ret - -0000c750 : -#undef errno - -extern int errno; - -static ALT_INLINE int* alt_get_errno(void) -{ - c750: defffd04 addi sp,sp,-12 - c754: dfc00215 stw ra,8(sp) - c758: df000115 stw fp,4(sp) - c75c: df000104 addi fp,sp,4 - return ((alt_errno) ? alt_errno() : &errno); - c760: 00800074 movhi r2,1 - c764: 10888904 addi r2,r2,8740 - c768: 10800017 ldw r2,0(r2) - c76c: 1005003a cmpeq r2,r2,zero - c770: 1000061e bne r2,zero,c78c - c774: 00800074 movhi r2,1 - c778: 10888904 addi r2,r2,8740 - c77c: 10800017 ldw r2,0(r2) - c780: 103ee83a callr r2 - c784: e0bfff15 stw r2,-4(fp) - c788: 00000306 br c798 - c78c: 00800074 movhi r2,1 - c790: 108f7c04 addi r2,r2,15856 - c794: e0bfff15 stw r2,-4(fp) - c798: e0bfff17 ldw r2,-4(fp) -} - c79c: e037883a mov sp,fp - c7a0: dfc00117 ldw ra,4(sp) - c7a4: df000017 ldw fp,0(sp) - c7a8: dec00204 addi sp,sp,8 - c7ac: f800283a ret - -0000c7b0 : - * - * ALT_ISATTY is mapped onto the isatty() system call in alt_syscall.h - */ - -int ALT_ISATTY (int file) -{ - c7b0: deffeb04 addi sp,sp,-84 - c7b4: dfc01415 stw ra,80(sp) - c7b8: df001315 stw fp,76(sp) - c7bc: df001304 addi fp,sp,76 - c7c0: e13ffd15 stw r4,-12(fp) - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (file < 0) ? NULL : &alt_fd_list[file]; - c7c4: e0bffd17 ldw r2,-12(fp) - c7c8: 1004803a cmplt r2,r2,zero - c7cc: 1000091e bne r2,zero,c7f4 - c7d0: e13ffd17 ldw r4,-12(fp) - c7d4: 01400304 movi r5,12 - c7d8: 0002c240 call 2c24 <__mulsi3> - c7dc: 1007883a mov r3,r2 - c7e0: 00800074 movhi r2,1 - c7e4: 1083bc04 addi r2,r2,3824 - c7e8: 1887883a add r3,r3,r2 - c7ec: e0ffff15 stw r3,-4(fp) - c7f0: 00000106 br c7f8 - c7f4: e03fff15 stw zero,-4(fp) - c7f8: e0bfff17 ldw r2,-4(fp) - c7fc: e0bfed15 stw r2,-76(fp) - - if (fd) - c800: e0bfed17 ldw r2,-76(fp) - c804: 1005003a cmpeq r2,r2,zero - c808: 10000f1e bne r2,zero,c848 - /* - * If a device driver does not provide an fstat() function, then it is - * treated as a terminal device by default. - */ - - if (!fd->dev->fstat) - c80c: e0bfed17 ldw r2,-76(fp) - c810: 10800017 ldw r2,0(r2) - c814: 10800817 ldw r2,32(r2) - c818: 1004c03a cmpne r2,r2,zero - c81c: 1000031e bne r2,zero,c82c - { - return 1; - c820: 00800044 movi r2,1 - c824: e0bffe15 stw r2,-8(fp) - c828: 00000c06 br c85c - * this is called so that the device can identify itself. - */ - - else - { - fstat (file, &stat); - c82c: e17fee04 addi r5,fp,-72 - c830: e13ffd17 ldw r4,-12(fp) - c834: 000c6780 call c678 - return (stat.st_mode == _IFCHR) ? 1 : 0; - c838: e0bfef17 ldw r2,-68(fp) - c83c: 10880020 cmpeqi r2,r2,8192 - c840: e0bffe15 stw r2,-8(fp) - c844: 00000506 br c85c - } - } - else - { - ALT_ERRNO = EBADFD; - c848: 000c8740 call c874 - c84c: 1007883a mov r3,r2 - c850: 00801444 movi r2,81 - c854: 18800015 stw r2,0(r3) - return 0; - c858: e03ffe15 stw zero,-8(fp) - c85c: e0bffe17 ldw r2,-8(fp) - } -} - c860: e037883a mov sp,fp - c864: dfc00117 ldw ra,4(sp) - c868: df000017 ldw fp,0(sp) - c86c: dec00204 addi sp,sp,8 - c870: f800283a ret - -0000c874 : -#undef errno - -extern int errno; - -static ALT_INLINE int* alt_get_errno(void) -{ - c874: defffd04 addi sp,sp,-12 - c878: dfc00215 stw ra,8(sp) - c87c: df000115 stw fp,4(sp) - c880: df000104 addi fp,sp,4 - return ((alt_errno) ? alt_errno() : &errno); - c884: 00800074 movhi r2,1 - c888: 10888904 addi r2,r2,8740 - c88c: 10800017 ldw r2,0(r2) - c890: 1005003a cmpeq r2,r2,zero - c894: 1000061e bne r2,zero,c8b0 - c898: 00800074 movhi r2,1 - c89c: 10888904 addi r2,r2,8740 - c8a0: 10800017 ldw r2,0(r2) - c8a4: 103ee83a callr r2 - c8a8: e0bfff15 stw r2,-4(fp) - c8ac: 00000306 br c8bc - c8b0: 00800074 movhi r2,1 - c8b4: 108f7c04 addi r2,r2,15856 - c8b8: e0bfff15 stw r2,-4(fp) - c8bc: e0bfff17 ldw r2,-4(fp) -} - c8c0: e037883a mov sp,fp - c8c4: dfc00117 ldw ra,4(sp) - c8c8: df000017 ldw fp,0(sp) - c8cc: dec00204 addi sp,sp,8 - c8d0: f800283a ret - -0000c8d4 : - * there is no bootloader, so this application is responsible for loading to - * RAM any sections that are required. - */ - -void alt_load (void) -{ - c8d4: defffe04 addi sp,sp,-8 - c8d8: dfc00115 stw ra,4(sp) - c8dc: df000015 stw fp,0(sp) - c8e0: d839883a mov fp,sp - /* - * Copy the .rwdata section. - */ - - alt_load_section (&__flash_rwdata_start, - c8e4: 01000074 movhi r4,1 - c8e8: 21088f04 addi r4,r4,8764 - c8ec: 01400074 movhi r5,1 - c8f0: 2941ad04 addi r5,r5,1716 - c8f4: 01800074 movhi r6,1 - c8f8: 31888f04 addi r6,r6,8764 - c8fc: 000c9540 call c954 - - /* - * Copy the exception handler. - */ - - alt_load_section (&__flash_exceptions_start, - c900: 01000034 movhi r4,0 - c904: 21000804 addi r4,r4,32 - c908: 01400034 movhi r5,0 - c90c: 29400804 addi r5,r5,32 - c910: 01800034 movhi r6,0 - c914: 31806d04 addi r6,r6,436 - c918: 000c9540 call c954 - - /* - * Copy the .rodata section. - */ - - alt_load_section (&__flash_rodata_start, - c91c: 01000074 movhi r4,1 - c920: 213fe404 addi r4,r4,-112 - c924: 01400074 movhi r5,1 - c928: 297fe404 addi r5,r5,-112 - c92c: 01800074 movhi r6,1 - c930: 3181ad04 addi r6,r6,1716 - c934: 000c9540 call c954 - - /* - * Now ensure that the caches are in synch. - */ - - alt_dcache_flush_all(); - c938: 000ee280 call ee28 - alt_icache_flush_all(); - c93c: 000f0200 call f020 -} - c940: e037883a mov sp,fp - c944: dfc00117 ldw ra,4(sp) - c948: df000017 ldw fp,0(sp) - c94c: dec00204 addi sp,sp,8 - c950: f800283a ret - -0000c954 : - */ - -static void ALT_INLINE alt_load_section (alt_u32* from, - alt_u32* to, - alt_u32* end) -{ - c954: defffc04 addi sp,sp,-16 - c958: df000315 stw fp,12(sp) - c95c: df000304 addi fp,sp,12 - c960: e13ffd15 stw r4,-12(fp) - c964: e17ffe15 stw r5,-8(fp) - c968: e1bfff15 stw r6,-4(fp) - if (to != from) - c96c: e0fffe17 ldw r3,-8(fp) - c970: e0bffd17 ldw r2,-12(fp) - c974: 18800e26 beq r3,r2,c9b0 - { - while( to != end ) - c978: 00000a06 br c9a4 - { - *to++ = *from++; - c97c: e0bffd17 ldw r2,-12(fp) - c980: 10c00017 ldw r3,0(r2) - c984: e0bffe17 ldw r2,-8(fp) - c988: 10c00015 stw r3,0(r2) - c98c: e0bffe17 ldw r2,-8(fp) - c990: 10800104 addi r2,r2,4 - c994: e0bffe15 stw r2,-8(fp) - c998: e0bffd17 ldw r2,-12(fp) - c99c: 10800104 addi r2,r2,4 - c9a0: e0bffd15 stw r2,-12(fp) - alt_u32* to, - alt_u32* end) -{ - if (to != from) - { - while( to != end ) - c9a4: e0fffe17 ldw r3,-8(fp) - c9a8: e0bfff17 ldw r2,-4(fp) - c9ac: 18bff31e bne r3,r2,c97c - { - *to++ = *from++; - } - } -} - c9b0: e037883a mov sp,fp - c9b4: df000017 ldw fp,0(sp) - c9b8: dec00104 addi sp,sp,4 - c9bc: f800283a ret - -0000c9c0 : - * ALT_LSEEK is mapped onto the lseek() system call in alt_syscall.h - * - */ - -off_t ALT_LSEEK (int file, off_t ptr, int dir) -{ - c9c0: defff804 addi sp,sp,-32 - c9c4: dfc00715 stw ra,28(sp) - c9c8: df000615 stw fp,24(sp) - c9cc: df000604 addi fp,sp,24 - c9d0: e13ffc15 stw r4,-16(fp) - c9d4: e17ffd15 stw r5,-12(fp) - c9d8: e1bffe15 stw r6,-8(fp) - alt_fd* fd; - off_t rc = 0; - c9dc: e03ffa15 stw zero,-24(fp) - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (file < 0) ? NULL : &alt_fd_list[file]; - c9e0: e0bffc17 ldw r2,-16(fp) - c9e4: 1004803a cmplt r2,r2,zero - c9e8: 1000091e bne r2,zero,ca10 - c9ec: e13ffc17 ldw r4,-16(fp) - c9f0: 01400304 movi r5,12 - c9f4: 0002c240 call 2c24 <__mulsi3> - c9f8: 1007883a mov r3,r2 - c9fc: 00800074 movhi r2,1 - ca00: 1083bc04 addi r2,r2,3824 - ca04: 1887883a add r3,r3,r2 - ca08: e0ffff15 stw r3,-4(fp) - ca0c: 00000106 br ca14 - ca10: e03fff15 stw zero,-4(fp) - ca14: e0bfff17 ldw r2,-4(fp) - ca18: e0bffb15 stw r2,-20(fp) - - if (fd) - ca1c: e0bffb17 ldw r2,-20(fp) - ca20: 1005003a cmpeq r2,r2,zero - ca24: 1000111e bne r2,zero,ca6c - /* - * If the device driver provides an implementation of the lseek() function, - * then call that to process the request. - */ - - if (fd->dev->lseek) - ca28: e0bffb17 ldw r2,-20(fp) - ca2c: 10800017 ldw r2,0(r2) - ca30: 10800717 ldw r2,28(r2) - ca34: 1005003a cmpeq r2,r2,zero - ca38: 1000091e bne r2,zero,ca60 - { - rc = fd->dev->lseek(fd, ptr, dir); - ca3c: e0bffb17 ldw r2,-20(fp) - ca40: 10800017 ldw r2,0(r2) - ca44: 10800717 ldw r2,28(r2) - ca48: e13ffb17 ldw r4,-20(fp) - ca4c: e17ffd17 ldw r5,-12(fp) - ca50: e1bffe17 ldw r6,-8(fp) - ca54: 103ee83a callr r2 - ca58: e0bffa15 stw r2,-24(fp) - ca5c: 00000506 br ca74 - * Otherwise return an error. - */ - - else - { - rc = -ENOTSUP; - ca60: 00bfde84 movi r2,-134 - ca64: e0bffa15 stw r2,-24(fp) - ca68: 00000206 br ca74 - } - } - else - { - rc = -EBADFD; - ca6c: 00bfebc4 movi r2,-81 - ca70: e0bffa15 stw r2,-24(fp) - } - - if (rc < 0) - ca74: e0bffa17 ldw r2,-24(fp) - ca78: 1004403a cmpge r2,r2,zero - ca7c: 1000071e bne r2,zero,ca9c - { - ALT_ERRNO = -rc; - ca80: 000cab40 call cab4 - ca84: 1007883a mov r3,r2 - ca88: e0bffa17 ldw r2,-24(fp) - ca8c: 0085c83a sub r2,zero,r2 - ca90: 18800015 stw r2,0(r3) - rc = -1; - ca94: 00bfffc4 movi r2,-1 - ca98: e0bffa15 stw r2,-24(fp) - } - - return rc; - ca9c: e0bffa17 ldw r2,-24(fp) -} - caa0: e037883a mov sp,fp - caa4: dfc00117 ldw ra,4(sp) - caa8: df000017 ldw fp,0(sp) - caac: dec00204 addi sp,sp,8 - cab0: f800283a ret - -0000cab4 : -#undef errno - -extern int errno; - -static ALT_INLINE int* alt_get_errno(void) -{ - cab4: defffd04 addi sp,sp,-12 - cab8: dfc00215 stw ra,8(sp) - cabc: df000115 stw fp,4(sp) - cac0: df000104 addi fp,sp,4 - return ((alt_errno) ? alt_errno() : &errno); - cac4: 00800074 movhi r2,1 - cac8: 10888904 addi r2,r2,8740 - cacc: 10800017 ldw r2,0(r2) - cad0: 1005003a cmpeq r2,r2,zero - cad4: 1000061e bne r2,zero,caf0 - cad8: 00800074 movhi r2,1 - cadc: 10888904 addi r2,r2,8740 - cae0: 10800017 ldw r2,0(r2) - cae4: 103ee83a callr r2 - cae8: e0bfff15 stw r2,-4(fp) - caec: 00000306 br cafc - caf0: 00800074 movhi r2,1 - caf4: 108f7c04 addi r2,r2,15856 - caf8: e0bfff15 stw r2,-4(fp) - cafc: e0bfff17 ldw r2,-4(fp) -} - cb00: e037883a mov sp,fp - cb04: dfc00117 ldw ra,4(sp) - cb08: df000017 ldw fp,0(sp) - cb0c: dec00204 addi sp,sp,8 - cb10: f800283a ret - -0000cb14 : - * devices/filesystems/components in the system; and call the entry point for - * the users application, i.e. main(). - */ - -void alt_main (void) -{ - cb14: defffd04 addi sp,sp,-12 - cb18: dfc00215 stw ra,8(sp) - cb1c: df000115 stw fp,4(sp) - cb20: df000104 addi fp,sp,4 -#endif - - /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ - ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); - /* Initialize the interrupt controller. */ - alt_irq_init (NULL); - cb24: 0009883a mov r4,zero - cb28: 000d02c0 call d02c - ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); - ALT_SEM_CREATE (&alt_fd_list_lock, 1); - - /* Initialize the device drivers/software components. */ - ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); - alt_sys_init(); - cb2c: 000d0600 call d060 - * devices be present (not equal to /dev/null) and if direct drivers - * aren't being used. - */ - - ALT_LOG_PRINT_BOOT("[alt_main.c] Redirecting IO.\r\n"); - alt_io_redirect(ALT_STDOUT, ALT_STDIN, ALT_STDERR); - cb30: 01000074 movhi r4,1 - cb34: 2101a004 addi r4,r4,1664 - cb38: 01400074 movhi r5,1 - cb3c: 2941a004 addi r5,r5,1664 - cb40: 01800074 movhi r6,1 - cb44: 3181a004 addi r6,r6,1664 - cb48: 000f3e00 call f3e0 - /* - * Call the C++ constructors - */ - - ALT_LOG_PRINT_BOOT("[alt_main.c] Calling C++ constructors.\r\n"); - _do_ctors (); - cb4c: 000ef580 call ef58 <_do_ctors> - * redefined as _exit()). This is in the interest of reducing code footprint, - * in that the atexit() overhead is removed when it's not needed. - */ - - ALT_LOG_PRINT_BOOT("[alt_main.c] Calling atexit.\r\n"); - atexit (_do_dtors); - cb50: 01000074 movhi r4,1 - cb54: 213bef04 addi r4,r4,-4164 - cb58: 000fb840 call fb84 - ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); - -#ifdef ALT_NO_EXIT - main (alt_argc, alt_argv, alt_envp); -#else - result = main (alt_argc, alt_argv, alt_envp); - cb5c: d1270117 ldw r4,-25596(gp) - cb60: d1670217 ldw r5,-25592(gp) - cb64: d1a70317 ldw r6,-25588(gp) - cb68: 00009000 call 900
- cb6c: e0bfff15 stw r2,-4(fp) - close(STDOUT_FILENO); - cb70: 01000044 movi r4,1 - cb74: 000c4ec0 call c4ec - exit (result); - cb78: e13fff17 ldw r4,-4(fp) - cb7c: 000fb980 call fb98 - -0000cb80 <__malloc_lock>: - * configuration is single threaded, so there is nothing to do here. Note that - * this requires that malloc is never called by an interrupt service routine. - */ - -void __malloc_lock ( struct _reent *_r ) -{ - cb80: defffe04 addi sp,sp,-8 - cb84: df000115 stw fp,4(sp) - cb88: df000104 addi fp,sp,4 - cb8c: e13fff15 stw r4,-4(fp) -} - cb90: e037883a mov sp,fp - cb94: df000017 ldw fp,0(sp) - cb98: dec00104 addi sp,sp,4 - cb9c: f800283a ret - -0000cba0 <__malloc_unlock>: -/* - * - */ - -void __malloc_unlock ( struct _reent *_r ) -{ - cba0: defffe04 addi sp,sp,-8 - cba4: df000115 stw fp,4(sp) - cba8: df000104 addi fp,sp,4 - cbac: e13fff15 stw r4,-4(fp) -} - cbb0: e037883a mov sp,fp - cbb4: df000017 ldw fp,0(sp) - cbb8: dec00104 addi sp,sp,4 - cbbc: f800283a ret - -0000cbc0 : -} - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -int ALT_READ (int file, void *ptr, size_t len) -{ - cbc0: defff704 addi sp,sp,-36 - cbc4: dfc00815 stw ra,32(sp) - cbc8: df000715 stw fp,28(sp) - cbcc: df000704 addi fp,sp,28 - cbd0: e13ffb15 stw r4,-20(fp) - cbd4: e17ffc15 stw r5,-16(fp) - cbd8: e1bffd15 stw r6,-12(fp) - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (file < 0) ? NULL : &alt_fd_list[file]; - cbdc: e0bffb17 ldw r2,-20(fp) - cbe0: 1004803a cmplt r2,r2,zero - cbe4: 1000091e bne r2,zero,cc0c - cbe8: e13ffb17 ldw r4,-20(fp) - cbec: 01400304 movi r5,12 - cbf0: 0002c240 call 2c24 <__mulsi3> - cbf4: 1007883a mov r3,r2 - cbf8: 00800074 movhi r2,1 - cbfc: 1083bc04 addi r2,r2,3824 - cc00: 1887883a add r3,r3,r2 - cc04: e0ffff15 stw r3,-4(fp) - cc08: 00000106 br cc10 - cc0c: e03fff15 stw zero,-4(fp) - cc10: e0bfff17 ldw r2,-4(fp) - cc14: e0bffa15 stw r2,-24(fp) - - if (fd) - cc18: e0bffa17 ldw r2,-24(fp) - cc1c: 1005003a cmpeq r2,r2,zero - cc20: 1000241e bne r2,zero,ccb4 - * If the file has not been opened with read access, or if the driver does - * not provide an implementation of read(), generate an error. Otherwise - * call the drivers read() function to process the request. - */ - - if (((fd->fd_flags & O_ACCMODE) != O_WRONLY) && - cc24: e0bffa17 ldw r2,-24(fp) - cc28: 10800217 ldw r2,8(r2) - cc2c: 108000cc andi r2,r2,3 - cc30: 10800060 cmpeqi r2,r2,1 - cc34: 10001a1e bne r2,zero,cca0 - cc38: e0bffa17 ldw r2,-24(fp) - cc3c: 10800017 ldw r2,0(r2) - cc40: 10800517 ldw r2,20(r2) - cc44: 1005003a cmpeq r2,r2,zero - cc48: 1000151e bne r2,zero,cca0 - (fd->dev->read)) - { - if ((rval = fd->dev->read(fd, ptr, len)) < 0) - cc4c: e0bffa17 ldw r2,-24(fp) - cc50: 10800017 ldw r2,0(r2) - cc54: 10800517 ldw r2,20(r2) - cc58: e17ffc17 ldw r5,-16(fp) - cc5c: e1bffd17 ldw r6,-12(fp) - cc60: e13ffa17 ldw r4,-24(fp) - cc64: 103ee83a callr r2 - cc68: e0bff915 stw r2,-28(fp) - cc6c: e0bff917 ldw r2,-28(fp) - cc70: 1004403a cmpge r2,r2,zero - cc74: 1000071e bne r2,zero,cc94 - { - ALT_ERRNO = -rval; - cc78: 000cce40 call cce4 - cc7c: e0fff917 ldw r3,-28(fp) - cc80: 00c7c83a sub r3,zero,r3 - cc84: 10c00015 stw r3,0(r2) - return -1; - cc88: 00bfffc4 movi r2,-1 - cc8c: e0bffe15 stw r2,-8(fp) - cc90: 00000e06 br cccc - } - return rval; - cc94: e0bff917 ldw r2,-28(fp) - cc98: e0bffe15 stw r2,-8(fp) - cc9c: 00000b06 br cccc - } - else - { - ALT_ERRNO = EACCES; - cca0: 000cce40 call cce4 - cca4: 1007883a mov r3,r2 - cca8: 00800344 movi r2,13 - ccac: 18800015 stw r2,0(r3) - ccb0: 00000406 br ccc4 - } - } - else - { - ALT_ERRNO = EBADFD; - ccb4: 000cce40 call cce4 - ccb8: 1007883a mov r3,r2 - ccbc: 00801444 movi r2,81 - ccc0: 18800015 stw r2,0(r3) - } - return -1; - ccc4: 00bfffc4 movi r2,-1 - ccc8: e0bffe15 stw r2,-8(fp) - cccc: e0bffe17 ldw r2,-8(fp) -} - ccd0: e037883a mov sp,fp - ccd4: dfc00117 ldw ra,4(sp) - ccd8: df000017 ldw fp,0(sp) - ccdc: dec00204 addi sp,sp,8 - cce0: f800283a ret - -0000cce4 : -#undef errno - -extern int errno; - -static ALT_INLINE int* alt_get_errno(void) -{ - cce4: defffd04 addi sp,sp,-12 - cce8: dfc00215 stw ra,8(sp) - ccec: df000115 stw fp,4(sp) - ccf0: df000104 addi fp,sp,4 - return ((alt_errno) ? alt_errno() : &errno); - ccf4: 00800074 movhi r2,1 - ccf8: 10888904 addi r2,r2,8740 - ccfc: 10800017 ldw r2,0(r2) - cd00: 1005003a cmpeq r2,r2,zero - cd04: 1000061e bne r2,zero,cd20 - cd08: 00800074 movhi r2,1 - cd0c: 10888904 addi r2,r2,8740 - cd10: 10800017 ldw r2,0(r2) - cd14: 103ee83a callr r2 - cd18: e0bfff15 stw r2,-4(fp) - cd1c: 00000306 br cd2c - cd20: 00800074 movhi r2,1 - cd24: 108f7c04 addi r2,r2,15856 - cd28: e0bfff15 stw r2,-4(fp) - cd2c: e0bfff17 ldw r2,-4(fp) -} - cd30: e037883a mov sp,fp - cd34: dfc00117 ldw ra,4(sp) - cd38: df000017 ldw fp,0(sp) - cd3c: dec00204 addi sp,sp,8 - cd40: f800283a ret - -0000cd44 : - * File descriptors correcponding to standard in, standard out and standard - * error cannont be released backed to the pool. They are always reserved. - */ - -void alt_release_fd (int fd) -{ - cd44: defffc04 addi sp,sp,-16 - cd48: dfc00315 stw ra,12(sp) - cd4c: df000215 stw fp,8(sp) - cd50: dc000115 stw r16,4(sp) - cd54: df000104 addi fp,sp,4 - cd58: e13fff15 stw r4,-4(fp) - if (fd > 2) - cd5c: e0bfff17 ldw r2,-4(fp) - cd60: 108000d0 cmplti r2,r2,3 - cd64: 10000f1e bne r2,zero,cda4 - { - alt_fd_list[fd].fd_flags = 0; - cd68: e13fff17 ldw r4,-4(fp) - cd6c: 04000074 movhi r16,1 - cd70: 8403bc04 addi r16,r16,3824 - cd74: 01400304 movi r5,12 - cd78: 0002c240 call 2c24 <__mulsi3> - cd7c: 1405883a add r2,r2,r16 - cd80: 10800204 addi r2,r2,8 - cd84: 10000015 stw zero,0(r2) - alt_fd_list[fd].dev = 0; - cd88: e13fff17 ldw r4,-4(fp) - cd8c: 04000074 movhi r16,1 - cd90: 8403bc04 addi r16,r16,3824 - cd94: 01400304 movi r5,12 - cd98: 0002c240 call 2c24 <__mulsi3> - cd9c: 1405883a add r2,r2,r16 - cda0: 10000015 stw zero,0(r2) - } -} - cda4: e037883a mov sp,fp - cda8: dfc00217 ldw ra,8(sp) - cdac: df000117 ldw fp,4(sp) - cdb0: dc000017 ldw r16,0(sp) - cdb4: dec00304 addi sp,sp,12 - cdb8: f800283a ret - -0000cdbc : -#endif - -caddr_t ALT_SBRK (int incr) __attribute__ ((no_instrument_function )); - -caddr_t ALT_SBRK (int incr) -{ - cdbc: defff804 addi sp,sp,-32 - cdc0: df000715 stw fp,28(sp) - cdc4: df000704 addi fp,sp,28 - cdc8: e13ffe15 stw r4,-8(fp) -static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE - alt_irq_disable_all (void) -{ - alt_irq_context context; - - NIOS2_READ_STATUS (context); - cdcc: 0005303a rdctl r2,status - cdd0: e0bffb15 stw r2,-20(fp) - - NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); - cdd4: e0fffb17 ldw r3,-20(fp) - cdd8: 00bfff84 movi r2,-2 - cddc: 1884703a and r2,r3,r2 - cde0: 1001703a wrctl status,r2 - - return context; - cde4: e0bffb17 ldw r2,-20(fp) - alt_irq_context context; - char *prev_heap_end; - - context = alt_irq_disable_all(); - cde8: e0bffd15 stw r2,-12(fp) - - /* Always return data aligned on a word boundary */ - heap_end = (char *)(((unsigned int)heap_end + 3) & ~3); - cdec: d0a00e17 ldw r2,-32712(gp) - cdf0: 10c000c4 addi r3,r2,3 - cdf4: 00bfff04 movi r2,-4 - cdf8: 1884703a and r2,r3,r2 - cdfc: d0a00e15 stw r2,-32712(gp) - if (((heap_end + incr) - __alt_heap_start) > ALT_MAX_HEAP_BYTES) { - alt_irq_enable_all(context); - return (caddr_t)-1; - } -#else - if ((heap_end + incr) > __alt_heap_limit) { - ce00: d0e00e17 ldw r3,-32712(gp) - ce04: e0bffe17 ldw r2,-8(fp) - ce08: 1887883a add r3,r3,r2 - ce0c: 008000f4 movhi r2,3 - ce10: 10880004 addi r2,r2,8192 - ce14: 10c0072e bgeu r2,r3,ce34 - ce18: e0bffd17 ldw r2,-12(fp) - ce1c: e0bffa15 stw r2,-24(fp) - status &= ~NIOS2_STATUS_PIE_MSK; - status |= (context & NIOS2_STATUS_PIE_MSK); - - NIOS2_WRITE_STATUS (status); -#else - NIOS2_WRITE_STATUS (context); - ce20: e0bffa17 ldw r2,-24(fp) - ce24: 1001703a wrctl status,r2 - alt_irq_enable_all(context); - return (caddr_t)-1; - ce28: 00bfffc4 movi r2,-1 - ce2c: e0bfff15 stw r2,-4(fp) - ce30: 00000c06 br ce64 - } -#endif - - prev_heap_end = heap_end; - ce34: d0a00e17 ldw r2,-32712(gp) - ce38: e0bffc15 stw r2,-16(fp) - heap_end += incr; - ce3c: d0e00e17 ldw r3,-32712(gp) - ce40: e0bffe17 ldw r2,-8(fp) - ce44: 1885883a add r2,r3,r2 - ce48: d0a00e15 stw r2,-32712(gp) - ce4c: e0bffd17 ldw r2,-12(fp) - ce50: e0bff915 stw r2,-28(fp) - ce54: e0bff917 ldw r2,-28(fp) - ce58: 1001703a wrctl status,r2 - -#endif - - alt_irq_enable_all(context); - - return (caddr_t) prev_heap_end; - ce5c: e0bffc17 ldw r2,-16(fp) - ce60: e0bfff15 stw r2,-4(fp) - ce64: e0bfff17 ldw r2,-4(fp) -} - ce68: e037883a mov sp,fp - ce6c: df000017 ldw fp,0(sp) - ce70: dec00104 addi sp,sp,4 - ce74: f800283a ret - -0000ce78 : -#if defined (__GNUC__) && __GNUC__ >= 4 -int ALT_USLEEP (useconds_t us) -#else -unsigned int ALT_USLEEP (unsigned int us) -#endif -{ - ce78: defffd04 addi sp,sp,-12 - ce7c: dfc00215 stw ra,8(sp) - ce80: df000115 stw fp,4(sp) - ce84: df000104 addi fp,sp,4 - ce88: e13fff15 stw r4,-4(fp) - return alt_busy_sleep(us); - ce8c: e13fff17 ldw r4,-4(fp) - ce90: 000eccc0 call eccc -} - ce94: e037883a mov sp,fp - ce98: dfc00117 ldw ra,4(sp) - ce9c: df000017 ldw fp,0(sp) - cea0: dec00204 addi sp,sp,8 - cea4: f800283a ret - -0000cea8 : -} - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -int ALT_WRITE (int file, const void *ptr, size_t len) -{ - cea8: defff704 addi sp,sp,-36 - ceac: dfc00815 stw ra,32(sp) - ceb0: df000715 stw fp,28(sp) - ceb4: df000704 addi fp,sp,28 - ceb8: e13ffb15 stw r4,-20(fp) - cebc: e17ffc15 stw r5,-16(fp) - cec0: e1bffd15 stw r6,-12(fp) - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (file < 0) ? NULL : &alt_fd_list[file]; - cec4: e0bffb17 ldw r2,-20(fp) - cec8: 1004803a cmplt r2,r2,zero - cecc: 1000091e bne r2,zero,cef4 - ced0: e13ffb17 ldw r4,-20(fp) - ced4: 01400304 movi r5,12 - ced8: 0002c240 call 2c24 <__mulsi3> - cedc: 1007883a mov r3,r2 - cee0: 00800074 movhi r2,1 - cee4: 1083bc04 addi r2,r2,3824 - cee8: 1887883a add r3,r3,r2 - ceec: e0ffff15 stw r3,-4(fp) - cef0: 00000106 br cef8 - cef4: e03fff15 stw zero,-4(fp) - cef8: e0bfff17 ldw r2,-4(fp) - cefc: e0bffa15 stw r2,-24(fp) - - if (fd) - cf00: e0bffa17 ldw r2,-24(fp) - cf04: 1005003a cmpeq r2,r2,zero - cf08: 1000241e bne r2,zero,cf9c - * If the file has not been opened with write access, or if the driver does - * not provide an implementation of write(), generate an error. Otherwise - * call the drivers write() function to process the request. - */ - - if (((fd->fd_flags & O_ACCMODE) != O_RDONLY) && fd->dev->write) - cf0c: e0bffa17 ldw r2,-24(fp) - cf10: 10800217 ldw r2,8(r2) - cf14: 108000cc andi r2,r2,3 - cf18: 1005003a cmpeq r2,r2,zero - cf1c: 10001a1e bne r2,zero,cf88 - cf20: e0bffa17 ldw r2,-24(fp) - cf24: 10800017 ldw r2,0(r2) - cf28: 10800617 ldw r2,24(r2) - cf2c: 1005003a cmpeq r2,r2,zero - cf30: 1000151e bne r2,zero,cf88 - { - - /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ - ALT_LOG_WRITE_FUNCTION(ptr,len); - - if ((rval = fd->dev->write(fd, ptr, len)) < 0) - cf34: e0bffa17 ldw r2,-24(fp) - cf38: 10800017 ldw r2,0(r2) - cf3c: 10800617 ldw r2,24(r2) - cf40: e17ffc17 ldw r5,-16(fp) - cf44: e1bffd17 ldw r6,-12(fp) - cf48: e13ffa17 ldw r4,-24(fp) - cf4c: 103ee83a callr r2 - cf50: e0bff915 stw r2,-28(fp) - cf54: e0bff917 ldw r2,-28(fp) - cf58: 1004403a cmpge r2,r2,zero - cf5c: 1000071e bne r2,zero,cf7c - { - ALT_ERRNO = -rval; - cf60: 000cfcc0 call cfcc - cf64: e0fff917 ldw r3,-28(fp) - cf68: 00c7c83a sub r3,zero,r3 - cf6c: 10c00015 stw r3,0(r2) - return -1; - cf70: 00bfffc4 movi r2,-1 - cf74: e0bffe15 stw r2,-8(fp) - cf78: 00000e06 br cfb4 - } - return rval; - cf7c: e0bff917 ldw r2,-28(fp) - cf80: e0bffe15 stw r2,-8(fp) - cf84: 00000b06 br cfb4 - } - else - { - ALT_ERRNO = EACCES; - cf88: 000cfcc0 call cfcc - cf8c: 1007883a mov r3,r2 - cf90: 00800344 movi r2,13 - cf94: 18800015 stw r2,0(r3) - cf98: 00000406 br cfac - } - } - else - { - ALT_ERRNO = EBADFD; - cf9c: 000cfcc0 call cfcc - cfa0: 1007883a mov r3,r2 - cfa4: 00801444 movi r2,81 - cfa8: 18800015 stw r2,0(r3) - } - return -1; - cfac: 00bfffc4 movi r2,-1 - cfb0: e0bffe15 stw r2,-8(fp) - cfb4: e0bffe17 ldw r2,-8(fp) -} - cfb8: e037883a mov sp,fp - cfbc: dfc00117 ldw ra,4(sp) - cfc0: df000017 ldw fp,0(sp) - cfc4: dec00204 addi sp,sp,8 - cfc8: f800283a ret - -0000cfcc : -#undef errno - -extern int errno; - -static ALT_INLINE int* alt_get_errno(void) -{ - cfcc: defffd04 addi sp,sp,-12 - cfd0: dfc00215 stw ra,8(sp) - cfd4: df000115 stw fp,4(sp) - cfd8: df000104 addi fp,sp,4 - return ((alt_errno) ? alt_errno() : &errno); - cfdc: 00800074 movhi r2,1 - cfe0: 10888904 addi r2,r2,8740 - cfe4: 10800017 ldw r2,0(r2) - cfe8: 1005003a cmpeq r2,r2,zero - cfec: 1000061e bne r2,zero,d008 - cff0: 00800074 movhi r2,1 - cff4: 10888904 addi r2,r2,8740 - cff8: 10800017 ldw r2,0(r2) - cffc: 103ee83a callr r2 - d000: e0bfff15 stw r2,-4(fp) - d004: 00000306 br d014 - d008: 00800074 movhi r2,1 - d00c: 108f7c04 addi r2,r2,15856 - d010: e0bfff15 stw r2,-4(fp) - d014: e0bfff17 ldw r2,-4(fp) -} - d018: e037883a mov sp,fp - d01c: dfc00117 ldw ra,4(sp) - d020: df000017 ldw fp,0(sp) - d024: dec00204 addi sp,sp,8 - d028: f800283a ret - -0000d02c : - * The "base" parameter is ignored and only - * present for backwards-compatibility. - */ - -void alt_irq_init ( const void* base ) -{ - d02c: defffd04 addi sp,sp,-12 - d030: dfc00215 stw ra,8(sp) - d034: df000115 stw fp,4(sp) - d038: df000104 addi fp,sp,4 - d03c: e13fff15 stw r4,-4(fp) - ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); - d040: 000f8e00 call f8e0 - * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. - */ -static ALT_INLINE void ALT_ALWAYS_INLINE - alt_irq_cpu_enable_interrupts () -{ - NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK - d044: 00800044 movi r2,1 - d048: 1001703a wrctl status,r2 - alt_irq_cpu_enable_interrupts(); -} - d04c: e037883a mov sp,fp - d050: dfc00117 ldw ra,4(sp) - d054: df000017 ldw fp,0(sp) - d058: dec00204 addi sp,sp,8 - d05c: f800283a ret - -0000d060 : - * Initialize the non-interrupt controller devices. - * Called after alt_irq_init(). - */ - -void alt_sys_init( void ) -{ - d060: defffe04 addi sp,sp,-8 - d064: dfc00115 stw ra,4(sp) - d068: df000015 stw fp,0(sp) - d06c: d839883a mov fp,sp - ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); - d070: 01000074 movhi r4,1 - d074: 21042604 addi r4,r4,4248 - d078: 000b883a mov r5,zero - d07c: 01800144 movi r6,5 - d080: 000d23c0 call d23c - d084: 01000074 movhi r4,1 - d088: 21041c04 addi r4,r4,4208 - d08c: 000d0bc0 call d0bc - ALTERA_AVALON_LCD_16207_INIT ( LCD_16207_0, lcd_16207_0); - d090: 01000074 movhi r4,1 - d094: 21083e04 addi r4,r4,8440 - d098: 000e9e40 call e9e4 - d09c: 01000074 movhi r4,1 - d0a0: 21083404 addi r4,r4,8400 - d0a4: 000d0bc0 call d0bc -} - d0a8: e037883a mov sp,fp - d0ac: dfc00117 ldw ra,4(sp) - d0b0: df000017 ldw fp,0(sp) - d0b4: dec00204 addi sp,sp,8 - d0b8: f800283a ret - -0000d0bc : - */ - -extern int alt_fs_reg (alt_dev* dev); - -static ALT_INLINE int alt_dev_reg (alt_dev* dev) -{ - d0bc: defffd04 addi sp,sp,-12 - d0c0: dfc00215 stw ra,8(sp) - d0c4: df000115 stw fp,4(sp) - d0c8: df000104 addi fp,sp,4 - d0cc: e13fff15 stw r4,-4(fp) - extern alt_llist alt_dev_list; - - return alt_dev_llist_insert ((alt_dev_llist*) dev, &alt_dev_list); - d0d0: e13fff17 ldw r4,-4(fp) - d0d4: 01400074 movhi r5,1 - d0d8: 29488604 addi r5,r5,8728 - d0dc: 000ee440 call ee44 -} - d0e0: e037883a mov sp,fp - d0e4: dfc00117 ldw ra,4(sp) - d0e8: df000017 ldw fp,0(sp) - d0ec: dec00204 addi sp,sp,8 - d0f0: f800283a ret - -0000d0f4 : - * - */ - -int -altera_avalon_jtag_uart_read_fd(alt_fd* fd, char* buffer, int space) -{ - d0f4: defffa04 addi sp,sp,-24 - d0f8: dfc00515 stw ra,20(sp) - d0fc: df000415 stw fp,16(sp) - d100: df000404 addi fp,sp,16 - d104: e13ffd15 stw r4,-12(fp) - d108: e17ffe15 stw r5,-8(fp) - d10c: e1bfff15 stw r6,-4(fp) - altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; - d110: e0bffd17 ldw r2,-12(fp) - d114: 10800017 ldw r2,0(r2) - d118: e0bffc15 stw r2,-16(fp) - - return altera_avalon_jtag_uart_read(&dev->state, buffer, space, - d11c: e0bffc17 ldw r2,-16(fp) - d120: 11000a04 addi r4,r2,40 - d124: e0bffd17 ldw r2,-12(fp) - d128: 11c00217 ldw r7,8(r2) - d12c: e17ffe17 ldw r5,-8(fp) - d130: e1bfff17 ldw r6,-4(fp) - d134: 000d73c0 call d73c - fd->fd_flags); -} - d138: e037883a mov sp,fp - d13c: dfc00117 ldw ra,4(sp) - d140: df000017 ldw fp,0(sp) - d144: dec00204 addi sp,sp,8 - d148: f800283a ret - -0000d14c : - -int -altera_avalon_jtag_uart_write_fd(alt_fd* fd, const char* buffer, int space) -{ - d14c: defffa04 addi sp,sp,-24 - d150: dfc00515 stw ra,20(sp) - d154: df000415 stw fp,16(sp) - d158: df000404 addi fp,sp,16 - d15c: e13ffd15 stw r4,-12(fp) - d160: e17ffe15 stw r5,-8(fp) - d164: e1bfff15 stw r6,-4(fp) - altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; - d168: e0bffd17 ldw r2,-12(fp) - d16c: 10800017 ldw r2,0(r2) - d170: e0bffc15 stw r2,-16(fp) - - return altera_avalon_jtag_uart_write(&dev->state, buffer, space, - d174: e0bffc17 ldw r2,-16(fp) - d178: 11000a04 addi r4,r2,40 - d17c: e0bffd17 ldw r2,-12(fp) - d180: 11c00217 ldw r7,8(r2) - d184: e17ffe17 ldw r5,-8(fp) - d188: e1bfff17 ldw r6,-4(fp) - d18c: 000d9600 call d960 - fd->fd_flags); -} - d190: e037883a mov sp,fp - d194: dfc00117 ldw ra,4(sp) - d198: df000017 ldw fp,0(sp) - d19c: dec00204 addi sp,sp,8 - d1a0: f800283a ret - -0000d1a4 : - -#ifndef ALTERA_AVALON_JTAG_UART_SMALL - -int -altera_avalon_jtag_uart_close_fd(alt_fd* fd) -{ - d1a4: defffc04 addi sp,sp,-16 - d1a8: dfc00315 stw ra,12(sp) - d1ac: df000215 stw fp,8(sp) - d1b0: df000204 addi fp,sp,8 - d1b4: e13fff15 stw r4,-4(fp) - altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; - d1b8: e0bfff17 ldw r2,-4(fp) - d1bc: 10800017 ldw r2,0(r2) - d1c0: e0bffe15 stw r2,-8(fp) - - return altera_avalon_jtag_uart_close(&dev->state, fd->fd_flags); - d1c4: e0bffe17 ldw r2,-8(fp) - d1c8: 11000a04 addi r4,r2,40 - d1cc: e0bfff17 ldw r2,-4(fp) - d1d0: 11400217 ldw r5,8(r2) - d1d4: 000d5d40 call d5d4 -} - d1d8: e037883a mov sp,fp - d1dc: dfc00117 ldw ra,4(sp) - d1e0: df000017 ldw fp,0(sp) - d1e4: dec00204 addi sp,sp,8 - d1e8: f800283a ret - -0000d1ec : - -int -altera_avalon_jtag_uart_ioctl_fd(alt_fd* fd, int req, void* arg) -{ - d1ec: defffa04 addi sp,sp,-24 - d1f0: dfc00515 stw ra,20(sp) - d1f4: df000415 stw fp,16(sp) - d1f8: df000404 addi fp,sp,16 - d1fc: e13ffd15 stw r4,-12(fp) - d200: e17ffe15 stw r5,-8(fp) - d204: e1bfff15 stw r6,-4(fp) - altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; - d208: e0bffd17 ldw r2,-12(fp) - d20c: 10800017 ldw r2,0(r2) - d210: e0bffc15 stw r2,-16(fp) - - return altera_avalon_jtag_uart_ioctl(&dev->state, req, arg); - d214: e0bffc17 ldw r2,-16(fp) - d218: 11000a04 addi r4,r2,40 - d21c: e17ffe17 ldw r5,-8(fp) - d220: e1bfff17 ldw r6,-4(fp) - d224: 000d6480 call d648 -} - d228: e037883a mov sp,fp - d22c: dfc00117 ldw ra,4(sp) - d230: df000017 ldw fp,0(sp) - d234: dec00204 addi sp,sp,8 - d238: f800283a ret - -0000d23c : - * Return 1 on sucessful IRQ register and 0 on failure. - */ - -void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, - int irq_controller_id, int irq) -{ - d23c: defffa04 addi sp,sp,-24 - d240: dfc00515 stw ra,20(sp) - d244: df000415 stw fp,16(sp) - d248: df000404 addi fp,sp,16 - d24c: e13ffd15 stw r4,-12(fp) - d250: e17ffe15 stw r5,-8(fp) - d254: e1bfff15 stw r6,-4(fp) - ALT_FLAG_CREATE(&sp->events, 0); - ALT_SEM_CREATE(&sp->read_lock, 1); - ALT_SEM_CREATE(&sp->write_lock, 1); - - /* enable read interrupts at the device */ - sp->irq_enable = ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; - d258: e0fffd17 ldw r3,-12(fp) - d25c: 00800044 movi r2,1 - d260: 18800815 stw r2,32(r3) - - IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); - d264: e0bffd17 ldw r2,-12(fp) - d268: 10800017 ldw r2,0(r2) - d26c: 11000104 addi r4,r2,4 - d270: e0bffd17 ldw r2,-12(fp) - d274: 10800817 ldw r2,32(r2) - d278: 1007883a mov r3,r2 - d27c: 2005883a mov r2,r4 - d280: 10c00035 stwio r3,0(r2) - - /* register the interrupt handler */ -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT - alt_ic_isr_register(irq_controller_id, irq, altera_avalon_jtag_uart_irq, - d284: e13ffe17 ldw r4,-8(fp) - d288: e17fff17 ldw r5,-4(fp) - d28c: d8000015 stw zero,0(sp) - d290: 01800074 movhi r6,1 - d294: 31b4bf04 addi r6,r6,-11524 - d298: e1fffd17 ldw r7,-12(fp) - d29c: 000f03c0 call f03c -#else - alt_irq_register(irq, sp, altera_avalon_jtag_uart_irq); -#endif - - /* Register an alarm to go off every second to check for presence of host */ - sp->host_inactive = 0; - d2a0: e0bffd17 ldw r2,-12(fp) - d2a4: 10000915 stw zero,36(r2) - - if (alt_alarm_start(&sp->alarm, alt_ticks_per_second(), - d2a8: e0bffd17 ldw r2,-12(fp) - d2ac: 11000204 addi r4,r2,8 - * Obtain the system clock rate in ticks/s. - */ - -static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void) -{ - return _alt_tick_rate; - d2b0: 00800074 movhi r2,1 - d2b4: 108f8104 addi r2,r2,15876 - d2b8: 10800017 ldw r2,0(r2) - d2bc: 100b883a mov r5,r2 - d2c0: 01800074 movhi r6,1 - d2c4: 31b54904 addi r6,r6,-10972 - d2c8: e1fffd17 ldw r7,-12(fp) - d2cc: 000eb780 call eb78 - d2d0: 1004403a cmpge r2,r2,zero - d2d4: 1000041e bne r2,zero,d2e8 - &altera_avalon_jtag_uart_timeout, sp) < 0) - { - /* If we can't set the alarm then record "don't know if host present" - * and behave as though the host is present. - */ - sp->timeout = INT_MAX; - d2d8: e0fffd17 ldw r3,-12(fp) - d2dc: 00a00034 movhi r2,32768 - d2e0: 10bfffc4 addi r2,r2,-1 - d2e4: 18800115 stw r2,4(r3) - } - - /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ - ALT_LOG_JTAG_UART_ALARM_REGISTER(sp, sp->base); -} - d2e8: e037883a mov sp,fp - d2ec: dfc00117 ldw ra,4(sp) - d2f0: df000017 ldw fp,0(sp) - d2f4: dec00204 addi sp,sp,8 - d2f8: f800283a ret - -0000d2fc : -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT -static void altera_avalon_jtag_uart_irq(void* context) -#else -static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id) -#endif -{ - d2fc: defff804 addi sp,sp,-32 - d300: df000715 stw fp,28(sp) - d304: df000704 addi fp,sp,28 - d308: e13fff15 stw r4,-4(fp) - altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state*) context; - d30c: e0bfff17 ldw r2,-4(fp) - d310: e0bffe15 stw r2,-8(fp) - unsigned int base = sp->base; - d314: e0bffe17 ldw r2,-8(fp) - d318: 10800017 ldw r2,0(r2) - d31c: e0bffd15 stw r2,-12(fp) - d320: 00000006 br d324 - /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ - ALT_LOG_JTAG_UART_ISR_FUNCTION(base, sp); - - for ( ; ; ) - { - unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); - d324: e0bffd17 ldw r2,-12(fp) - d328: 10800104 addi r2,r2,4 - d32c: 10800037 ldwio r2,0(r2) - d330: e0bffc15 stw r2,-16(fp) - - /* Return once nothing more to do */ - if ((control & (ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK | ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)) == 0) - d334: e0bffc17 ldw r2,-16(fp) - d338: 1080c00c andi r2,r2,768 - d33c: 1005003a cmpeq r2,r2,zero - d340: 1000741e bne r2,zero,d514 - break; - - if (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) - d344: e0bffc17 ldw r2,-16(fp) - d348: 1080400c andi r2,r2,256 - d34c: 1005003a cmpeq r2,r2,zero - d350: 1000351e bne r2,zero,d428 - { - /* process a read irq. Start by assuming that there is data in the - * receive FIFO (otherwise why would we have been interrupted?) - */ - unsigned int data = 1 << ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST; - d354: 00800074 movhi r2,1 - d358: e0bffb15 stw r2,-20(fp) - for ( ; ; ) - { - /* Check whether there is space in the buffer. If not then we must not - * read any characters from the buffer as they will be lost. - */ - unsigned int next = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; - d35c: e0bffe17 ldw r2,-8(fp) - d360: 10800a17 ldw r2,40(r2) - d364: 10800044 addi r2,r2,1 - d368: 1081ffcc andi r2,r2,2047 - d36c: e0bffa15 stw r2,-24(fp) - if (next == sp->rx_out) - d370: e0bffe17 ldw r2,-8(fp) - d374: 10c00b17 ldw r3,44(r2) - d378: e0bffa17 ldw r2,-24(fp) - d37c: 18801626 beq r3,r2,d3d8 - break; - - /* Try to remove a character from the FIFO and find out whether there - * are any more characters remaining. - */ - data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); - d380: e0bffd17 ldw r2,-12(fp) - d384: 10800037 ldwio r2,0(r2) - d388: e0bffb15 stw r2,-20(fp) - - if ((data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) == 0) - d38c: e0bffb17 ldw r2,-20(fp) - d390: 10a0000c andi r2,r2,32768 - d394: 1005003a cmpeq r2,r2,zero - d398: 10000f1e bne r2,zero,d3d8 - break; - - sp->rx_buf[sp->rx_in] = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; - d39c: e0bffe17 ldw r2,-8(fp) - d3a0: 10c00a17 ldw r3,40(r2) - d3a4: e0bffb17 ldw r2,-20(fp) - d3a8: 1009883a mov r4,r2 - d3ac: e0bffe17 ldw r2,-8(fp) - d3b0: 1885883a add r2,r3,r2 - d3b4: 10800e04 addi r2,r2,56 - d3b8: 11000005 stb r4,0(r2) - sp->rx_in = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; - d3bc: e0bffe17 ldw r2,-8(fp) - d3c0: 10800a17 ldw r2,40(r2) - d3c4: 10800044 addi r2,r2,1 - d3c8: 10c1ffcc andi r3,r2,2047 - d3cc: e0bffe17 ldw r2,-8(fp) - d3d0: 10c00a15 stw r3,40(r2) - - /* Post an event to notify jtag_uart_read that a character has been read */ - ALT_FLAG_POST (sp->events, ALT_JTAG_UART_READ_RDY, OS_FLAG_SET); - } - d3d4: 003fe106 br d35c - - if (data & ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK) - d3d8: e0bffb17 ldw r2,-20(fp) - d3dc: 10bfffec andhi r2,r2,65535 - d3e0: 1005003a cmpeq r2,r2,zero - d3e4: 1000101e bne r2,zero,d428 - { - /* If there is still data available here then the buffer is full - * so turn off receive interrupts until some space becomes available. - */ - sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; - d3e8: e0bffe17 ldw r2,-8(fp) - d3ec: 10c00817 ldw r3,32(r2) - d3f0: 00bfff84 movi r2,-2 - d3f4: 1886703a and r3,r3,r2 - d3f8: e0bffe17 ldw r2,-8(fp) - d3fc: 10c00815 stw r3,32(r2) - IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, sp->irq_enable); - d400: e0bffd17 ldw r2,-12(fp) - d404: 11000104 addi r4,r2,4 - d408: e0bffe17 ldw r2,-8(fp) - d40c: 10800817 ldw r2,32(r2) - d410: 1007883a mov r3,r2 - d414: 2005883a mov r2,r4 - d418: 10c00035 stwio r3,0(r2) - - /* Dummy read to ensure IRQ is cleared prior to ISR completion */ - IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); - d41c: e0bffd17 ldw r2,-12(fp) - d420: 10800104 addi r2,r2,4 - d424: 10800037 ldwio r2,0(r2) - } - } - - if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) - d428: e0bffc17 ldw r2,-16(fp) - d42c: 1080800c andi r2,r2,512 - d430: 1005003a cmpeq r2,r2,zero - d434: 103fbb1e bne r2,zero,d324 - { - /* process a write irq */ - unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; - d438: e0bffc17 ldw r2,-16(fp) - d43c: 10bfffec andhi r2,r2,65535 - d440: 1004d43a srli r2,r2,16 - d444: e0bff915 stw r2,-28(fp) - - while (space > 0 && sp->tx_out != sp->tx_in) - d448: 00001506 br d4a0 - { - IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, sp->tx_buf[sp->tx_out]); - d44c: e13ffd17 ldw r4,-12(fp) - d450: e0bffe17 ldw r2,-8(fp) - d454: 10c00d17 ldw r3,52(r2) - d458: e0bffe17 ldw r2,-8(fp) - d45c: 1885883a add r2,r3,r2 - d460: 10820e04 addi r2,r2,2104 - d464: 10800003 ldbu r2,0(r2) - d468: 10c03fcc andi r3,r2,255 - d46c: 18c0201c xori r3,r3,128 - d470: 18ffe004 addi r3,r3,-128 - d474: 2005883a mov r2,r4 - d478: 10c00035 stwio r3,0(r2) - - sp->tx_out = (sp->tx_out + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; - d47c: e0bffe17 ldw r2,-8(fp) - d480: 10800d17 ldw r2,52(r2) - d484: 10800044 addi r2,r2,1 - d488: 10c1ffcc andi r3,r2,2047 - d48c: e0bffe17 ldw r2,-8(fp) - d490: 10c00d15 stw r3,52(r2) - - /* Post an event to notify jtag_uart_write that a character has been written */ - ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET); - - space--; - d494: e0bff917 ldw r2,-28(fp) - d498: 10bfffc4 addi r2,r2,-1 - d49c: e0bff915 stw r2,-28(fp) - if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) - { - /* process a write irq */ - unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; - - while (space > 0 && sp->tx_out != sp->tx_in) - d4a0: e0bff917 ldw r2,-28(fp) - d4a4: 1005003a cmpeq r2,r2,zero - d4a8: 1000051e bne r2,zero,d4c0 - d4ac: e0bffe17 ldw r2,-8(fp) - d4b0: 10c00d17 ldw r3,52(r2) - d4b4: e0bffe17 ldw r2,-8(fp) - d4b8: 10800c17 ldw r2,48(r2) - d4bc: 18bfe31e bne r3,r2,d44c - ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET); - - space--; - } - - if (space > 0) - d4c0: e0bff917 ldw r2,-28(fp) - d4c4: 1005003a cmpeq r2,r2,zero - d4c8: 103f961e bne r2,zero,d324 - { - /* If we don't have any more data available then turn off the TX interrupt */ - sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; - d4cc: e0bffe17 ldw r2,-8(fp) - d4d0: 10c00817 ldw r3,32(r2) - d4d4: 00bfff44 movi r2,-3 - d4d8: 1886703a and r3,r3,r2 - d4dc: e0bffe17 ldw r2,-8(fp) - d4e0: 10c00815 stw r3,32(r2) - IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); - d4e4: e0bffe17 ldw r2,-8(fp) - d4e8: 10800017 ldw r2,0(r2) - d4ec: 11000104 addi r4,r2,4 - d4f0: e0bffe17 ldw r2,-8(fp) - d4f4: 10800817 ldw r2,32(r2) - d4f8: 1007883a mov r3,r2 - d4fc: 2005883a mov r2,r4 - d500: 10c00035 stwio r3,0(r2) - - /* Dummy read to ensure IRQ is cleared prior to ISR completion */ - IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); - d504: e0bffd17 ldw r2,-12(fp) - d508: 10800104 addi r2,r2,4 - d50c: 10800037 ldwio r2,0(r2) - } - } - } - d510: 003f8406 br d324 -} - d514: e037883a mov sp,fp - d518: df000017 ldw fp,0(sp) - d51c: dec00104 addi sp,sp,4 - d520: f800283a ret - -0000d524 : - * Timeout routine is called every second - */ - -static alt_u32 -altera_avalon_jtag_uart_timeout(void* context) -{ - d524: defffc04 addi sp,sp,-16 - d528: df000315 stw fp,12(sp) - d52c: df000304 addi fp,sp,12 - d530: e13fff15 stw r4,-4(fp) - altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state *) context; - d534: e0bfff17 ldw r2,-4(fp) - d538: e0bffe15 stw r2,-8(fp) - - unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base); - d53c: e0bffe17 ldw r2,-8(fp) - d540: 10800017 ldw r2,0(r2) - d544: 10800104 addi r2,r2,4 - d548: 10800037 ldwio r2,0(r2) - d54c: e0bffd15 stw r2,-12(fp) - - if (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) - d550: e0bffd17 ldw r2,-12(fp) - d554: 1081000c andi r2,r2,1024 - d558: 1005003a cmpeq r2,r2,zero - d55c: 10000c1e bne r2,zero,d590 - { - IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable | ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK); - d560: e0bffe17 ldw r2,-8(fp) - d564: 10800017 ldw r2,0(r2) - d568: 11000104 addi r4,r2,4 - d56c: e0bffe17 ldw r2,-8(fp) - d570: 10800817 ldw r2,32(r2) - d574: 10810014 ori r2,r2,1024 - d578: 1007883a mov r3,r2 - d57c: 2005883a mov r2,r4 - d580: 10c00035 stwio r3,0(r2) - sp->host_inactive = 0; - d584: e0bffe17 ldw r2,-8(fp) - d588: 10000915 stw zero,36(r2) - d58c: 00000a06 br d5b8 - } - else if (sp->host_inactive < INT_MAX - 2) { - d590: e0bffe17 ldw r2,-8(fp) - d594: 10c00917 ldw r3,36(r2) - d598: 00a00034 movhi r2,32768 - d59c: 10bfff04 addi r2,r2,-4 - d5a0: 10c00536 bltu r2,r3,d5b8 - sp->host_inactive++; - d5a4: e0bffe17 ldw r2,-8(fp) - d5a8: 10800917 ldw r2,36(r2) - d5ac: 10c00044 addi r3,r2,1 - d5b0: e0bffe17 ldw r2,-8(fp) - d5b4: 10c00915 stw r3,36(r2) - d5b8: 00800074 movhi r2,1 - d5bc: 108f8104 addi r2,r2,15876 - d5c0: 10800017 ldw r2,0(r2) - ALT_FLAG_POST (sp->events, ALT_JTAG_UART_TIMEOUT, OS_FLAG_SET); - } - } - - return alt_ticks_per_second(); -} - d5c4: e037883a mov sp,fp - d5c8: df000017 ldw fp,0(sp) - d5cc: dec00104 addi sp,sp,4 - d5d0: f800283a ret - -0000d5d4 : - * The close routine is not implemented for the small driver; instead it will - * map to null. This is because the small driver simply waits while characters - * are transmitted; there is no interrupt-serviced buffer to empty - */ -int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, int flags) -{ - d5d4: defffc04 addi sp,sp,-16 - d5d8: df000315 stw fp,12(sp) - d5dc: df000304 addi fp,sp,12 - d5e0: e13ffd15 stw r4,-12(fp) - d5e4: e17ffe15 stw r5,-8(fp) - /* - * Wait for all transmit data to be emptied by the JTAG UART ISR, or - * for a host-inactivity timeout, in which case transmit data will be lost - */ - while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) { - d5e8: 00000706 br d608 - if (flags & O_NONBLOCK) { - d5ec: e0bffe17 ldw r2,-8(fp) - d5f0: 1090000c andi r2,r2,16384 - d5f4: 1005003a cmpeq r2,r2,zero - d5f8: 1000031e bne r2,zero,d608 - return -EWOULDBLOCK; - d5fc: 00bffd44 movi r2,-11 - d600: e0bfff15 stw r2,-4(fp) - d604: 00000b06 br d634 -{ - /* - * Wait for all transmit data to be emptied by the JTAG UART ISR, or - * for a host-inactivity timeout, in which case transmit data will be lost - */ - while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) { - d608: e0bffd17 ldw r2,-12(fp) - d60c: 10c00d17 ldw r3,52(r2) - d610: e0bffd17 ldw r2,-12(fp) - d614: 10800c17 ldw r2,48(r2) - d618: 18800526 beq r3,r2,d630 - d61c: e0bffd17 ldw r2,-12(fp) - d620: 10c00917 ldw r3,36(r2) - d624: e0bffd17 ldw r2,-12(fp) - d628: 10800117 ldw r2,4(r2) - d62c: 18bfef36 bltu r3,r2,d5ec - if (flags & O_NONBLOCK) { - return -EWOULDBLOCK; - } - } - - return 0; - d630: e03fff15 stw zero,-4(fp) - d634: e0bfff17 ldw r2,-4(fp) -} - d638: e037883a mov sp,fp - d63c: df000017 ldw fp,0(sp) - d640: dec00104 addi sp,sp,4 - d644: f800283a ret - -0000d648 : -/* ----------------------------------------------------------- */ - -int -altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, int req, - void* arg) -{ - d648: defff804 addi sp,sp,-32 - d64c: df000715 stw fp,28(sp) - d650: df000704 addi fp,sp,28 - d654: e13ffb15 stw r4,-20(fp) - d658: e17ffc15 stw r5,-16(fp) - d65c: e1bffd15 stw r6,-12(fp) - int rc = -ENOTTY; - d660: 00bff9c4 movi r2,-25 - d664: e0bffa15 stw r2,-24(fp) - - switch (req) - d668: e0bffc17 ldw r2,-16(fp) - d66c: e0bfff15 stw r2,-4(fp) - d670: e0ffff17 ldw r3,-4(fp) - d674: 189a8060 cmpeqi r2,r3,27137 - d678: 1000041e bne r2,zero,d68c - d67c: e0ffff17 ldw r3,-4(fp) - d680: 189a80a0 cmpeqi r2,r3,27138 - d684: 10001b1e bne r2,zero,d6f4 - d688: 00002706 br d728 - { - case TIOCSTIMEOUT: - /* Set the time to wait until assuming host is not connected */ - if (sp->timeout != INT_MAX) - d68c: e0bffb17 ldw r2,-20(fp) - d690: 10c00117 ldw r3,4(r2) - d694: 00a00034 movhi r2,32768 - d698: 10bfffc4 addi r2,r2,-1 - d69c: 18802226 beq r3,r2,d728 - { - int timeout = *((int *)arg); - d6a0: e0bffd17 ldw r2,-12(fp) - d6a4: 10800017 ldw r2,0(r2) - d6a8: e0bff915 stw r2,-28(fp) - sp->timeout = (timeout >= 2 && timeout < INT_MAX) ? timeout : INT_MAX - 1; - d6ac: e0bff917 ldw r2,-28(fp) - d6b0: 10800090 cmplti r2,r2,2 - d6b4: 1000071e bne r2,zero,d6d4 - d6b8: e0fff917 ldw r3,-28(fp) - d6bc: 00a00034 movhi r2,32768 - d6c0: 10bfffc4 addi r2,r2,-1 - d6c4: 18800326 beq r3,r2,d6d4 - d6c8: e0bff917 ldw r2,-28(fp) - d6cc: e0bffe15 stw r2,-8(fp) - d6d0: 00000306 br d6e0 - d6d4: 00e00034 movhi r3,32768 - d6d8: 18ffff84 addi r3,r3,-2 - d6dc: e0fffe15 stw r3,-8(fp) - d6e0: e0bffb17 ldw r2,-20(fp) - d6e4: e0fffe17 ldw r3,-8(fp) - d6e8: 10c00115 stw r3,4(r2) - rc = 0; - d6ec: e03ffa15 stw zero,-24(fp) - } - break; - d6f0: 00000d06 br d728 - - case TIOCGCONNECTED: - /* Find out whether host is connected */ - if (sp->timeout != INT_MAX) - d6f4: e0bffb17 ldw r2,-20(fp) - d6f8: 10c00117 ldw r3,4(r2) - d6fc: 00a00034 movhi r2,32768 - d700: 10bfffc4 addi r2,r2,-1 - d704: 18800826 beq r3,r2,d728 - { - *((int *)arg) = (sp->host_inactive < sp->timeout) ? 1 : 0; - d708: e13ffd17 ldw r4,-12(fp) - d70c: e0bffb17 ldw r2,-20(fp) - d710: 10c00917 ldw r3,36(r2) - d714: e0bffb17 ldw r2,-20(fp) - d718: 10800117 ldw r2,4(r2) - d71c: 1885803a cmpltu r2,r3,r2 - d720: 20800015 stw r2,0(r4) - rc = 0; - d724: e03ffa15 stw zero,-24(fp) - - default: - break; - } - - return rc; - d728: e0bffa17 ldw r2,-24(fp) -} - d72c: e037883a mov sp,fp - d730: df000017 ldw fp,0(sp) - d734: dec00104 addi sp,sp,4 - d738: f800283a ret - -0000d73c : -/* ----------------------------------------------------------- */ - -int -altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, - char * buffer, int space, int flags) -{ - d73c: defff204 addi sp,sp,-56 - d740: dfc00d15 stw ra,52(sp) - d744: df000c15 stw fp,48(sp) - d748: df000c04 addi fp,sp,48 - d74c: e13ffb15 stw r4,-20(fp) - d750: e17ffc15 stw r5,-16(fp) - d754: e1bffd15 stw r6,-12(fp) - d758: e1fffe15 stw r7,-8(fp) - char * ptr = buffer; - d75c: e0bffc17 ldw r2,-16(fp) - d760: e0bffa15 stw r2,-24(fp) - * When running in a multi threaded environment, obtain the "read_lock" - * semaphore. This ensures that reading from the device is thread-safe. - */ - ALT_SEM_PEND (sp->read_lock, 0); - - while (space > 0) - d764: 00004806 br d888 - unsigned int in, out; - - /* Read as much data as possible */ - do - { - in = sp->rx_in; - d768: e0bffb17 ldw r2,-20(fp) - d76c: 10800a17 ldw r2,40(r2) - d770: e0bff715 stw r2,-36(fp) - out = sp->rx_out; - d774: e0bffb17 ldw r2,-20(fp) - d778: 10800b17 ldw r2,44(r2) - d77c: e0bff615 stw r2,-40(fp) - - if (in >= out) - d780: e0fff717 ldw r3,-36(fp) - d784: e0bff617 ldw r2,-40(fp) - d788: 18800536 bltu r3,r2,d7a0 - n = in - out; - d78c: e0bff717 ldw r2,-36(fp) - d790: e0fff617 ldw r3,-40(fp) - d794: 10c5c83a sub r2,r2,r3 - d798: e0bff815 stw r2,-32(fp) - d79c: 00000406 br d7b0 - else - n = ALTERA_AVALON_JTAG_UART_BUF_LEN - out; - d7a0: 00820004 movi r2,2048 - d7a4: e0fff617 ldw r3,-40(fp) - d7a8: 10c5c83a sub r2,r2,r3 - d7ac: e0bff815 stw r2,-32(fp) - - if (n == 0) - d7b0: e0bff817 ldw r2,-32(fp) - d7b4: 1005003a cmpeq r2,r2,zero - d7b8: 10001f1e bne r2,zero,d838 - break; /* No more data available */ - - if (n > space) - d7bc: e0fffd17 ldw r3,-12(fp) - d7c0: e0bff817 ldw r2,-32(fp) - d7c4: 1880022e bgeu r3,r2,d7d0 - n = space; - d7c8: e0bffd17 ldw r2,-12(fp) - d7cc: e0bff815 stw r2,-32(fp) - - memcpy(ptr, sp->rx_buf + out, n); - d7d0: e0bffb17 ldw r2,-20(fp) - d7d4: 10c00e04 addi r3,r2,56 - d7d8: e0bff617 ldw r2,-40(fp) - d7dc: 1887883a add r3,r3,r2 - d7e0: e0bffa17 ldw r2,-24(fp) - d7e4: 1009883a mov r4,r2 - d7e8: 180b883a mov r5,r3 - d7ec: e1bff817 ldw r6,-32(fp) - d7f0: 00080140 call 8014 - ptr += n; - d7f4: e0fff817 ldw r3,-32(fp) - d7f8: e0bffa17 ldw r2,-24(fp) - d7fc: 10c5883a add r2,r2,r3 - d800: e0bffa15 stw r2,-24(fp) - space -= n; - d804: e0fffd17 ldw r3,-12(fp) - d808: e0bff817 ldw r2,-32(fp) - d80c: 1885c83a sub r2,r3,r2 - d810: e0bffd15 stw r2,-12(fp) - - sp->rx_out = (out + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; - d814: e0fff617 ldw r3,-40(fp) - d818: e0bff817 ldw r2,-32(fp) - d81c: 1885883a add r2,r3,r2 - d820: 10c1ffcc andi r3,r2,2047 - d824: e0bffb17 ldw r2,-20(fp) - d828: 10c00b15 stw r3,44(r2) - } - while (space > 0); - d82c: e0bffd17 ldw r2,-12(fp) - d830: 10800048 cmpgei r2,r2,1 - d834: 103fcc1e bne r2,zero,d768 - - /* If we read any data then return it */ - if (ptr != buffer) - d838: e0fffa17 ldw r3,-24(fp) - d83c: e0bffc17 ldw r2,-16(fp) - d840: 1880141e bne r3,r2,d894 - break; - - /* If in non-blocking mode then return error */ - if (flags & O_NONBLOCK) - d844: e0bffe17 ldw r2,-8(fp) - d848: 1090000c andi r2,r2,16384 - d84c: 1004c03a cmpne r2,r2,zero - d850: 1000101e bne r2,zero,d894 - while (in == sp->rx_in && sp->host_inactive < sp->timeout) - ; - } -#else - /* No OS: Always spin */ - while (in == sp->rx_in && sp->host_inactive < sp->timeout) - d854: e0bffb17 ldw r2,-20(fp) - d858: 10c00a17 ldw r3,40(r2) - d85c: e0bff717 ldw r2,-36(fp) - d860: 1880051e bne r3,r2,d878 - d864: e0bffb17 ldw r2,-20(fp) - d868: 10c00917 ldw r3,36(r2) - d86c: e0bffb17 ldw r2,-20(fp) - d870: 10800117 ldw r2,4(r2) - d874: 18bff736 bltu r3,r2,d854 - ; -#endif /* __ucosii__ */ - - if (in == sp->rx_in) - d878: e0bffb17 ldw r2,-20(fp) - d87c: 10c00a17 ldw r3,40(r2) - d880: e0bff717 ldw r2,-36(fp) - d884: 18800326 beq r3,r2,d894 - * When running in a multi threaded environment, obtain the "read_lock" - * semaphore. This ensures that reading from the device is thread-safe. - */ - ALT_SEM_PEND (sp->read_lock, 0); - - while (space > 0) - d888: e0bffd17 ldw r2,-12(fp) - d88c: 10800048 cmpgei r2,r2,1 - d890: 103fb51e bne r2,zero,d768 - * semaphore so that other threads can access the buffer. - */ - - ALT_SEM_POST (sp->read_lock); - - if (ptr != buffer) - d894: e0fffa17 ldw r3,-24(fp) - d898: e0bffc17 ldw r2,-16(fp) - d89c: 18801926 beq r3,r2,d904 -static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE - alt_irq_disable_all (void) -{ - alt_irq_context context; - - NIOS2_READ_STATUS (context); - d8a0: 0005303a rdctl r2,status - d8a4: e0bff515 stw r2,-44(fp) - - NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); - d8a8: e0fff517 ldw r3,-44(fp) - d8ac: 00bfff84 movi r2,-2 - d8b0: 1884703a and r2,r3,r2 - d8b4: 1001703a wrctl status,r2 - - return context; - d8b8: e0bff517 ldw r2,-44(fp) - { - /* If we read any data then there is space in the buffer so enable interrupts */ - context = alt_irq_disable_all(); - d8bc: e0bff915 stw r2,-28(fp) - sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; - d8c0: e0bffb17 ldw r2,-20(fp) - d8c4: 10800817 ldw r2,32(r2) - d8c8: 10c00054 ori r3,r2,1 - d8cc: e0bffb17 ldw r2,-20(fp) - d8d0: 10c00815 stw r3,32(r2) - IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); - d8d4: e0bffb17 ldw r2,-20(fp) - d8d8: 10800017 ldw r2,0(r2) - d8dc: 11000104 addi r4,r2,4 - d8e0: e0bffb17 ldw r2,-20(fp) - d8e4: 10800817 ldw r2,32(r2) - d8e8: 1007883a mov r3,r2 - d8ec: 2005883a mov r2,r4 - d8f0: 10c00035 stwio r3,0(r2) - d8f4: e0bff917 ldw r2,-28(fp) - d8f8: e0bff415 stw r2,-48(fp) - status &= ~NIOS2_STATUS_PIE_MSK; - status |= (context & NIOS2_STATUS_PIE_MSK); - - NIOS2_WRITE_STATUS (status); -#else - NIOS2_WRITE_STATUS (context); - d8fc: e0bff417 ldw r2,-48(fp) - d900: 1001703a wrctl status,r2 - alt_irq_enable_all(context); - } - - if (ptr != buffer) - d904: e0fffa17 ldw r3,-24(fp) - d908: e0bffc17 ldw r2,-16(fp) - d90c: 18800526 beq r3,r2,d924 - return ptr - buffer; - d910: e0fffa17 ldw r3,-24(fp) - d914: e0bffc17 ldw r2,-16(fp) - d918: 1887c83a sub r3,r3,r2 - d91c: e0ffff15 stw r3,-4(fp) - d920: 00000906 br d948 - else if (flags & O_NONBLOCK) - d924: e0bffe17 ldw r2,-8(fp) - d928: 1090000c andi r2,r2,16384 - d92c: 1005003a cmpeq r2,r2,zero - d930: 1000031e bne r2,zero,d940 - return -EWOULDBLOCK; - d934: 00bffd44 movi r2,-11 - d938: e0bfff15 stw r2,-4(fp) - d93c: 00000206 br d948 - else - return -EIO; - d940: 00bffec4 movi r2,-5 - d944: e0bfff15 stw r2,-4(fp) - d948: e0bfff17 ldw r2,-4(fp) -} - d94c: e037883a mov sp,fp - d950: dfc00117 ldw ra,4(sp) - d954: df000017 ldw fp,0(sp) - d958: dec00204 addi sp,sp,8 - d95c: f800283a ret - -0000d960 : -/* ----------------------------------------------------------- */ - -int -altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, - const char * ptr, int count, int flags) -{ - d960: defff204 addi sp,sp,-56 - d964: dfc00d15 stw ra,52(sp) - d968: df000c15 stw fp,48(sp) - d96c: df000c04 addi fp,sp,48 - d970: e13ffb15 stw r4,-20(fp) - d974: e17ffc15 stw r5,-16(fp) - d978: e1bffd15 stw r6,-12(fp) - d97c: e1fffe15 stw r7,-8(fp) - /* Remove warning at optimisation level 03 by seting out to 0 */ - unsigned int in, out=0; - d980: e03ff915 stw zero,-28(fp) - unsigned int n; - alt_irq_context context; - - const char * start = ptr; - d984: e0bffc17 ldw r2,-16(fp) - d988: e0bff615 stw r2,-40(fp) - ALT_SEM_PEND (sp->write_lock, 0); - - do - { - /* Copy as much as we can into the transmit buffer */ - while (count > 0) - d98c: 00003a06 br da78 - { - /* We need a stable value of the out pointer to calculate the space available */ - in = sp->tx_in; - d990: e0bffb17 ldw r2,-20(fp) - d994: 10800c17 ldw r2,48(r2) - d998: e0bffa15 stw r2,-24(fp) - out = sp->tx_out; - d99c: e0bffb17 ldw r2,-20(fp) - d9a0: 10800d17 ldw r2,52(r2) - d9a4: e0bff915 stw r2,-28(fp) - - if (in < out) - d9a8: e0fffa17 ldw r3,-24(fp) - d9ac: e0bff917 ldw r2,-28(fp) - d9b0: 1880062e bgeu r3,r2,d9cc - n = out - 1 - in; - d9b4: e0fff917 ldw r3,-28(fp) - d9b8: e0bffa17 ldw r2,-24(fp) - d9bc: 1885c83a sub r2,r3,r2 - d9c0: 10bfffc4 addi r2,r2,-1 - d9c4: e0bff815 stw r2,-32(fp) - d9c8: 00000c06 br d9fc - else if (out > 0) - d9cc: e0bff917 ldw r2,-28(fp) - d9d0: 1005003a cmpeq r2,r2,zero - d9d4: 1000051e bne r2,zero,d9ec - n = ALTERA_AVALON_JTAG_UART_BUF_LEN - in; - d9d8: 00820004 movi r2,2048 - d9dc: e0fffa17 ldw r3,-24(fp) - d9e0: 10c5c83a sub r2,r2,r3 - d9e4: e0bff815 stw r2,-32(fp) - d9e8: 00000406 br d9fc - else - n = ALTERA_AVALON_JTAG_UART_BUF_LEN - 1 - in; - d9ec: 0081ffc4 movi r2,2047 - d9f0: e0fffa17 ldw r3,-24(fp) - d9f4: 10c5c83a sub r2,r2,r3 - d9f8: e0bff815 stw r2,-32(fp) - - if (n == 0) - d9fc: e0bff817 ldw r2,-32(fp) - da00: 1005003a cmpeq r2,r2,zero - da04: 10001f1e bne r2,zero,da84 - break; - - if (n > count) - da08: e0fffd17 ldw r3,-12(fp) - da0c: e0bff817 ldw r2,-32(fp) - da10: 1880022e bgeu r3,r2,da1c - n = count; - da14: e0bffd17 ldw r2,-12(fp) - da18: e0bff815 stw r2,-32(fp) - - memcpy(sp->tx_buf + in, ptr, n); - da1c: e0bffb17 ldw r2,-20(fp) - da20: 10c20e04 addi r3,r2,2104 - da24: e0bffa17 ldw r2,-24(fp) - da28: 1885883a add r2,r3,r2 - da2c: e0fffc17 ldw r3,-16(fp) - da30: 1009883a mov r4,r2 - da34: 180b883a mov r5,r3 - da38: e1bff817 ldw r6,-32(fp) - da3c: 00080140 call 8014 - ptr += n; - da40: e0fff817 ldw r3,-32(fp) - da44: e0bffc17 ldw r2,-16(fp) - da48: 10c5883a add r2,r2,r3 - da4c: e0bffc15 stw r2,-16(fp) - count -= n; - da50: e0fffd17 ldw r3,-12(fp) - da54: e0bff817 ldw r2,-32(fp) - da58: 1885c83a sub r2,r3,r2 - da5c: e0bffd15 stw r2,-12(fp) - - sp->tx_in = (in + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; - da60: e0fffa17 ldw r3,-24(fp) - da64: e0bff817 ldw r2,-32(fp) - da68: 1885883a add r2,r3,r2 - da6c: 10c1ffcc andi r3,r2,2047 - da70: e0bffb17 ldw r2,-20(fp) - da74: 10c00c15 stw r3,48(r2) - ALT_SEM_PEND (sp->write_lock, 0); - - do - { - /* Copy as much as we can into the transmit buffer */ - while (count > 0) - da78: e0bffd17 ldw r2,-12(fp) - da7c: 10800048 cmpgei r2,r2,1 - da80: 103fc31e bne r2,zero,d990 -static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE - alt_irq_disable_all (void) -{ - alt_irq_context context; - - NIOS2_READ_STATUS (context); - da84: 0005303a rdctl r2,status - da88: e0bff515 stw r2,-44(fp) - - NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); - da8c: e0fff517 ldw r3,-44(fp) - da90: 00bfff84 movi r2,-2 - da94: 1884703a and r2,r3,r2 - da98: 1001703a wrctl status,r2 - - return context; - da9c: e0bff517 ldw r2,-44(fp) - * to enable interrupts if there is no space left in the FIFO - * - * For now kick the interrupt routine every time to make it transmit - * the data - */ - context = alt_irq_disable_all(); - daa0: e0bff715 stw r2,-36(fp) - sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; - daa4: e0bffb17 ldw r2,-20(fp) - daa8: 10800817 ldw r2,32(r2) - daac: 10c00094 ori r3,r2,2 - dab0: e0bffb17 ldw r2,-20(fp) - dab4: 10c00815 stw r3,32(r2) - IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); - dab8: e0bffb17 ldw r2,-20(fp) - dabc: 10800017 ldw r2,0(r2) - dac0: 11000104 addi r4,r2,4 - dac4: e0bffb17 ldw r2,-20(fp) - dac8: 10800817 ldw r2,32(r2) - dacc: 1007883a mov r3,r2 - dad0: 2005883a mov r2,r4 - dad4: 10c00035 stwio r3,0(r2) - dad8: e0bff717 ldw r2,-36(fp) - dadc: e0bff415 stw r2,-48(fp) - status &= ~NIOS2_STATUS_PIE_MSK; - status |= (context & NIOS2_STATUS_PIE_MSK); - - NIOS2_WRITE_STATUS (status); -#else - NIOS2_WRITE_STATUS (context); - dae0: e0bff417 ldw r2,-48(fp) - dae4: 1001703a wrctl status,r2 - /* - * If there is any data left then either return now or block until - * some has been sent - */ - /* consider: test whether there is anything there while doing this and delay for at most 2s. */ - if (count > 0) - dae8: e0bffd17 ldw r2,-12(fp) - daec: 10800050 cmplti r2,r2,1 - daf0: 1000111e bne r2,zero,db38 - { - if (flags & O_NONBLOCK) - daf4: e0bffe17 ldw r2,-8(fp) - daf8: 1090000c andi r2,r2,16384 - dafc: 1004c03a cmpne r2,r2,zero - db00: 1000101e bne r2,zero,db44 - /* - * No OS present: Always wait for data to be removed from buffer. Once - * the interrupt routine has removed some data then we will be able to - * insert some more. - */ - while (out == sp->tx_out && sp->host_inactive < sp->timeout) - db04: e0bffb17 ldw r2,-20(fp) - db08: 10c00d17 ldw r3,52(r2) - db0c: e0bff917 ldw r2,-28(fp) - db10: 1880051e bne r3,r2,db28 - db14: e0bffb17 ldw r2,-20(fp) - db18: 10c00917 ldw r3,36(r2) - db1c: e0bffb17 ldw r2,-20(fp) - db20: 10800117 ldw r2,4(r2) - db24: 18bff736 bltu r3,r2,db04 - ; -#endif /* __ucosii__ */ - - if (out == sp->tx_out) - db28: e0bffb17 ldw r2,-20(fp) - db2c: 10c00d17 ldw r3,52(r2) - db30: e0bff917 ldw r2,-28(fp) - db34: 18800326 beq r3,r2,db44 - break; - } - } - while (count > 0); - db38: e0bffd17 ldw r2,-12(fp) - db3c: 10800048 cmpgei r2,r2,1 - db40: 103fcd1e bne r2,zero,da78 - * Now that access to the circular buffer is complete, release the write - * semaphore so that other threads can access the buffer. - */ - ALT_SEM_POST (sp->write_lock); - - if (ptr != start) - db44: e0fffc17 ldw r3,-16(fp) - db48: e0bff617 ldw r2,-40(fp) - db4c: 18800526 beq r3,r2,db64 - return ptr - start; - db50: e0fffc17 ldw r3,-16(fp) - db54: e0bff617 ldw r2,-40(fp) - db58: 1887c83a sub r3,r3,r2 - db5c: e0ffff15 stw r3,-4(fp) - db60: 00000906 br db88 - else if (flags & O_NONBLOCK) - db64: e0bffe17 ldw r2,-8(fp) - db68: 1090000c andi r2,r2,16384 - db6c: 1005003a cmpeq r2,r2,zero - db70: 1000031e bne r2,zero,db80 - return -EWOULDBLOCK; - db74: 00bffd44 movi r2,-11 - db78: e0bfff15 stw r2,-4(fp) - db7c: 00000206 br db88 - sp->tx_out = sp->tx_in = 0; - return ptr - start + count; - } -#endif - else - return -EIO; /* Host not connected */ - db80: 00bffec4 movi r2,-5 - db84: e0bfff15 stw r2,-4(fp) - db88: e0bfff17 ldw r2,-4(fp) -} - db8c: e037883a mov sp,fp - db90: dfc00117 ldw ra,4(sp) - db94: df000017 ldw fp,0(sp) - db98: dec00204 addi sp,sp,8 - db9c: f800283a ret - -0000dba0 : - -/* --------------------------------------------------------------------- */ - -static void lcd_write_command(altera_avalon_lcd_16207_state* sp, - unsigned char command) -{ - dba0: defffa04 addi sp,sp,-24 - dba4: dfc00515 stw ra,20(sp) - dba8: df000415 stw fp,16(sp) - dbac: df000404 addi fp,sp,16 - dbb0: e13ffe15 stw r4,-8(fp) - dbb4: e17fff05 stb r5,-4(fp) - unsigned int base = sp->base; - dbb8: e0bffe17 ldw r2,-8(fp) - dbbc: 10800017 ldw r2,0(r2) - dbc0: e0bffd15 stw r2,-12(fp) - /* We impose a timeout on the driver in case the LCD panel isn't connected. - * The first time we call this function the timeout is approx 25ms - * (assuming 5 cycles per loop and a 200MHz clock). Obviously systems - * with slower clocks, or debug builds, or slower memory will take longer. - */ - int i = 1000000; - dbc4: 008003f4 movhi r2,15 - dbc8: 10909004 addi r2,r2,16960 - dbcc: e0bffc15 stw r2,-16(fp) - - /* Don't bother if the LCD panel didn't work before */ - if (sp->broken) - dbd0: e0bffe17 ldw r2,-8(fp) - dbd4: 10800803 ldbu r2,32(r2) - dbd8: 10803fcc andi r2,r2,255 - dbdc: 1080201c xori r2,r2,128 - dbe0: 10bfe004 addi r2,r2,-128 - dbe4: 1004c03a cmpne r2,r2,zero - dbe8: 1000161e bne r2,zero,dc44 - return; - - /* Wait until LCD isn't busy. */ - while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) - dbec: 00000a06 br dc18 - if (--i == 0) - dbf0: e0bffc17 ldw r2,-16(fp) - dbf4: 10bfffc4 addi r2,r2,-1 - dbf8: e0bffc15 stw r2,-16(fp) - dbfc: e0bffc17 ldw r2,-16(fp) - dc00: 1004c03a cmpne r2,r2,zero - dc04: 1000041e bne r2,zero,dc18 - { - sp->broken = 1; - dc08: e0fffe17 ldw r3,-8(fp) - dc0c: 00800044 movi r2,1 - dc10: 18800805 stb r2,32(r3) - return; - dc14: 00000b06 br dc44 - /* Don't bother if the LCD panel didn't work before */ - if (sp->broken) - return; - - /* Wait until LCD isn't busy. */ - while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) - dc18: e0bffd17 ldw r2,-12(fp) - dc1c: 10800104 addi r2,r2,4 - dc20: 10800037 ldwio r2,0(r2) - dc24: 1080200c andi r2,r2,128 - dc28: 1004c03a cmpne r2,r2,zero - dc2c: 103ff01e bne r2,zero,dbf0 - } - - /* Despite what it says in the datasheet, the LCD isn't ready to accept - * a write immediately after it returns BUSY=0. Wait for 100us more. - */ - usleep(100); - dc30: 01001904 movi r4,100 - dc34: 000ce780 call ce78 - - IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, command); - dc38: e0bffd17 ldw r2,-12(fp) - dc3c: e0ffff03 ldbu r3,-4(fp) - dc40: 10c00035 stwio r3,0(r2) -} - dc44: e037883a mov sp,fp - dc48: dfc00117 ldw ra,4(sp) - dc4c: df000017 ldw fp,0(sp) - dc50: dec00204 addi sp,sp,8 - dc54: f800283a ret - -0000dc58 : - -/* --------------------------------------------------------------------- */ - -static void lcd_write_data(altera_avalon_lcd_16207_state* sp, - unsigned char data) -{ - dc58: defffa04 addi sp,sp,-24 - dc5c: dfc00515 stw ra,20(sp) - dc60: df000415 stw fp,16(sp) - dc64: df000404 addi fp,sp,16 - dc68: e13ffe15 stw r4,-8(fp) - dc6c: e17fff05 stb r5,-4(fp) - unsigned int base = sp->base; - dc70: e0bffe17 ldw r2,-8(fp) - dc74: 10800017 ldw r2,0(r2) - dc78: e0bffd15 stw r2,-12(fp) - /* We impose a timeout on the driver in case the LCD panel isn't connected. - * The first time we call this function the timeout is approx 25ms - * (assuming 5 cycles per loop and a 200MHz clock). Obviously systems - * with slower clocks, or debug builds, or slower memory will take longer. - */ - int i = 1000000; - dc7c: 008003f4 movhi r2,15 - dc80: 10909004 addi r2,r2,16960 - dc84: e0bffc15 stw r2,-16(fp) - - /* Don't bother if the LCD panel didn't work before */ - if (sp->broken) - dc88: e0bffe17 ldw r2,-8(fp) - dc8c: 10800803 ldbu r2,32(r2) - dc90: 10803fcc andi r2,r2,255 - dc94: 1080201c xori r2,r2,128 - dc98: 10bfe004 addi r2,r2,-128 - dc9c: 1004c03a cmpne r2,r2,zero - dca0: 10001d1e bne r2,zero,dd18 - return; - - /* Wait until LCD isn't busy. */ - while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) - dca4: 00000a06 br dcd0 - if (--i == 0) - dca8: e0bffc17 ldw r2,-16(fp) - dcac: 10bfffc4 addi r2,r2,-1 - dcb0: e0bffc15 stw r2,-16(fp) - dcb4: e0bffc17 ldw r2,-16(fp) - dcb8: 1004c03a cmpne r2,r2,zero - dcbc: 1000041e bne r2,zero,dcd0 - { - sp->broken = 1; - dcc0: e0fffe17 ldw r3,-8(fp) - dcc4: 00800044 movi r2,1 - dcc8: 18800805 stb r2,32(r3) - return; - dccc: 00001206 br dd18 - /* Don't bother if the LCD panel didn't work before */ - if (sp->broken) - return; - - /* Wait until LCD isn't busy. */ - while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) - dcd0: e0bffd17 ldw r2,-12(fp) - dcd4: 10800104 addi r2,r2,4 - dcd8: 10800037 ldwio r2,0(r2) - dcdc: 1080200c andi r2,r2,128 - dce0: 1004c03a cmpne r2,r2,zero - dce4: 103ff01e bne r2,zero,dca8 - } - - /* Despite what it says in the datasheet, the LCD isn't ready to accept - * a write immediately after it returns BUSY=0. Wait for 100us more. - */ - usleep(100); - dce8: 01001904 movi r4,100 - dcec: 000ce780 call ce78 - - IOWR_ALTERA_AVALON_LCD_16207_DATA(base, data); - dcf0: e0bffd17 ldw r2,-12(fp) - dcf4: 10800204 addi r2,r2,8 - dcf8: e0ffff03 ldbu r3,-4(fp) - dcfc: 10c00035 stwio r3,0(r2) - - sp->address++; - dd00: e0bffe17 ldw r2,-8(fp) - dd04: 108008c3 ldbu r2,35(r2) - dd08: 10800044 addi r2,r2,1 - dd0c: 1007883a mov r3,r2 - dd10: e0bffe17 ldw r2,-8(fp) - dd14: 10c008c5 stb r3,35(r2) -} - dd18: e037883a mov sp,fp - dd1c: dfc00117 ldw ra,4(sp) - dd20: df000017 ldw fp,0(sp) - dd24: dec00204 addi sp,sp,8 - dd28: f800283a ret - -0000dd2c : - -/* --------------------------------------------------------------------- */ - -static void lcd_clear_screen(altera_avalon_lcd_16207_state* sp) -{ - dd2c: defffb04 addi sp,sp,-20 - dd30: dfc00415 stw ra,16(sp) - dd34: df000315 stw fp,12(sp) - dd38: dc000215 stw r16,8(sp) - dd3c: df000204 addi fp,sp,8 - dd40: e13fff15 stw r4,-4(fp) - int y; - - lcd_write_command(sp, LCD_CMD_CLEAR); - dd44: e13fff17 ldw r4,-4(fp) - dd48: 01400044 movi r5,1 - dd4c: 000dba00 call dba0 - - sp->x = 0; - dd50: e0bfff17 ldw r2,-4(fp) - dd54: 10000845 stb zero,33(r2) - sp->y = 0; - dd58: e0bfff17 ldw r2,-4(fp) - dd5c: 10000885 stb zero,34(r2) - sp->address = 0; - dd60: e0bfff17 ldw r2,-4(fp) - dd64: 100008c5 stb zero,35(r2) - - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - dd68: e03ffe15 stw zero,-8(fp) - dd6c: 00001c06 br dde0 - { - memset(sp->line[y].data, ' ', sizeof(sp->line[0].data)); - dd70: e13ffe17 ldw r4,-8(fp) - dd74: 014018c4 movi r5,99 - dd78: 0002c240 call 2c24 <__mulsi3> - dd7c: 10c01004 addi r3,r2,64 - dd80: e0bfff17 ldw r2,-4(fp) - dd84: 1889883a add r4,r3,r2 - dd88: 01400804 movi r5,32 - dd8c: 01801444 movi r6,81 - dd90: 00081940 call 8194 - memset(sp->line[y].visible, ' ', sizeof(sp->line[0].visible)); - dd94: e13ffe17 ldw r4,-8(fp) - dd98: 014018c4 movi r5,99 - dd9c: 0002c240 call 2c24 <__mulsi3> - dda0: 10c00c04 addi r3,r2,48 - dda4: e0bfff17 ldw r2,-4(fp) - dda8: 1889883a add r4,r3,r2 - ddac: 01400804 movi r5,32 - ddb0: 01800404 movi r6,16 - ddb4: 00081940 call 8194 - sp->line[y].width = 0; - ddb8: e13ffe17 ldw r4,-8(fp) - ddbc: e43fff17 ldw r16,-4(fp) - ddc0: 014018c4 movi r5,99 - ddc4: 0002c240 call 2c24 <__mulsi3> - ddc8: 1405883a add r2,r2,r16 - ddcc: 10802404 addi r2,r2,144 - ddd0: 10000045 stb zero,1(r2) - - sp->x = 0; - sp->y = 0; - sp->address = 0; - - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - ddd4: e0bffe17 ldw r2,-8(fp) - ddd8: 10800044 addi r2,r2,1 - dddc: e0bffe15 stw r2,-8(fp) - dde0: e0bffe17 ldw r2,-8(fp) - dde4: 10800090 cmplti r2,r2,2 - dde8: 103fe11e bne r2,zero,dd70 - { - memset(sp->line[y].data, ' ', sizeof(sp->line[0].data)); - memset(sp->line[y].visible, ' ', sizeof(sp->line[0].visible)); - sp->line[y].width = 0; - } -} - ddec: e037883a mov sp,fp - ddf0: dfc00217 ldw ra,8(sp) - ddf4: df000117 ldw fp,4(sp) - ddf8: dc000017 ldw r16,0(sp) - ddfc: dec00304 addi sp,sp,12 - de00: f800283a ret - -0000de04 : - -/* --------------------------------------------------------------------- */ - -static void lcd_repaint_screen(altera_avalon_lcd_16207_state* sp) -{ - de04: defff404 addi sp,sp,-48 - de08: dfc00b15 stw ra,44(sp) - de0c: df000a15 stw fp,40(sp) - de10: dc800915 stw r18,36(sp) - de14: dc400815 stw r17,32(sp) - de18: dc000715 stw r16,28(sp) - de1c: df000704 addi fp,sp,28 - de20: e13fff15 stw r4,-4(fp) - /* scrollpos controls how much the lines have scrolled round. The speed - * each line scrolls at is controlled by its speed variable - while - * scrolline lines will wrap at the position set by width - */ - - int scrollpos = sp->scrollpos; - de24: e0bfff17 ldw r2,-4(fp) - de28: 10800943 ldbu r2,37(r2) - de2c: 10803fcc andi r2,r2,255 - de30: 1080201c xori r2,r2,128 - de34: 10bfe004 addi r2,r2,-128 - de38: e0bffc15 stw r2,-16(fp) - - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - de3c: e03ffe15 stw zero,-8(fp) - de40: 00006a06 br dfec - { - int width = sp->line[y].width; - de44: e13ffe17 ldw r4,-8(fp) - de48: e43fff17 ldw r16,-4(fp) - de4c: 014018c4 movi r5,99 - de50: 0002c240 call 2c24 <__mulsi3> - de54: 1405883a add r2,r2,r16 - de58: 10802404 addi r2,r2,144 - de5c: 10800043 ldbu r2,1(r2) - de60: 10803fcc andi r2,r2,255 - de64: 1080201c xori r2,r2,128 - de68: 10bfe004 addi r2,r2,-128 - de6c: e0bffb15 stw r2,-20(fp) - int offset = (scrollpos * sp->line[y].speed) >> 8; - de70: e13ffe17 ldw r4,-8(fp) - de74: e43fff17 ldw r16,-4(fp) - de78: 014018c4 movi r5,99 - de7c: 0002c240 call 2c24 <__mulsi3> - de80: 1405883a add r2,r2,r16 - de84: 10802404 addi r2,r2,144 - de88: 10800083 ldbu r2,2(r2) - de8c: 11003fcc andi r4,r2,255 - de90: e17ffc17 ldw r5,-16(fp) - de94: 0002c240 call 2c24 <__mulsi3> - de98: 1005d23a srai r2,r2,8 - de9c: e0bffa15 stw r2,-24(fp) - if (offset >= width) - dea0: e0fffa17 ldw r3,-24(fp) - dea4: e0bffb17 ldw r2,-20(fp) - dea8: 18800116 blt r3,r2,deb0 - offset = 0; - deac: e03ffa15 stw zero,-24(fp) - - for (x = 0 ; x < ALT_LCD_WIDTH ; x++) - deb0: e03ffd15 stw zero,-12(fp) - deb4: 00004706 br dfd4 - { - char c = sp->line[y].data[(x + offset) % width]; - deb8: e47ffe17 ldw r17,-8(fp) - debc: e0fffd17 ldw r3,-12(fp) - dec0: e0bffa17 ldw r2,-24(fp) - dec4: 1889883a add r4,r3,r2 - dec8: e17ffb17 ldw r5,-20(fp) - decc: 0002bb40 call 2bb4 <__modsi3> - ded0: 1025883a mov r18,r2 - ded4: e43fff17 ldw r16,-4(fp) - ded8: 8809883a mov r4,r17 - dedc: 014018c4 movi r5,99 - dee0: 0002c240 call 2c24 <__mulsi3> - dee4: 1405883a add r2,r2,r16 - dee8: 1485883a add r2,r2,r18 - deec: 10801004 addi r2,r2,64 - def0: 10800003 ldbu r2,0(r2) - def4: e0bff945 stb r2,-27(fp) - - /* Writing data takes 40us, so don't do it unless required */ - if (sp->line[y].visible[x] != c) - def8: e13ffe17 ldw r4,-8(fp) - defc: e47ffd17 ldw r17,-12(fp) - df00: e43fff17 ldw r16,-4(fp) - df04: 014018c4 movi r5,99 - df08: 0002c240 call 2c24 <__mulsi3> - df0c: 1405883a add r2,r2,r16 - df10: 1445883a add r2,r2,r17 - df14: 10800c04 addi r2,r2,48 - df18: 10800003 ldbu r2,0(r2) - df1c: 10c03fcc andi r3,r2,255 - df20: 18c0201c xori r3,r3,128 - df24: 18ffe004 addi r3,r3,-128 - df28: e0bff947 ldb r2,-27(fp) - df2c: 18802626 beq r3,r2,dfc8 - { - unsigned char address = x + colstart[y]; - df30: e0fffe17 ldw r3,-8(fp) - df34: d0a00f04 addi r2,gp,-32708 - df38: 1885883a add r2,r3,r2 - df3c: 10800003 ldbu r2,0(r2) - df40: 1007883a mov r3,r2 - df44: e0bffd17 ldw r2,-12(fp) - df48: 1885883a add r2,r3,r2 - df4c: e0bff905 stb r2,-28(fp) - - if (address != sp->address) - df50: e0fff903 ldbu r3,-28(fp) - df54: e0bfff17 ldw r2,-4(fp) - df58: 108008c3 ldbu r2,35(r2) - df5c: 10803fcc andi r2,r2,255 - df60: 1080201c xori r2,r2,128 - df64: 10bfe004 addi r2,r2,-128 - df68: 18800926 beq r3,r2,df90 - { - lcd_write_command(sp, LCD_CMD_WRITE_DATA | address); - df6c: e0fff903 ldbu r3,-28(fp) - df70: 00bfe004 movi r2,-128 - df74: 1884b03a or r2,r3,r2 - df78: 11403fcc andi r5,r2,255 - df7c: e13fff17 ldw r4,-4(fp) - df80: 000dba00 call dba0 - sp->address = address; - df84: e0fff903 ldbu r3,-28(fp) - df88: e0bfff17 ldw r2,-4(fp) - df8c: 10c008c5 stb r3,35(r2) - } - - lcd_write_data(sp, c); - df90: e0bff943 ldbu r2,-27(fp) - df94: 11403fcc andi r5,r2,255 - df98: e13fff17 ldw r4,-4(fp) - df9c: 000dc580 call dc58 - sp->line[y].visible[x] = c; - dfa0: e13ffe17 ldw r4,-8(fp) - dfa4: e47ffd17 ldw r17,-12(fp) - dfa8: e43fff17 ldw r16,-4(fp) - dfac: 014018c4 movi r5,99 - dfb0: 0002c240 call 2c24 <__mulsi3> - dfb4: 1405883a add r2,r2,r16 - dfb8: 1445883a add r2,r2,r17 - dfbc: 10c00c04 addi r3,r2,48 - dfc0: e0bff943 ldbu r2,-27(fp) - dfc4: 18800005 stb r2,0(r3) - int width = sp->line[y].width; - int offset = (scrollpos * sp->line[y].speed) >> 8; - if (offset >= width) - offset = 0; - - for (x = 0 ; x < ALT_LCD_WIDTH ; x++) - dfc8: e0bffd17 ldw r2,-12(fp) - dfcc: 10800044 addi r2,r2,1 - dfd0: e0bffd15 stw r2,-12(fp) - dfd4: e0bffd17 ldw r2,-12(fp) - dfd8: 10800410 cmplti r2,r2,16 - dfdc: 103fb61e bne r2,zero,deb8 - * scrolline lines will wrap at the position set by width - */ - - int scrollpos = sp->scrollpos; - - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - dfe0: e0bffe17 ldw r2,-8(fp) - dfe4: 10800044 addi r2,r2,1 - dfe8: e0bffe15 stw r2,-8(fp) - dfec: e0bffe17 ldw r2,-8(fp) - dff0: 10800090 cmplti r2,r2,2 - dff4: 103f931e bne r2,zero,de44 - lcd_write_data(sp, c); - sp->line[y].visible[x] = c; - } - } - } -} - dff8: e037883a mov sp,fp - dffc: dfc00417 ldw ra,16(sp) - e000: df000317 ldw fp,12(sp) - e004: dc800217 ldw r18,8(sp) - e008: dc400117 ldw r17,4(sp) - e00c: dc000017 ldw r16,0(sp) - e010: dec00504 addi sp,sp,20 - e014: f800283a ret - -0000e018 : - -/* --------------------------------------------------------------------- */ - -static void lcd_scroll_up(altera_avalon_lcd_16207_state* sp) -{ - e018: defffb04 addi sp,sp,-20 - e01c: dfc00415 stw ra,16(sp) - e020: df000315 stw fp,12(sp) - e024: dc000215 stw r16,8(sp) - e028: df000204 addi fp,sp,8 - e02c: e13fff15 stw r4,-4(fp) - int y; - - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - e030: e03ffe15 stw zero,-8(fp) - e034: 00002106 br e0bc - { - if (y < ALT_LCD_HEIGHT-1) - e038: e0bffe17 ldw r2,-8(fp) - e03c: 10800048 cmpgei r2,r2,1 - e040: 1000121e bne r2,zero,e08c - memcpy(sp->line[y].data, sp->line[y+1].data, ALT_LCD_VIRTUAL_WIDTH); - e044: e13ffe17 ldw r4,-8(fp) - e048: 014018c4 movi r5,99 - e04c: 0002c240 call 2c24 <__mulsi3> - e050: 10c01004 addi r3,r2,64 - e054: e0bfff17 ldw r2,-4(fp) - e058: 18a1883a add r16,r3,r2 - e05c: e0bffe17 ldw r2,-8(fp) - e060: 11000044 addi r4,r2,1 - e064: 014018c4 movi r5,99 - e068: 0002c240 call 2c24 <__mulsi3> - e06c: 10c01004 addi r3,r2,64 - e070: e0bfff17 ldw r2,-4(fp) - e074: 1885883a add r2,r3,r2 - e078: 8009883a mov r4,r16 - e07c: 100b883a mov r5,r2 - e080: 01801404 movi r6,80 - e084: 00080140 call 8014 - e088: 00000906 br e0b0 - else - memset(sp->line[y].data, ' ', ALT_LCD_VIRTUAL_WIDTH); - e08c: e13ffe17 ldw r4,-8(fp) - e090: 014018c4 movi r5,99 - e094: 0002c240 call 2c24 <__mulsi3> - e098: 10c01004 addi r3,r2,64 - e09c: e0bfff17 ldw r2,-4(fp) - e0a0: 1889883a add r4,r3,r2 - e0a4: 01400804 movi r5,32 - e0a8: 01801404 movi r6,80 - e0ac: 00081940 call 8194 - -static void lcd_scroll_up(altera_avalon_lcd_16207_state* sp) -{ - int y; - - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - e0b0: e0bffe17 ldw r2,-8(fp) - e0b4: 10800044 addi r2,r2,1 - e0b8: e0bffe15 stw r2,-8(fp) - e0bc: e0bffe17 ldw r2,-8(fp) - e0c0: 10800090 cmplti r2,r2,2 - e0c4: 103fdc1e bne r2,zero,e038 - memcpy(sp->line[y].data, sp->line[y+1].data, ALT_LCD_VIRTUAL_WIDTH); - else - memset(sp->line[y].data, ' ', ALT_LCD_VIRTUAL_WIDTH); - } - - sp->y--; - e0c8: e0bfff17 ldw r2,-4(fp) - e0cc: 10800883 ldbu r2,34(r2) - e0d0: 10bfffc4 addi r2,r2,-1 - e0d4: 1007883a mov r3,r2 - e0d8: e0bfff17 ldw r2,-4(fp) - e0dc: 10c00885 stb r3,34(r2) -} - e0e0: e037883a mov sp,fp - e0e4: dfc00217 ldw ra,8(sp) - e0e8: df000117 ldw fp,4(sp) - e0ec: dc000017 ldw r16,0(sp) - e0f0: dec00304 addi sp,sp,12 - e0f4: f800283a ret - -0000e0f8 : - -/* --------------------------------------------------------------------- */ - -static void lcd_handle_escape(altera_avalon_lcd_16207_state* sp, char c) -{ - e0f8: defff804 addi sp,sp,-32 - e0fc: dfc00715 stw ra,28(sp) - e100: df000615 stw fp,24(sp) - e104: df000604 addi fp,sp,24 - e108: e13ffd15 stw r4,-12(fp) - e10c: e17ffe05 stb r5,-8(fp) - int parm1 = 0, parm2 = 0; - e110: e03ffc15 stw zero,-16(fp) - e114: e03ffb15 stw zero,-20(fp) - - if (sp->escape[0] == '[') - e118: e0bffd17 ldw r2,-12(fp) - e11c: 10800a03 ldbu r2,40(r2) - e120: 10803fcc andi r2,r2,255 - e124: 1080201c xori r2,r2,128 - e128: 10bfe004 addi r2,r2,-128 - e12c: 108016d8 cmpnei r2,r2,91 - e130: 10004d1e bne r2,zero,e268 - { - char * ptr = sp->escape+1; - e134: e0bffd17 ldw r2,-12(fp) - e138: 10800a04 addi r2,r2,40 - e13c: 10800044 addi r2,r2,1 - e140: e0bffa15 stw r2,-24(fp) - while (isdigit(*ptr)) - e144: 00000f06 br e184 - parm1 = (parm1 * 10) + (*ptr++ - '0'); - e148: e13ffc17 ldw r4,-16(fp) - e14c: 01400284 movi r5,10 - e150: 0002c240 call 2c24 <__mulsi3> - e154: 1007883a mov r3,r2 - e158: e0bffa17 ldw r2,-24(fp) - e15c: 10800003 ldbu r2,0(r2) - e160: 10803fcc andi r2,r2,255 - e164: 1080201c xori r2,r2,128 - e168: 10bfe004 addi r2,r2,-128 - e16c: 1885883a add r2,r3,r2 - e170: 10bff404 addi r2,r2,-48 - e174: e0bffc15 stw r2,-16(fp) - e178: e0bffa17 ldw r2,-24(fp) - e17c: 10800044 addi r2,r2,1 - e180: e0bffa15 stw r2,-24(fp) - int parm1 = 0, parm2 = 0; - - if (sp->escape[0] == '[') - { - char * ptr = sp->escape+1; - while (isdigit(*ptr)) - e184: e0bffa17 ldw r2,-24(fp) - e188: 10800003 ldbu r2,0(r2) - e18c: 10803fcc andi r2,r2,255 - e190: 1080201c xori r2,r2,128 - e194: 10bfe004 addi r2,r2,-128 - e198: 1007883a mov r3,r2 - e19c: 00800074 movhi r2,1 - e1a0: 10887d04 addi r2,r2,8692 - e1a4: 10800017 ldw r2,0(r2) - e1a8: 1885883a add r2,r3,r2 - e1ac: 10800003 ldbu r2,0(r2) - e1b0: 10803fcc andi r2,r2,255 - e1b4: 1080010c andi r2,r2,4 - e1b8: 1004c03a cmpne r2,r2,zero - e1bc: 103fe21e bne r2,zero,e148 - parm1 = (parm1 * 10) + (*ptr++ - '0'); - - if (*ptr == ';') - e1c0: e0bffa17 ldw r2,-24(fp) - e1c4: 10800003 ldbu r2,0(r2) - e1c8: 10803fcc andi r2,r2,255 - e1cc: 1080201c xori r2,r2,128 - e1d0: 10bfe004 addi r2,r2,-128 - e1d4: 10800ed8 cmpnei r2,r2,59 - e1d8: 1000251e bne r2,zero,e270 - { - ptr++; - e1dc: e0bffa17 ldw r2,-24(fp) - e1e0: 10800044 addi r2,r2,1 - e1e4: e0bffa15 stw r2,-24(fp) - while (isdigit(*ptr)) - e1e8: 00000f06 br e228 - parm2 = (parm2 * 10) + (*ptr++ - '0'); - e1ec: e13ffb17 ldw r4,-20(fp) - e1f0: 01400284 movi r5,10 - e1f4: 0002c240 call 2c24 <__mulsi3> - e1f8: 1007883a mov r3,r2 - e1fc: e0bffa17 ldw r2,-24(fp) - e200: 10800003 ldbu r2,0(r2) - e204: 10803fcc andi r2,r2,255 - e208: 1080201c xori r2,r2,128 - e20c: 10bfe004 addi r2,r2,-128 - e210: 1885883a add r2,r3,r2 - e214: 10bff404 addi r2,r2,-48 - e218: e0bffb15 stw r2,-20(fp) - e21c: e0bffa17 ldw r2,-24(fp) - e220: 10800044 addi r2,r2,1 - e224: e0bffa15 stw r2,-24(fp) - parm1 = (parm1 * 10) + (*ptr++ - '0'); - - if (*ptr == ';') - { - ptr++; - while (isdigit(*ptr)) - e228: e0bffa17 ldw r2,-24(fp) - e22c: 10800003 ldbu r2,0(r2) - e230: 10803fcc andi r2,r2,255 - e234: 1080201c xori r2,r2,128 - e238: 10bfe004 addi r2,r2,-128 - e23c: 1007883a mov r3,r2 - e240: 00800074 movhi r2,1 - e244: 10887d04 addi r2,r2,8692 - e248: 10800017 ldw r2,0(r2) - e24c: 1885883a add r2,r3,r2 - e250: 10800003 ldbu r2,0(r2) - e254: 10803fcc andi r2,r2,255 - e258: 1080010c andi r2,r2,4 - e25c: 1004c03a cmpne r2,r2,zero - e260: 103fe21e bne r2,zero,e1ec - e264: 00000206 br e270 - parm2 = (parm2 * 10) + (*ptr++ - '0'); - } - } - else - parm1 = -1; - e268: 00bfffc4 movi r2,-1 - e26c: e0bffc15 stw r2,-16(fp) - - switch (c) - e270: e0bffe07 ldb r2,-8(fp) - e274: e0bfff15 stw r2,-4(fp) - e278: e0ffff17 ldw r3,-4(fp) - e27c: 188012a0 cmpeqi r2,r3,74 - e280: 10002f1e bne r2,zero,e340 - e284: e0ffff17 ldw r3,-4(fp) - e288: 188012c8 cmpgei r2,r3,75 - e28c: 1000041e bne r2,zero,e2a0 - e290: e0ffff17 ldw r3,-4(fp) - e294: 18801220 cmpeqi r2,r3,72 - e298: 1000081e bne r2,zero,e2bc - e29c: 00004a06 br e3c8 - e2a0: e0ffff17 ldw r3,-4(fp) - e2a4: 188012e0 cmpeqi r2,r3,75 - e2a8: 10002b1e bne r2,zero,e358 - e2ac: e0ffff17 ldw r3,-4(fp) - e2b0: 188019a0 cmpeqi r2,r3,102 - e2b4: 1000011e bne r2,zero,e2bc - e2b8: 00004306 br e3c8 - { - case 'H': /* ESC '[' ';' 'H' : Move cursor to location */ - case 'f': /* Same as above */ - if (parm2 > 0) - e2bc: e0bffb17 ldw r2,-20(fp) - e2c0: 10800050 cmplti r2,r2,1 - e2c4: 1000051e bne r2,zero,e2dc - sp->x = parm2 - 1; - e2c8: e0bffb17 ldw r2,-20(fp) - e2cc: 10bfffc4 addi r2,r2,-1 - e2d0: 1007883a mov r3,r2 - e2d4: e0bffd17 ldw r2,-12(fp) - e2d8: 10c00845 stb r3,33(r2) - if (parm1 > 0) - e2dc: e0bffc17 ldw r2,-16(fp) - e2e0: 10800050 cmplti r2,r2,1 - e2e4: 1000381e bne r2,zero,e3c8 - { - sp->y = parm1 - 1; - e2e8: e0bffc17 ldw r2,-16(fp) - e2ec: 10bfffc4 addi r2,r2,-1 - e2f0: 1007883a mov r3,r2 - e2f4: e0bffd17 ldw r2,-12(fp) - e2f8: 10c00885 stb r3,34(r2) - if (sp->y > ALT_LCD_HEIGHT * 2) - e2fc: e0bffd17 ldw r2,-12(fp) - e300: 10800883 ldbu r2,34(r2) - e304: 10803fcc andi r2,r2,255 - e308: 10800170 cmpltui r2,r2,5 - e30c: 1000061e bne r2,zero,e328 - sp->y = ALT_LCD_HEIGHT * 2; - e310: e0fffd17 ldw r3,-12(fp) - e314: 00800104 movi r2,4 - e318: 18800885 stb r2,34(r3) - while (sp->y > ALT_LCD_HEIGHT) - e31c: 00000206 br e328 - lcd_scroll_up(sp); - e320: e13ffd17 ldw r4,-12(fp) - e324: 000e0180 call e018 - if (parm1 > 0) - { - sp->y = parm1 - 1; - if (sp->y > ALT_LCD_HEIGHT * 2) - sp->y = ALT_LCD_HEIGHT * 2; - while (sp->y > ALT_LCD_HEIGHT) - e328: e0bffd17 ldw r2,-12(fp) - e32c: 10800883 ldbu r2,34(r2) - e330: 10803fcc andi r2,r2,255 - e334: 108000e8 cmpgeui r2,r2,3 - e338: 103ff91e bne r2,zero,e320 - lcd_scroll_up(sp); - } - break; - e33c: 00002206 br e3c8 - /* ESC J is clear to beginning of line [unimplemented] - * ESC [ 0 J is clear to bottom of screen [unimplemented] - * ESC [ 1 J is clear to beginning of screen [unimplemented] - * ESC [ 2 J is clear screen - */ - if (parm1 == 2) - e340: e0bffc17 ldw r2,-16(fp) - e344: 10800098 cmpnei r2,r2,2 - e348: 10001f1e bne r2,zero,e3c8 - lcd_clear_screen(sp); - e34c: e13ffd17 ldw r4,-12(fp) - e350: 000dd2c0 call dd2c - break; - e354: 00001c06 br e3c8 - /* ESC K is clear to end of line - * ESC [ 0 K is clear to end of line - * ESC [ 1 K is clear to beginning of line [unimplemented] - * ESC [ 2 K is clear line [unimplemented] - */ - if (parm1 < 1) - e358: e0bffc17 ldw r2,-16(fp) - e35c: 10800048 cmpgei r2,r2,1 - e360: 1000191e bne r2,zero,e3c8 - { - if (sp->x < ALT_LCD_VIRTUAL_WIDTH) - e364: e0bffd17 ldw r2,-12(fp) - e368: 10800843 ldbu r2,33(r2) - e36c: 10803fcc andi r2,r2,255 - e370: 10801428 cmpgeui r2,r2,80 - e374: 1000141e bne r2,zero,e3c8 - memset(sp->line[sp->y].data + sp->x, ' ', ALT_LCD_VIRTUAL_WIDTH - sp->x); - e378: e0bffd17 ldw r2,-12(fp) - e37c: 10800883 ldbu r2,34(r2) - e380: 11003fcc andi r4,r2,255 - e384: 014018c4 movi r5,99 - e388: 0002c240 call 2c24 <__mulsi3> - e38c: 10c01004 addi r3,r2,64 - e390: e0bffd17 ldw r2,-12(fp) - e394: 1887883a add r3,r3,r2 - e398: e0bffd17 ldw r2,-12(fp) - e39c: 10800843 ldbu r2,33(r2) - e3a0: 10803fcc andi r2,r2,255 - e3a4: 1889883a add r4,r3,r2 - e3a8: e0bffd17 ldw r2,-12(fp) - e3ac: 10800843 ldbu r2,33(r2) - e3b0: 10c03fcc andi r3,r2,255 - e3b4: 00801404 movi r2,80 - e3b8: 10c5c83a sub r2,r2,r3 - e3bc: 100d883a mov r6,r2 - e3c0: 01400804 movi r5,32 - e3c4: 00081940 call 8194 - } - break; - } -} - e3c8: e037883a mov sp,fp - e3cc: dfc00117 ldw ra,4(sp) - e3d0: df000017 ldw fp,0(sp) - e3d4: dec00204 addi sp,sp,8 - e3d8: f800283a ret - -0000e3dc : - -/* --------------------------------------------------------------------- */ - -int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp, - const char* ptr, int len, int flags) -{ - e3dc: defff004 addi sp,sp,-64 - e3e0: dfc00f15 stw ra,60(sp) - e3e4: df000e15 stw fp,56(sp) - e3e8: dc800d15 stw r18,52(sp) - e3ec: dc400c15 stw r17,48(sp) - e3f0: dc000b15 stw r16,44(sp) - e3f4: df000b04 addi fp,sp,44 - e3f8: e13ffc15 stw r4,-16(fp) - e3fc: e17ffd15 stw r5,-12(fp) - e400: e1bffe15 stw r6,-8(fp) - e404: e1ffff15 stw r7,-4(fp) - const char* end = ptr + len; - e408: e0bffe17 ldw r2,-8(fp) - e40c: 1007883a mov r3,r2 - e410: e0bffd17 ldw r2,-12(fp) - e414: 10c5883a add r2,r2,r3 - e418: e0bffb15 stw r2,-20(fp) - - ALT_SEM_PEND (sp->write_lock, 0); - - /* Tell the routine which is called off the timer interrupt that the - * foreground routines are active so it must not repaint the display. */ - sp->active = 1; - e41c: e0fffc17 ldw r3,-16(fp) - e420: 00800044 movi r2,1 - e424: 188009c5 stb r2,39(r3) - - for ( ; ptr < end ; ptr++) - e428: 0000a306 br e6b8 - { - char c = *ptr; - e42c: e0bffd17 ldw r2,-12(fp) - e430: 10800003 ldbu r2,0(r2) - e434: e0bff805 stb r2,-32(fp) - - if (sp->esccount >= 0) - e438: e0bffc17 ldw r2,-16(fp) - e43c: 10800903 ldbu r2,36(r2) - e440: 10803fcc andi r2,r2,255 - e444: 1080201c xori r2,r2,128 - e448: 10bfe004 addi r2,r2,-128 - e44c: 1004803a cmplt r2,r2,zero - e450: 10003b1e bne r2,zero,e540 - { - unsigned int esccount = sp->esccount; - e454: e0bffc17 ldw r2,-16(fp) - e458: 10800903 ldbu r2,36(r2) - e45c: 10803fcc andi r2,r2,255 - e460: 1080201c xori r2,r2,128 - e464: 10bfe004 addi r2,r2,-128 - e468: e0bff715 stw r2,-36(fp) - - /* Single character escape sequences can end with any character - * Multi character escape sequences start with '[' and contain - * digits and semicolons before terminating - */ - if ((esccount == 0 && c != '[') || - e46c: e0bff717 ldw r2,-36(fp) - e470: 1004c03a cmpne r2,r2,zero - e474: 1000031e bne r2,zero,e484 - e478: e0bff807 ldb r2,-32(fp) - e47c: 108016d8 cmpnei r2,r2,91 - e480: 1000111e bne r2,zero,e4c8 - e484: e0bff717 ldw r2,-36(fp) - e488: 1005003a cmpeq r2,r2,zero - e48c: 10001a1e bne r2,zero,e4f8 - e490: e0bff807 ldb r2,-32(fp) - e494: 1007883a mov r3,r2 - e498: 00800074 movhi r2,1 - e49c: 10887d04 addi r2,r2,8692 - e4a0: 10800017 ldw r2,0(r2) - e4a4: 1885883a add r2,r3,r2 - e4a8: 10800003 ldbu r2,0(r2) - e4ac: 10803fcc andi r2,r2,255 - e4b0: 1080010c andi r2,r2,4 - e4b4: 1004c03a cmpne r2,r2,zero - e4b8: 10000f1e bne r2,zero,e4f8 - e4bc: e0bff807 ldb r2,-32(fp) - e4c0: 10800ee0 cmpeqi r2,r2,59 - e4c4: 10000c1e bne r2,zero,e4f8 - (esccount > 0 && !isdigit(c) && c != ';')) - { - sp->escape[esccount] = 0; - e4c8: e0fff717 ldw r3,-36(fp) - e4cc: e0bffc17 ldw r2,-16(fp) - e4d0: 1885883a add r2,r3,r2 - e4d4: 10800a04 addi r2,r2,40 - e4d8: 10000005 stb zero,0(r2) - - lcd_handle_escape(sp, c); - e4dc: e17ff807 ldb r5,-32(fp) - e4e0: e13ffc17 ldw r4,-16(fp) - e4e4: 000e0f80 call e0f8 - - sp->esccount = -1; - e4e8: e0fffc17 ldw r3,-16(fp) - e4ec: 00bfffc4 movi r2,-1 - e4f0: 18800905 stb r2,36(r3) - - /* Single character escape sequences can end with any character - * Multi character escape sequences start with '[' and contain - * digits and semicolons before terminating - */ - if ((esccount == 0 && c != '[') || - e4f4: 00006d06 br e6ac - - lcd_handle_escape(sp, c); - - sp->esccount = -1; - } - else if (sp->esccount < sizeof(sp->escape)-1) - e4f8: e0bffc17 ldw r2,-16(fp) - e4fc: 10800903 ldbu r2,36(r2) - e500: 10803fcc andi r2,r2,255 - e504: 108001e8 cmpgeui r2,r2,7 - e508: 1000681e bne r2,zero,e6ac - { - sp->escape[esccount] = c; - e50c: e0fff717 ldw r3,-36(fp) - e510: e0bffc17 ldw r2,-16(fp) - e514: 1885883a add r2,r3,r2 - e518: 10c00a04 addi r3,r2,40 - e51c: e0bff803 ldbu r2,-32(fp) - e520: 18800005 stb r2,0(r3) - sp->esccount++; - e524: e0bffc17 ldw r2,-16(fp) - e528: 10800903 ldbu r2,36(r2) - e52c: 10800044 addi r2,r2,1 - e530: 1007883a mov r3,r2 - e534: e0bffc17 ldw r2,-16(fp) - e538: 10c00905 stb r3,36(r2) - e53c: 00005b06 br e6ac - } - } - else if (c == 27) /* ESC */ - e540: e0bff807 ldb r2,-32(fp) - e544: 108006d8 cmpnei r2,r2,27 - e548: 1000031e bne r2,zero,e558 - { - sp->esccount = 0; - e54c: e0bffc17 ldw r2,-16(fp) - e550: 10000905 stb zero,36(r2) - e554: 00005506 br e6ac - } - else if (c == '\r') - e558: e0bff807 ldb r2,-32(fp) - e55c: 10800358 cmpnei r2,r2,13 - e560: 1000031e bne r2,zero,e570 - { - sp->x = 0; - e564: e0bffc17 ldw r2,-16(fp) - e568: 10000845 stb zero,33(r2) - e56c: 00004f06 br e6ac - } - else if (c == '\n') - e570: e0bff807 ldb r2,-32(fp) - e574: 10800298 cmpnei r2,r2,10 - e578: 1000101e bne r2,zero,e5bc - { - sp->x = 0; - e57c: e0bffc17 ldw r2,-16(fp) - e580: 10000845 stb zero,33(r2) - sp->y++; - e584: e0bffc17 ldw r2,-16(fp) - e588: 10800883 ldbu r2,34(r2) - e58c: 10800044 addi r2,r2,1 - e590: 1007883a mov r3,r2 - e594: e0bffc17 ldw r2,-16(fp) - e598: 10c00885 stb r3,34(r2) - - /* Let the cursor sit at X=0, Y=HEIGHT without scrolling so the user - * can print two lines of data without losing one. - */ - if (sp->y > ALT_LCD_HEIGHT) - e59c: e0bffc17 ldw r2,-16(fp) - e5a0: 10800883 ldbu r2,34(r2) - e5a4: 10803fcc andi r2,r2,255 - e5a8: 108000f0 cmpltui r2,r2,3 - e5ac: 10003f1e bne r2,zero,e6ac - lcd_scroll_up(sp); - e5b0: e13ffc17 ldw r4,-16(fp) - e5b4: 000e0180 call e018 - e5b8: 00003c06 br e6ac - } - else if (c == '\b') - e5bc: e0bff807 ldb r2,-32(fp) - e5c0: 10800218 cmpnei r2,r2,8 - e5c4: 10000c1e bne r2,zero,e5f8 - { - if (sp->x > 0) - e5c8: e0bffc17 ldw r2,-16(fp) - e5cc: 10800843 ldbu r2,33(r2) - e5d0: 10803fcc andi r2,r2,255 - e5d4: 1005003a cmpeq r2,r2,zero - e5d8: 1000341e bne r2,zero,e6ac - sp->x--; - e5dc: e0bffc17 ldw r2,-16(fp) - e5e0: 10800843 ldbu r2,33(r2) - e5e4: 10bfffc4 addi r2,r2,-1 - e5e8: 1007883a mov r3,r2 - e5ec: e0bffc17 ldw r2,-16(fp) - e5f0: 10c00845 stb r3,33(r2) - e5f4: 00002d06 br e6ac - } - else if (isprint(c)) - e5f8: e0bff807 ldb r2,-32(fp) - e5fc: 1007883a mov r3,r2 - e600: 00800074 movhi r2,1 - e604: 10887d04 addi r2,r2,8692 - e608: 10800017 ldw r2,0(r2) - e60c: 1885883a add r2,r3,r2 - e610: 10800003 ldbu r2,0(r2) - e614: 10803fcc andi r2,r2,255 - e618: 1080201c xori r2,r2,128 - e61c: 10bfe004 addi r2,r2,-128 - e620: 108025cc andi r2,r2,151 - e624: 1005003a cmpeq r2,r2,zero - e628: 1000201e bne r2,zero,e6ac - { - /* If we didn't scroll on the last linefeed then we might need to do - * it now. */ - if (sp->y >= ALT_LCD_HEIGHT) - e62c: e0bffc17 ldw r2,-16(fp) - e630: 10800883 ldbu r2,34(r2) - e634: 10803fcc andi r2,r2,255 - e638: 108000b0 cmpltui r2,r2,2 - e63c: 1000021e bne r2,zero,e648 - lcd_scroll_up(sp); - e640: e13ffc17 ldw r4,-16(fp) - e644: 000e0180 call e018 - - if (sp->x < ALT_LCD_VIRTUAL_WIDTH) - e648: e0bffc17 ldw r2,-16(fp) - e64c: 10800843 ldbu r2,33(r2) - e650: 10803fcc andi r2,r2,255 - e654: 10801428 cmpgeui r2,r2,80 - e658: 10000e1e bne r2,zero,e694 - sp->line[sp->y].data[sp->x] = c; - e65c: e0bffc17 ldw r2,-16(fp) - e660: 10800883 ldbu r2,34(r2) - e664: 11003fcc andi r4,r2,255 - e668: e0bffc17 ldw r2,-16(fp) - e66c: 10800843 ldbu r2,33(r2) - e670: 14403fcc andi r17,r2,255 - e674: e43ffc17 ldw r16,-16(fp) - e678: 014018c4 movi r5,99 - e67c: 0002c240 call 2c24 <__mulsi3> - e680: 1405883a add r2,r2,r16 - e684: 1445883a add r2,r2,r17 - e688: 10c01004 addi r3,r2,64 - e68c: e0bff803 ldbu r2,-32(fp) - e690: 18800005 stb r2,0(r3) - - sp->x++; - e694: e0bffc17 ldw r2,-16(fp) - e698: 10800843 ldbu r2,33(r2) - e69c: 10800044 addi r2,r2,1 - e6a0: 1007883a mov r3,r2 - e6a4: e0bffc17 ldw r2,-16(fp) - e6a8: 10c00845 stb r3,33(r2) - - /* Tell the routine which is called off the timer interrupt that the - * foreground routines are active so it must not repaint the display. */ - sp->active = 1; - - for ( ; ptr < end ; ptr++) - e6ac: e0bffd17 ldw r2,-12(fp) - e6b0: 10800044 addi r2,r2,1 - e6b4: e0bffd15 stw r2,-12(fp) - e6b8: e0fffd17 ldw r3,-12(fp) - e6bc: e0bffb17 ldw r2,-20(fp) - e6c0: 18bf5a36 bltu r3,r2,e42c - sp->x++; - } - } - - /* Recalculate the scrolling parameters */ - widthmax = ALT_LCD_WIDTH; - e6c4: 00800404 movi r2,16 - e6c8: e0bff915 stw r2,-28(fp) - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - e6cc: e03ffa15 stw zero,-24(fp) - e6d0: 00003906 br e7b8 - { - int width; - for (width = ALT_LCD_VIRTUAL_WIDTH ; width > 0 ; width--) - e6d4: 00801404 movi r2,80 - e6d8: e0bff615 stw r2,-40(fp) - e6dc: 00001206 br e728 - if (sp->line[y].data[width-1] != ' ') - e6e0: e13ffa17 ldw r4,-24(fp) - e6e4: e0bff617 ldw r2,-40(fp) - e6e8: 147fffc4 addi r17,r2,-1 - e6ec: e43ffc17 ldw r16,-16(fp) - e6f0: 014018c4 movi r5,99 - e6f4: 0002c240 call 2c24 <__mulsi3> - e6f8: 1405883a add r2,r2,r16 - e6fc: 1445883a add r2,r2,r17 - e700: 10801004 addi r2,r2,64 - e704: 10800003 ldbu r2,0(r2) - e708: 10803fcc andi r2,r2,255 - e70c: 1080201c xori r2,r2,128 - e710: 10bfe004 addi r2,r2,-128 - e714: 10800818 cmpnei r2,r2,32 - e718: 1000061e bne r2,zero,e734 - /* Recalculate the scrolling parameters */ - widthmax = ALT_LCD_WIDTH; - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - { - int width; - for (width = ALT_LCD_VIRTUAL_WIDTH ; width > 0 ; width--) - e71c: e0bff617 ldw r2,-40(fp) - e720: 10bfffc4 addi r2,r2,-1 - e724: e0bff615 stw r2,-40(fp) - e728: e0bff617 ldw r2,-40(fp) - e72c: 10800048 cmpgei r2,r2,1 - e730: 103feb1e bne r2,zero,e6e0 - - /* The minimum width is the size of the LCD panel. If the real width - * is long enough to require scrolling then add an extra space so the - * end of the message doesn't run into the beginning of it. - */ - if (width <= ALT_LCD_WIDTH) - e734: e0bff617 ldw r2,-40(fp) - e738: 10800448 cmpgei r2,r2,17 - e73c: 1000031e bne r2,zero,e74c - width = ALT_LCD_WIDTH; - e740: 00800404 movi r2,16 - e744: e0bff615 stw r2,-40(fp) - e748: 00000306 br e758 - else - width++; - e74c: e0bff617 ldw r2,-40(fp) - e750: 10800044 addi r2,r2,1 - e754: e0bff615 stw r2,-40(fp) - - sp->line[y].width = width; - e758: e13ffa17 ldw r4,-24(fp) - e75c: e0bff617 ldw r2,-40(fp) - e760: 1023883a mov r17,r2 - e764: e43ffc17 ldw r16,-16(fp) - e768: 014018c4 movi r5,99 - e76c: 0002c240 call 2c24 <__mulsi3> - e770: 1405883a add r2,r2,r16 - e774: 10802404 addi r2,r2,144 - e778: 14400045 stb r17,1(r2) - if (widthmax < width) - e77c: e0fff917 ldw r3,-28(fp) - e780: e0bff617 ldw r2,-40(fp) - e784: 1880020e bge r3,r2,e790 - widthmax = width; - e788: e0bff617 ldw r2,-40(fp) - e78c: e0bff915 stw r2,-28(fp) - sp->line[y].speed = 0; /* By default lines don't scroll */ - e790: e13ffa17 ldw r4,-24(fp) - e794: e43ffc17 ldw r16,-16(fp) - e798: 014018c4 movi r5,99 - e79c: 0002c240 call 2c24 <__mulsi3> - e7a0: 1405883a add r2,r2,r16 - e7a4: 10802404 addi r2,r2,144 - e7a8: 10000085 stb zero,2(r2) - } - } - - /* Recalculate the scrolling parameters */ - widthmax = ALT_LCD_WIDTH; - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - e7ac: e0bffa17 ldw r2,-24(fp) - e7b0: 10800044 addi r2,r2,1 - e7b4: e0bffa15 stw r2,-24(fp) - e7b8: e0bffa17 ldw r2,-24(fp) - e7bc: 10800090 cmplti r2,r2,2 - e7c0: 103fc41e bne r2,zero,e6d4 - if (widthmax < width) - widthmax = width; - sp->line[y].speed = 0; /* By default lines don't scroll */ - } - - if (widthmax <= ALT_LCD_WIDTH) - e7c4: e0bff917 ldw r2,-28(fp) - e7c8: 10800448 cmpgei r2,r2,17 - e7cc: 1000031e bne r2,zero,e7dc - sp->scrollmax = 0; - e7d0: e0bffc17 ldw r2,-16(fp) - e7d4: 10000985 stb zero,38(r2) - e7d8: 00003106 br e8a0 - else - { - widthmax *= 2; - e7dc: e0bff917 ldw r2,-28(fp) - e7e0: 1085883a add r2,r2,r2 - e7e4: e0bff915 stw r2,-28(fp) - sp->scrollmax = widthmax; - e7e8: e0bff917 ldw r2,-28(fp) - e7ec: 1007883a mov r3,r2 - e7f0: e0bffc17 ldw r2,-16(fp) - e7f4: 10c00985 stb r3,38(r2) - - /* Now calculate how fast each of the other lines should go */ - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - e7f8: e03ffa15 stw zero,-24(fp) - e7fc: 00002506 br e894 - if (sp->line[y].width > ALT_LCD_WIDTH) - e800: e13ffa17 ldw r4,-24(fp) - e804: e43ffc17 ldw r16,-16(fp) - e808: 014018c4 movi r5,99 - e80c: 0002c240 call 2c24 <__mulsi3> - e810: 1405883a add r2,r2,r16 - e814: 10802404 addi r2,r2,144 - e818: 10800043 ldbu r2,1(r2) - e81c: 10803fcc andi r2,r2,255 - e820: 1080201c xori r2,r2,128 - e824: 10bfe004 addi r2,r2,-128 - e828: 10800450 cmplti r2,r2,17 - e82c: 1000161e bne r2,zero,e888 - */ -#if 1 - /* This option makes all the lines scroll round at different speeds - * which are chosen so that all the scrolls finish at the same time. - */ - sp->line[y].speed = 256 * sp->line[y].width / widthmax; - e830: e4bffa17 ldw r18,-24(fp) - e834: e13ffa17 ldw r4,-24(fp) - e838: e43ffc17 ldw r16,-16(fp) - e83c: 014018c4 movi r5,99 - e840: 0002c240 call 2c24 <__mulsi3> - e844: 1405883a add r2,r2,r16 - e848: 10802404 addi r2,r2,144 - e84c: 10800043 ldbu r2,1(r2) - e850: 10803fcc andi r2,r2,255 - e854: 1080201c xori r2,r2,128 - e858: 10bfe004 addi r2,r2,-128 - e85c: 1008923a slli r4,r2,8 - e860: e17ff917 ldw r5,-28(fp) - e864: 0002b540 call 2b54 <__divsi3> - e868: 1023883a mov r17,r2 - e86c: e43ffc17 ldw r16,-16(fp) - e870: 9009883a mov r4,r18 - e874: 014018c4 movi r5,99 - e878: 0002c240 call 2c24 <__mulsi3> - e87c: 1405883a add r2,r2,r16 - e880: 10802404 addi r2,r2,144 - e884: 14400085 stb r17,2(r2) - { - widthmax *= 2; - sp->scrollmax = widthmax; - - /* Now calculate how fast each of the other lines should go */ - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - e888: e0bffa17 ldw r2,-24(fp) - e88c: 10800044 addi r2,r2,1 - e890: e0bffa15 stw r2,-24(fp) - e894: e0bffa17 ldw r2,-24(fp) - e898: 10800090 cmplti r2,r2,2 - e89c: 103fd81e bne r2,zero,e800 - * (because active was set when the timer interrupt occurred). If there - * has been a missed repaint then paint again. And again. etc. - */ - for ( ; ; ) - { - int old_scrollpos = sp->scrollpos; - e8a0: e0bffc17 ldw r2,-16(fp) - e8a4: 10800943 ldbu r2,37(r2) - e8a8: 10803fcc andi r2,r2,255 - e8ac: 1080201c xori r2,r2,128 - e8b0: 10bfe004 addi r2,r2,-128 - e8b4: e0bff515 stw r2,-44(fp) - - lcd_repaint_screen(sp); - e8b8: e13ffc17 ldw r4,-16(fp) - e8bc: 000de040 call de04 - - /* Let the timer routines repaint the display again */ - sp->active = 0; - e8c0: e0bffc17 ldw r2,-16(fp) - e8c4: 100009c5 stb zero,39(r2) - - /* Have the timer routines tried to scroll while we were painting? - * If not then we can exit */ - if (sp->scrollpos == old_scrollpos) - e8c8: e0bffc17 ldw r2,-16(fp) - e8cc: 10800943 ldbu r2,37(r2) - e8d0: 10c03fcc andi r3,r2,255 - e8d4: 18c0201c xori r3,r3,128 - e8d8: 18ffe004 addi r3,r3,-128 - e8dc: e0bff517 ldw r2,-44(fp) - e8e0: 18800426 beq r3,r2,e8f4 - break; - - /* We need to repaint again since the display scrolled while we were - * painting last time */ - sp->active = 1; - e8e4: e0fffc17 ldw r3,-16(fp) - e8e8: 00800044 movi r2,1 - e8ec: 188009c5 stb r2,39(r3) - } - e8f0: 003feb06 br e8a0 - * semaphore so that other threads can access the buffer. - */ - - ALT_SEM_POST (sp->write_lock); - - return len; - e8f4: e0bffe17 ldw r2,-8(fp) -} - e8f8: e037883a mov sp,fp - e8fc: dfc00417 ldw ra,16(sp) - e900: df000317 ldw fp,12(sp) - e904: dc800217 ldw r18,8(sp) - e908: dc400117 ldw r17,4(sp) - e90c: dc000017 ldw r16,0(sp) - e910: dec00504 addi sp,sp,20 - e914: f800283a ret - -0000e918 : -/* - * Timeout routine is called every second - */ - -static alt_u32 alt_lcd_16207_timeout(void* context) -{ - e918: defffc04 addi sp,sp,-16 - e91c: dfc00315 stw ra,12(sp) - e920: df000215 stw fp,8(sp) - e924: df000204 addi fp,sp,8 - e928: e13fff15 stw r4,-4(fp) - altera_avalon_lcd_16207_state* sp = (altera_avalon_lcd_16207_state*)context; - e92c: e0bfff17 ldw r2,-4(fp) - e930: e0bffe15 stw r2,-8(fp) - - /* Update the scrolling position */ - if (sp->scrollpos + 1 >= sp->scrollmax) - e934: e0bffe17 ldw r2,-8(fp) - e938: 10800943 ldbu r2,37(r2) - e93c: 10803fcc andi r2,r2,255 - e940: 1080201c xori r2,r2,128 - e944: 10bfe004 addi r2,r2,-128 - e948: 10c00044 addi r3,r2,1 - e94c: e0bffe17 ldw r2,-8(fp) - e950: 10800983 ldbu r2,38(r2) - e954: 10803fcc andi r2,r2,255 - e958: 1080201c xori r2,r2,128 - e95c: 10bfe004 addi r2,r2,-128 - e960: 18800316 blt r3,r2,e970 - sp->scrollpos = 0; - e964: e0bffe17 ldw r2,-8(fp) - e968: 10000945 stb zero,37(r2) - e96c: 00000606 br e988 - else - sp->scrollpos = sp->scrollpos + 1; - e970: e0bffe17 ldw r2,-8(fp) - e974: 10800943 ldbu r2,37(r2) - e978: 10800044 addi r2,r2,1 - e97c: 1007883a mov r3,r2 - e980: e0bffe17 ldw r2,-8(fp) - e984: 10c00945 stb r3,37(r2) - - /* Repaint the panel unless the foreground will do it again soon */ - if (sp->scrollmax > 0 && !sp->active) - e988: e0bffe17 ldw r2,-8(fp) - e98c: 10800983 ldbu r2,38(r2) - e990: 10803fcc andi r2,r2,255 - e994: 1080201c xori r2,r2,128 - e998: 10bfe004 addi r2,r2,-128 - e99c: 10800050 cmplti r2,r2,1 - e9a0: 1000091e bne r2,zero,e9c8 - e9a4: e0bffe17 ldw r2,-8(fp) - e9a8: 108009c3 ldbu r2,39(r2) - e9ac: 10803fcc andi r2,r2,255 - e9b0: 1080201c xori r2,r2,128 - e9b4: 10bfe004 addi r2,r2,-128 - e9b8: 1004c03a cmpne r2,r2,zero - e9bc: 1000021e bne r2,zero,e9c8 - lcd_repaint_screen(sp); - e9c0: e13ffe17 ldw r4,-8(fp) - e9c4: 000de040 call de04 - - return sp->period; - e9c8: e0bffe17 ldw r2,-8(fp) - e9cc: 10800717 ldw r2,28(r2) -} - e9d0: e037883a mov sp,fp - e9d4: dfc00117 ldw ra,4(sp) - e9d8: df000017 ldw fp,0(sp) - e9dc: dec00204 addi sp,sp,8 - e9e0: f800283a ret - -0000e9e4 : - -/* - * Called at boot time to initialise the LCD driver - */ -void altera_avalon_lcd_16207_init(altera_avalon_lcd_16207_state* sp) -{ - e9e4: defffc04 addi sp,sp,-16 - e9e8: dfc00315 stw ra,12(sp) - e9ec: df000215 stw fp,8(sp) - e9f0: df000204 addi fp,sp,8 - e9f4: e13fff15 stw r4,-4(fp) - unsigned int base = sp->base; - e9f8: e0bfff17 ldw r2,-4(fp) - e9fc: 10800017 ldw r2,0(r2) - ea00: e0bffe15 stw r2,-8(fp) - - /* Mark the device as functional */ - sp->broken = 0; - ea04: e0bfff17 ldw r2,-4(fp) - ea08: 10000805 stb zero,32(r2) - * the BUSY bit in the status register doesn't work until the display - * has been reset three times. - */ - - /* Wait for 15 ms then reset */ - usleep(15000); - ea0c: 010ea604 movi r4,15000 - ea10: 000ce780 call ce78 - IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); - ea14: e0bffe17 ldw r2,-8(fp) - ea18: 1007883a mov r3,r2 - ea1c: 00800c04 movi r2,48 - ea20: 18800035 stwio r2,0(r3) - - /* Wait for another 4.1ms and reset again */ - usleep(4100); - ea24: 01040104 movi r4,4100 - ea28: 000ce780 call ce78 - IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); - ea2c: e0bffe17 ldw r2,-8(fp) - ea30: 1007883a mov r3,r2 - ea34: 00800c04 movi r2,48 - ea38: 18800035 stwio r2,0(r3) - - /* Wait a further 1 ms and reset a third time */ - usleep(1000); - ea3c: 0100fa04 movi r4,1000 - ea40: 000ce780 call ce78 - IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); - ea44: e0bffe17 ldw r2,-8(fp) - ea48: 1007883a mov r3,r2 - ea4c: 00800c04 movi r2,48 - ea50: 18800035 stwio r2,0(r3) - - /* Setup interface parameters: 8 bit bus, 2 rows, 5x7 font */ - lcd_write_command(sp, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT | LCD_CMD_TWO_LINE); - ea54: e13fff17 ldw r4,-4(fp) - ea58: 01400e04 movi r5,56 - ea5c: 000dba00 call dba0 - - /* Turn display off */ - lcd_write_command(sp, LCD_CMD_ONOFF); - ea60: e13fff17 ldw r4,-4(fp) - ea64: 01400204 movi r5,8 - ea68: 000dba00 call dba0 - - /* Clear display */ - lcd_clear_screen(sp); - ea6c: e13fff17 ldw r4,-4(fp) - ea70: 000dd2c0 call dd2c - - /* Set mode: increment after writing, don't shift display */ - lcd_write_command(sp, LCD_CMD_MODES | LCD_CMD_MODE_INC); - ea74: e13fff17 ldw r4,-4(fp) - ea78: 01400184 movi r5,6 - ea7c: 000dba00 call dba0 - - /* Turn display on */ - lcd_write_command(sp, LCD_CMD_ONOFF | LCD_CMD_ENABLE_DISP); - ea80: e13fff17 ldw r4,-4(fp) - ea84: 01400304 movi r5,12 - ea88: 000dba00 call dba0 - - sp->esccount = -1; - ea8c: e0ffff17 ldw r3,-4(fp) - ea90: 00bfffc4 movi r2,-1 - ea94: 18800905 stb r2,36(r3) - memset(sp->escape, 0, sizeof(sp->escape)); - ea98: e0bfff17 ldw r2,-4(fp) - ea9c: 11000a04 addi r4,r2,40 - eaa0: 000b883a mov r5,zero - eaa4: 01800204 movi r6,8 - eaa8: 00081940 call 8194 - - sp->scrollpos = 0; - eaac: e0bfff17 ldw r2,-4(fp) - eab0: 10000945 stb zero,37(r2) - sp->scrollmax = 0; - eab4: e0bfff17 ldw r2,-4(fp) - eab8: 10000985 stb zero,38(r2) - sp->active = 0; - eabc: e0bfff17 ldw r2,-4(fp) - eac0: 100009c5 stb zero,39(r2) - eac4: 00800074 movhi r2,1 - eac8: 108f8104 addi r2,r2,15876 - eacc: 10800017 ldw r2,0(r2) - ead0: 1009883a mov r4,r2 - - sp->period = alt_ticks_per_second() / 10; /* Call every 100ms */ - ead4: 01400284 movi r5,10 - ead8: 0002c140 call 2c14 <__udivsi3> - eadc: 1007883a mov r3,r2 - eae0: e0bfff17 ldw r2,-4(fp) - eae4: 10c00715 stw r3,28(r2) - - alt_alarm_start(&sp->alarm, sp->period, &alt_lcd_16207_timeout, sp); - eae8: e0bfff17 ldw r2,-4(fp) - eaec: 11000104 addi r4,r2,4 - eaf0: e0bfff17 ldw r2,-4(fp) - eaf4: 10800717 ldw r2,28(r2) - eaf8: 100b883a mov r5,r2 - eafc: 01800074 movhi r6,1 - eb00: 31ba4604 addi r6,r6,-5864 - eb04: e1ffff17 ldw r7,-4(fp) - eb08: 000eb780 call eb78 -} - eb0c: e037883a mov sp,fp - eb10: dfc00117 ldw ra,4(sp) - eb14: df000017 ldw fp,0(sp) - eb18: dec00204 addi sp,sp,8 - eb1c: f800283a ret - -0000eb20 : -extern int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp, - const char* ptr, int count, int flags); - -int -altera_avalon_lcd_16207_write_fd(alt_fd* fd, const char* buffer, int space) -{ - eb20: defffa04 addi sp,sp,-24 - eb24: dfc00515 stw ra,20(sp) - eb28: df000415 stw fp,16(sp) - eb2c: df000404 addi fp,sp,16 - eb30: e13ffd15 stw r4,-12(fp) - eb34: e17ffe15 stw r5,-8(fp) - eb38: e1bfff15 stw r6,-4(fp) - altera_avalon_lcd_16207_dev* dev = (altera_avalon_lcd_16207_dev*) fd->dev; - eb3c: e0bffd17 ldw r2,-12(fp) - eb40: 10800017 ldw r2,0(r2) - eb44: e0bffc15 stw r2,-16(fp) - - return altera_avalon_lcd_16207_write(&dev->state, buffer, space, - eb48: e0bffc17 ldw r2,-16(fp) - eb4c: 11000a04 addi r4,r2,40 - eb50: e0bffd17 ldw r2,-12(fp) - eb54: 11c00217 ldw r7,8(r2) - eb58: e17ffe17 ldw r5,-8(fp) - eb5c: e1bfff17 ldw r6,-4(fp) - eb60: 000e3dc0 call e3dc - fd->fd_flags); -} - eb64: e037883a mov sp,fp - eb68: dfc00117 ldw ra,4(sp) - eb6c: df000017 ldw fp,0(sp) - eb70: dec00204 addi sp,sp,8 - eb74: f800283a ret - -0000eb78 : - */ - -int alt_alarm_start (alt_alarm* alarm, alt_u32 nticks, - alt_u32 (*callback) (void* context), - void* context) -{ - eb78: defff404 addi sp,sp,-48 - eb7c: df000b15 stw fp,44(sp) - eb80: df000b04 addi fp,sp,44 - eb84: e13ffb15 stw r4,-20(fp) - eb88: e17ffc15 stw r5,-16(fp) - eb8c: e1bffd15 stw r6,-12(fp) - eb90: e1fffe15 stw r7,-8(fp) - alt_irq_context irq_context; - alt_u32 current_nticks = 0; - eb94: e03ff915 stw zero,-28(fp) - eb98: 00800074 movhi r2,1 - eb9c: 108f8104 addi r2,r2,15876 - eba0: 10800017 ldw r2,0(r2) - - if (alt_ticks_per_second ()) - eba4: 1005003a cmpeq r2,r2,zero - eba8: 1000411e bne r2,zero,ecb0 - { - if (alarm) - ebac: e0bffb17 ldw r2,-20(fp) - ebb0: 1005003a cmpeq r2,r2,zero - ebb4: 10003b1e bne r2,zero,eca4 - { - alarm->callback = callback; - ebb8: e0fffb17 ldw r3,-20(fp) - ebbc: e0bffd17 ldw r2,-12(fp) - ebc0: 18800315 stw r2,12(r3) - alarm->context = context; - ebc4: e0fffb17 ldw r3,-20(fp) - ebc8: e0bffe17 ldw r2,-8(fp) - ebcc: 18800515 stw r2,20(r3) -static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE - alt_irq_disable_all (void) -{ - alt_irq_context context; - - NIOS2_READ_STATUS (context); - ebd0: 0005303a rdctl r2,status - ebd4: e0bff815 stw r2,-32(fp) - - NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); - ebd8: e0fff817 ldw r3,-32(fp) - ebdc: 00bfff84 movi r2,-2 - ebe0: 1884703a and r2,r3,r2 - ebe4: 1001703a wrctl status,r2 - - return context; - ebe8: e0bff817 ldw r2,-32(fp) - - irq_context = alt_irq_disable_all (); - ebec: e0bffa15 stw r2,-24(fp) - * alt_nticks() returns the elapsed number of system clock ticks since reset. - */ - -static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_nticks (void) -{ - return _alt_nticks; - ebf0: 00800074 movhi r2,1 - ebf4: 108f8204 addi r2,r2,15880 - ebf8: 10800017 ldw r2,0(r2) - - current_nticks = alt_nticks(); - ebfc: e0bff915 stw r2,-28(fp) - - alarm->time = nticks + current_nticks + 1; - ec00: e0fffc17 ldw r3,-16(fp) - ec04: e0bff917 ldw r2,-28(fp) - ec08: 1885883a add r2,r3,r2 - ec0c: 10c00044 addi r3,r2,1 - ec10: e0bffb17 ldw r2,-20(fp) - ec14: 10c00215 stw r3,8(r2) - /* - * If the desired alarm time causes a roll-over, set the rollover - * flag. This will prevent the subsequent tick event from causing - * an alarm too early. - */ - if(alarm->time < current_nticks) - ec18: e0bffb17 ldw r2,-20(fp) - ec1c: 10c00217 ldw r3,8(r2) - ec20: e0bff917 ldw r2,-28(fp) - ec24: 1880042e bgeu r3,r2,ec38 - { - alarm->rollover = 1; - ec28: e0fffb17 ldw r3,-20(fp) - ec2c: 00800044 movi r2,1 - ec30: 18800405 stb r2,16(r3) - ec34: 00000206 br ec40 - } - else - { - alarm->rollover = 0; - ec38: e0bffb17 ldw r2,-20(fp) - ec3c: 10000405 stb zero,16(r2) - } - - alt_llist_insert (&alt_alarm_list, &alarm->llist); - ec40: e0fffb17 ldw r3,-20(fp) - ec44: 00800074 movhi r2,1 - ec48: 10888d04 addi r2,r2,8756 - ec4c: e0bff615 stw r2,-40(fp) - ec50: e0fff715 stw r3,-36(fp) - */ - -static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, - alt_llist* entry) -{ - entry->previous = list; - ec54: e0fff717 ldw r3,-36(fp) - ec58: e0bff617 ldw r2,-40(fp) - ec5c: 18800115 stw r2,4(r3) - entry->next = list->next; - ec60: e0bff617 ldw r2,-40(fp) - ec64: 10c00017 ldw r3,0(r2) - ec68: e0bff717 ldw r2,-36(fp) - ec6c: 10c00015 stw r3,0(r2) - - list->next->previous = entry; - ec70: e0bff617 ldw r2,-40(fp) - ec74: 10c00017 ldw r3,0(r2) - ec78: e0bff717 ldw r2,-36(fp) - ec7c: 18800115 stw r2,4(r3) - list->next = entry; - ec80: e0fff617 ldw r3,-40(fp) - ec84: e0bff717 ldw r2,-36(fp) - ec88: 18800015 stw r2,0(r3) - ec8c: e0bffa17 ldw r2,-24(fp) - ec90: e0bff515 stw r2,-44(fp) - status &= ~NIOS2_STATUS_PIE_MSK; - status |= (context & NIOS2_STATUS_PIE_MSK); - - NIOS2_WRITE_STATUS (status); -#else - NIOS2_WRITE_STATUS (context); - ec94: e0bff517 ldw r2,-44(fp) - ec98: 1001703a wrctl status,r2 - alt_irq_enable_all (irq_context); - - return 0; - ec9c: e03fff15 stw zero,-4(fp) - eca0: 00000506 br ecb8 - } - else - { - return -EINVAL; - eca4: 00bffa84 movi r2,-22 - eca8: e0bfff15 stw r2,-4(fp) - ecac: 00000206 br ecb8 - } - } - else - { - return -ENOTSUP; - ecb0: 00bfde84 movi r2,-134 - ecb4: e0bfff15 stw r2,-4(fp) - ecb8: e0bfff17 ldw r2,-4(fp) - } -} - ecbc: e037883a mov sp,fp - ecc0: df000017 ldw fp,0(sp) - ecc4: dec00104 addi sp,sp,4 - ecc8: f800283a ret - -0000eccc : -#include "alt_types.h" - -#include "priv/alt_busy_sleep.h" - -unsigned int alt_busy_sleep (unsigned int us) -{ - eccc: defffa04 addi sp,sp,-24 - ecd0: dfc00515 stw ra,20(sp) - ecd4: df000415 stw fp,16(sp) - ecd8: df000404 addi fp,sp,16 - ecdc: e13fff15 stw r4,-4(fp) - int big_loops; - alt_u32 cycles_per_loop; - - if (!strcmp(NIOS2_CPU_IMPLEMENTATION,"tiny")) - { - cycles_per_loop = 9; - ece0: 00800244 movi r2,9 - ece4: e0bffc15 stw r2,-16(fp) - { - cycles_per_loop = 3; - } - - - big_loops = us / (INT_MAX/ - ece8: e13ffc17 ldw r4,-16(fp) - ecec: 014003f4 movhi r5,15 - ecf0: 29509004 addi r5,r5,16960 - ecf4: 0002c240 call 2c24 <__mulsi3> - ecf8: 100b883a mov r5,r2 - ecfc: 0100bef4 movhi r4,763 - ed00: 213c2004 addi r4,r4,-3968 - ed04: 0002c140 call 2c14 <__udivsi3> - ed08: 100b883a mov r5,r2 - ed0c: 01200034 movhi r4,32768 - ed10: 213fffc4 addi r4,r4,-1 - ed14: 0002c140 call 2c14 <__udivsi3> - ed18: 100b883a mov r5,r2 - ed1c: e13fff17 ldw r4,-4(fp) - ed20: 0002c140 call 2c14 <__udivsi3> - ed24: e0bffd15 stw r2,-12(fp) - (ALT_CPU_FREQ/(cycles_per_loop * 1000000))); - - if (big_loops) - ed28: e0bffd17 ldw r2,-12(fp) - ed2c: 1005003a cmpeq r2,r2,zero - ed30: 10002a1e bne r2,zero,eddc - { - for(i=0;i - /* - * Do NOT Try to single step the asm statement below - * (single step will never return) - * Step out of this function or set a breakpoint after the asm statements - */ - __asm__ volatile ( - ed3c: 00a00034 movhi r2,32768 - ed40: 10bfffc4 addi r2,r2,-1 - ed44: 10bfffc4 addi r2,r2,-1 - ed48: 103ffe1e bne r2,zero,ed44 - "\n1:" - "\n\t.pushsection .debug_alt_sim_info" - "\n\t.int 4, 0, 0b, 1b" - "\n\t.popsection" - :: "r" (INT_MAX)); - us -= (INT_MAX/(ALT_CPU_FREQ/ - ed4c: e13ffc17 ldw r4,-16(fp) - ed50: 014003f4 movhi r5,15 - ed54: 29509004 addi r5,r5,16960 - ed58: 0002c240 call 2c24 <__mulsi3> - ed5c: 100b883a mov r5,r2 - ed60: 0100bef4 movhi r4,763 - ed64: 213c2004 addi r4,r4,-3968 - ed68: 0002c140 call 2c14 <__udivsi3> - ed6c: 100b883a mov r5,r2 - ed70: 01200034 movhi r4,32768 - ed74: 213fffc4 addi r4,r4,-1 - ed78: 0002c140 call 2c14 <__udivsi3> - ed7c: 1007883a mov r3,r2 - ed80: e0bfff17 ldw r2,-4(fp) - ed84: 10c5c83a sub r2,r2,r3 - ed88: e0bfff15 stw r2,-4(fp) - big_loops = us / (INT_MAX/ - (ALT_CPU_FREQ/(cycles_per_loop * 1000000))); - - if (big_loops) - { - for(i=0;i - /* - * Do NOT Try to single step the asm statement below - * (single step will never return) - * Step out of this function or set a breakpoint after the asm statements - */ - __asm__ volatile ( - eda4: e13ffc17 ldw r4,-16(fp) - eda8: 014003f4 movhi r5,15 - edac: 29509004 addi r5,r5,16960 - edb0: 0002c240 call 2c24 <__mulsi3> - edb4: 100b883a mov r5,r2 - edb8: 0100bef4 movhi r4,763 - edbc: 213c2004 addi r4,r4,-3968 - edc0: 0002c140 call 2c14 <__udivsi3> - edc4: 1009883a mov r4,r2 - edc8: e17fff17 ldw r5,-4(fp) - edcc: 0002c240 call 2c24 <__mulsi3> - edd0: 10bfffc4 addi r2,r2,-1 - edd4: 103ffe1e bne r2,zero,edd0 - edd8: 00000d06 br ee10 - /* - * Do NOT Try to single step the asm statement below - * (single step will never return) - * Step out of this function or set a breakpoint after the asm statements - */ - __asm__ volatile ( - eddc: e13ffc17 ldw r4,-16(fp) - ede0: 014003f4 movhi r5,15 - ede4: 29509004 addi r5,r5,16960 - ede8: 0002c240 call 2c24 <__mulsi3> - edec: 100b883a mov r5,r2 - edf0: 0100bef4 movhi r4,763 - edf4: 213c2004 addi r4,r4,-3968 - edf8: 0002c140 call 2c14 <__udivsi3> - edfc: 1009883a mov r4,r2 - ee00: e17fff17 ldw r5,-4(fp) - ee04: 0002c240 call 2c24 <__mulsi3> - ee08: 10bfffc4 addi r2,r2,-1 - ee0c: 00bffe16 blt zero,r2,ee08 - "\n\t.int 4, 0, 0b, 1b" - "\n\t.popsection" - :: "r" (us*(ALT_CPU_FREQ/(cycles_per_loop * 1000000)))); - } -#endif /* #ifndef ALT_SIM_OPTIMIZE */ - return 0; - ee10: 0005883a mov r2,zero -} - ee14: e037883a mov sp,fp - ee18: dfc00117 ldw ra,4(sp) - ee1c: df000017 ldw fp,0(sp) - ee20: dec00204 addi sp,sp,8 - ee24: f800283a ret - -0000ee28 : -/* - * alt_dcache_flush_all() is called to flush the entire data cache. - */ - -void alt_dcache_flush_all (void) -{ - ee28: deffff04 addi sp,sp,-4 - ee2c: df000015 stw fp,0(sp) - ee30: d839883a mov fp,sp - for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) - { - __asm__ volatile ("flushd (%0)" :: "r" (i)); - } -#endif /* NIOS2_DCACHE_SIZE > 0 */ -} - ee34: e037883a mov sp,fp - ee38: df000017 ldw fp,0(sp) - ee3c: dec00104 addi sp,sp,4 - ee40: f800283a ret - -0000ee44 : -/* - * - */ - -int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list) -{ - ee44: defff904 addi sp,sp,-28 - ee48: dfc00615 stw ra,24(sp) - ee4c: df000515 stw fp,20(sp) - ee50: df000504 addi fp,sp,20 - ee54: e13ffd15 stw r4,-12(fp) - ee58: e17ffe15 stw r5,-8(fp) - /* - * check that the device exists, and that it has a valid name. - */ - - if (!dev || !dev->name) - ee5c: e0bffd17 ldw r2,-12(fp) - ee60: 1005003a cmpeq r2,r2,zero - ee64: 1000041e bne r2,zero,ee78 - ee68: e0bffd17 ldw r2,-12(fp) - ee6c: 10800217 ldw r2,8(r2) - ee70: 1004c03a cmpne r2,r2,zero - ee74: 1000071e bne r2,zero,ee94 - { - ALT_ERRNO = EINVAL; - ee78: 000eef80 call eef8 - ee7c: 1007883a mov r3,r2 - ee80: 00800584 movi r2,22 - ee84: 18800015 stw r2,0(r3) - return -EINVAL; - ee88: 00bffa84 movi r2,-22 - ee8c: e0bfff15 stw r2,-4(fp) - ee90: 00001306 br eee0 - - /* - * register the device. - */ - - alt_llist_insert(list, &dev->llist); - ee94: e0fffd17 ldw r3,-12(fp) - ee98: e0bffe17 ldw r2,-8(fp) - ee9c: e0bffb15 stw r2,-20(fp) - eea0: e0fffc15 stw r3,-16(fp) - */ - -static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, - alt_llist* entry) -{ - entry->previous = list; - eea4: e0fffc17 ldw r3,-16(fp) - eea8: e0bffb17 ldw r2,-20(fp) - eeac: 18800115 stw r2,4(r3) - entry->next = list->next; - eeb0: e0bffb17 ldw r2,-20(fp) - eeb4: 10c00017 ldw r3,0(r2) - eeb8: e0bffc17 ldw r2,-16(fp) - eebc: 10c00015 stw r3,0(r2) - - list->next->previous = entry; - eec0: e0bffb17 ldw r2,-20(fp) - eec4: 10c00017 ldw r3,0(r2) - eec8: e0bffc17 ldw r2,-16(fp) - eecc: 18800115 stw r2,4(r3) - list->next = entry; - eed0: e0fffb17 ldw r3,-20(fp) - eed4: e0bffc17 ldw r2,-16(fp) - eed8: 18800015 stw r2,0(r3) - - return 0; - eedc: e03fff15 stw zero,-4(fp) - eee0: e0bfff17 ldw r2,-4(fp) -} - eee4: e037883a mov sp,fp - eee8: dfc00117 ldw ra,4(sp) - eeec: df000017 ldw fp,0(sp) - eef0: dec00204 addi sp,sp,8 - eef4: f800283a ret - -0000eef8 : -#undef errno - -extern int errno; - -static ALT_INLINE int* alt_get_errno(void) -{ - eef8: defffd04 addi sp,sp,-12 - eefc: dfc00215 stw ra,8(sp) - ef00: df000115 stw fp,4(sp) - ef04: df000104 addi fp,sp,4 - return ((alt_errno) ? alt_errno() : &errno); - ef08: 00800074 movhi r2,1 - ef0c: 10888904 addi r2,r2,8740 - ef10: 10800017 ldw r2,0(r2) - ef14: 1005003a cmpeq r2,r2,zero - ef18: 1000061e bne r2,zero,ef34 - ef1c: 00800074 movhi r2,1 - ef20: 10888904 addi r2,r2,8740 - ef24: 10800017 ldw r2,0(r2) - ef28: 103ee83a callr r2 - ef2c: e0bfff15 stw r2,-4(fp) - ef30: 00000306 br ef40 - ef34: 00800074 movhi r2,1 - ef38: 108f7c04 addi r2,r2,15856 - ef3c: e0bfff15 stw r2,-4(fp) - ef40: e0bfff17 ldw r2,-4(fp) -} - ef44: e037883a mov sp,fp - ef48: dfc00117 ldw ra,4(sp) - ef4c: df000017 ldw fp,0(sp) - ef50: dec00204 addi sp,sp,8 - ef54: f800283a ret - -0000ef58 <_do_ctors>: -/* - * Run the C++ static constructors. - */ - -void _do_ctors(void) -{ - ef58: defffd04 addi sp,sp,-12 - ef5c: dfc00215 stw ra,8(sp) - ef60: df000115 stw fp,4(sp) - ef64: df000104 addi fp,sp,4 - constructor* ctor; - - for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--) - ef68: 00bfff04 movi r2,-4 - ef6c: 00c00074 movhi r3,1 - ef70: 18ffe404 addi r3,r3,-112 - ef74: 1885883a add r2,r3,r2 - ef78: e0bfff15 stw r2,-4(fp) - ef7c: 00000606 br ef98 <_do_ctors+0x40> - (*ctor) (); - ef80: e0bfff17 ldw r2,-4(fp) - ef84: 10800017 ldw r2,0(r2) - ef88: 103ee83a callr r2 - -void _do_ctors(void) -{ - constructor* ctor; - - for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--) - ef8c: e0bfff17 ldw r2,-4(fp) - ef90: 10bfff04 addi r2,r2,-4 - ef94: e0bfff15 stw r2,-4(fp) - ef98: e0ffff17 ldw r3,-4(fp) - ef9c: 00800074 movhi r2,1 - efa0: 10bfe304 addi r2,r2,-116 - efa4: 18bff62e bgeu r3,r2,ef80 <_do_ctors+0x28> - (*ctor) (); -} - efa8: e037883a mov sp,fp - efac: dfc00117 ldw ra,4(sp) - efb0: df000017 ldw fp,0(sp) - efb4: dec00204 addi sp,sp,8 - efb8: f800283a ret - -0000efbc <_do_dtors>: -/* - * Run the C++ static destructors. - */ - -void _do_dtors(void) -{ - efbc: defffd04 addi sp,sp,-12 - efc0: dfc00215 stw ra,8(sp) - efc4: df000115 stw fp,4(sp) - efc8: df000104 addi fp,sp,4 - destructor* dtor; - - for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--) - efcc: 00bfff04 movi r2,-4 - efd0: 00c00074 movhi r3,1 - efd4: 18ffe404 addi r3,r3,-112 - efd8: 1885883a add r2,r3,r2 - efdc: e0bfff15 stw r2,-4(fp) - efe0: 00000606 br effc <_do_dtors+0x40> - (*dtor) (); - efe4: e0bfff17 ldw r2,-4(fp) - efe8: 10800017 ldw r2,0(r2) - efec: 103ee83a callr r2 - -void _do_dtors(void) -{ - destructor* dtor; - - for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--) - eff0: e0bfff17 ldw r2,-4(fp) - eff4: 10bfff04 addi r2,r2,-4 - eff8: e0bfff15 stw r2,-4(fp) - effc: e0ffff17 ldw r3,-4(fp) - f000: 00800074 movhi r2,1 - f004: 10bfe404 addi r2,r2,-112 - f008: 18bff62e bgeu r3,r2,efe4 <_do_dtors+0x28> - (*dtor) (); -} - f00c: e037883a mov sp,fp - f010: dfc00117 ldw ra,4(sp) - f014: df000017 ldw fp,0(sp) - f018: dec00204 addi sp,sp,8 - f01c: f800283a ret - -0000f020 : -/* - * alt_icache_flush_all() is called to flush the entire instruction cache. - */ - -void alt_icache_flush_all (void) -{ - f020: deffff04 addi sp,sp,-4 - f024: df000015 stw fp,0(sp) - f028: d839883a mov fp,sp -#if NIOS2_ICACHE_SIZE > 0 - alt_icache_flush (0, NIOS2_ICACHE_SIZE); -#endif -} - f02c: e037883a mov sp,fp - f030: df000017 ldw fp,0(sp) - f034: dec00104 addi sp,sp,4 - f038: f800283a ret - -0000f03c : - * @param irq IRQ number - * @return 0 if successful, else error (-1) - */ -int alt_ic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, - void *isr_context, void *flags) -{ - f03c: defff904 addi sp,sp,-28 - f040: dfc00615 stw ra,24(sp) - f044: df000515 stw fp,20(sp) - f048: df000504 addi fp,sp,20 - f04c: e13ffc15 stw r4,-16(fp) - f050: e17ffd15 stw r5,-12(fp) - f054: e1bffe15 stw r6,-8(fp) - f058: e1ffff15 stw r7,-4(fp) - return alt_iic_isr_register(ic_id, irq, isr, isr_context, flags); - f05c: e0800217 ldw r2,8(fp) - f060: d8800015 stw r2,0(sp) - f064: e13ffc17 ldw r4,-16(fp) - f068: e17ffd17 ldw r5,-12(fp) - f06c: e1bffe17 ldw r6,-8(fp) - f070: e1ffff17 ldw r7,-4(fp) - f074: 000f2100 call f210 -} - f078: e037883a mov sp,fp - f07c: dfc00117 ldw ra,4(sp) - f080: df000017 ldw fp,0(sp) - f084: dec00204 addi sp,sp,8 - f088: f800283a ret - -0000f08c : - * @param ic_id Ignored. - * @param irq IRQ number - * @return 0 if successful, else error (-1) - */ -int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq) -{ - f08c: defff904 addi sp,sp,-28 - f090: df000615 stw fp,24(sp) - f094: df000604 addi fp,sp,24 - f098: e13ffe15 stw r4,-8(fp) - f09c: e17fff15 stw r5,-4(fp) - f0a0: e0bfff17 ldw r2,-4(fp) - f0a4: e0bffc15 stw r2,-16(fp) -static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE - alt_irq_disable_all (void) -{ - alt_irq_context context; - - NIOS2_READ_STATUS (context); - f0a8: 0005303a rdctl r2,status - f0ac: e0bffb15 stw r2,-20(fp) - - NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); - f0b0: e0fffb17 ldw r3,-20(fp) - f0b4: 00bfff84 movi r2,-2 - f0b8: 1884703a and r2,r3,r2 - f0bc: 1001703a wrctl status,r2 - - return context; - f0c0: e0bffb17 ldw r2,-20(fp) -static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enable (alt_u32 id) -{ - alt_irq_context status; - extern volatile alt_u32 alt_irq_active; - - status = alt_irq_disable_all (); - f0c4: e0bffd15 stw r2,-12(fp) - - alt_irq_active |= (1 << id); - f0c8: e0fffc17 ldw r3,-16(fp) - f0cc: 00800044 movi r2,1 - f0d0: 10c4983a sll r2,r2,r3 - f0d4: 1007883a mov r3,r2 - f0d8: 00800074 movhi r2,1 - f0dc: 108f8004 addi r2,r2,15872 - f0e0: 10800017 ldw r2,0(r2) - f0e4: 1886b03a or r3,r3,r2 - f0e8: 00800074 movhi r2,1 - f0ec: 108f8004 addi r2,r2,15872 - f0f0: 10c00015 stw r3,0(r2) - NIOS2_WRITE_IENABLE (alt_irq_active); - f0f4: 00800074 movhi r2,1 - f0f8: 108f8004 addi r2,r2,15872 - f0fc: 10800017 ldw r2,0(r2) - f100: 100170fa wrctl ienable,r2 - f104: e0bffd17 ldw r2,-12(fp) - f108: e0bffa15 stw r2,-24(fp) - status &= ~NIOS2_STATUS_PIE_MSK; - status |= (context & NIOS2_STATUS_PIE_MSK); - - NIOS2_WRITE_STATUS (status); -#else - NIOS2_WRITE_STATUS (context); - f10c: e0bffa17 ldw r2,-24(fp) - f110: 1001703a wrctl status,r2 - - alt_irq_enable_all(status); - - return 0; - f114: 0005883a mov r2,zero - return alt_irq_enable(irq); -} - f118: e037883a mov sp,fp - f11c: df000017 ldw fp,0(sp) - f120: dec00104 addi sp,sp,4 - f124: f800283a ret - -0000f128 : - * @param ic_id Ignored. - * @param irq IRQ number - * @return 0 if successful, else error (-1) - */ -int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq) -{ - f128: defff904 addi sp,sp,-28 - f12c: df000615 stw fp,24(sp) - f130: df000604 addi fp,sp,24 - f134: e13ffe15 stw r4,-8(fp) - f138: e17fff15 stw r5,-4(fp) - f13c: e0bfff17 ldw r2,-4(fp) - f140: e0bffc15 stw r2,-16(fp) -static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE - alt_irq_disable_all (void) -{ - alt_irq_context context; - - NIOS2_READ_STATUS (context); - f144: 0005303a rdctl r2,status - f148: e0bffb15 stw r2,-20(fp) - - NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); - f14c: e0fffb17 ldw r3,-20(fp) - f150: 00bfff84 movi r2,-2 - f154: 1884703a and r2,r3,r2 - f158: 1001703a wrctl status,r2 - - return context; - f15c: e0bffb17 ldw r2,-20(fp) -static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_disable (alt_u32 id) -{ - alt_irq_context status; - extern volatile alt_u32 alt_irq_active; - - status = alt_irq_disable_all (); - f160: e0bffd15 stw r2,-12(fp) - - alt_irq_active &= ~(1 << id); - f164: e0fffc17 ldw r3,-16(fp) - f168: 00800044 movi r2,1 - f16c: 10c4983a sll r2,r2,r3 - f170: 0084303a nor r2,zero,r2 - f174: 1007883a mov r3,r2 - f178: 00800074 movhi r2,1 - f17c: 108f8004 addi r2,r2,15872 - f180: 10800017 ldw r2,0(r2) - f184: 1886703a and r3,r3,r2 - f188: 00800074 movhi r2,1 - f18c: 108f8004 addi r2,r2,15872 - f190: 10c00015 stw r3,0(r2) - NIOS2_WRITE_IENABLE (alt_irq_active); - f194: 00800074 movhi r2,1 - f198: 108f8004 addi r2,r2,15872 - f19c: 10800017 ldw r2,0(r2) - f1a0: 100170fa wrctl ienable,r2 - f1a4: e0bffd17 ldw r2,-12(fp) - f1a8: e0bffa15 stw r2,-24(fp) - status &= ~NIOS2_STATUS_PIE_MSK; - status |= (context & NIOS2_STATUS_PIE_MSK); - - NIOS2_WRITE_STATUS (status); -#else - NIOS2_WRITE_STATUS (context); - f1ac: e0bffa17 ldw r2,-24(fp) - f1b0: 1001703a wrctl status,r2 - - alt_irq_enable_all(status); - - return 0; - f1b4: 0005883a mov r2,zero - return alt_irq_disable(irq); -} - f1b8: e037883a mov sp,fp - f1bc: df000017 ldw fp,0(sp) - f1c0: dec00104 addi sp,sp,4 - f1c4: f800283a ret - -0000f1c8 : - * @param irq IRQ number - * @return Zero if corresponding interrupt is disabled and - * non-zero otherwise. - */ -alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq) -{ - f1c8: defffc04 addi sp,sp,-16 - f1cc: df000315 stw fp,12(sp) - f1d0: df000304 addi fp,sp,12 - f1d4: e13ffe15 stw r4,-8(fp) - f1d8: e17fff15 stw r5,-4(fp) - alt_u32 irq_enabled; - - NIOS2_READ_IENABLE(irq_enabled); - f1dc: 000530fa rdctl r2,ienable - f1e0: e0bffd15 stw r2,-12(fp) - - return (irq_enabled & (1 << irq)) ? 1: 0; - f1e4: e0ffff17 ldw r3,-4(fp) - f1e8: 00800044 movi r2,1 - f1ec: 10c4983a sll r2,r2,r3 - f1f0: 1007883a mov r3,r2 - f1f4: e0bffd17 ldw r2,-12(fp) - f1f8: 1884703a and r2,r3,r2 - f1fc: 1004c03a cmpne r2,r2,zero -} - f200: e037883a mov sp,fp - f204: df000017 ldw fp,0(sp) - f208: dec00104 addi sp,sp,4 - f20c: f800283a ret - -0000f210 : - * @param flags - * @return 0 if successful, else error (-1) - */ -int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, - void *isr_context, void *flags) -{ - f210: defff404 addi sp,sp,-48 - f214: dfc00b15 stw ra,44(sp) - f218: df000a15 stw fp,40(sp) - f21c: df000a04 addi fp,sp,40 - f220: e13ffb15 stw r4,-20(fp) - f224: e17ffc15 stw r5,-16(fp) - f228: e1bffd15 stw r6,-12(fp) - f22c: e1fffe15 stw r7,-8(fp) - int rc = -EINVAL; - f230: 00bffa84 movi r2,-22 - f234: e0bffa15 stw r2,-24(fp) - int id = irq; /* IRQ interpreted as the interrupt ID. */ - f238: e0bffc17 ldw r2,-16(fp) - f23c: e0bff915 stw r2,-28(fp) - alt_irq_context status; - - if (id < ALT_NIRQ) - f240: e0bff917 ldw r2,-28(fp) - f244: 10800808 cmpgei r2,r2,32 - f248: 1000291e bne r2,zero,f2f0 -static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE - alt_irq_disable_all (void) -{ - alt_irq_context context; - - NIOS2_READ_STATUS (context); - f24c: 0005303a rdctl r2,status - f250: e0bff715 stw r2,-36(fp) - - NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); - f254: e0fff717 ldw r3,-36(fp) - f258: 00bfff84 movi r2,-2 - f25c: 1884703a and r2,r3,r2 - f260: 1001703a wrctl status,r2 - - return context; - f264: e0bff717 ldw r2,-36(fp) - * interrupts are disabled while the handler tables are updated to ensure - * that an interrupt doesn't occur while the tables are in an inconsistant - * state. - */ - - status = alt_irq_disable_all(); - f268: e0bff815 stw r2,-32(fp) - - alt_irq[id].handler = isr; - f26c: e0bff917 ldw r2,-28(fp) - f270: 00c00074 movhi r3,1 - f274: 18d0d104 addi r3,r3,17220 - f278: 100490fa slli r2,r2,3 - f27c: 10c7883a add r3,r2,r3 - f280: e0bffd17 ldw r2,-12(fp) - f284: 18800015 stw r2,0(r3) - alt_irq[id].context = isr_context; - f288: e0bff917 ldw r2,-28(fp) - f28c: 00c00074 movhi r3,1 - f290: 18d0d104 addi r3,r3,17220 - f294: 100490fa slli r2,r2,3 - f298: 10c5883a add r2,r2,r3 - f29c: 10c00104 addi r3,r2,4 - f2a0: e0bffe17 ldw r2,-8(fp) - f2a4: 18800015 stw r2,0(r3) - - rc = (isr) ? alt_ic_irq_enable(ic_id, id) : alt_ic_irq_disable(ic_id, id); - f2a8: e0bffd17 ldw r2,-12(fp) - f2ac: 1005003a cmpeq r2,r2,zero - f2b0: 1000051e bne r2,zero,f2c8 - f2b4: e17ff917 ldw r5,-28(fp) - f2b8: e13ffb17 ldw r4,-20(fp) - f2bc: 000f08c0 call f08c - f2c0: e0bfff15 stw r2,-4(fp) - f2c4: 00000406 br f2d8 - f2c8: e17ff917 ldw r5,-28(fp) - f2cc: e13ffb17 ldw r4,-20(fp) - f2d0: 000f1280 call f128 - f2d4: e0bfff15 stw r2,-4(fp) - f2d8: e0bfff17 ldw r2,-4(fp) - f2dc: e0bffa15 stw r2,-24(fp) - f2e0: e0bff817 ldw r2,-32(fp) - f2e4: e0bff615 stw r2,-40(fp) - status &= ~NIOS2_STATUS_PIE_MSK; - status |= (context & NIOS2_STATUS_PIE_MSK); - - NIOS2_WRITE_STATUS (status); -#else - NIOS2_WRITE_STATUS (context); - f2e8: e0bff617 ldw r2,-40(fp) - f2ec: 1001703a wrctl status,r2 - - alt_irq_enable_all(status); - } - - return rc; - f2f0: e0bffa17 ldw r2,-24(fp) -} - f2f4: e037883a mov sp,fp - f2f8: dfc00117 ldw ra,4(sp) - f2fc: df000017 ldw fp,0(sp) - f300: dec00204 addi sp,sp,8 - f304: f800283a ret - -0000f308 : - * If the device can not be succesfully opened, then the input file descriptor - * remains unchanged. - */ - -static void alt_open_fd(alt_fd* fd, const char* name, int flags, int mode) -{ - f308: defff804 addi sp,sp,-32 - f30c: dfc00715 stw ra,28(sp) - f310: df000615 stw fp,24(sp) - f314: dc000515 stw r16,20(sp) - f318: df000504 addi fp,sp,20 - f31c: e13ffc15 stw r4,-16(fp) - f320: e17ffd15 stw r5,-12(fp) - f324: e1bffe15 stw r6,-8(fp) - f328: e1ffff15 stw r7,-4(fp) - int old; - - old = open (name, flags, mode); - f32c: e13ffd17 ldw r4,-12(fp) - f330: e17ffe17 ldw r5,-8(fp) - f334: e1bfff17 ldw r6,-4(fp) - f338: 000f5500 call f550 - f33c: e0bffb15 stw r2,-20(fp) - - if (old >= 0) - f340: e0bffb17 ldw r2,-20(fp) - f344: 1004803a cmplt r2,r2,zero - f348: 10001f1e bne r2,zero,f3c8 - { - fd->dev = alt_fd_list[old].dev; - f34c: e13ffb17 ldw r4,-20(fp) - f350: 04000074 movhi r16,1 - f354: 8403bc04 addi r16,r16,3824 - f358: 01400304 movi r5,12 - f35c: 0002c240 call 2c24 <__mulsi3> - f360: 1405883a add r2,r2,r16 - f364: 10c00017 ldw r3,0(r2) - f368: e0bffc17 ldw r2,-16(fp) - f36c: 10c00015 stw r3,0(r2) - fd->priv = alt_fd_list[old].priv; - f370: e13ffb17 ldw r4,-20(fp) - f374: 04000074 movhi r16,1 - f378: 8403bc04 addi r16,r16,3824 - f37c: 01400304 movi r5,12 - f380: 0002c240 call 2c24 <__mulsi3> - f384: 1405883a add r2,r2,r16 - f388: 10800104 addi r2,r2,4 - f38c: 10c00017 ldw r3,0(r2) - f390: e0bffc17 ldw r2,-16(fp) - f394: 10c00115 stw r3,4(r2) - fd->fd_flags = alt_fd_list[old].fd_flags; - f398: e13ffb17 ldw r4,-20(fp) - f39c: 04000074 movhi r16,1 - f3a0: 8403bc04 addi r16,r16,3824 - f3a4: 01400304 movi r5,12 - f3a8: 0002c240 call 2c24 <__mulsi3> - f3ac: 1405883a add r2,r2,r16 - f3b0: 10800204 addi r2,r2,8 - f3b4: 10c00017 ldw r3,0(r2) - f3b8: e0bffc17 ldw r2,-16(fp) - f3bc: 10c00215 stw r3,8(r2) - - alt_release_fd (old); - f3c0: e13ffb17 ldw r4,-20(fp) - f3c4: 000cd440 call cd44 - } -} - f3c8: e037883a mov sp,fp - f3cc: dfc00217 ldw ra,8(sp) - f3d0: df000117 ldw fp,4(sp) - f3d4: dc000017 ldw r16,0(sp) - f3d8: dec00304 addi sp,sp,12 - f3dc: f800283a ret - -0000f3e0 : - */ - -void alt_io_redirect(const char* stdout_dev, - const char* stdin_dev, - const char* stderr_dev) -{ - f3e0: defffb04 addi sp,sp,-20 - f3e4: dfc00415 stw ra,16(sp) - f3e8: df000315 stw fp,12(sp) - f3ec: df000304 addi fp,sp,12 - f3f0: e13ffd15 stw r4,-12(fp) - f3f4: e17ffe15 stw r5,-8(fp) - f3f8: e1bfff15 stw r6,-4(fp) - /* Redirect the channels */ - - alt_open_fd (&alt_fd_list[STDOUT_FILENO], stdout_dev, O_WRONLY, 0777); - f3fc: 01000074 movhi r4,1 - f400: 2103bf04 addi r4,r4,3836 - f404: e17ffd17 ldw r5,-12(fp) - f408: 01800044 movi r6,1 - f40c: 01c07fc4 movi r7,511 - f410: 000f3080 call f308 - alt_open_fd (&alt_fd_list[STDIN_FILENO], stdin_dev, O_RDONLY, 0777); - f414: 01000074 movhi r4,1 - f418: 2103bc04 addi r4,r4,3824 - f41c: e17ffe17 ldw r5,-8(fp) - f420: 000d883a mov r6,zero - f424: 01c07fc4 movi r7,511 - f428: 000f3080 call f308 - alt_open_fd (&alt_fd_list[STDERR_FILENO], stderr_dev, O_WRONLY, 0777); - f42c: 01000074 movhi r4,1 - f430: 2103c204 addi r4,r4,3848 - f434: e17fff17 ldw r5,-4(fp) - f438: 01800044 movi r6,1 - f43c: 01c07fc4 movi r7,511 - f440: 000f3080 call f308 -} - f444: e037883a mov sp,fp - f448: dfc00117 ldw ra,4(sp) - f44c: df000017 ldw fp,0(sp) - f450: dec00204 addi sp,sp,8 - f454: f800283a ret - -0000f458 : - * performed for devices. Filesystems are required to handle the ioctl() call - * themselves, and report the error from the filesystems open() function. - */ - -static int alt_file_locked (alt_fd* fd) -{ - f458: defffa04 addi sp,sp,-24 - f45c: dfc00515 stw ra,20(sp) - f460: df000415 stw fp,16(sp) - f464: dc000315 stw r16,12(sp) - f468: df000304 addi fp,sp,12 - f46c: e13ffe15 stw r4,-8(fp) - - /* - * Mark the file descriptor as belonging to a device. - */ - - fd->fd_flags |= ALT_FD_DEV; - f470: e0bffe17 ldw r2,-8(fp) - f474: 10800217 ldw r2,8(r2) - f478: 10d00034 orhi r3,r2,16384 - f47c: e0bffe17 ldw r2,-8(fp) - f480: 10c00215 stw r3,8(r2) - /* - * Loop through all current file descriptors searching for one that's locked - * for exclusive access. If a match is found, generate an error. - */ - - for (i = 0; i <= alt_max_fd; i++) - f484: e03ffd15 stw zero,-12(fp) - f488: 00002306 br f518 - { - if ((alt_fd_list[i].dev == fd->dev) && - f48c: e13ffd17 ldw r4,-12(fp) - f490: 04000074 movhi r16,1 - f494: 8403bc04 addi r16,r16,3824 - f498: 01400304 movi r5,12 - f49c: 0002c240 call 2c24 <__mulsi3> - f4a0: 1405883a add r2,r2,r16 - f4a4: 10c00017 ldw r3,0(r2) - f4a8: e0bffe17 ldw r2,-8(fp) - f4ac: 10800017 ldw r2,0(r2) - f4b0: 1880161e bne r3,r2,f50c - f4b4: e13ffd17 ldw r4,-12(fp) - f4b8: 04000074 movhi r16,1 - f4bc: 8403bc04 addi r16,r16,3824 - f4c0: 01400304 movi r5,12 - f4c4: 0002c240 call 2c24 <__mulsi3> - f4c8: 1405883a add r2,r2,r16 - f4cc: 10800204 addi r2,r2,8 - f4d0: 10800017 ldw r2,0(r2) - f4d4: 1004403a cmpge r2,r2,zero - f4d8: 10000c1e bne r2,zero,f50c - f4dc: e13ffd17 ldw r4,-12(fp) - f4e0: 01400304 movi r5,12 - f4e4: 0002c240 call 2c24 <__mulsi3> - f4e8: 1007883a mov r3,r2 - f4ec: 00800074 movhi r2,1 - f4f0: 1083bc04 addi r2,r2,3824 - f4f4: 1887883a add r3,r3,r2 - f4f8: e0bffe17 ldw r2,-8(fp) - f4fc: 18800326 beq r3,r2,f50c - (alt_fd_list[i].fd_flags & ALT_FD_EXCL) && - (&alt_fd_list[i] != fd)) - { - return -EACCES; - f500: 00bffcc4 movi r2,-13 - f504: e0bfff15 stw r2,-4(fp) - f508: 00000a06 br f534 - /* - * Loop through all current file descriptors searching for one that's locked - * for exclusive access. If a match is found, generate an error. - */ - - for (i = 0; i <= alt_max_fd; i++) - f50c: e0bffd17 ldw r2,-12(fp) - f510: 10800044 addi r2,r2,1 - f514: e0bffd15 stw r2,-12(fp) - f518: 00800074 movhi r2,1 - f51c: 10888804 addi r2,r2,8736 - f520: 10800017 ldw r2,0(r2) - f524: 1007883a mov r3,r2 - f528: e0bffd17 ldw r2,-12(fp) - f52c: 18bfd72e bgeu r3,r2,f48c - } - } - - /* The device is not locked */ - - return 0; - f530: e03fff15 stw zero,-4(fp) - f534: e0bfff17 ldw r2,-4(fp) -} - f538: e037883a mov sp,fp - f53c: dfc00217 ldw ra,8(sp) - f540: df000117 ldw fp,4(sp) - f544: dc000017 ldw r16,0(sp) - f548: dec00304 addi sp,sp,12 - f54c: f800283a ret - -0000f550 : - * - * ALT_OPEN is mapped onto the open() system call in alt_syscall.h - */ - -int ALT_OPEN (const char* file, int flags, int mode) -{ - f550: defff404 addi sp,sp,-48 - f554: dfc00b15 stw ra,44(sp) - f558: df000a15 stw fp,40(sp) - f55c: df000a04 addi fp,sp,40 - f560: e13ffb15 stw r4,-20(fp) - f564: e17ffc15 stw r5,-16(fp) - f568: e1bffd15 stw r6,-12(fp) - alt_dev* dev; - alt_fd* fd; - int index = -1; - f56c: 00bfffc4 movi r2,-1 - f570: e0bff815 stw r2,-32(fp) - int status = -ENODEV; - f574: 00bffb44 movi r2,-19 - f578: e0bff715 stw r2,-36(fp) - int isafs = 0; - f57c: e03ff615 stw zero,-40(fp) - /* - * Check the device list, to see if a device with a matching name is - * registered. - */ - - if (!(dev = alt_find_dev (file, &alt_dev_list))) - f580: e13ffb17 ldw r4,-20(fp) - f584: 01400074 movhi r5,1 - f588: 29488604 addi r5,r5,8728 - f58c: 000f9000 call f900 - f590: e0bffa15 stw r2,-24(fp) - f594: e0bffa17 ldw r2,-24(fp) - f598: 1004c03a cmpne r2,r2,zero - f59c: 1000051e bne r2,zero,f5b4 - { - /* No matching device, so try the filesystem list */ - - dev = alt_find_file (file); - f5a0: e13ffb17 ldw r4,-20(fp) - f5a4: 000f9940 call f994 - f5a8: e0bffa15 stw r2,-24(fp) - isafs = 1; - f5ac: 00800044 movi r2,1 - f5b0: e0bff615 stw r2,-40(fp) - - /* - * If a matching device or filesystem is found, allocate a file descriptor. - */ - - if (dev) - f5b4: e0bffa17 ldw r2,-24(fp) - f5b8: 1005003a cmpeq r2,r2,zero - f5bc: 1000311e bne r2,zero,f684 - { - if ((index = alt_get_fd (dev)) < 0) - f5c0: e13ffa17 ldw r4,-24(fp) - f5c4: 000fab40 call fab4 - f5c8: e0bff815 stw r2,-32(fp) - f5cc: e0bff817 ldw r2,-32(fp) - f5d0: 1004403a cmpge r2,r2,zero - f5d4: 1000031e bne r2,zero,f5e4 - { - status = index; - f5d8: e0bff817 ldw r2,-32(fp) - f5dc: e0bff715 stw r2,-36(fp) - f5e0: 00002a06 br f68c - } - else - { - fd = &alt_fd_list[index]; - f5e4: e13ff817 ldw r4,-32(fp) - f5e8: 01400304 movi r5,12 - f5ec: 0002c240 call 2c24 <__mulsi3> - f5f0: 1007883a mov r3,r2 - f5f4: 00800074 movhi r2,1 - f5f8: 1083bc04 addi r2,r2,3824 - f5fc: 1885883a add r2,r3,r2 - f600: e0bff915 stw r2,-28(fp) - fd->fd_flags = (flags & ~ALT_FD_FLAGS_MASK); - f604: e0fffc17 ldw r3,-16(fp) - f608: 00900034 movhi r2,16384 - f60c: 10bfffc4 addi r2,r2,-1 - f610: 1886703a and r3,r3,r2 - f614: e0bff917 ldw r2,-28(fp) - f618: 10c00215 stw r3,8(r2) - - /* If this is a device, ensure it isn't already locked */ - - if (isafs || ((status = alt_file_locked (fd)) >= 0)) - f61c: e0bff617 ldw r2,-40(fp) - f620: 1004c03a cmpne r2,r2,zero - f624: 1000061e bne r2,zero,f640 - f628: e13ff917 ldw r4,-28(fp) - f62c: 000f4580 call f458 - f630: e0bff715 stw r2,-36(fp) - f634: e0bff717 ldw r2,-36(fp) - f638: 1004803a cmplt r2,r2,zero - f63c: 1000131e bne r2,zero,f68c - /* - * If the device or filesystem provides an open() callback function, - * call it now to perform any device/filesystem specific operations. - */ - - status = (dev->open) ? dev->open(fd, file, flags, mode): 0; - f640: e0bffa17 ldw r2,-24(fp) - f644: 10800317 ldw r2,12(r2) - f648: 1005003a cmpeq r2,r2,zero - f64c: 1000091e bne r2,zero,f674 - f650: e0bffa17 ldw r2,-24(fp) - f654: 10800317 ldw r2,12(r2) - f658: e13ff917 ldw r4,-28(fp) - f65c: e17ffb17 ldw r5,-20(fp) - f660: e1bffc17 ldw r6,-16(fp) - f664: e1fffd17 ldw r7,-12(fp) - f668: 103ee83a callr r2 - f66c: e0bfff15 stw r2,-4(fp) - f670: 00000106 br f678 - f674: e03fff15 stw zero,-4(fp) - f678: e0bfff17 ldw r2,-4(fp) - f67c: e0bff715 stw r2,-36(fp) - f680: 00000206 br f68c - } - } - } - else - { - status = -ENODEV; - f684: 00bffb44 movi r2,-19 - f688: e0bff715 stw r2,-36(fp) - } - - /* Allocation failed, so clean up and return an error */ - - if (status < 0) - f68c: e0bff717 ldw r2,-36(fp) - f690: 1004403a cmpge r2,r2,zero - f694: 1000091e bne r2,zero,f6bc - { - alt_release_fd (index); - f698: e13ff817 ldw r4,-32(fp) - f69c: 000cd440 call cd44 - ALT_ERRNO = -status; - f6a0: 000f6dc0 call f6dc - f6a4: e0fff717 ldw r3,-36(fp) - f6a8: 00c7c83a sub r3,zero,r3 - f6ac: 10c00015 stw r3,0(r2) - return -1; - f6b0: 00bfffc4 movi r2,-1 - f6b4: e0bffe15 stw r2,-8(fp) - f6b8: 00000206 br f6c4 - } - - /* return the reference upon success */ - - return index; - f6bc: e0bff817 ldw r2,-32(fp) - f6c0: e0bffe15 stw r2,-8(fp) - f6c4: e0bffe17 ldw r2,-8(fp) -} - f6c8: e037883a mov sp,fp - f6cc: dfc00117 ldw ra,4(sp) - f6d0: df000017 ldw fp,0(sp) - f6d4: dec00204 addi sp,sp,8 - f6d8: f800283a ret - -0000f6dc : -#undef errno - -extern int errno; - -static ALT_INLINE int* alt_get_errno(void) -{ - f6dc: defffd04 addi sp,sp,-12 - f6e0: dfc00215 stw ra,8(sp) - f6e4: df000115 stw fp,4(sp) - f6e8: df000104 addi fp,sp,4 - return ((alt_errno) ? alt_errno() : &errno); - f6ec: 00800074 movhi r2,1 - f6f0: 10888904 addi r2,r2,8740 - f6f4: 10800017 ldw r2,0(r2) - f6f8: 1005003a cmpeq r2,r2,zero - f6fc: 1000061e bne r2,zero,f718 - f700: 00800074 movhi r2,1 - f704: 10888904 addi r2,r2,8740 - f708: 10800017 ldw r2,0(r2) - f70c: 103ee83a callr r2 - f710: e0bfff15 stw r2,-4(fp) - f714: 00000306 br f724 - f718: 00800074 movhi r2,1 - f71c: 108f7c04 addi r2,r2,15856 - f720: e0bfff15 stw r2,-4(fp) - f724: e0bfff17 ldw r2,-4(fp) -} - f728: e037883a mov sp,fp - f72c: dfc00117 ldw ra,4(sp) - f730: df000017 ldw fp,0(sp) - f734: dec00204 addi sp,sp,8 - f738: f800283a ret - -0000f73c : - * alarms. Alternatively an alarm can unregister itself by returning zero when - * the alarm executes. - */ - -void alt_alarm_stop (alt_alarm* alarm) -{ - f73c: defffa04 addi sp,sp,-24 - f740: df000515 stw fp,20(sp) - f744: df000504 addi fp,sp,20 - f748: e13fff15 stw r4,-4(fp) -static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE - alt_irq_disable_all (void) -{ - alt_irq_context context; - - NIOS2_READ_STATUS (context); - f74c: 0005303a rdctl r2,status - f750: e0bffd15 stw r2,-12(fp) - - NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); - f754: e0fffd17 ldw r3,-12(fp) - f758: 00bfff84 movi r2,-2 - f75c: 1884703a and r2,r3,r2 - f760: 1001703a wrctl status,r2 - - return context; - f764: e0bffd17 ldw r2,-12(fp) - alt_irq_context irq_context; - - irq_context = alt_irq_disable_all(); - f768: e0bffe15 stw r2,-8(fp) - alt_llist_remove (&alarm->llist); - f76c: e0bfff17 ldw r2,-4(fp) - f770: e0bffc15 stw r2,-16(fp) - * input argument is the element to remove. - */ - -static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_remove(alt_llist* entry) -{ - entry->next->previous = entry->previous; - f774: e0bffc17 ldw r2,-16(fp) - f778: 10c00017 ldw r3,0(r2) - f77c: e0bffc17 ldw r2,-16(fp) - f780: 10800117 ldw r2,4(r2) - f784: 18800115 stw r2,4(r3) - entry->previous->next = entry->next; - f788: e0bffc17 ldw r2,-16(fp) - f78c: 10c00117 ldw r3,4(r2) - f790: e0bffc17 ldw r2,-16(fp) - f794: 10800017 ldw r2,0(r2) - f798: 18800015 stw r2,0(r3) - /* - * Set the entry to point to itself, so that any further calls to - * alt_llist_remove() are harmless. - */ - - entry->previous = entry; - f79c: e0fffc17 ldw r3,-16(fp) - f7a0: e0bffc17 ldw r2,-16(fp) - f7a4: 18800115 stw r2,4(r3) - entry->next = entry; - f7a8: e0fffc17 ldw r3,-16(fp) - f7ac: e0bffc17 ldw r2,-16(fp) - f7b0: 18800015 stw r2,0(r3) - f7b4: e0bffe17 ldw r2,-8(fp) - f7b8: e0bffb15 stw r2,-20(fp) - status &= ~NIOS2_STATUS_PIE_MSK; - status |= (context & NIOS2_STATUS_PIE_MSK); - - NIOS2_WRITE_STATUS (status); -#else - NIOS2_WRITE_STATUS (context); - f7bc: e0bffb17 ldw r2,-20(fp) - f7c0: 1001703a wrctl status,r2 - alt_irq_enable_all (irq_context); -} - f7c4: e037883a mov sp,fp - f7c8: df000017 ldw fp,0(sp) - f7cc: dec00104 addi sp,sp,4 - f7d0: f800283a ret - -0000f7d4 : - * - * alt_tick() is expected to run at interrupt level. - */ - -void alt_tick (void) -{ - f7d4: defffb04 addi sp,sp,-20 - f7d8: dfc00415 stw ra,16(sp) - f7dc: df000315 stw fp,12(sp) - f7e0: df000304 addi fp,sp,12 - alt_alarm* next; - alt_alarm* alarm = (alt_alarm*) alt_alarm_list.next; - f7e4: d0a01117 ldw r2,-32700(gp) - f7e8: e0bffe15 stw r2,-8(fp) - - alt_u32 next_callback; - - /* update the tick counter */ - - _alt_nticks++; - f7ec: d0a70617 ldw r2,-25576(gp) - f7f0: 10800044 addi r2,r2,1 - f7f4: d0a70615 stw r2,-25576(gp) - - /* process the registered callbacks */ - - while (alarm != (alt_alarm*) &alt_alarm_list) - f7f8: 00003106 br f8c0 - { - next = (alt_alarm*) alarm->llist.next; - f7fc: e0bffe17 ldw r2,-8(fp) - f800: 10800017 ldw r2,0(r2) - f804: e0bfff15 stw r2,-4(fp) - /* - * Upon the tick-counter rolling over it is safe to clear the - * roll-over flag; once the flag is cleared this (or subsequnt) - * tick events are enabled to generate an alarm event. - */ - if ((alarm->rollover) && (_alt_nticks == 0)) - f808: e0bffe17 ldw r2,-8(fp) - f80c: 10800403 ldbu r2,16(r2) - f810: 10803fcc andi r2,r2,255 - f814: 1005003a cmpeq r2,r2,zero - f818: 1000051e bne r2,zero,f830 - f81c: d0a70617 ldw r2,-25576(gp) - f820: 1004c03a cmpne r2,r2,zero - f824: 1000021e bne r2,zero,f830 - { - alarm->rollover = 0; - f828: e0bffe17 ldw r2,-8(fp) - f82c: 10000405 stb zero,16(r2) - } - - /* if the alarm period has expired, make the callback */ - if ((alarm->time <= _alt_nticks) && (alarm->rollover == 0)) - f830: e0bffe17 ldw r2,-8(fp) - f834: 10c00217 ldw r3,8(r2) - f838: d0a70617 ldw r2,-25576(gp) - f83c: 10c01e36 bltu r2,r3,f8b8 - f840: e0bffe17 ldw r2,-8(fp) - f844: 10800403 ldbu r2,16(r2) - f848: 10803fcc andi r2,r2,255 - f84c: 1004c03a cmpne r2,r2,zero - f850: 1000191e bne r2,zero,f8b8 - { - next_callback = alarm->callback (alarm->context); - f854: e0bffe17 ldw r2,-8(fp) - f858: 10c00317 ldw r3,12(r2) - f85c: e0bffe17 ldw r2,-8(fp) - f860: 11000517 ldw r4,20(r2) - f864: 183ee83a callr r3 - f868: e0bffd15 stw r2,-12(fp) - - /* deactivate the alarm if the return value is zero */ - - if (next_callback == 0) - f86c: e0bffd17 ldw r2,-12(fp) - f870: 1004c03a cmpne r2,r2,zero - f874: 1000031e bne r2,zero,f884 - { - alt_alarm_stop (alarm); - f878: e13ffe17 ldw r4,-8(fp) - f87c: 000f73c0 call f73c - f880: 00000d06 br f8b8 - } - else - { - alarm->time += next_callback; - f884: e0bffe17 ldw r2,-8(fp) - f888: 10c00217 ldw r3,8(r2) - f88c: e0bffd17 ldw r2,-12(fp) - f890: 1887883a add r3,r3,r2 - f894: e0bffe17 ldw r2,-8(fp) - f898: 10c00215 stw r3,8(r2) - /* - * If the desired alarm time causes a roll-over, set the rollover - * flag. This will prevent the subsequent tick event from causing - * an alarm too early. - */ - if(alarm->time < _alt_nticks) - f89c: e0bffe17 ldw r2,-8(fp) - f8a0: 10c00217 ldw r3,8(r2) - f8a4: d0a70617 ldw r2,-25576(gp) - f8a8: 1880032e bgeu r3,r2,f8b8 - { - alarm->rollover = 1; - f8ac: e0fffe17 ldw r3,-8(fp) - f8b0: 00800044 movi r2,1 - f8b4: 18800405 stb r2,16(r3) - } - } - } - alarm = next; - f8b8: e0bfff17 ldw r2,-4(fp) - f8bc: e0bffe15 stw r2,-8(fp) - - _alt_nticks++; - - /* process the registered callbacks */ - - while (alarm != (alt_alarm*) &alt_alarm_list) - f8c0: d0e01104 addi r3,gp,-32700 - f8c4: e0bffe17 ldw r2,-8(fp) - f8c8: 10ffcc1e bne r2,r3,f7fc - /* - * Update the operating system specific timer facilities. - */ - - ALT_OS_TIME_TICK(); -} - f8cc: e037883a mov sp,fp - f8d0: dfc00117 ldw ra,4(sp) - f8d4: df000017 ldw fp,0(sp) - f8d8: dec00204 addi sp,sp,8 - f8dc: f800283a ret - -0000f8e0 : -/* - * To initialize the internal interrupt controller, just clear the IENABLE - * register so that all possible IRQs are disabled. - */ -void altera_nios2_qsys_irq_init(void) -{ - f8e0: deffff04 addi sp,sp,-4 - f8e4: df000015 stw fp,0(sp) - f8e8: d839883a mov fp,sp - NIOS2_WRITE_IENABLE(0); - f8ec: 000170fa wrctl ienable,zero -} - f8f0: e037883a mov sp,fp - f8f4: df000017 ldw fp,0(sp) - f8f8: dec00104 addi sp,sp,4 - f8fc: f800283a ret - -0000f900 : - * "name" must be an exact match for the devices registered name for a match to - * be found. - */ - -alt_dev* alt_find_dev(const char* name, alt_llist* llist) -{ - f900: defff904 addi sp,sp,-28 - f904: dfc00615 stw ra,24(sp) - f908: df000515 stw fp,20(sp) - f90c: df000504 addi fp,sp,20 - f910: e13ffd15 stw r4,-12(fp) - f914: e17ffe15 stw r5,-8(fp) - alt_dev* next = (alt_dev*) llist->next; - f918: e0bffe17 ldw r2,-8(fp) - f91c: 10800017 ldw r2,0(r2) - f920: e0bffc15 stw r2,-16(fp) - alt_32 len; - - len = strlen(name) + 1; - f924: e13ffd17 ldw r4,-12(fp) - f928: 0002d300 call 2d30 - f92c: 10800044 addi r2,r2,1 - f930: e0bffb15 stw r2,-20(fp) - /* - * Check each list entry in turn, until a match is found, or we reach the - * end of the list (i.e. next winds up pointing back to the list head). - */ - - while (next != (alt_dev*) llist) - f934: 00000d06 br f96c - /* - * memcmp() is used here rather than strcmp() in order to reduce the size - * of the executable. - */ - - if (!memcmp (next->name, name, len)) - f938: e0bffc17 ldw r2,-16(fp) - f93c: 11000217 ldw r4,8(r2) - f940: e1bffb17 ldw r6,-20(fp) - f944: e17ffd17 ldw r5,-12(fp) - f948: 000fbd00 call fbd0 - f94c: 1004c03a cmpne r2,r2,zero - f950: 1000031e bne r2,zero,f960 - { - /* match found */ - - return next; - f954: e0bffc17 ldw r2,-16(fp) - f958: e0bfff15 stw r2,-4(fp) - f95c: 00000706 br f97c - } - next = (alt_dev*) next->llist.next; - f960: e0bffc17 ldw r2,-16(fp) - f964: 10800017 ldw r2,0(r2) - f968: e0bffc15 stw r2,-16(fp) - /* - * Check each list entry in turn, until a match is found, or we reach the - * end of the list (i.e. next winds up pointing back to the list head). - */ - - while (next != (alt_dev*) llist) - f96c: e0fffe17 ldw r3,-8(fp) - f970: e0bffc17 ldw r2,-16(fp) - f974: 10fff01e bne r2,r3,f938 - next = (alt_dev*) next->llist.next; - } - - /* No match found */ - - return NULL; - f978: e03fff15 stw zero,-4(fp) - f97c: e0bfff17 ldw r2,-4(fp) -} - f980: e037883a mov sp,fp - f984: dfc00117 ldw ra,4(sp) - f988: df000017 ldw fp,0(sp) - f98c: dec00204 addi sp,sp,8 - f990: f800283a ret - -0000f994 : - * either '/' or '\0' is the prefix of the filename. For example the filename: - * "/myfilesystem/junk.txt" would match: "/myfilesystem", but not: "/myfile". - */ - -alt_dev* alt_find_file (const char* name) -{ - f994: defffa04 addi sp,sp,-24 - f998: dfc00515 stw ra,20(sp) - f99c: df000415 stw fp,16(sp) - f9a0: df000404 addi fp,sp,16 - f9a4: e13ffe15 stw r4,-8(fp) - alt_dev* next = (alt_dev*) alt_fs_list.next; - f9a8: 00800074 movhi r2,1 - f9ac: 10888404 addi r2,r2,8720 - f9b0: 10800017 ldw r2,0(r2) - f9b4: e0bffd15 stw r2,-12(fp) - /* - * Check each list entry in turn, until a match is found, or we reach the - * end of the list (i.e. next winds up pointing back to the list head). - */ - - while (next != (alt_dev*) &alt_fs_list) - f9b8: 00003306 br fa88 - { - len = strlen(next->name); - f9bc: e0bffd17 ldw r2,-12(fp) - f9c0: 11000217 ldw r4,8(r2) - f9c4: 0002d300 call 2d30 - f9c8: e0bffc15 stw r2,-16(fp) - - if (next->name[len-1] == '/') - f9cc: e0bffd17 ldw r2,-12(fp) - f9d0: 10c00217 ldw r3,8(r2) - f9d4: e0bffc17 ldw r2,-16(fp) - f9d8: 1885883a add r2,r3,r2 - f9dc: 10bfffc4 addi r2,r2,-1 - f9e0: 10800003 ldbu r2,0(r2) - f9e4: 10803fcc andi r2,r2,255 - f9e8: 1080201c xori r2,r2,128 - f9ec: 10bfe004 addi r2,r2,-128 - f9f0: 10800bd8 cmpnei r2,r2,47 - f9f4: 1000031e bne r2,zero,fa04 - { - len -= 1; - f9f8: e0bffc17 ldw r2,-16(fp) - f9fc: 10bfffc4 addi r2,r2,-1 - fa00: e0bffc15 stw r2,-16(fp) - } - - if (((name[len] == '/') || (name[len] == '\0')) && - fa04: e0bffc17 ldw r2,-16(fp) - fa08: 1007883a mov r3,r2 - fa0c: e0bffe17 ldw r2,-8(fp) - fa10: 1885883a add r2,r3,r2 - fa14: 10800003 ldbu r2,0(r2) - fa18: 10803fcc andi r2,r2,255 - fa1c: 1080201c xori r2,r2,128 - fa20: 10bfe004 addi r2,r2,-128 - fa24: 10800be0 cmpeqi r2,r2,47 - fa28: 10000a1e bne r2,zero,fa54 - fa2c: e0bffc17 ldw r2,-16(fp) - fa30: 1007883a mov r3,r2 - fa34: e0bffe17 ldw r2,-8(fp) - fa38: 1885883a add r2,r3,r2 - fa3c: 10800003 ldbu r2,0(r2) - fa40: 10803fcc andi r2,r2,255 - fa44: 1080201c xori r2,r2,128 - fa48: 10bfe004 addi r2,r2,-128 - fa4c: 1004c03a cmpne r2,r2,zero - fa50: 10000a1e bne r2,zero,fa7c - fa54: e0bffd17 ldw r2,-12(fp) - fa58: 11000217 ldw r4,8(r2) - fa5c: e1bffc17 ldw r6,-16(fp) - fa60: e17ffe17 ldw r5,-8(fp) - fa64: 000fbd00 call fbd0 - fa68: 1004c03a cmpne r2,r2,zero - fa6c: 1000031e bne r2,zero,fa7c - !memcmp (next->name, name, len)) - { - /* match found */ - - return next; - fa70: e0bffd17 ldw r2,-12(fp) - fa74: e0bfff15 stw r2,-4(fp) - fa78: 00000806 br fa9c - } - next = (alt_dev*) next->llist.next; - fa7c: e0bffd17 ldw r2,-12(fp) - fa80: 10800017 ldw r2,0(r2) - fa84: e0bffd15 stw r2,-12(fp) - /* - * Check each list entry in turn, until a match is found, or we reach the - * end of the list (i.e. next winds up pointing back to the list head). - */ - - while (next != (alt_dev*) &alt_fs_list) - fa88: 00c00074 movhi r3,1 - fa8c: 18c88404 addi r3,r3,8720 - fa90: e0bffd17 ldw r2,-12(fp) - fa94: 10ffc91e bne r2,r3,f9bc - next = (alt_dev*) next->llist.next; - } - - /* No match found */ - - return NULL; - fa98: e03fff15 stw zero,-4(fp) - fa9c: e0bfff17 ldw r2,-4(fp) -} - faa0: e037883a mov sp,fp - faa4: dfc00117 ldw ra,4(sp) - faa8: df000017 ldw fp,0(sp) - faac: dec00204 addi sp,sp,8 - fab0: f800283a ret - -0000fab4 : - * the offset of the file descriptor within the file descriptor array). A - * negative value indicates failure. - */ - -int alt_get_fd (alt_dev* dev) -{ - fab4: defffa04 addi sp,sp,-24 - fab8: dfc00515 stw ra,20(sp) - fabc: df000415 stw fp,16(sp) - fac0: dc000315 stw r16,12(sp) - fac4: df000304 addi fp,sp,12 - fac8: e13fff15 stw r4,-4(fp) - alt_32 i; - int rc = -EMFILE; - facc: 00bffa04 movi r2,-24 - fad0: e0bffd15 stw r2,-12(fp) - * indicates the highest file descriptor ever allocated. This is used to - * improve efficency when searching the file descriptor list, and - * therefore reduce contention on the alt_fd_list_lock semaphore. - */ - - for (i = 0; i < ALT_MAX_FD; i++) - fad4: e03ffe15 stw zero,-8(fp) - fad8: 00002006 br fb5c - { - if (!alt_fd_list[i].dev) - fadc: e13ffe17 ldw r4,-8(fp) - fae0: 04000074 movhi r16,1 - fae4: 8403bc04 addi r16,r16,3824 - fae8: 01400304 movi r5,12 - faec: 0002c240 call 2c24 <__mulsi3> - faf0: 1405883a add r2,r2,r16 - faf4: 10800017 ldw r2,0(r2) - faf8: 1004c03a cmpne r2,r2,zero - fafc: 1000141e bne r2,zero,fb50 - { - alt_fd_list[i].dev = dev; - fb00: e13ffe17 ldw r4,-8(fp) - fb04: 04000074 movhi r16,1 - fb08: 8403bc04 addi r16,r16,3824 - fb0c: 01400304 movi r5,12 - fb10: 0002c240 call 2c24 <__mulsi3> - fb14: 1407883a add r3,r2,r16 - fb18: e0bfff17 ldw r2,-4(fp) - fb1c: 18800015 stw r2,0(r3) - if (i > alt_max_fd) - fb20: 00800074 movhi r2,1 - fb24: 10888804 addi r2,r2,8736 - fb28: 10c00017 ldw r3,0(r2) - fb2c: e0bffe17 ldw r2,-8(fp) - fb30: 1880040e bge r3,r2,fb44 - { - alt_max_fd = i; - fb34: 00c00074 movhi r3,1 - fb38: 18c88804 addi r3,r3,8736 - fb3c: e0bffe17 ldw r2,-8(fp) - fb40: 18800015 stw r2,0(r3) - } - rc = i; - fb44: e0bffe17 ldw r2,-8(fp) - fb48: e0bffd15 stw r2,-12(fp) - goto alt_get_fd_exit; - fb4c: 00000606 br fb68 - * indicates the highest file descriptor ever allocated. This is used to - * improve efficency when searching the file descriptor list, and - * therefore reduce contention on the alt_fd_list_lock semaphore. - */ - - for (i = 0; i < ALT_MAX_FD; i++) - fb50: e0bffe17 ldw r2,-8(fp) - fb54: 10800044 addi r2,r2,1 - fb58: e0bffe15 stw r2,-8(fp) - fb5c: e0bffe17 ldw r2,-8(fp) - fb60: 10800810 cmplti r2,r2,32 - fb64: 103fdd1e bne r2,zero,fadc - * file descriptor pool. - */ - - ALT_SEM_POST(alt_fd_list_lock); - - return rc; - fb68: e0bffd17 ldw r2,-12(fp) -} - fb6c: e037883a mov sp,fp - fb70: dfc00217 ldw ra,8(sp) - fb74: df000117 ldw fp,4(sp) - fb78: dc000017 ldw r16,0(sp) - fb7c: dec00304 addi sp,sp,12 - fb80: f800283a ret - -0000fb84 : - fb84: 200b883a mov r5,r4 - fb88: 000d883a mov r6,zero - fb8c: 0009883a mov r4,zero - fb90: 000f883a mov r7,zero - fb94: 000fc441 jmpi fc44 <__register_exitproc> - -0000fb98 : - fb98: defffe04 addi sp,sp,-8 - fb9c: 000b883a mov r5,zero - fba0: dc000015 stw r16,0(sp) - fba4: dfc00115 stw ra,4(sp) - fba8: 2021883a mov r16,r4 - fbac: 000fd7c0 call fd7c <__call_exitprocs> - fbb0: 00800074 movhi r2,1 - fbb4: 10887f04 addi r2,r2,8700 - fbb8: 11000017 ldw r4,0(r2) - fbbc: 20800f17 ldw r2,60(r4) - fbc0: 10000126 beq r2,zero,fbc8 - fbc4: 103ee83a callr r2 - fbc8: 8009883a mov r4,r16 - fbcc: 000ff6c0 call ff6c <_exit> - -0000fbd0 : - fbd0: 00c000c4 movi r3,3 - fbd4: 1980032e bgeu r3,r6,fbe4 - fbd8: 2144b03a or r2,r4,r5 - fbdc: 10c4703a and r2,r2,r3 - fbe0: 10000f26 beq r2,zero,fc20 - fbe4: 31ffffc4 addi r7,r6,-1 - fbe8: 3000061e bne r6,zero,fc04 - fbec: 00000a06 br fc18 - fbf0: 39ffffc4 addi r7,r7,-1 - fbf4: 00bfffc4 movi r2,-1 - fbf8: 21000044 addi r4,r4,1 - fbfc: 29400044 addi r5,r5,1 - fc00: 38800526 beq r7,r2,fc18 - fc04: 20c00003 ldbu r3,0(r4) - fc08: 28800003 ldbu r2,0(r5) - fc0c: 18bff826 beq r3,r2,fbf0 - fc10: 1885c83a sub r2,r3,r2 - fc14: f800283a ret - fc18: 0005883a mov r2,zero - fc1c: f800283a ret - fc20: 180f883a mov r7,r3 - fc24: 20c00017 ldw r3,0(r4) - fc28: 28800017 ldw r2,0(r5) - fc2c: 18bfed1e bne r3,r2,fbe4 - fc30: 31bfff04 addi r6,r6,-4 - fc34: 21000104 addi r4,r4,4 - fc38: 29400104 addi r5,r5,4 - fc3c: 39bff936 bltu r7,r6,fc24 - fc40: 003fe806 br fbe4 - -0000fc44 <__register_exitproc>: - fc44: defffa04 addi sp,sp,-24 - fc48: 00800074 movhi r2,1 - fc4c: 10887f04 addi r2,r2,8700 - fc50: dc000015 stw r16,0(sp) - fc54: 14000017 ldw r16,0(r2) - fc58: dd000415 stw r20,16(sp) - fc5c: 2829883a mov r20,r5 - fc60: 81405217 ldw r5,328(r16) - fc64: dcc00315 stw r19,12(sp) - fc68: dc800215 stw r18,8(sp) - fc6c: dc400115 stw r17,4(sp) - fc70: dfc00515 stw ra,20(sp) - fc74: 2023883a mov r17,r4 - fc78: 3027883a mov r19,r6 - fc7c: 3825883a mov r18,r7 - fc80: 28002526 beq r5,zero,fd18 <__register_exitproc+0xd4> - fc84: 29000117 ldw r4,4(r5) - fc88: 008007c4 movi r2,31 - fc8c: 11002716 blt r2,r4,fd2c <__register_exitproc+0xe8> - fc90: 8800101e bne r17,zero,fcd4 <__register_exitproc+0x90> - fc94: 2105883a add r2,r4,r4 - fc98: 1085883a add r2,r2,r2 - fc9c: 20c00044 addi r3,r4,1 - fca0: 1145883a add r2,r2,r5 - fca4: 0009883a mov r4,zero - fca8: 15000215 stw r20,8(r2) - fcac: 28c00115 stw r3,4(r5) - fcb0: 2005883a mov r2,r4 - fcb4: dfc00517 ldw ra,20(sp) - fcb8: dd000417 ldw r20,16(sp) - fcbc: dcc00317 ldw r19,12(sp) - fcc0: dc800217 ldw r18,8(sp) - fcc4: dc400117 ldw r17,4(sp) - fcc8: dc000017 ldw r16,0(sp) - fccc: dec00604 addi sp,sp,24 - fcd0: f800283a ret - fcd4: 29802204 addi r6,r5,136 - fcd8: 00800044 movi r2,1 - fcdc: 110e983a sll r7,r2,r4 - fce0: 30c04017 ldw r3,256(r6) - fce4: 2105883a add r2,r4,r4 - fce8: 1085883a add r2,r2,r2 - fcec: 1185883a add r2,r2,r6 - fcf0: 19c6b03a or r3,r3,r7 - fcf4: 14802015 stw r18,128(r2) - fcf8: 14c00015 stw r19,0(r2) - fcfc: 00800084 movi r2,2 - fd00: 30c04015 stw r3,256(r6) - fd04: 88bfe31e bne r17,r2,fc94 <__register_exitproc+0x50> - fd08: 30804117 ldw r2,260(r6) - fd0c: 11c4b03a or r2,r2,r7 - fd10: 30804115 stw r2,260(r6) - fd14: 003fdf06 br fc94 <__register_exitproc+0x50> - fd18: 00800074 movhi r2,1 - fd1c: 10911104 addi r2,r2,17476 - fd20: 100b883a mov r5,r2 - fd24: 80805215 stw r2,328(r16) - fd28: 003fd606 br fc84 <__register_exitproc+0x40> - fd2c: 00800034 movhi r2,0 - fd30: 10800004 addi r2,r2,0 - fd34: 1000021e bne r2,zero,fd40 <__register_exitproc+0xfc> - fd38: 013fffc4 movi r4,-1 - fd3c: 003fdc06 br fcb0 <__register_exitproc+0x6c> - fd40: 01006404 movi r4,400 - fd44: 103ee83a callr r2 - fd48: 1007883a mov r3,r2 - fd4c: 103ffa26 beq r2,zero,fd38 <__register_exitproc+0xf4> - fd50: 80805217 ldw r2,328(r16) - fd54: 180b883a mov r5,r3 - fd58: 18000115 stw zero,4(r3) - fd5c: 18800015 stw r2,0(r3) - fd60: 80c05215 stw r3,328(r16) - fd64: 18006215 stw zero,392(r3) - fd68: 18006315 stw zero,396(r3) - fd6c: 0009883a mov r4,zero - fd70: 883fc826 beq r17,zero,fc94 <__register_exitproc+0x50> - fd74: 003fd706 br fcd4 <__register_exitproc+0x90> - -0000fd78 : - fd78: f800283a ret - -0000fd7c <__call_exitprocs>: - fd7c: 00800074 movhi r2,1 - fd80: 10887f04 addi r2,r2,8700 - fd84: 10800017 ldw r2,0(r2) - fd88: defff304 addi sp,sp,-52 - fd8c: df000b15 stw fp,44(sp) - fd90: d8800115 stw r2,4(sp) - fd94: 00800034 movhi r2,0 - fd98: 10800004 addi r2,r2,0 - fd9c: 1005003a cmpeq r2,r2,zero - fda0: d8800215 stw r2,8(sp) - fda4: d8800117 ldw r2,4(sp) - fda8: dd400815 stw r21,32(sp) - fdac: dd000715 stw r20,28(sp) - fdb0: 10805204 addi r2,r2,328 - fdb4: dfc00c15 stw ra,48(sp) - fdb8: ddc00a15 stw r23,40(sp) - fdbc: dd800915 stw r22,36(sp) - fdc0: dcc00615 stw r19,24(sp) - fdc4: dc800515 stw r18,20(sp) - fdc8: dc400415 stw r17,16(sp) - fdcc: dc000315 stw r16,12(sp) - fdd0: 282b883a mov r21,r5 - fdd4: 2039883a mov fp,r4 - fdd8: d8800015 stw r2,0(sp) - fddc: 2829003a cmpeq r20,r5,zero - fde0: d8800117 ldw r2,4(sp) - fde4: 14405217 ldw r17,328(r2) - fde8: 88001026 beq r17,zero,fe2c <__call_exitprocs+0xb0> - fdec: ddc00017 ldw r23,0(sp) - fdf0: 88800117 ldw r2,4(r17) - fdf4: 8c802204 addi r18,r17,136 - fdf8: 143fffc4 addi r16,r2,-1 - fdfc: 80000916 blt r16,zero,fe24 <__call_exitprocs+0xa8> - fe00: 05bfffc4 movi r22,-1 - fe04: a000151e bne r20,zero,fe5c <__call_exitprocs+0xe0> - fe08: 8409883a add r4,r16,r16 - fe0c: 2105883a add r2,r4,r4 - fe10: 1485883a add r2,r2,r18 - fe14: 10c02017 ldw r3,128(r2) - fe18: a8c01126 beq r21,r3,fe60 <__call_exitprocs+0xe4> - fe1c: 843fffc4 addi r16,r16,-1 - fe20: 85bff81e bne r16,r22,fe04 <__call_exitprocs+0x88> - fe24: d8800217 ldw r2,8(sp) - fe28: 10003126 beq r2,zero,fef0 <__call_exitprocs+0x174> - fe2c: dfc00c17 ldw ra,48(sp) - fe30: df000b17 ldw fp,44(sp) - fe34: ddc00a17 ldw r23,40(sp) - fe38: dd800917 ldw r22,36(sp) - fe3c: dd400817 ldw r21,32(sp) - fe40: dd000717 ldw r20,28(sp) - fe44: dcc00617 ldw r19,24(sp) - fe48: dc800517 ldw r18,20(sp) - fe4c: dc400417 ldw r17,16(sp) - fe50: dc000317 ldw r16,12(sp) - fe54: dec00d04 addi sp,sp,52 - fe58: f800283a ret - fe5c: 8409883a add r4,r16,r16 - fe60: 88c00117 ldw r3,4(r17) - fe64: 2105883a add r2,r4,r4 - fe68: 1445883a add r2,r2,r17 - fe6c: 18ffffc4 addi r3,r3,-1 - fe70: 11800217 ldw r6,8(r2) - fe74: 1c001526 beq r3,r16,fecc <__call_exitprocs+0x150> - fe78: 10000215 stw zero,8(r2) - fe7c: 303fe726 beq r6,zero,fe1c <__call_exitprocs+0xa0> - fe80: 00c00044 movi r3,1 - fe84: 1c06983a sll r3,r3,r16 - fe88: 90804017 ldw r2,256(r18) - fe8c: 8cc00117 ldw r19,4(r17) - fe90: 1884703a and r2,r3,r2 - fe94: 10001426 beq r2,zero,fee8 <__call_exitprocs+0x16c> - fe98: 90804117 ldw r2,260(r18) - fe9c: 1884703a and r2,r3,r2 - fea0: 10000c1e bne r2,zero,fed4 <__call_exitprocs+0x158> - fea4: 2105883a add r2,r4,r4 - fea8: 1485883a add r2,r2,r18 - feac: 11400017 ldw r5,0(r2) - feb0: e009883a mov r4,fp - feb4: 303ee83a callr r6 - feb8: 88800117 ldw r2,4(r17) - febc: 98bfc81e bne r19,r2,fde0 <__call_exitprocs+0x64> - fec0: b8800017 ldw r2,0(r23) - fec4: 147fd526 beq r2,r17,fe1c <__call_exitprocs+0xa0> - fec8: 003fc506 br fde0 <__call_exitprocs+0x64> - fecc: 8c000115 stw r16,4(r17) - fed0: 003fea06 br fe7c <__call_exitprocs+0x100> - fed4: 2105883a add r2,r4,r4 - fed8: 1485883a add r2,r2,r18 - fedc: 11000017 ldw r4,0(r2) - fee0: 303ee83a callr r6 - fee4: 003ff406 br feb8 <__call_exitprocs+0x13c> - fee8: 303ee83a callr r6 - feec: 003ff206 br feb8 <__call_exitprocs+0x13c> - fef0: 88800117 ldw r2,4(r17) - fef4: 1000081e bne r2,zero,ff18 <__call_exitprocs+0x19c> - fef8: 89000017 ldw r4,0(r17) - fefc: 20000726 beq r4,zero,ff1c <__call_exitprocs+0x1a0> - ff00: b9000015 stw r4,0(r23) - ff04: 8809883a mov r4,r17 - ff08: 00000000 call 0 <__alt_mem_onchip_memory> - ff0c: bc400017 ldw r17,0(r23) - ff10: 883fb71e bne r17,zero,fdf0 <__call_exitprocs+0x74> - ff14: 003fc506 br fe2c <__call_exitprocs+0xb0> - ff18: 89000017 ldw r4,0(r17) - ff1c: 882f883a mov r23,r17 - ff20: 2023883a mov r17,r4 - ff24: 883fb21e bne r17,zero,fdf0 <__call_exitprocs+0x74> - ff28: 003fc006 br fe2c <__call_exitprocs+0xb0> - -0000ff2c : - -/* - * Routine called on exit. - */ -static ALT_ALWAYS_INLINE void alt_sim_halt(int exit_code) -{ - ff2c: defffd04 addi sp,sp,-12 - ff30: df000215 stw fp,8(sp) - ff34: df000204 addi fp,sp,8 - ff38: e13fff15 stw r4,-4(fp) - int r2 = exit_code; - ff3c: e0bfff17 ldw r2,-4(fp) - ff40: e0bffe15 stw r2,-8(fp) - __asm__ volatile ("\n0:\n\taddi %0,%0, -1\n\tbgt %0,zero,0b" : : "r" (ALT_CPU_FREQ/100) ); /* Delay for >30ms */ - - __asm__ volatile ("break 2" : : "D02"(r2), "D03"(r3) ALT_GMON_DATA ); - -#else /* !DEBUG_STUB */ - if (r2) { - ff44: e0bffe17 ldw r2,-8(fp) - ff48: 1005003a cmpeq r2,r2,zero - ff4c: 1000021e bne r2,zero,ff58 - ALT_SIM_FAIL(); - ff50: 002af070 cmpltui zero,zero,43969 - ff54: 00000106 br ff5c - } else { - ALT_SIM_PASS(); - ff58: 002af0b0 cmpltui zero,zero,43970 - } -#endif /* DEBUG_STUB */ -} - ff5c: e037883a mov sp,fp - ff60: df000017 ldw fp,0(sp) - ff64: dec00104 addi sp,sp,4 - ff68: f800283a ret - -0000ff6c <_exit>: - * - * ALT_EXIT is mapped onto the _exit() system call in alt_syscall.h - */ - -void ALT_EXIT (int exit_code) -{ - ff6c: defffd04 addi sp,sp,-12 - ff70: dfc00215 stw ra,8(sp) - ff74: df000115 stw fp,4(sp) - ff78: df000104 addi fp,sp,4 - ff7c: e13fff15 stw r4,-4(fp) - ALT_OS_STOP(); - - /* Provide notification to the simulator that we've stopped */ - - ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_SIM_HALT().\r\n"); - ALT_SIM_HALT(exit_code); - ff80: e13fff17 ldw r4,-4(fp) - ff84: 000ff2c0 call ff2c - - /* spin forever, since there's no where to go back to */ - - ALT_LOG_PRINT_BOOT("[alt_exit.c] Spinning forever.\r\n"); - while (1); - ff88: 003fff06 br ff88 <_exit+0x1c> - ff8c: 0000fd78 rdprs zero,zero,1013 diff --git a/software/DE2_115_ASM/LCD.c b/software/DE2_115_ASM/LCD.c deleted file mode 100644 index 10ff2ea..0000000 --- a/software/DE2_115_ASM/LCD.c +++ /dev/null @@ -1,50 +0,0 @@ -#include -#include -#include -#include "system.h" -#include "LCD.h" -//------------------------------------------------------------------------- -void LCD_Init() -{ - lcd_write_cmd(LCD_16207_0_BASE,0x38); - usleep(2000); - lcd_write_cmd(LCD_16207_0_BASE,0x0C); - usleep(2000); - lcd_write_cmd(LCD_16207_0_BASE,0x01); - usleep(2000); - lcd_write_cmd(LCD_16207_0_BASE,0x06); - usleep(2000); - lcd_write_cmd(LCD_16207_0_BASE,0x80); - usleep(2000); -} -//------------------------------------------------------------------------- -void LCD_Show_Text(const char* Text) -{ - int i; - for(i=0;i /c/dir). This will ensture -# paths are readable by GNU Make. -# -# If COMSPEC/ComSpec is not defined, Make is launched from linux, and no -# adjustment is necessary -# -#------------------------------------------------------------------------------ - -ifndef COMSPEC -ifdef ComSpec -COMSPEC = $(ComSpec) -endif # ComSpec -endif # COMSPEC - -ifdef COMSPEC # if Windows OS - -ifeq ($(MAKE_VERSION),3.81) -# -# adjust-path/adjust-path-mixed for Mingw Gnu Make on Windows -# -# Example Usage: -# $(call adjust-path,c:/aaa/bbb) => /c/aaa/bbb -# $(call adjust-path-mixed,/c/aaa/bbb) => c:/aaa/bbb -# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) => c:/aaa/bbb -# - -# -# adjust-path -# - converts back slash characters into forward slashes -# - if input arg ($1) is an empty string then return the empty string -# - if input arg ($1) does not contain the string ":/", then return input arg -# - using sed, convert mixed path [c:/...] into mingw path [/c/...] -define adjust-path -$(strip \ -$(if $1,\ -$(if $(findstring :/,$(subst \,/,$1)),\ -$(shell echo $(subst \,/,$1) | sed -e 's,^\([a-zA-Z]\):/,/\1/,'),\ -$(subst \,/,$1)))) -endef - -# -# adjust-path-mixed -# - converts back slash characters into forward slashes -# - if input arg ($1) is an empty string then return the empty string -# - if input arg ($1) does not begin with a forward slash '/' char, then -# return input arg -# - using sed, convert mingw path [/c/...] or cygwin path [/c/cygdrive/...] -# into a mixed path [c:/...] -define adjust-path-mixed -$(strip \ -$(if $1,\ -$(if $(findstring $(subst \,/,$1),$(patsubst /%,%,$(subst \,/,$1))),\ -$(subst \,/,$1),\ -$(shell echo $(subst \,/,$1) | sed -e 's,^/cygdrive/\([a-zA-Z]\)/,\1:/,' -e 's,^/\([a-zA-Z]\)/,\1:/,')))) -endef - -else # MAKE_VERSION != 3.81 (MAKE_VERSION == 3.80 or MAKE_VERSION == 3.79) -# -# adjust-path for Cygwin Gnu Make -# $(call adjust-path,c:/aaa/bbb) = /cygdrive/c/aaa/bbb -# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) = c:/aaa/bbb -# -adjust-path = $(if $1,$(shell cygpath -u "$1"),) -adjust-path-mixed = $(if $1,$(shell cygpath -m "$1"),) -endif - -else # !COMSPEC - -adjust-path = $1 -adjust-path-mixed = $1 - -endif # COMSPEC - - -#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv -# GENERATED SETTINGS START v -#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv - -#START GENERATED -ACTIVE_BUILD_CONFIG := default -BUILD_CONFIGS := default - -# The following TYPE comment allows tools to identify the 'type' of target this -# makefile is associated with. -# TYPE: APP_MAKEFILE - -# This following VERSION comment indicates the version of the tool used to -# generate this makefile. A makefile variable is provided for VERSION as well. -# ACDS_VERSION: 13.0sp1 -ACDS_VERSION := 13.0sp1 - -# This following BUILD_NUMBER comment indicates the build number of the tool -# used to generate this makefile. -# BUILD_NUMBER: 232 - -# Define path to the application ELF. -# It may be used by the makefile fragments so is defined before including them. -# -ELF := DE2_115_ASM.elf - -# Paths to C, C++, and assembly source files. -C_SRCS += LCD.c -C_SRCS += hello_world_small.c -C_SRCS += hex_encoder.c -C_SRCS += hex_out.c -C_SRCS += input_int.c -C_SRCS += inst_decoder.c -C_SRCS += lcd_out.c -C_SRCS += sys_debug.c -C_SRCS += sys_except.c -C_SRCS += sys_memory.c -C_SRCS += sys_prog.c -C_SRCS += sys_register.c -CXX_SRCS := -ASM_SRCS := - - -# Path to root of object file tree. -OBJ_ROOT_DIR := obj - -# Options to control objdump. -CREATE_OBJDUMP := 1 -OBJDUMP_INCLUDE_SOURCE := 1 -OBJDUMP_FULL_CONTENTS := 0 - -# Options to enable/disable optional files. -CREATE_ELF_DERIVED_FILES := 0 -CREATE_LINKER_MAP := 1 - -# Common arguments for ALT_CFLAGSs -APP_CFLAGS_DEFINED_SYMBOLS := -APP_CFLAGS_UNDEFINED_SYMBOLS := -APP_CFLAGS_OPTIMIZATION := -O0 -APP_CFLAGS_DEBUG_LEVEL := -g -APP_CFLAGS_WARNINGS := -Wall -APP_CFLAGS_USER_FLAGS := - -APP_ASFLAGS_USER := -APP_LDFLAGS_USER := - -# Linker options that have default values assigned later if not -# assigned here. -LINKER_SCRIPT := -CRT0 := -SYS_LIB := - -# Define path to the root of the BSP. -BSP_ROOT_DIR := ../DE2_115_ASM_bsp/ - -# List of application specific include directories, library directories and library names -APP_INCLUDE_DIRS := -APP_LIBRARY_DIRS := -APP_LIBRARY_NAMES := - -# Pre- and post- processor settings. -BUILD_PRE_PROCESS := -BUILD_POST_PROCESS := - -QUARTUS_PROJECT_DIR := ../../ - - -#END GENERATED - -#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -# GENERATED SETTINGS END ^ -#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - - -#------------------------------------------------------------------------------ -# DEFAULT TARGET -#------------------------------------------------------------------------------ - -# Define the variable used to echo output if not already defined. -ifeq ($(ECHO),) -ECHO := echo -endif - -# Put "all" rule before included makefile fragments because they may -# define rules and we don't want one of those to become the default rule. -.PHONY : all - -all: - @$(ECHO) [$(APP_NAME) build complete] - -all : build_pre_process libs app build_post_process - - -#------------------------------------------------------------------------------ -# VARIABLES DEPENDENT ON GENERATED CONTENT -#------------------------------------------------------------------------------ - -# Define object file directory per build configuration -CONFIG_OBJ_DIR := $(OBJ_ROOT_DIR)/$(ACTIVE_BUILD_CONFIG) - -ifeq ($(BSP_ROOT_DIR),) -$(error Edit Makefile and provide a value for BSP_ROOT_DIR) -endif - -ifeq ($(wildcard $(BSP_ROOT_DIR)),) -$(error BSP directory does not exist: $(BSP_ROOT_DIR)) -endif - -# Define absolute path to the root of the BSP. -ABS_BSP_ROOT_DIR := $(call adjust-path-mixed,$(shell cd "$(BSP_ROOT_DIR)"; pwd)) - -# Include makefile fragments. Define variable ALT_LIBRARY_ROOT_DIR before -# including each makefile fragment so that it knows the path to itself. -BSP_INCLUDE_FILE := $(BSP_ROOT_DIR)/public.mk -ALT_LIBRARY_ROOT_DIR := $(BSP_ROOT_DIR) -include $(BSP_INCLUDE_FILE) -# C2H will need this to touch the BSP public.mk and avoid the sopc file -# out-of-date error during a BSP make -ABS_BSP_INCLUDE_FILE := $(ABS_BSP_ROOT_DIR)/public.mk - - -ifneq ($(WARNING.SMALL_STACK_SIZE),) -# This WARNING is here to protect you from unknowingly using a very small stack -# If the warning is set, increase your stack size or enable the BSP small stack -# setting to eliminate the warning -$(warning WARNING: $(WARNING.SMALL_STACK_SIZE)) -endif - - -# If the BSP public.mk indicates that ALT_SIM_OPTIMIZE is set, rename the ELF -# by prefixing it with RUN_ON_HDL_SIMULATOR_ONLY_. -ifneq ($(filter -DALT_SIM_OPTIMIZE,$(ALT_CPPFLAGS)),) -ELF := RUN_ON_HDL_SIMULATOR_ONLY_$(ELF) -endif - -# If the BSP public.mk indicates that ALT_PROVIDE_GMON is set, add option to -# download_elf target -ifneq ($(filter -DALT_PROVIDE_GMON,$(ALT_CPPFLAGS)),) -GMON_OUT_FILENAME := gmon.out -WRITE_GMON_OPTION := --write-gmon $(GMON_OUT_FILENAME) -endif - -# Name of ELF application. -APP_NAME := $(basename $(ELF)) - -# Set to defaults if variables not already defined in settings. -ifeq ($(LINKER_SCRIPT),) -LINKER_SCRIPT := $(BSP_LINKER_SCRIPT) -endif -ifeq ($(CRT0),) -CRT0 := $(BSP_CRT0) -endif -ifeq ($(SYS_LIB),) -SYS_LIB := $(BSP_SYS_LIB) -endif - -OBJDUMP_NAME := $(APP_NAME).objdump -OBJDUMP_FLAGS := --disassemble --syms --all-header -ifeq ($(OBJDUMP_INCLUDE_SOURCE),1) -OBJDUMP_FLAGS += --source -endif -ifeq ($(OBJDUMP_FULL_CONTENTS),1) -OBJDUMP_FLAGS += --full-contents -endif - -# Create list of linker dependencies (*.a files). -APP_LDDEPS := $(ALT_LDDEPS) $(LDDEPS) - -# Take lists and add required prefixes. -APP_INC_DIRS := $(addprefix -I, $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) -ASM_INC_PREFIX := -Wa,-I -APP_ASM_INC_DIRS := $(addprefix $(ASM_INC_PREFIX), $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) -APP_LIB_DIRS := $(addprefix -L, $(ALT_LIBRARY_DIRS) $(APP_LIBRARY_DIRS) $(LIB_DIRS)) -APP_LIBS := $(addprefix -l, $(ALT_LIBRARY_NAMES) $(APP_LIBRARY_NAMES) $(LIBS)) - -ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) - -# -# Avoid Nios II GCC 3.X options. -# - -# Detect if small newlib C library is requested. -# If yes, remove the -msmallc option because it is -# now handled by other means. -ifneq ($(filter -msmallc,$(ALT_LDFLAGS)),) - ALT_LDFLAGS := $(filter-out -msmallc,$(ALT_LDFLAGS)) - ALT_C_LIBRARY := smallc -else - ALT_C_LIBRARY := c -endif - -# Put each BSP dependent library in a group to avoid circular dependencies. -APP_BSP_DEP_LIBS := $(foreach l,$(ALT_BSP_DEP_LIBRARY_NAMES),-Wl,--start-group -l$(ALT_C_LIBRARY) -lgcc -l$(l) -Wl,--end-group) - -else # !AVOID_NIOS2_GCC3_OPTIONS - -# -# Use Nios II GCC 3.X options. -# -APP_BSP_DEP_LIBS := $(addprefix -msys-lib=, $(ALT_BSP_DEP_LIBRARY_NAMES)) - -endif # !AVOID_NIOS2_GCC3_OPTIONS - -# Arguments for the C preprocessor, C/C++ compiler, assembler, and linker. -APP_CFLAGS := $(APP_CFLAGS_DEFINED_SYMBOLS) \ - $(APP_CFLAGS_UNDEFINED_SYMBOLS) \ - $(APP_CFLAGS_OPTIMIZATION) \ - $(APP_CFLAGS_DEBUG_LEVEL) \ - $(APP_CFLAGS_WARNINGS) \ - $(APP_CFLAGS_USER_FLAGS) \ - $(ALT_CFLAGS) \ - $(CFLAGS) - -# Arguments only for the C++ compiler. -APP_CXXFLAGS := $(ALT_CXXFLAGS) $(CXXFLAGS) - -# Arguments only for the C preprocessor. -# Prefix each include directory with -I. -APP_CPPFLAGS := $(APP_INC_DIRS) \ - $(ALT_CPPFLAGS) \ - $(CPPFLAGS) - -# Arguments only for the assembler. -APP_ASFLAGS := $(APP_ASM_INC_DIRS) \ - $(ALT_ASFLAGS) \ - $(APP_ASFLAGS_USER) \ - $(ASFLAGS) - -# Arguments only for the linker. -APP_LDFLAGS := $(APP_LDFLAGS_USER) - -ifneq ($(LINKER_SCRIPT),) -APP_LDFLAGS += -T'$(LINKER_SCRIPT)' -endif - -ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) - -# Avoid Nios II GCC 3.x options. -ifneq ($(CRT0),) -APP_LDFLAGS += $(CRT0) -endif - -# The equivalent of the -msys-lib option is provided -# by the GROUP() command in the linker script. -# Note this means the SYS_LIB variable is now ignored. - -else # !AVOID_NIOS2_GCC3_OPTIONS - -# Use Nios II GCC 3.x options. -ifneq ($(CRT0),) -APP_LDFLAGS += -msys-crt0='$(CRT0)' -endif -ifneq ($(SYS_LIB),) -APP_LDFLAGS += -msys-lib=$(SYS_LIB) -endif - -endif # !AVOID_NIOS2_GCC3_OPTIONS - -APP_LDFLAGS += \ - $(APP_LIB_DIRS) \ - $(ALT_LDFLAGS) \ - $(LDFLAGS) - -LINKER_MAP_NAME := $(APP_NAME).map -ifeq ($(CREATE_LINKER_MAP), 1) -APP_LDFLAGS += -Wl,-Map=$(LINKER_MAP_NAME) -endif - -# QUARTUS_PROJECT_DIR and SOPC_NAME need to be defined if you want the -# mem_init_install target of the mem_init.mk (located in the associated BSP) -# to know how to copy memory initialization files (e.g. .dat, .hex) into -# directories required for Quartus compilation or RTL simulation. - -# Defining QUARTUS_PROJECT_DIR causes mem_init_install to copy memory -# initialization files into your Quartus project directory. This is required -# to provide the initial memory contents of FPGA memories that can be -# initialized by the programming file (.sof) or Hardcopy ROMs. It is also used -# for VHDL simulation of on-chip memories. - -# Defining SOPC_NAME causes the mem_init_install target to copy memory -# initialization files into your RTL simulation directory. This is required -# to provide the initial memory contents of all memories that can be -# initialized by RTL simulation. This variable should be set to the same name -# as your SOPC Builder system name. For example, if you have a system called -# "foo.sopc", this variable should be set to "foo". - -# If SOPC_NAME is not set and QUARTUS_PROJECT_DIR is set, then derive SOPC_NAME. -ifeq ($(SOPC_NAME),) -ifneq ($(QUARTUS_PROJECT_DIR),) -SOPC_NAME := $(basename $(notdir $(wildcard $(QUARTUS_PROJECT_DIR)/*.sopcinfo))) -endif -endif - -# Defining JDI_FILE is required to specify the JTAG Debug Information File -# path. This file is generated by Quartus, and is needed along with the -# .sopcinfo file to resolve processor instance ID's from names in a multi-CPU -# systems. For multi-CPU systems, the processor instance ID is used to select -# from multiple CPU's during ELF download. - -# Both JDI_FILE and SOPCINFO_FILE are provided by the BSP if they found during -# BSP creation. If JDI_FILE is not set and QUARTUS_PROJECT_DIR is set, then -# derive JDI_FILE. We do not attempt to derive SOPCINFO_FILE since there may be -# multiple .sopcinfo files in a Quartus project. -ifeq ($(JDI_FILE),) -ifneq ($(QUARTUS_PROJECT_DIR),) -JDI_FILE := $(wildcard $(QUARTUS_PROJECT_DIR)/*.jdi) -endif -endif - -# Path to root runtime directory used for hdl simulation -RUNTIME_ROOT_DIR := $(CONFIG_OBJ_DIR)/runtime - - - -#------------------------------------------------------------------------------ -# MAKEFILE INCLUDES DEPENDENT ON GENERATED CONTENT -#------------------------------------------------------------------------------ -# mem_init.mk is a generated makefile fragment. This file defines all targets -# used to generate HDL initialization simulation files and pre-initialized -# onchip memory files. -MEM_INIT_FILE := $(BSP_ROOT_DIR)/mem_init.mk -include $(MEM_INIT_FILE) - -# Create list of object files to be built using the list of source files. -# The source file hierarchy is preserved in the object tree. -# The supported file extensions are: -# -# .c - for C files -# .cxx .cc .cpp - for C++ files -# .S .s - for assembler files -# -# Handle source files specified by --src-dir & --src-rdir differently, to -# save some processing time in calling the adjust-path macro. - -OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(C_SRCS))) -OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(CXX_SRCS))) -OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(CXX_SRCS))) -OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(CXX_SRCS))) -OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(ASM_SRCS))) -OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(ASM_SRCS))) - -OBJ_LIST := $(sort $(OBJ_LIST_C) $(OBJ_LIST_CPP) $(OBJ_LIST_CXX) \ - $(OBJ_LIST_CC) $(OBJ_LIST_S) $(OBJ_LIST_SS)) - -SDIR_OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(SDIR_C_SRCS))) -SDIR_OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(SDIR_CXX_SRCS))) -SDIR_OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(SDIR_CXX_SRCS))) -SDIR_OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(SDIR_CXX_SRCS))) -SDIR_OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(SDIR_ASM_SRCS))) -SDIR_OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(SDIR_ASM_SRCS))) - -SDIR_OBJ_LIST := $(sort $(SDIR_OBJ_LIST_C) $(SDIR_OBJ_LIST_CPP) \ - $(SDIR_OBJ_LIST_CXX) $(SDIR_OBJ_LIST_CC) $(SDIR_OBJ_LIST_S) \ - $(SDIR_OBJ_LIST_SS)) - -# Relative-pathed objects that being with "../" are handled differently. -# -# Regular objects are created as -# $(CONFIG_OBJ_DIR)//.o -# where the path structure is maintained under the obj directory. This -# applies for both absolute and relative paths; in the absolute path -# case this means the entire source path will be recreated under the obj -# directory. This is done to allow two source files with the same name -# to be included as part of the project. -# -# Note: On Cygwin, the path recreated under the obj directory will be -# the cygpath -u output path. -# -# Relative-path objects that begin with "../" cause problems under this -# scheme, as $(CONFIG_OBJ_DIR)/..// can potentially put the object -# files anywhere in the system, creating clutter and polluting the source tree. -# As such, their paths are flattened - the object file created will be -# $(CONFIG_OBJ_DIR)/.o. Due to this, two files specified with -# "../" in the beginning cannot have the same name in the project. VPATH -# will be set for these sources to allow make to relocate the source file -# via %.o rules. -# -# The following lines separate the object list into the flatten and regular -# lists, and then handles them as appropriate. - -FLATTEN_OBJ_LIST := $(filter ../%,$(OBJ_LIST)) -FLATTEN_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_OBJ_LIST))) - -REGULAR_OBJ_LIST := $(filter-out $(FLATTEN_OBJ_LIST),$(OBJ_LIST)) -REGULAR_OBJ_LIST_C := $(filter $(OBJ_LIST_C),$(REGULAR_OBJ_LIST)) -REGULAR_OBJ_LIST_CPP := $(filter $(OBJ_LIST_CPP),$(REGULAR_OBJ_LIST)) -REGULAR_OBJ_LIST_CXX := $(filter $(OBJ_LIST_CXX),$(REGULAR_OBJ_LIST)) -REGULAR_OBJ_LIST_CC := $(filter $(OBJ_LIST_CC),$(REGULAR_OBJ_LIST)) -REGULAR_OBJ_LIST_S := $(filter $(OBJ_LIST_S),$(REGULAR_OBJ_LIST)) -REGULAR_OBJ_LIST_SS := $(filter $(OBJ_LIST_SS),$(REGULAR_OBJ_LIST)) - -FLATTEN_SDIR_OBJ_LIST := $(filter ../%,$(SDIR_OBJ_LIST)) -FLATTEN_SDIR_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_SDIR_OBJ_LIST))) - -REGULAR_SDIR_OBJ_LIST := $(filter-out $(FLATTEN_SDIR_OBJ_LIST),$(SDIR_OBJ_LIST)) -REGULAR_SDIR_OBJ_LIST_C := $(filter $(SDIR_OBJ_LIST_C),$(REGULAR_SDIR_OBJ_LIST)) -REGULAR_SDIR_OBJ_LIST_CPP := $(filter $(SDIR_OBJ_LIST_CPP),$(REGULAR_SDIR_OBJ_LIST)) -REGULAR_SDIR_OBJ_LIST_CXX := $(filter $(SDIR_OBJ_LIST_CXX),$(REGULAR_SDIR_OBJ_LIST)) -REGULAR_SDIR_OBJ_LIST_CC := $(filter $(SDIR_OBJ_LIST_CC),$(REGULAR_SDIR_OBJ_LIST)) -REGULAR_SDIR_OBJ_LIST_S := $(filter $(SDIR_OBJ_LIST_S),$(REGULAR_SDIR_OBJ_LIST)) -REGULAR_SDIR_OBJ_LIST_SS := $(filter $(SDIR_OBJ_LIST_SS),$(REGULAR_SDIR_OBJ_LIST)) - -VPATH := $(sort $(dir $(FLATTEN_OBJ_LIST)) $(dir $(FLATTEN_SDIR_OBJ_LIST))) - -APP_OBJS_C := $(addprefix $(CONFIG_OBJ_DIR)/,\ - $(REGULAR_SDIR_OBJ_LIST_C) \ - $(foreach s,$(REGULAR_OBJ_LIST_C),$(call adjust-path,$s))) - -APP_OBJS_CPP := $(addprefix $(CONFIG_OBJ_DIR)/,\ - $(REGULAR_SDIR_OBJ_LIST_CPP) \ - $(foreach s,$(REGULAR_OBJ_LIST_CPP),$(call adjust-path,$s))) - -APP_OBJS_CXX := $(addprefix $(CONFIG_OBJ_DIR)/,\ - $(REGULAR_SDIR_OBJ_LIST_CXX) \ - $(foreach s,$(REGULAR_OBJ_LIST_CXX),$(call adjust-path,$s))) - -APP_OBJS_CC := $(addprefix $(CONFIG_OBJ_DIR)/,\ - $(REGULAR_SDIR_OBJ_LIST_CC) \ - $(foreach s,$(REGULAR_OBJ_LIST_CC),$(call adjust-path,$s))) - -APP_OBJS_S := $(addprefix $(CONFIG_OBJ_DIR)/,\ - $(REGULAR_SDIR_OBJ_LIST_S) \ - $(foreach s,$(REGULAR_OBJ_LIST_S),$(call adjust-path,$s))) - -APP_OBJS_SS := $(addprefix $(CONFIG_OBJ_DIR)/,\ - $(REGULAR_SDIR_OBJ_LIST_SS) \ - $(foreach s,$(REGULAR_OBJ_LIST_SS),$(call adjust-path,$s))) - -APP_OBJS := $(APP_OBJS_C) $(APP_OBJS_CPP) $(APP_OBJS_CXX) $(APP_OBJS_CC) \ - $(APP_OBJS_S) $(APP_OBJS_SS) \ - $(FLATTEN_APP_OBJS) $(FLATTEN_SDIR_APP_OBJS) - -# Add any extra user-provided object files. -APP_OBJS += $(OBJS) - -# Create list of dependancy files for each object file. -APP_DEPS := $(APP_OBJS:.o=.d) - -# Patch the Elf file with system specific information - -# Patch the Elf with the name of the sopc system -ifneq ($(SOPC_NAME),) -ELF_PATCH_FLAG += --sopc_system_name $(SOPC_NAME) -endif - -# Patch the Elf with the absolute path to the Quartus Project Directory -ifneq ($(QUARTUS_PROJECT_DIR),) -ABS_QUARTUS_PROJECT_DIR := $(call adjust-path-mixed,$(shell cd "$(QUARTUS_PROJECT_DIR)"; pwd)) -ELF_PATCH_FLAG += --quartus_project_dir "$(ABS_QUARTUS_PROJECT_DIR)" -endif - -# Patch the Elf and download args with the JDI_FILE if specified -ifneq ($(wildcard $(JDI_FILE)),) -ELF_PATCH_FLAG += --jdi $(JDI_FILE) -DOWNLOAD_JDI_FLAG := --jdi $(JDI_FILE) -endif - -# Patch the Elf with the SOPCINFO_FILE if specified -ifneq ($(wildcard $(SOPCINFO_FILE)),) -ELF_PATCH_FLAG += --sopcinfo $(SOPCINFO_FILE) -endif - -# Use the DOWNLOAD_CABLE variable to specify which JTAG cable to use. -# This is not needed if you only have one cable. -ifneq ($(DOWNLOAD_CABLE),) -DOWNLOAD_CABLE_FLAG := --cable '$(DOWNLOAD_CABLE)' -endif - - -#------------------------------------------------------------------------------ -# BUILD PRE/POST PROCESS -#------------------------------------------------------------------------------ -build_pre_process : - $(BUILD_PRE_PROCESS) - -build_post_process : - $(BUILD_POST_PROCESS) - -.PHONY: build_pre_process build_post_process - - -#------------------------------------------------------------------------------ -# TOOLS -#------------------------------------------------------------------------------ - -# -# Set tool default variables if not already defined. -# If these are defined, they would typically be defined in an -# included makefile fragment. -# -ifeq ($(DEFAULT_CROSS_COMPILE),) -DEFAULT_CROSS_COMPILE := nios2-elf- -endif - -ifeq ($(DEFAULT_STACK_REPORT),) -DEFAULT_STACKREPORT := nios2-stackreport -endif - -ifeq ($(DEFAULT_DOWNLOAD),) -DEFAULT_DOWNLOAD := nios2-download -endif - -ifeq ($(DEFAULT_FLASHPROG),) -DEFAULT_FLASHPROG := nios2-flash-programmer -endif - -ifeq ($(DEFAULT_ELFPATCH),) -DEFAULT_ELFPATCH := nios2-elf-insert -endif - -ifeq ($(DEFAULT_RM),) -DEFAULT_RM := rm -f -endif - -ifeq ($(DEFAULT_CP),) -DEFAULT_CP := cp -f -endif - -ifeq ($(DEFAULT_MKDIR),) -DEFAULT_MKDIR := mkdir -p -endif - -# -# Set tool variables to defaults if not already defined. -# If these are defined, they would typically be defined by a -# setting in the generated portion of this makefile. -# -ifeq ($(CROSS_COMPILE),) -CROSS_COMPILE := $(DEFAULT_CROSS_COMPILE) -endif - -ifeq ($(origin CC),default) -CC := $(CROSS_COMPILE)gcc -xc -endif - -ifeq ($(origin CXX),default) -CXX := $(CROSS_COMPILE)gcc -xc++ -endif - -ifeq ($(origin AS),default) -AS := $(CROSS_COMPILE)gcc -endif - -ifeq ($(origin AR),default) -AR := $(CROSS_COMPILE)ar -endif - -ifeq ($(origin LD),default) -LD := $(CROSS_COMPILE)g++ -endif - -ifeq ($(origin NM),default) -NM := $(CROSS_COMPILE)nm -endif - -ifeq ($(origin RM),default) -RM := $(DEFAULT_RM) -endif - -ifeq ($(origin CP),default) -CP := $(DEFAULT_CP) -endif - -ifeq ($(OBJDUMP),) -OBJDUMP := $(CROSS_COMPILE)objdump -endif - -ifeq ($(OBJCOPY),) -OBJCOPY := $(CROSS_COMPILE)objcopy -endif - -ifeq ($(STACKREPORT),) -ifeq ($(CROSS_COMPILE),nios2-elf-) -STACKREPORT := $(DEFAULT_STACKREPORT) -else -DISABLE_STACKREPORT := 1 -endif -endif - -ifeq ($(DOWNLOAD),) -DOWNLOAD := $(DEFAULT_DOWNLOAD) -endif - -ifeq ($(FLASHPROG),) -FLASHPROG := $(DEFAULT_FLASHPROG) -endif - -ifeq ($(ELFPATCH),) -ELFPATCH := $(DEFAULT_ELFPATCH) -endif - -ifeq ($(MKDIR),) -MKDIR := $(DEFAULT_MKDIR) -endif - -#------------------------------------------------------------------------------ -# PATTERN RULES TO BUILD OBJECTS -#------------------------------------------------------------------------------ - -define compile.c -@$(ECHO) Info: Compiling $< to $@ -@$(MKDIR) $(@D) -$(CC) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< -$(CC_POST_PROCESS) -endef - -define compile.cpp -@$(ECHO) Info: Compiling $< to $@ -@$(MKDIR) $(@D) -$(CXX) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< -$(CXX_POST_PROCESS) -endef - -# If assembling with the compiler, ensure "-Wa," is prepended to all APP_ASFLAGS -ifeq ($(AS),$(patsubst %as,%,$(AS))) -COMMA := , -APP_ASFLAGS := $(filter-out $(APP_CFLAGS),$(addprefix -Wa$(COMMA),$(patsubst -Wa$(COMMA)%,%,$(APP_ASFLAGS)))) -endif - -define compile.s -@$(ECHO) Info: Assembling $< to $@ -@$(MKDIR) $(@D) -$(AS) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) $(APP_ASFLAGS) -o $@ $< -$(AS_POST_PROCESS) -endef - -ifeq ($(MAKE_VERSION),3.81) -.SECONDEXPANSION: - -$(APP_OBJS_C): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.c) - $(compile.c) - -$(APP_OBJS_CPP): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cpp) - $(compile.cpp) - -$(APP_OBJS_CC): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cc) - $(compile.cpp) - -$(APP_OBJS_CXX): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cxx) - $(compile.cpp) - -$(APP_OBJS_S): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.S) - $(compile.s) - -$(APP_OBJS_SS): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.s) - $(compile.s) - -endif # MAKE_VERSION != 3.81 - -$(CONFIG_OBJ_DIR)/%.o: %.c - $(compile.c) - -$(CONFIG_OBJ_DIR)/%.o: %.cpp - $(compile.cpp) - -$(CONFIG_OBJ_DIR)/%.o: %.cc - $(compile.cpp) - -$(CONFIG_OBJ_DIR)/%.o: %.cxx - $(compile.cpp) - -$(CONFIG_OBJ_DIR)/%.o: %.S - $(compile.s) - -$(CONFIG_OBJ_DIR)/%.o: %.s - $(compile.s) - - -#------------------------------------------------------------------------------ -# PATTERN RULES TO INTERMEDIATE FILES -#------------------------------------------------------------------------------ - -$(CONFIG_OBJ_DIR)/%.s: %.c - @$(ECHO) Info: Compiling $< to $@ - @$(MKDIR) $(@D) - $(CC) -S $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< - -$(CONFIG_OBJ_DIR)/%.s: %.cpp - @$(ECHO) Info: Compiling $< to $@ - @$(MKDIR) $(@D) - $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< - -$(CONFIG_OBJ_DIR)/%.s: %.cc - @$(ECHO) Info: Compiling $< to $@ - @$(MKDIR) $(@D) - $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< - -$(CONFIG_OBJ_DIR)/%.s: %.cxx - @$(ECHO) Info: Compiling $< to $@ - @$(MKDIR) $(@D) - $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< - -$(CONFIG_OBJ_DIR)/%.i: %.c - @$(ECHO) Info: Compiling $< to $@ - @$(MKDIR) $(@D) - $(CC) -E $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< - -$(CONFIG_OBJ_DIR)/%.i: %.cpp - @$(ECHO) Info: Compiling $< to $@ - @$(MKDIR) $(@D) - $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< - -$(CONFIG_OBJ_DIR)/%.i: %.cc - @$(ECHO) Info: Compiling $< to $@ - @$(MKDIR) $(@D) - $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< - -$(CONFIG_OBJ_DIR)/%.i: %.cxx - @$(ECHO) Info: Compiling $< to $@ - @$(MKDIR) $(@D) - $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< - - -#------------------------------------------------------------------------------ -# TARGET RULES -#------------------------------------------------------------------------------ - -.PHONY : help -help : - @$(ECHO) "Summary of Makefile targets" - @$(ECHO) " Build targets:" - @$(ECHO) " all (default) - Application and all libraries (including BSP)" - @$(ECHO) " bsp - Just the BSP" - @$(ECHO) " libs - All libraries (including BSP)" - @$(ECHO) " flash - All flash files" - @$(ECHO) " mem_init_generate - All memory initialization files" -ifeq ($(QSYS),1) - @$(ECHO) " mem_init_install - This target is deprecated for QSys Systems" - @$(ECHO) " --> Use the mem_init_generate target and then" - @$(ECHO) " add the generated meminit.qip file to your" - @$(ECHO) " Quartus II Project." -else # if QSYS != 1 - @$(ECHO) " mem_init_install - Copy memory initialization files to Quartus II project" -endif # QSYS == 1 - @$(ECHO) - @$(ECHO) " Clean targets:" - @$(ECHO) " clean_all - Application and all libraries (including BSP)" - @$(ECHO) " clean - Just the application" - @$(ECHO) " clean_bsp - Just the BSP" - @$(ECHO) " clean_libs - All libraries (including BSP)" - @$(ECHO) - @$(ECHO) " Run targets:" - @$(ECHO) " download-elf - Download and run your elf executable" - @$(ECHO) " program-flash - Program flash contents to the board" - -# Handy rule to skip making libraries and just make application. -.PHONY : app -app : $(ELF) - -ifeq ($(CREATE_OBJDUMP), 1) -app : $(OBJDUMP_NAME) -endif - -ifeq ($(CREATE_ELF_DERIVED_FILES),1) -app : elf_derived_files -endif - -.PHONY: elf_derived_files -elf_derived_files: default_mem_init - -# Handy rule for making just the BSP. -.PHONY : bsp -bsp : - @$(ECHO) Info: Building $(BSP_ROOT_DIR) - @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) - - -# Make sure all makeable libraries (including the BSP) are up-to-date. -LIB_TARGETS := $(patsubst %,%-recurs-make-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) - -.PHONY : libs -libs : $(LIB_TARGETS) - -ifneq ($(strip $(LIB_TARGETS)),) -$(LIB_TARGETS): %-recurs-make-lib: - @$(ECHO) Info: Building $* - $(MAKE) --no-print-directory -C $* -endif - -ifneq ($(strip $(APP_LDDEPS)),) -$(APP_LDDEPS): libs - @true -endif - -# Rules to force your project to rebuild or relink -# .force_relink file will cause any application that depends on this project to relink -# .force_rebuild file will cause this project to rebuild object files -# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files - -FORCE_RELINK_DEP := .force_relink -FORCE_REBUILD_DEP := .force_rebuild -FORCE_REBUILD_ALL_DEP := .force_rebuild_all -FORCE_REBUILD_DEP_LIST := $(CONFIG_OBJ_DIR)/$(FORCE_RELINK_DEP) $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) - -$(FORCE_REBUILD_DEP_LIST): - -$(APP_OBJS): $(wildcard $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP)) $(wildcard $(addsuffix /$(FORCE_REBUILD_ALL_DEP), . $(ALT_LIBRARY_DIRS))) - -$(ELF): $(wildcard $(addsuffix /$(FORCE_RELINK_DEP), $(CONFIG_OBJ_DIR) $(ALT_LIBRARY_DIRS))) - - -# Clean just the application. -.PHONY : clean -ifeq ($(CREATE_ELF_DERIVED_FILES),1) -clean : clean_elf_derived_files -endif - -clean : - @$(RM) -r $(ELF) $(OBJDUMP_NAME) $(LINKER_MAP_NAME) $(OBJ_ROOT_DIR) $(RUNTIME_ROOT_DIR) $(FORCE_REBUILD_DEP_LIST) - @$(ECHO) [$(APP_NAME) clean complete] - -# Clean just the BSP. -.PHONY : clean_bsp -clean_bsp : - @$(ECHO) Info: Cleaning $(BSP_ROOT_DIR) - @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) clean - -# Clean all makeable libraries including the BSP. -LIB_CLEAN_TARGETS := $(patsubst %,%-recurs-make-clean-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) - -.PHONY : clean_libs -clean_libs : $(LIB_CLEAN_TARGETS) - -ifneq ($(strip $(LIB_CLEAN_TARGETS)),) -$(LIB_CLEAN_TARGETS): %-recurs-make-clean-lib: - @$(ECHO) Info: Cleaning $* - $(MAKE) --no-print-directory -C $* clean -endif - -.PHONY: clean_elf_derived_files -clean_elf_derived_files: mem_init_clean - -# Clean application and all makeable libraries including the BSP. -.PHONY : clean_all -clean_all : clean mem_init_clean clean_libs - -# Include the dependency files unless the make goal is performing a clean -# of the application. -ifneq ($(firstword $(MAKECMDGOALS)),clean) -ifneq ($(firstword $(MAKECMDGOALS)),clean_all) --include $(APP_DEPS) -endif -endif - -.PHONY : download-elf -download-elf : $(ELF) - @if [ "$(DOWNLOAD)" = "none" ]; \ - then \ - $(ECHO) Downloading $(ELF) not supported; \ - else \ - $(ECHO) Info: Downloading $(ELF); \ - $(DOWNLOAD) --go --cpu_name=$(CPU_NAME) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) $(DOWNLOAD_JDI_FLAG) $(WRITE_GMON_OPTION) $(ELF); \ - fi - -# Delete the target of a rule if it has changed and its commands exit -# with a nonzero exit status. -.DELETE_ON_ERROR: - -# Rules for flash programming commands -PROGRAM_FLASH_SUFFIX := -program -PROGRAM_FLASH_TARGET := $(addsuffix $(PROGRAM_FLASH_SUFFIX), $(FLASH_FILES)) - -.PHONY : program-flash -program-flash : $(PROGRAM_FLASH_TARGET) - -.PHONY : $(PROGRAM_FLASH_TARGET) -$(PROGRAM_FLASH_TARGET) : flash - @if [ "$(FLASHPROG)" = "none" ]; \ - then \ - $(ECHO) Programming flash not supported; \ - else \ - $(ECHO) Info: Programming $(basename $@).flash; \ - if [ -z "$($(basename $@)_EPCS_FLAGS)" ]; \ - then \ - $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ - $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ - else \ - $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ - $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ - fi \ - fi - - -# Rules for simulating with an HDL Simulator [QSYS only] -ifeq ($(QSYS),1) -IP_MAKE_SIMSCRIPT := ip-make-simscript - -ifeq ($(VSIM),) -VSIM_EXE := "$(if $(VSIM_DIR),$(VSIM_DIR)/,)vsim" -ifeq ($(ENABLE_VSIM_GUI),1) -VSIM := $(VSIM_EXE) -gui -else -VSIM := $(VSIM_EXE) -c -endif # ENABLE_VSIM_GUI == 1 -endif # VSIM not set - -ifeq ($(SPD),) -ifneq ($(ABS_QUARTUS_PROJECT_DIR),) -ifneq ($(SOPC_NAME),) -SPD := $(ABS_QUARTUS_PROJECT_DIR)/$(SOPC_NAME)_tb.spd -endif # SOPC_NAME set -endif # ABS_QUARTUS_PROJECT_DIR set -endif # SPD == empty string - -ifeq ($(MSIM_SCRIPT),) -SIM_SCRIPT_DIR := $(RUNTIME_ROOT_DIR)/sim -MSIM_SCRIPT := $(SIM_SCRIPT_DIR)/mentor/msim_setup.tcl -endif # MSIM_SCRIPT == empty string - -ifeq ($(MAKE_VERSION),3.81) -ABS_MEM_INIT_DESCRIPTOR_FILE := $(abspath $(MEM_INIT_DESCRIPTOR_FILE)) -else -ABS_MEM_INIT_DESCRIPTOR_FILE := $(call adjust-path-mixed,$(shell pwd))/$(MEM_INIT_DESCRIPTOR_FILE) -endif - -$(MSIM_SCRIPT): $(SPD) $(MEM_INIT_DESCRIPTOR_FILE) -ifeq ($(SPD),) - $(error No SPD file specified. Ensure QUARTUS_PROJECT_DIR variable is set) -endif - @$(MKDIR) $(SIM_SCRIPT_DIR) - $(IP_MAKE_SIMSCRIPT) --spd=$(SPD) --spd=$(MEM_INIT_DESCRIPTOR_FILE) --output-directory=$(SIM_SCRIPT_DIR) - -VSIM_COMMAND = \ - cd $(dir $(MSIM_SCRIPT)) && \ - $(VSIM) -do "do $(notdir $(MSIM_SCRIPT)); ld; $(if $(VSIM_RUN_TIME),run ${VSIM_RUN_TIME};quit;)" - -.PHONY: sim -sim: $(MSIM_SCRIPT) mem_init_generate -ifeq ($(MSIM_SCRIPT),) - $(error MSIM_SCRIPT not set) -endif - $(VSIM_COMMAND) - -endif # QSYS == 1 - - -#------------------------------------------------------------------------------ -# ELF TARGET RULE -#------------------------------------------------------------------------------ -# Rule for constructing the executable elf file. -$(ELF) : $(APP_OBJS) $(LINKER_SCRIPT) $(APP_LDDEPS) - @$(ECHO) Info: Linking $@ - $(LD) $(APP_LDFLAGS) $(APP_CFLAGS) -o $@ $(filter-out $(CRT0),$(APP_OBJS)) $(APP_LIBS) $(APP_BSP_DEP_LIBS) -ifneq ($(DISABLE_ELFPATCH),1) - $(ELFPATCH) $@ $(ELF_PATCH_FLAG) -endif -ifneq ($(DISABLE_STACKREPORT),1) - @bash -c "$(STACKREPORT) $@" -endif - -$(OBJDUMP_NAME) : $(ELF) - @$(ECHO) Info: Creating $@ - $(OBJDUMP) $(OBJDUMP_FLAGS) $< >$@ - -# Rule for printing the name of the elf file -.PHONY: print-elf-name -print-elf-name: - @$(ECHO) $(ELF) - - diff --git a/software/DE2_115_ASM/create-this-app b/software/DE2_115_ASM/create-this-app deleted file mode 100644 index f02aa29..0000000 --- a/software/DE2_115_ASM/create-this-app +++ /dev/null @@ -1,114 +0,0 @@ -#!/bin/bash -# -# This script creates the hello_world application in this directory. - - -BSP_DIR=../DE2_115_ASM_bsp -QUARTUS_PROJECT_DIR=../../ -NIOS2_APP_GEN_ARGS="--elf-name DE2_115_ASM.elf --set OBJDUMP_INCLUDE_SOURCE 1 --src-files hello_world.c" - - -# First, check to see if $SOPC_KIT_NIOS2 environmental variable is set. -# This variable is required for the command line tools to execute correctly. -if [ -z "${SOPC_KIT_NIOS2}" ] -then - echo Required \$SOPC_KIT_NIOS2 Environmental Variable is not set! - exit 1 -fi - - -# Also make sure that the APP has not been created already. Check for -# existence of Makefile in the app directory -if [ -f ./Makefile ] -then - echo Application has already been created! Delete Makefile if you want to create a new application makefile - exit 1 -fi - - -# We are selecting hal_default bsp because it supports this application. -# Check to see if the hal_default has already been generated by checking for -# existence of the public.mk file. If not, we need to run -# create-this-bsp file to generate the bsp. -if [ ! -f ${BSP_DIR}/public.mk ]; then - # Since BSP doesn't exist, create the BSP - # Pass any command line arguments passed to this script to the BSP. - pushd ${BSP_DIR} >> /dev/null - ./create-this-bsp "$@" || { - echo "create-this-bsp failed" - exit 1 - } - popd >> /dev/null -fi - - -# Don't run make if create-this-app script is called with --no-make arg -SKIP_MAKE= -while [ $# -gt 0 ] -do - case "$1" in - --no-make) - SKIP_MAKE=1 - ;; - esac - shift -done - - -# Now we also need to go copy the sources for this application to the -# local directory. -find "${SOPC_KIT_NIOS2}/examples/software/hello_world/" -name '*.c' -or -name '*.h' -or -name 'hostfs*' | xargs -i cp -L {} ./ || { - echo "failed during copying example source files" - exit 1 -} - -find "${SOPC_KIT_NIOS2}/examples/software/hello_world/" -name 'readme.txt' -or -name 'Readme.txt' | xargs -i cp -L {} ./ || { - echo "failed copying readme file" -} - -if [ -d "${SOPC_KIT_NIOS2}/examples/software/hello_world/system" ] -then - cp -RL "${SOPC_KIT_NIOS2}/examples/software/hello_world/system" . || { - echo "failed during copying project support files" - exit 1 - } -fi - -chmod -R +w . || { - echo "failed during changing file permissions" - exit 1 -} - -cmd="nios2-app-generate-makefile --bsp-dir ${BSP_DIR} --set QUARTUS_PROJECT_DIR=${QUARTUS_PROJECT_DIR} ${NIOS2_APP_GEN_ARGS}" - -echo "create-this-app: Running \"${cmd}\"" -$cmd || { - echo "nios2-app-generate-makefile failed" - exit 1 -} - -if [ -z "$SKIP_MAKE" ]; then - cmd="make" - - echo "create-this-app: Running \"$cmd\"" - $cmd || { - echo "make failed" - exit 1 - } - - echo - echo "To download and run the application:" - echo " 1. Make sure the board is connected to the system." - echo " 2. Run 'nios2-configure-sof ' to configure the FPGA with the hardware design." - echo " 3. If you have a stdio device, run 'nios2-terminal' in a different shell." - echo " 4. Run 'make download-elf' from the application directory." - echo - echo "To debug the application:" - echo " Import the project into Nios II Software Build Tools for Eclipse." - echo " Refer to Nios II Software Build Tools for Eclipse Documentation for more information." - echo - echo -e "" -fi - - -exit 0 diff --git a/software/DE2_115_ASM/hello_world_small.c b/software/DE2_115_ASM/hello_world_small.c deleted file mode 100644 index 5d06d9b..0000000 --- a/software/DE2_115_ASM/hello_world_small.c +++ /dev/null @@ -1,214 +0,0 @@ -#include "sys/alt_stdio.h" -#include -#include "system.h" -#include "hex_out.h" -#include "lcd_out.h" -#include "sys_register.h" -#include "sys_memory.h" -#include "input_int.h" -#include "sys_debug.h" -#include "sys_prog.h" - -#define ledrs (volatile int *) LEDRS_BASE - -static void init() { - // lcd - lcd_init(); - lcd_print("Starting now..."); - - registers_init(); - memory_init(); - // hex - clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); - print_block("he", 2, HEX6_7); - print_block("lo", 2, HEX4_5); - print_block("you1", 4, HEX0_3); - delay10ms(200); - clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); - - lcd_caret_reset2(); - lcd_print("Ok!"); -} - -char stack[5]; - -void store_value(){ - unsigned int memi = global_registers[Ssw_memi]; - memory_store(memi, Ssw_data); - - { // �f�o�b�N�\�� - char buf[5]; - sprintf(buf, "%02x", (unsigned char)memi); - print_block(buf, 2, HEX6_7); - print_block("--", 2, HEX4_5); - sprintf(buf, "%04d", global_registers[Ssw_data]); - print_block(buf, 4, HEX0_3); - - display_mem((unsigned char)memi, global_registers[Ssw_data]); - } -} -void store_inst(){ - char inst; - char mem_index; - char reg_index; - unsigned int stored_pc; - struct InstRec inst_rec; - - // �K�v�ȏ��̎擾 - inst = global_registers[Ssw_inst]; - mem_index = global_registers[Ssw_memi]; - reg_index = global_registers[Ssw_regi]; - inst_rec.inst = (unsigned int)inst; - inst_rec.memi = (unsigned int)mem_index; - inst_rec.regi = (unsigned int)reg_index; - - // �X�g�A���� - stored_pc = get_pc(); - inst_memory_store(get_pc(), inst_rec); - inc_pc(); - { // �f�o�b�N�\�� - char buf[5]; - sprintf(buf, "%04d", inst_rec.inst); - print_block(buf, 4, HEX0_3); - sprintf(buf, "%02x", get_pc()); - print_block(buf, 2, HEX4_5); - - display_inst(inst_rec, stored_pc); - } -} - -void print_change_memory(unsigned int current_memory) { - char buf[17]; - sprintf(buf, "Current page:%2d", current_memory); - lcd_caret_reset(); - lcd_print("Change program"); - lcd_caret_reset2(); - lcd_print(buf); - clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); -} - -static void reset_mem_cancel() { - lcd_caret_reset(); - lcd_print("rewrite all 0?"); - lcd_caret_reset2(); - lcd_print("push again -> NG"); -} -static char reset_mem(char confirmed) { - if (confirmed == 0) { - lcd_caret_reset(); - lcd_print("rewrite all 0?"); - lcd_caret_reset2(); - lcd_print("push again"); - // �m�F�v�� - return 1; - } else { - int i; - for (i = 0; i < MEM_SIZE; i++){ - memory_store(i,Szero); - } - lcd_caret_reset(); - lcd_print("rewrite all 0?"); - lcd_caret_reset2(); - lcd_print("push again -> OK"); - - // PC���Z�b�g���� - return 0; - } -} -static void reset_pc_cancel() { - lcd_caret_reset(); - lcd_print("reset pc?"); - lcd_caret_reset2(); - lcd_print("push again -> NG"); -} -static char reset_pc(char confirmed) { - if (confirmed == 0) { - lcd_caret_reset(); - lcd_print("reset pc?"); - lcd_caret_reset2(); - lcd_print("push again"); - // �m�F�v�� - return 1; - } else { - set_pc(0); - - lcd_caret_reset(); - lcd_print("reset pc?"); - lcd_caret_reset2(); - lcd_print("push again -> OK"); - - // PC���Z�b�g���� - return 0; - } -} - - -int main() -{ - init(); - - enum RunMode fRun = RUN_STOP; - char reset_pc_confirmed = 0; - char reset_mem_confirmed = 0; - - while(1) { - // interrupt - in_int(); - - // event - // CANCEL - if (global_registers[Ssw_rw] == 0 - || ((PUSH_EVENT & PUSH_ANY) && !(PUSH_EVENT & PUSH_VALSTR))) { - if (reset_mem_confirmed == 1) { - reset_mem_confirmed = 0; //�m�F�L�����Z�� - reset_mem_cancel(); - } - } - if (global_registers[Ssw_rw] == 0 - || ((PUSH_EVENT & PUSH_ANY) && !(PUSH_EVENT & PUSH_INSSTR))) { - if (reset_pc_confirmed == 1) { - reset_pc_confirmed = 0; //�m�F�L�����Z�� - reset_pc_cancel(); - } - } - // CONFIRM - if (PUSH_EVENT & PUSH_VALSTR) { - // �l�̃X�g�A - if (global_registers[Ssw_rw] == 1) { - //�폜 - char res = reset_mem(reset_mem_confirmed);//���m�F�̏��F - if (1 == res) reset_mem_confirmed = 1; //���m�F - if (0 == res) reset_mem_confirmed = 0; //���Z�b�g�̊m�F - } else { - store_value(); - } - } - if (PUSH_EVENT & PUSH_INSSTR) { - // ���߂̃X�g�A - if (global_registers[Ssw_rw] == 1) { - //PC�̃��Z�b�g - char res = reset_pc(reset_pc_confirmed);//���m�F�̏��F - if (1 == res) reset_pc_confirmed = 1; //���m�F - if (0 == res) reset_pc_confirmed = 0; //���Z�b�g�̊m�F - } else { - store_inst(); - } - } - // RUN - if (PUSH_EVENT & PUSH_RUN) { - if (global_current_memory != (unsigned int)global_registers[Ssw_psel]) { - global_current_memory = (unsigned int)global_registers[Ssw_psel]; - print_change_memory(global_current_memory); - } - else { - // �v���O�����������ݒ� - fRun = RUN_INIT; - } - } - if (fRun != RUN_STOP) { - // �v���O�������s���荞�� & ���s���[�h�X�V - fRun = run_proc(fRun); - } - } - return 0; -} diff --git a/software/DE2_115_ASM/hex_encoder.c b/software/DE2_115_ASM/hex_encoder.c deleted file mode 100644 index 9639775..0000000 --- a/software/DE2_115_ASM/hex_encoder.c +++ /dev/null @@ -1,205 +0,0 @@ -/* - * hex_encoder.c - * - * Created on: 2016/11/17 - * Author: takayun - */ - -#include "hex_encoder.h" -#include - -void encodeNumHex(int hex_i, int num) { - char encoded = 0; - switch (num) { - case 0: - encoded = (char)0x40; // 100 0000 - break; - case 1: - encoded = (char)0xF9; // 111 1001 - break; - case 2: - encoded = (char)0x24; // 010 0100 - break; - case 3: - encoded = (char)0x30; // 011 0000 - break; - case 4: - encoded = (char)0x19; // 001 1001 - break; - case 5: - encoded = (char)0x12; // 001 0010 - break; - case 6: - encoded = (char)0x02; // 000 0010 - break; - case 7: - encoded = (char)0x58; // 101 1000 - break; - case 8: - encoded = (char)0x00; // 000 0000 - break; - case 9: - encoded = (char)0x10; // 001 0000 - break; - default: - encoded = 0; - break; - } - - switch (hex_i) { - case 0: - *hex0 = encoded; - break; - case 1: - *hex1 = encoded; - break; - case 2: - *hex2 = encoded; - break; - case 3: - *hex3 = encoded; - break; - case 4: - *hex4 = encoded; - break; - case 5: - *hex5 = encoded; - break; - case 6: - *hex6 = encoded; - break; - case 7: - *hex7 = encoded; - break; - default: - break; - } -} - -void encodeLatHex(int hex_i, char c) { - char encoded = 0; - - if (isdigit(c)) { - encodeNumHex(hex_i, c-'0'); - return; - } - - switch (c) { - case ' ': - encoded = (char)0xFF; // 111 1111 - break; - case '-': - encoded = (char)0x3F; // 011 1111 - break; - case 'a': - encoded = (char)0x08; // 000 1000 - break; - case 'b': - encoded = (char)0x03; // 000 0011 - break; - case 'c': - encoded = (char)0x27; // 010 0111 - break; - case 'd': - encoded = (char)0x21; // 010 0001 - break; - case 'e': - encoded = (char)0x06; // 000 0110 - break; - case 'f': - encoded = (char)0x0E; // 000 1110 - break; - case 'g': - encoded = (char)0x42; // 100 0010 - break; - case 'h': - encoded = (char)0x0B; // 000 1011 - break; - case 'i': - encoded = (char)0xFB; // 111 1011 - break; - case 'j': - encoded = (char)0x61; // 110 0001 - break; - case 'k': - encoded = (char)0x0A; // 000 1010 - break; - case 'l': - encoded = (char)0x47; // 100 0111 - break; - case 'm': - encoded = (char)0x48; // 100 1000 - break; - case 'n': - encoded = (char)0x2B; // 010 1011 - break; - case 'o': - encoded = (char)0x23; // 010 0011 - break; - case 'p': - encoded = (char)0x0C; // 000 1100 - break; - case 'q': - encoded = (char)0x04; // 000 0100 - break; - case 'r': - encoded = (char)0x2F; // 010 1111 - break; - case 's': - encoded = (char)0x13; // 001 0011 - break; - case 't': - encoded = (char)0x07; // 000 0111 - break; - case 'u': - encoded = (char)0x63; // 110 0011 - break; - case 'v': - encoded = (char)0x41; // 100 0001 - break; - case 'w': - encoded = (char)0x01; // 000 0001 - break; - case 'x': - encoded = (char)0x09; // 000 1001 - break; - case 'y': - encoded = (char)0x11; // 001 0001 - break; - case 'z': - encoded = (char)0x64; // 110 0100 - break; - default: - encoded = 0; - break; - } - - switch (hex_i) { - case 0: - *hex0 = encoded; - break; - case 1: - *hex1 = encoded; - break; - case 2: - *hex2 = encoded; - break; - case 3: - *hex3 = encoded; - break; - case 4: - *hex4 = encoded; - break; - case 5: - *hex5 = encoded; - break; - case 6: - *hex6 = encoded; - break; - case 7: - *hex7 = encoded; - break; - default: - break; - } -} diff --git a/software/DE2_115_ASM/hex_encoder.h b/software/DE2_115_ASM/hex_encoder.h deleted file mode 100644 index 7909cf8..0000000 --- a/software/DE2_115_ASM/hex_encoder.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * hex_encoder.h - * - * Created on: 2016/11/17 - * Author: takayun - */ - -#ifndef HEX_ENCODER_H_ -#define HEX_ENCODER_H_ - -#include "system.h" - -/************************************************** - * Defines - **************************************************/ - -#define hex0 (volatile char *) HEX0_BASE -#define hex1 (volatile char *) HEX1_BASE -#define hex2 (volatile char *) HEX2_BASE -#define hex3 (volatile char *) HEX3_BASE -#define hex4 (volatile char *) HEX4_BASE -#define hex5 (volatile char *) HEX5_BASE -#define hex6 (volatile char *) HEX6_BASE -#define hex7 (volatile char *) HEX7_BASE - -/************************************************** - * Variables - **************************************************/ - - -/************************************************** - * Functions - **************************************************/ - -void encodeNumHex(int hex_i, int num); -void encodeLatHex(int hex_i, char c); - -#endif /* HEX_ENCODER_H_ */ diff --git a/software/DE2_115_ASM/hex_out.c b/software/DE2_115_ASM/hex_out.c deleted file mode 100644 index 874dbac..0000000 --- a/software/DE2_115_ASM/hex_out.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - * hex_out.c - * - * Created on: 2016/11/24 - * Author: takayun - */ -#include "hex_out.h" -#include "hex_encoder.h" -#include "sys_except.h" - -void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { - int i; - if (block_i == HEX0_3) { - if (size > 4) panic(); - for (i = 0; i < size; i++) { - encodeLatHex(i,str[size-1-i]); - } - } - else if (block_i == HEX4_5) { - if (size > 2) panic(); - for (i = 0; i < size; i++) { - encodeLatHex(i+4,str[size-1-i]); - } - } - else if (block_i == HEX6_7) { - if (size > 2) panic(); - for (i = 0; i < size; i++) { - encodeLatHex(i+6,str[size-1-i]); - } - } -} - -void clear_block(enum BLOCK_N block_i) { - if (block_i == HEX0_3) { - print_block(" ", 4, HEX0_3); - } - else if (block_i == HEX4_5) { - print_block(" ", 2, HEX4_5); - } - else if (block_i == HEX6_7) { - print_block(" ", 2, HEX6_7); - } -} - -void print_number(char num) { - int i; - char buf[5]; - char val; - for (i = 0; i < 4; i++) { - if (num < 0) { - buf[0] = '-'; - val = -num; - } else { - buf[0] = ' '; - val = num; - } - buf[1] = val/100%10 + '0'; - buf[2] = val/10%10 + '0'; - buf[3] = val%10 + '0'; - } - clear_block(HEX0_3); - print_block(buf, 4, HEX0_3); -} - - - - diff --git a/software/DE2_115_ASM/hex_out.h b/software/DE2_115_ASM/hex_out.h deleted file mode 100644 index 99219b5..0000000 --- a/software/DE2_115_ASM/hex_out.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * hex_out.h - * - * Created on: 2016/11/24 - * Author: takayun - */ - -#ifndef HEX_IO_H_ -#define HEX_IO_H_ - -/************************************************** - * Defines - **************************************************/ - -enum BLOCK_N { - HEX0_3, HEX4_5, HEX6_7 -}; - -/************************************************** - * Variables - **************************************************/ - - -/************************************************** - * Functions - **************************************************/ - -void print_block(char * str, unsigned int size, enum BLOCK_N block_i); -void clear_block(enum BLOCK_N block_i); -void print_number(char num); - - -#endif /* HEX_IO_H_ */ diff --git a/software/DE2_115_ASM/input_int.c b/software/DE2_115_ASM/input_int.c deleted file mode 100644 index 0145286..0000000 --- a/software/DE2_115_ASM/input_int.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * input_int.c - * - * Created on: 2016/11/24 - * Author: takayun - */ -#include "input_int.h" -#include "sys_register.h" - -unsigned char PUSH_EVENT = PUSH_NONE; - -void in_int() { - push_int(); -} - -static void update_sw_reg(sw_t s) { - global_registers[Ssw_data] = (char)s.data.value; - global_registers[Ssw_inst] = (char)s.splited.instruction_code; - global_registers[Ssw_memi] = (char)s.splited.memory_index; - global_registers[Ssw_regi] = (char)s.splited.register_index; - global_registers[Ssw_psel] = (char)s.splited.program_selecter; - global_registers[Ssw_rw] = (char)s.splited.rw_mode; - global_registers[Ssw_run] = (char)s.splited.run_mode; -} - -enum PushEvent push_decode(char psw) { - int result = PUSH_NONE; - switch(psw) { - case 0x3: - result += PUSH_ANY; - result += PUSH_VALSTR; - break; - case 0x5: - result += PUSH_ANY; - result += PUSH_INSSTR; - break; - case 0x6: - result += PUSH_ANY; - result += PUSH_RUN; - break; - } - return result; -} - -void push_int() { - static unsigned char status = 0; - static enum PushEvent event_code; - volatile sw_t s; - s.sw = *switches; - - switch (status) { - case 0: - PUSH_EVENT = PUSH_NONE; - if (*push_switches != 7) { - event_code = push_decode(*push_switches); - status = 1; - } - update_sw_reg(s); // �X�C�b�`���W�X�^�X�V - break; - case 1: - if (*push_switches == 7) status = 2; - break; - case 2: - PUSH_EVENT = event_code; - status = 0; - break; - default: - status = 0; - break; - } -} diff --git a/software/DE2_115_ASM/input_int.h b/software/DE2_115_ASM/input_int.h deleted file mode 100644 index e1d0612..0000000 --- a/software/DE2_115_ASM/input_int.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * input_int.h - * - * Created on: 2016/11/24 - * Author: takayun - */ - -#ifndef SWITCHES_INT_H_ -#define SWITCHES_INT_H_ - -#include "system.h" - -/************************************************** - * Defines - **************************************************/ - -#define switches (volatile int *) SWITCHES_BASE -#define push_switches (volatile char *) PUSH_SWITCHES_BASE - -typedef union { - int sw; - struct { - unsigned int run_mode : 1; - unsigned int rw_mode : 1; - unsigned int program_selecter : 4; - unsigned int memory_index : 4; - unsigned int register_index : 4; - unsigned int instruction_code : 4; - } splited; - struct { - unsigned int : 10; - unsigned int value : 8; - } data; -} sw_t; - -enum PushEvent{ - PUSH_NONE = 1<<0, - PUSH_ANY = 1<<1, - PUSH_VALSTR = 1<<2, - PUSH_INSSTR = 1<<3, - PUSH_RUN = 1<<4 -}; - -/************************************************** - * Variables - **************************************************/ - -extern unsigned char PUSH_EVENT; - -/************************************************** - * Functions - **************************************************/ - -/* Function: in_int - * Sammary: - * �S�Ă̓��͊��荞�݂��s�� - * */ -void in_int(); - -void push_int(); - -#endif /* SWITCHES_INT_H_ */ diff --git a/software/DE2_115_ASM/inst_decoder.c b/software/DE2_115_ASM/inst_decoder.c deleted file mode 100644 index 3e6e8a9..0000000 --- a/software/DE2_115_ASM/inst_decoder.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * inst_decoder.c - * - * Created on: 2016/11/25 - * Author: takayun - */ - -#include "inst_decoder.h" -#include "sys_memory.h" -#include "sys_register.h" -#include "hex_out.h" -#include "sys_prog.h" -#include -#include - -struct InstRec inst_fetch(){ - struct InstRec rec = inst_memory_load((unsigned int)global_registers[Spc]); - inc_pc(); - return rec; -} - -void inst_decode(struct InstRec inst_rec){ - switch(inst_rec.inst) { - case INST_END: - break; - case INST_JUMP: - inst_jump(inst_rec.regi, inst_rec.memi); - break; - case INST_OUTPUT: - inst_output(inst_rec.regi, inst_rec.memi); - break; - case INST_LOAD: - inst_load(inst_rec.regi, inst_rec.memi); - break; - case INST_STORE: - inst_store(inst_rec.regi, inst_rec.memi); - break; - case INST_DELAY: - inst_delay(inst_rec.regi, inst_rec.memi); - break; - case INST_ADD: - inst_add(inst_rec.regi, inst_rec.memi); - break; - case INST_SUB: - inst_sub(inst_rec.regi, inst_rec.memi); - break; - case INST_COMP: - inst_comp(inst_rec.regi, inst_rec.memi); - break; - case INST_JEQ: - inst_jeq(inst_rec.regi, inst_rec.memi); - break; - case INST_JNE: - inst_jne(inst_rec.regi, inst_rec.memi); - break; - case INST_JIEQ: - inst_jieq(inst_rec.regi, inst_rec.memi); - break; - case INST_JINE: - inst_jine(inst_rec.regi, inst_rec.memi); - break; - } -} - -void inst_jump(enum Register reg, unsigned char memory_index){ - set_pc(global_registers[reg]+memory_index); -} -void inst_output(enum Register reg, unsigned char memory_index){ - //�������̒l��7�Z�O�ɕ\�� - char buf[5]; - memory_load(memory_index, Sseg); - sprintf(buf, "%04d", global_registers[Sseg]); - print_block(buf, 4, HEX0_3); -} -void inst_load(enum Register reg, unsigned char memory_index){ - memory_load(memory_index, reg); -} -void inst_store(enum Register reg, unsigned char memory_index){ - memory_store(memory_index, reg); -} -void inst_delay(enum Register reg, unsigned char memory_index){ - //���W�X�^�̒l*10ms�҂� - usleep((int)global_registers[reg]*10000); -} -void inst_add(enum Register reg, unsigned char memory_index){ - global_registers[Sacc]+=global_registers[reg]; -} -void inst_sub(enum Register reg, unsigned char memory_index){ - global_registers[Sacc]-=global_registers[reg]; -} -void inst_comp(enum Register reg, unsigned char memory_index){ - if(global_registers[Sacc]==global_registers[reg]){ - global_registers[Sflg]=0; - } else if(global_registers[Sacc] > global_registers[reg]){ - global_registers[Sflg]=-1; - }else{ - global_registers[Sflg]=1; - } -} -void inst_jeq(enum Register reg, unsigned char memory_index){ - if(global_registers[Sflg]==global_registers[reg]){ - inc_pc(); - } -} -void inst_jne(enum Register reg, unsigned char memory_index){ - if(global_registers[Sflg]!=global_registers[reg]){ - inc_pc(); - } -} -void inst_jieq(char im, unsigned char memory_index){ - if(global_registers[Sflg]==im){ - inc_pc(); - } -} -void inst_jine(char im, unsigned char memory_index){ - if(global_registers[Sflg]!=im){ - inc_pc(); - } -} - diff --git a/software/DE2_115_ASM/inst_decoder.h b/software/DE2_115_ASM/inst_decoder.h deleted file mode 100644 index 036e179..0000000 --- a/software/DE2_115_ASM/inst_decoder.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * inst_decoder.h - * - * Created on: 2016/11/25 - * Author: takayun - */ - -#ifndef INST_DECODER_H_ -#define INST_DECODER_H_ - -#include "sys_register.h" - -#define INST_END 0x0 -#define INST_JUMP 0x1 -#define INST_OUTPUT 0x2 -#define INST_LOAD 0x3 -#define INST_STORE 0x4 -#define INST_DELAY 0x5 -#define INST_ADD 0x6 -#define INST_COMP 0x7 -#define INST_JEQ 0x8 -#define INST_JNE 0x9 -#define INST_JIEQ 0xA -#define INST_JINE 0xB -#define INST_SUB 0xC - -struct InstRec { - unsigned int inst : 4; - unsigned int memi : 4; - unsigned int regi : 4; -}; - -struct InstRec inst_fetch(); - -void inst_decode(struct InstRec inst_rec); - -void inst_jump(enum Register reg, unsigned char memory_index); -void inst_output(enum Register reg, unsigned char memory_index); -void inst_load(enum Register reg, unsigned char memory_index); -void inst_store(enum Register reg, unsigned char memory_index); -void inst_delay(enum Register reg, unsigned char memory_index); -void inst_add(enum Register reg, unsigned char memory_index); -void inst_sub(enum Register reg, unsigned char memory_index); -void inst_comp(enum Register reg, unsigned char memory_index); -void inst_jeq(enum Register reg, unsigned char memory_index); -void inst_jne(enum Register reg, unsigned char memory_index); -void inst_jieq(char im, unsigned char memory_index); -void inst_jine(char im, unsigned char memory_index); - - -#endif /* INST_DECODER_H_ */ diff --git a/software/DE2_115_ASM/lcd_out.c b/software/DE2_115_ASM/lcd_out.c deleted file mode 100644 index b09a0bb..0000000 --- a/software/DE2_115_ASM/lcd_out.c +++ /dev/null @@ -1,29 +0,0 @@ -#include "lcd_out.h" -#include -#include -#include -#include -#include "system.h" -#include "LCD.h" - -// LCD�̏����� -void lcd_init() { - *lcd_on = 1; - *lcd_blon = 1; - LCD_Init(); -} - -// LCD�̃L�����b�g���P�s�ڂ̂͂��߂Ɉړ����� -void lcd_caret_reset() { - LCD_Init(); -} - -// LCD�̃L�����b�g���Q�s�ڂ̂͂��߂Ɉړ����� -void lcd_caret_reset2() { - LCD_Line2(); -} - -// LCD�ɕ�����\������ -void lcd_print(const char *str) { - LCD_Show_Text(str); -} diff --git a/software/DE2_115_ASM/lcd_out.h b/software/DE2_115_ASM/lcd_out.h deleted file mode 100644 index 7c51dd4..0000000 --- a/software/DE2_115_ASM/lcd_out.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * lcd_out.h - * - * Created on: 2016/12/02 - * Author: takayun - */ - -#ifndef LCD_OUT_H_ -#define LCD_OUT_H_ - -#include "system.h" - -#define lcd_on (volatile char *) LCD_ON_BASE -#define lcd_blon (volatile char *) LCD_BLON_BASE - -// LCD�̏����� -void lcd_init(); - -// LCD�̃L�����b�g���P�s�ڂ̂͂��߂Ɉړ����� -void lcd_caret_reset(); - -// LCD�̃L�����b�g���Q�s�ڂ̂͂��߂Ɉړ����� -void lcd_caret_reset2(); - -// LCD�ɕ�����\������ -void lcd_print(const char *str); - -#endif /* LCD_OUT_H_ */ diff --git a/software/DE2_115_ASM/obj/default/.force_relink b/software/DE2_115_ASM/obj/default/.force_relink deleted file mode 100644 index e69de29..0000000 --- a/software/DE2_115_ASM/obj/default/.force_relink +++ /dev/null diff --git a/software/DE2_115_ASM/obj/default/LCD.d b/software/DE2_115_ASM/obj/default/LCD.d deleted file mode 100644 index 45a1357..0000000 --- a/software/DE2_115_ASM/obj/default/LCD.d +++ /dev/null @@ -1,13 +0,0 @@ -obj/default/LCD.o: LCD.c ../DE2_115_ASM_bsp//HAL/inc/io.h \ - ../DE2_115_ASM_bsp//HAL/inc/alt_types.h ../DE2_115_ASM_bsp/system.h \ - ../DE2_115_ASM_bsp/linker.h LCD.h - -../DE2_115_ASM_bsp//HAL/inc/io.h: - -../DE2_115_ASM_bsp//HAL/inc/alt_types.h: - -../DE2_115_ASM_bsp/system.h: - -../DE2_115_ASM_bsp/linker.h: - -LCD.h: diff --git a/software/DE2_115_ASM/obj/default/LCD.o b/software/DE2_115_ASM/obj/default/LCD.o deleted file mode 100644 index 52ae901..0000000 --- a/software/DE2_115_ASM/obj/default/LCD.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM/obj/default/hello_world_small.d b/software/DE2_115_ASM/obj/default/hello_world_small.d deleted file mode 100644 index 4620298..0000000 --- a/software/DE2_115_ASM/obj/default/hello_world_small.d +++ /dev/null @@ -1,26 +0,0 @@ -obj/default/hello_world_small.o: hello_world_small.c \ - ../DE2_115_ASM_bsp//HAL/inc/sys/alt_stdio.h ../DE2_115_ASM_bsp/system.h \ - ../DE2_115_ASM_bsp/linker.h hex_out.h lcd_out.h sys_register.h \ - sys_memory.h inst_decoder.h input_int.h sys_debug.h sys_prog.h - -../DE2_115_ASM_bsp//HAL/inc/sys/alt_stdio.h: - -../DE2_115_ASM_bsp/system.h: - -../DE2_115_ASM_bsp/linker.h: - -hex_out.h: - -lcd_out.h: - -sys_register.h: - -sys_memory.h: - -inst_decoder.h: - -input_int.h: - -sys_debug.h: - -sys_prog.h: diff --git a/software/DE2_115_ASM/obj/default/hello_world_small.o b/software/DE2_115_ASM/obj/default/hello_world_small.o deleted file mode 100644 index 1732ec2..0000000 --- a/software/DE2_115_ASM/obj/default/hello_world_small.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM/obj/default/hex_encoder.d b/software/DE2_115_ASM/obj/default/hex_encoder.d deleted file mode 100644 index 9c3616e..0000000 --- a/software/DE2_115_ASM/obj/default/hex_encoder.d +++ /dev/null @@ -1,8 +0,0 @@ -obj/default/hex_encoder.o: hex_encoder.c hex_encoder.h \ - ../DE2_115_ASM_bsp/system.h ../DE2_115_ASM_bsp/linker.h - -hex_encoder.h: - -../DE2_115_ASM_bsp/system.h: - -../DE2_115_ASM_bsp/linker.h: diff --git a/software/DE2_115_ASM/obj/default/hex_encoder.o b/software/DE2_115_ASM/obj/default/hex_encoder.o deleted file mode 100644 index 541f60a..0000000 --- a/software/DE2_115_ASM/obj/default/hex_encoder.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM/obj/default/hex_out.d b/software/DE2_115_ASM/obj/default/hex_out.d deleted file mode 100644 index 613323b..0000000 --- a/software/DE2_115_ASM/obj/default/hex_out.d +++ /dev/null @@ -1,12 +0,0 @@ -obj/default/hex_out.o: hex_out.c hex_out.h hex_encoder.h \ - ../DE2_115_ASM_bsp/system.h ../DE2_115_ASM_bsp/linker.h sys_except.h - -hex_out.h: - -hex_encoder.h: - -../DE2_115_ASM_bsp/system.h: - -../DE2_115_ASM_bsp/linker.h: - -sys_except.h: diff --git a/software/DE2_115_ASM/obj/default/hex_out.o b/software/DE2_115_ASM/obj/default/hex_out.o deleted file mode 100644 index d2780d1..0000000 --- a/software/DE2_115_ASM/obj/default/hex_out.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM/obj/default/input_int.d b/software/DE2_115_ASM/obj/default/input_int.d deleted file mode 100644 index cb5f901..0000000 --- a/software/DE2_115_ASM/obj/default/input_int.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/default/input_int.o: input_int.c input_int.h \ - ../DE2_115_ASM_bsp/system.h ../DE2_115_ASM_bsp/linker.h sys_register.h - -input_int.h: - -../DE2_115_ASM_bsp/system.h: - -../DE2_115_ASM_bsp/linker.h: - -sys_register.h: diff --git a/software/DE2_115_ASM/obj/default/input_int.o b/software/DE2_115_ASM/obj/default/input_int.o deleted file mode 100644 index e26ee6b..0000000 --- a/software/DE2_115_ASM/obj/default/input_int.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM/obj/default/inst_decoder.d b/software/DE2_115_ASM/obj/default/inst_decoder.d deleted file mode 100644 index 760a64b..0000000 --- a/software/DE2_115_ASM/obj/default/inst_decoder.d +++ /dev/null @@ -1,12 +0,0 @@ -obj/default/inst_decoder.o: inst_decoder.c inst_decoder.h sys_register.h \ - sys_memory.h hex_out.h sys_prog.h - -inst_decoder.h: - -sys_register.h: - -sys_memory.h: - -hex_out.h: - -sys_prog.h: diff --git a/software/DE2_115_ASM/obj/default/inst_decoder.o b/software/DE2_115_ASM/obj/default/inst_decoder.o deleted file mode 100644 index f0d9b27..0000000 --- a/software/DE2_115_ASM/obj/default/inst_decoder.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM/obj/default/lcd_out.d b/software/DE2_115_ASM/obj/default/lcd_out.d deleted file mode 100644 index 4676ad5..0000000 --- a/software/DE2_115_ASM/obj/default/lcd_out.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/default/lcd_out.o: lcd_out.c lcd_out.h ../DE2_115_ASM_bsp/system.h \ - ../DE2_115_ASM_bsp/linker.h LCD.h - -lcd_out.h: - -../DE2_115_ASM_bsp/system.h: - -../DE2_115_ASM_bsp/linker.h: - -LCD.h: diff --git a/software/DE2_115_ASM/obj/default/lcd_out.o b/software/DE2_115_ASM/obj/default/lcd_out.o deleted file mode 100644 index 4bba397..0000000 --- a/software/DE2_115_ASM/obj/default/lcd_out.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM/obj/default/sys_debug.d b/software/DE2_115_ASM/obj/default/sys_debug.d deleted file mode 100644 index be9f474..0000000 --- a/software/DE2_115_ASM/obj/default/sys_debug.d +++ /dev/null @@ -1,15 +0,0 @@ -obj/default/sys_debug.o: sys_debug.c sys_debug.h inst_decoder.h \ - sys_register.h lcd_out.h ../DE2_115_ASM_bsp/system.h \ - ../DE2_115_ASM_bsp/linker.h - -sys_debug.h: - -inst_decoder.h: - -sys_register.h: - -lcd_out.h: - -../DE2_115_ASM_bsp/system.h: - -../DE2_115_ASM_bsp/linker.h: diff --git a/software/DE2_115_ASM/obj/default/sys_debug.o b/software/DE2_115_ASM/obj/default/sys_debug.o deleted file mode 100644 index 7c05a1d..0000000 --- a/software/DE2_115_ASM/obj/default/sys_debug.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM/obj/default/sys_except.d b/software/DE2_115_ASM/obj/default/sys_except.d deleted file mode 100644 index bb8976f..0000000 --- a/software/DE2_115_ASM/obj/default/sys_except.d +++ /dev/null @@ -1,8 +0,0 @@ -obj/default/sys_except.o: sys_except.c ../DE2_115_ASM_bsp/system.h \ - ../DE2_115_ASM_bsp/linker.h hex_out.h - -../DE2_115_ASM_bsp/system.h: - -../DE2_115_ASM_bsp/linker.h: - -hex_out.h: diff --git a/software/DE2_115_ASM/obj/default/sys_except.o b/software/DE2_115_ASM/obj/default/sys_except.o deleted file mode 100644 index bdecd6b..0000000 --- a/software/DE2_115_ASM/obj/default/sys_except.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM/obj/default/sys_memory.d b/software/DE2_115_ASM/obj/default/sys_memory.d deleted file mode 100644 index d6373a1..0000000 --- a/software/DE2_115_ASM/obj/default/sys_memory.d +++ /dev/null @@ -1,15 +0,0 @@ -obj/default/sys_memory.o: sys_memory.c ../DE2_115_ASM_bsp/system.h \ - ../DE2_115_ASM_bsp/linker.h sys_memory.h sys_register.h inst_decoder.h \ - sys_except.h - -../DE2_115_ASM_bsp/system.h: - -../DE2_115_ASM_bsp/linker.h: - -sys_memory.h: - -sys_register.h: - -inst_decoder.h: - -sys_except.h: diff --git a/software/DE2_115_ASM/obj/default/sys_memory.o b/software/DE2_115_ASM/obj/default/sys_memory.o deleted file mode 100644 index 5ec0baf..0000000 --- a/software/DE2_115_ASM/obj/default/sys_memory.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM/obj/default/sys_prog.d b/software/DE2_115_ASM/obj/default/sys_prog.d deleted file mode 100644 index 996ae7f..0000000 --- a/software/DE2_115_ASM/obj/default/sys_prog.d +++ /dev/null @@ -1,21 +0,0 @@ -obj/default/sys_prog.o: sys_prog.c sys_prog.h sys_debug.h inst_decoder.h \ - sys_register.h sys_memory.h hex_out.h lcd_out.h \ - ../DE2_115_ASM_bsp/system.h ../DE2_115_ASM_bsp/linker.h - -sys_prog.h: - -sys_debug.h: - -inst_decoder.h: - -sys_register.h: - -sys_memory.h: - -hex_out.h: - -lcd_out.h: - -../DE2_115_ASM_bsp/system.h: - -../DE2_115_ASM_bsp/linker.h: diff --git a/software/DE2_115_ASM/obj/default/sys_prog.o b/software/DE2_115_ASM/obj/default/sys_prog.o deleted file mode 100644 index c6a99eb..0000000 --- a/software/DE2_115_ASM/obj/default/sys_prog.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM/obj/default/sys_register.d b/software/DE2_115_ASM/obj/default/sys_register.d deleted file mode 100644 index 42e349a..0000000 --- a/software/DE2_115_ASM/obj/default/sys_register.d +++ /dev/null @@ -1,3 +0,0 @@ -obj/default/sys_register.o: sys_register.c sys_register.h - -sys_register.h: diff --git a/software/DE2_115_ASM/obj/default/sys_register.o b/software/DE2_115_ASM/obj/default/sys_register.o deleted file mode 100644 index 62d1be4..0000000 --- a/software/DE2_115_ASM/obj/default/sys_register.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM/readme.txt b/software/DE2_115_ASM/readme.txt deleted file mode 100644 index a949aa6..0000000 --- a/software/DE2_115_ASM/readme.txt +++ /dev/null @@ -1,26 +0,0 @@ -Readme - Hello World Software Example - -DESCRIPTION: -Simple program that prints "Hello from Nios II" - -The memory footprint of this hosted application is intended to be small (under 100 kbytes) by default -using a standard reference deisgn. - -For an even smaller, reduced footprint version of this template, and an explanation of how -to reduce the memory footprint for a given application, see the -"small_hello_world" template. - - -PERIPHERALS USED: -This example exercises the following peripherals: -- STDOUT device (UART or JTAG UART) - -SOFTWARE SOURCE FILES: -This example includes the following software source files: -- hello_world.c: Everyone needs a Hello World program, right? - -BOARD/HOST REQUIREMENTS: -This example requires only a JTAG connection with a Nios Development board. If -the host communication settings are changed from JTAG UART (default) to use a -conventional UART, a serial cable between board DB-9 connector and the host is -required. diff --git a/software/DE2_115_ASM/sys_debug.c b/software/DE2_115_ASM/sys_debug.c deleted file mode 100644 index 190b908..0000000 --- a/software/DE2_115_ASM/sys_debug.c +++ /dev/null @@ -1,121 +0,0 @@ -/* - * sys_debug.c - * - * Created on: 2016/12/02 - * Author: takayun - */ - -#include "sys_debug.h" -#include -#include "lcd_out.h" -#include - -void display_inst(struct InstRec inst, unsigned int pc) { - char inst_name[INST_NAME_ARRAY_LEN]; // ���ߖ� - char reg_name[REG_NAME_ARRAY_LEN]; // ���W�X�^�� - char buf[17]; - - // ���߂̖��O�̎擾 - convertInstName(inst_name, inst.inst); - // ���W�X�^�̖��O�̎擾 - convertRegName(reg_name, inst.regi); - - lcd_caret_reset(); - sprintf(buf, "PC:0x%02x -> %4s",pc,inst_name); - lcd_print(buf); - lcd_caret_reset2(); - sprintf(buf, "REG:%3s,MEM:0x%1x",reg_name,inst.memi); - lcd_print(buf); -} - -void display_mem(unsigned char memi, char memv) { - char buf[17]; - - lcd_caret_reset(); - sprintf(buf, "MEM:0x%1x",memi); - lcd_print(buf); - lcd_caret_reset2(); - sprintf(buf, "value:%d",memv); - lcd_print(buf); -} - -void convertRegName(char reg_name[REG_NAME_ARRAY_LEN], enum Register reg_code) { - switch(reg_code) { - case Szero: - sprintf(reg_name, STRING_REG_ZERO); - break; - case Spc: - sprintf(reg_name, STRING_REG_PC); - break; - case Ssp: - sprintf(reg_name, STRING_REG_SP); - break; - case Sgp0: - sprintf(reg_name, STRING_REG_GP0); - break; - case Sgp1: - sprintf(reg_name, STRING_REG_GP1); - break; - case Sacc: - sprintf(reg_name, STRING_REG_ACC); - break; - case Sflg: - sprintf(reg_name, STRING_REG_FLG); - break; - default: - sprintf(reg_name, "non"); - break; - } -} - - -void convertInstName(char inst_name[INST_NAME_ARRAY_LEN], unsigned char inst_code) { - switch(inst_code) { - case INST_END: - sprintf(inst_name, STRING_INST_END); - break; - case INST_JUMP: - sprintf(inst_name, STRING_INST_JUMP); - break; - case INST_OUTPUT: - sprintf(inst_name, STRING_INST_OUTPUT); - break; - case INST_LOAD: - sprintf(inst_name, STRING_INST_LOAD); - break; - case INST_STORE: - sprintf(inst_name, STRING_INST_STORE); - break; - case INST_DELAY: - sprintf(inst_name, STRING_INST_DELAY); - break; - case INST_ADD: - sprintf(inst_name, STRING_INST_ADD); - break; - case INST_SUB: - sprintf(inst_name, STRING_INST_SUB); - break; - case INST_COMP: - sprintf(inst_name, STRING_INST_COMP); - break; - case INST_JEQ: - sprintf(inst_name, STRING_INST_JEQ); - break; - case INST_JNE: - sprintf(inst_name, STRING_INST_JNE); - break; - case INST_JIEQ: - sprintf(inst_name, STRING_INST_JIEQ); - break; - case INST_JINE: - sprintf(inst_name, STRING_INST_JINE); - break; - default: - sprintf(inst_name, "NoOp"); - break; - } -} - -void delay10ms(unsigned int s) { - usleep(s*10000); -} diff --git a/software/DE2_115_ASM/sys_debug.h b/software/DE2_115_ASM/sys_debug.h deleted file mode 100644 index bb1fb1c..0000000 --- a/software/DE2_115_ASM/sys_debug.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * sys_debug.h - * - * Created on: 2016/12/02 - * Author: takayun - */ - -#ifndef SYS_DEBUG_H_ -#define SYS_DEBUG_H_ - -#include "inst_decoder.h" -#include "sys_register.h" - -/************************************************** - * Defines - **************************************************/ - -#define INST_NAME_ARRAY_LEN 5 - -#define STRING_INST_END "END" -#define STRING_INST_JUMP "JUMP" -#define STRING_INST_OUTPUT "OUT" -#define STRING_INST_LOAD "LOAD" -#define STRING_INST_STORE "STOR" -#define STRING_INST_DELAY "DELY" -#define STRING_INST_ADD "ADD" -#define STRING_INST_COMP "COMP" -#define STRING_INST_JEQ "JEQ" -#define STRING_INST_JNE "JNE" -#define STRING_INST_JIEQ "JIEQ" -#define STRING_INST_JINE "JINE" -#define STRING_INST_SUB "SUB" - - -#define REG_NAME_ARRAY_LEN 4 - -#define STRING_REG_ZERO "ZE" -#define STRING_REG_PC "PC" -#define STRING_REG_SP "SP" -#define STRING_REG_GP0 "GP0" -#define STRING_REG_GP1 "GP1" -#define STRING_REG_ACC "ACC" -#define STRING_REG_FLG "FLG" - -/************************************************** - * Variables - **************************************************/ - - -/************************************************** - * Functions - **************************************************/ - -void convertInstName(char inst_name[INST_NAME_ARRAY_LEN], unsigned char inst_code); -void convertRegName(char reg_name[REG_NAME_ARRAY_LEN], enum Register reg_code); - -void display_inst(struct InstRec inst, unsigned int pc); -void display_mem(unsigned char memi, char memv); - -void delay10ms(unsigned int s); - -#endif /* SYS_DEBUG_H_ */ diff --git a/software/DE2_115_ASM/sys_except.c b/software/DE2_115_ASM/sys_except.c deleted file mode 100644 index 82420a4..0000000 --- a/software/DE2_115_ASM/sys_except.c +++ /dev/null @@ -1,14 +0,0 @@ -/* - * sys_except.c - * - * Created on: 2016/11/24 - * Author: takayun - */ -#include "system.h" -#include "hex_out.h" - -void panic() { - clear_block(HEX0_3); - print_block("err ", 4, HEX0_3); -} - diff --git a/software/DE2_115_ASM/sys_except.h b/software/DE2_115_ASM/sys_except.h deleted file mode 100644 index fa6f420..0000000 --- a/software/DE2_115_ASM/sys_except.h +++ /dev/null @@ -1,13 +0,0 @@ -/* - * sys_except.h - * - * Created on: 2016/11/24 - * Author: takayun - */ - -#ifndef SYSTEM_H_ -#define SYSTEM_H_ - -void panic(); - -#endif /* SYSTEM_H_ */ diff --git a/software/DE2_115_ASM/sys_memory.c b/software/DE2_115_ASM/sys_memory.c deleted file mode 100644 index 71b9d69..0000000 --- a/software/DE2_115_ASM/sys_memory.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * sys_memory.c - * - * Created on: 2016/11/24 - * Author: takayun - */ -#include "system.h" -#include "sys_memory.h" -#include "sys_register.h" -#include "sys_except.h" - -/************************************************** - * Public - **************************************************/ - -// �����������̂ǂ̃�������(0 < global_current_memory < MEMS_COUNT) -unsigned int global_current_memory = 0; - -/************************************************** - * Private - **************************************************/ - -// �����������̕ϐ� -static char memory[MEMS_COUNT][MEM_SIZE]; - -static struct InstRec inst_memory[MEMS_COUNT][MEM_SIZE]; - - -/************************************************** - * Impl - **************************************************/ - -void memory_init() { - int i, j; - for (i = 0; i < MEMS_COUNT; i++) - for (j = 0; j < MEM_SIZE; j++) { - memory[i][j] = 0; - } -} - -void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec){ - inst_memory[global_current_memory][mem_addr] = inst_rec; -} -struct InstRec inst_memory_load(unsigned int mem_addr){ - return inst_memory[global_current_memory][mem_addr]; -} - -char memory_store(unsigned int mem_addr, enum Register reg) { - if (!(mem_addr < MEM_SIZE)) panic(); - memory[global_current_memory][mem_addr] = global_registers[reg]; - return memory[global_current_memory][mem_addr]; -} - -char memory_load(unsigned int mem_addr, enum Register reg) { - if (!(mem_addr < MEM_SIZE)) panic(); - global_registers[reg] = memory[global_current_memory][mem_addr]; - return global_registers[reg]; -} - diff --git a/software/DE2_115_ASM/sys_memory.h b/software/DE2_115_ASM/sys_memory.h deleted file mode 100644 index f67c9a4..0000000 --- a/software/DE2_115_ASM/sys_memory.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * sys_memory.h - * - * Created on: 2016/11/24 - * Author: takayun - */ - -#ifndef SYS_MEMORY_H_ -#define SYS_MEMORY_H_ - -#include "sys_register.h" -#include "inst_decoder.h" - -/************************************************** - * Defines - **************************************************/ - -// �������̐� -#define MEMS_COUNT 16 - -// 1�������̃T�C�Y -#define MEM_SIZE 16 - -/************************************************** - * Variables - **************************************************/ - -extern unsigned int global_current_memory; - -/************************************************** - * Functions - **************************************************/ - -/* Function: memory_init - * Sammary: - * ������������������(All 0) */ -void memory_init(); - -/* ���ߗp�������ɖ��߂̃X�g�A&���[�h */ - -/* Function: memory_store -> char - * Sammary: - * �������̎w��Ԓn�Ɏw�肵�����W�X�^����l���i�[���� - * Return: - * �������Ɋi�[���ꂽ�l */ -void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec); -struct InstRec inst_memory_load(unsigned int mem_addr); - - -/* ������-���W�X�^�Ԃ̑��� */ - -/* Function: memory_store -> char - * Sammary: - * �������̎w��Ԓn�Ɏw�肵�����W�X�^����l���i�[���� - * Return: - * �������Ɋi�[���ꂽ�l */ -char memory_store(unsigned int mem_addr, enum Register reg); - -/* Function: memory_store -> char - * Sammary: - * �w�肵�����W�X�^�Ƀ������̎w��Ԓn����l���i�[���� - * Return: - * ���W�X�^�Ɋi�[���ꂽ�l */ -char memory_load(unsigned int mem_addr, enum Register reg); - - -#endif /* SYS_MEMORY_H_ */ diff --git a/software/DE2_115_ASM/sys_prog.c b/software/DE2_115_ASM/sys_prog.c deleted file mode 100644 index bbcc395..0000000 --- a/software/DE2_115_ASM/sys_prog.c +++ /dev/null @@ -1,84 +0,0 @@ -/* - * sys_prog.c - * - * Created on: 2016/12/15 - * Author: takayun - */ - -#include "sys_prog.h" -#include -#include "sys_debug.h" -#include "sys_register.h" -#include "sys_memory.h" -#include "hex_out.h" -#include "lcd_out.h" - -unsigned int inc_pc() { - if ((unsigned char)global_registers[Spc]+1 < MEM_SIZE*MEMS_COUNT - global_current_memory*MEM_SIZE ) { - global_registers[Spc] = (unsigned char)global_registers[Spc] + 1; - } else { - global_registers[Spc] = 0; - } - return 0; -} -unsigned int add_pc(unsigned int cnt) { - int i; - for (i = 0; i < cnt; i++) inc_pc(); - return 0; -} -unsigned int set_pc(unsigned int cnt) { - global_registers[Spc]=cnt; - return 0; -} -unsigned int get_pc() { - if ((unsigned char)global_registers[Spc] < MEM_SIZE*MEMS_COUNT - global_current_memory*MEM_SIZE ) { - return (unsigned int)global_registers[Spc]; - } else { - return 0; - } -} - -enum RunMode run_proc(enum RunMode mode) { - volatile struct InstRec inst_rec; - - if (RUN_INIT == mode) { - lcd_caret_reset(); - lcd_print("Run...now"); - - global_registers[Spc] = 0; - clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); - - // �v���O�������s���֑J�� - return RUN_PROC; - } - - if (RUN_PROC == mode) { - // ���߃t�F�b�` - inst_rec = inst_fetch(); - // ���߃f�R�[�h���s - inst_decode(inst_rec); - // pc�\�� - { - char buf[5]; - sprintf(buf, "%02x", (unsigned char)global_registers[Spc]); - print_block("pc", 2, HEX6_7); - print_block(buf, 2, HEX4_5); - } - - // �f�o�b�N�p - if ( global_registers[Ssw_run] ) delay10ms(100U); - - // �v���O�����I������ - if (inst_rec.inst != INST_END) return RUN_PROC; - return RUN_TERM; - } - - if (RUN_TERM == mode) { - lcd_caret_reset(); - lcd_print("Run...Exit"); - return RUN_STOP; - } - - // Default - return RUN_STOP; -} diff --git a/software/DE2_115_ASM/sys_prog.h b/software/DE2_115_ASM/sys_prog.h deleted file mode 100644 index b112e4c..0000000 --- a/software/DE2_115_ASM/sys_prog.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * sys_prog.h - * - * Created on: 2016/12/15 - * Author: takayun - */ - -#ifndef SYS_PROG_H_ -#define SYS_PROG_H_ - -/************************************************** - * Defines - **************************************************/ - -// �v���O�������s��� -enum RunMode { RUN_STOP, RUN_INIT, RUN_PROC, RUN_TERM }; - -/************************************************** - * Variables - **************************************************/ - -/************************************************** - * Functions - **************************************************/ - -// ���S��PC�̃J�E���g�A�b�v���s�� -unsigned int inc_pc(); -unsigned int add_pc(unsigned int); -unsigned int set_pc(unsigned int); -unsigned int get_pc(); - -enum RunMode run_proc(enum RunMode mode); - -#endif /* SYS_PROG_H_ */ diff --git a/software/DE2_115_ASM/sys_register.c b/software/DE2_115_ASM/sys_register.c deleted file mode 100644 index 26ba99b..0000000 --- a/software/DE2_115_ASM/sys_register.c +++ /dev/null @@ -1,17 +0,0 @@ -/* - * sys_register.c - * - * Created on: 2016/11/24 - * Author: takayun - */ -#include "sys_register.h" - -char global_registers[REG_MAX_COUNT]; - -void registers_init() { - int i; - for (i = 0; i < REG_MAX_COUNT; i++) global_registers[i] = 0; -} - - - diff --git a/software/DE2_115_ASM/sys_register.h b/software/DE2_115_ASM/sys_register.h deleted file mode 100644 index 2603f26..0000000 --- a/software/DE2_115_ASM/sys_register.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * sys_register.h - * - * Created on: 2016/11/24 - * Author: takayun - */ - -#ifndef SYS_REGISTER_H_ -#define SYS_REGISTER_H_ - -/************************************************** - * Defines - **************************************************/ - -// ���W�X�^�̒�` -enum Register { - /* �ʏ�̃��W�X�^ */ - Szero, //�[�����W�X�^ - Spc, //�v���O�����J�E���^ - Ssp, //�X�^�b�N�|�C���^ - Sgp0, //�ėp���W�X�^0 - Sgp1, //�ėp���W�X�^1 - Sacc, //�A�L�������[�^ - Sflg, //�t���O���W�X�^ - /* �X�C�b�`�ǂݏo���p���W�X�^ */ - Ssw_data, //�f�[�^(8bit) - Ssw_inst, //����(4bit) - Ssw_regi, //���W�X�^�ԍ�(4bit) - Ssw_memi, //�������Ԓn(4bit) - Ssw_psel, //�v���O�����Z���N�^(4bit) - Ssw_rw, //�ǂݏ������[�h(1bit) - Ssw_run, //���s���[�h(1bit) - /* 7�Z�O�p���W�X�^ */ - Sseg, - - /* �z��錾�p */ - REG_MAX_COUNT -}; - -/************************************************** - * Variables - **************************************************/ - -// ���W�X�^�p�̕ϐ� -extern char global_registers[REG_MAX_COUNT]; - -/************************************************** - * Functions - **************************************************/ - -void registers_init(); - - -#endif /* SYS_REGISTER_H_ */ diff --git a/software/DE2_115_ASM2/.project b/software/DE2_115_ASM2/.project new file mode 100644 index 0000000..499f976 --- /dev/null +++ b/software/DE2_115_ASM2/.project @@ -0,0 +1,96 @@ + + + DE2_115_ASM2 + + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://DE2_115_ASM2} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIAppNature + com.altera.sbtgui.project.SBTGUIManagedNature + + diff --git a/software/DE2_115_ASM2_bsp/.project b/software/DE2_115_ASM2_bsp/.project new file mode 100644 index 0000000..4001808 --- /dev/null +++ b/software/DE2_115_ASM2_bsp/.project @@ -0,0 +1,85 @@ + + + DE2_115_ASM2_bsp + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://DE2_115_ASM2_bsp} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIBspNature + + diff --git a/software/DE2_115_ASM3_debug/.project b/software/DE2_115_ASM3_debug/.project new file mode 100644 index 0000000..7d94c46 --- /dev/null +++ b/software/DE2_115_ASM3_debug/.project @@ -0,0 +1,96 @@ + + + DE2_115_ASM3_debug + + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://DE2_115_ASM3_debug} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIAppNature + com.altera.sbtgui.project.SBTGUIManagedNature + + diff --git a/software/DE2_115_ASM3_debug_bsp/.project b/software/DE2_115_ASM3_debug_bsp/.project new file mode 100644 index 0000000..9d18999 --- /dev/null +++ b/software/DE2_115_ASM3_debug_bsp/.project @@ -0,0 +1,85 @@ + + + DE2_115_ASM3_debug_bsp + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://DE2_115_ASM3_debug_bsp} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIBspNature + + diff --git a/software/DE2_115_ASM3_release/.cproject b/software/DE2_115_ASM3_release/.cproject new file mode 100644 index 0000000..29e777e --- /dev/null +++ b/software/DE2_115_ASM3_release/.cproject @@ -0,0 +1,508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + make + + mem_init_install + true + false + false + + + make + + mem_init_generate + true + false + false + + + make + + help + true + false + false + + + + diff --git a/software/DE2_115_ASM3_release/.force_relink b/software/DE2_115_ASM3_release/.force_relink new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/software/DE2_115_ASM3_release/.force_relink diff --git a/software/DE2_115_ASM3_release/.project b/software/DE2_115_ASM3_release/.project new file mode 100644 index 0000000..20f8238 --- /dev/null +++ b/software/DE2_115_ASM3_release/.project @@ -0,0 +1,96 @@ + + + DE2_115_ASM3_release + + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + com.altera.sbtgui.project.makefileBuilder + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://DE2_115_ASM3_release} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIAppNature + com.altera.sbtgui.project.SBTGUIManagedNature + + diff --git a/software/DE2_115_ASM3_release/DE2_115_ASM3_release.elf b/software/DE2_115_ASM3_release/DE2_115_ASM3_release.elf new file mode 100644 index 0000000..07879a6 --- /dev/null +++ b/software/DE2_115_ASM3_release/DE2_115_ASM3_release.elf Binary files differ diff --git a/software/DE2_115_ASM3_release/DE2_115_ASM3_release.map b/software/DE2_115_ASM3_release/DE2_115_ASM3_release.map new file mode 100644 index 0000000..8f885e1 --- /dev/null +++ b/software/DE2_115_ASM3_release/DE2_115_ASM3_release.map @@ -0,0 +1,2510 @@ +Archive member included because of file (symbol) + +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + obj/default/hex_out.o (__divsi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + obj/default/inst_decoder.o (__mulsi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + obj/default/hex_encoder.o (__ctype_ptr) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + obj/default/hello_world_small.o (sprintf) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + obj/default/LCD.o (strlen) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) (___vfprintf_internal_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__swsetup_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (_dtoa_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (_fflush_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__sinit) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) (_free_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__sfvwrite_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) (_fwalk_reent) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) (_impure_ptr) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (_localeconv_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) (__smakebuf_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) (_malloc_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (memchr) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (memcpy) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) (memmove) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) (memset) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (_Bfree) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) (_realloc_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__isinfd) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__isnand) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) (_sbrk_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) (__sclose) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) (strcmp) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) (_write_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) (_calloc_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) (_close_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) (fclose) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) (_fstat_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) (errno) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) (_isatty_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) (_lseek_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) (_read_r) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__udivdi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__umoddi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__subdf3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__muldf3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__divdf3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__eqdf2) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__nedf2) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__gtdf2) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__gedf2) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) (__ltdf2) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__floatsidf) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__fixdfsi) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) (__thenan_df) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) (__floatunsidf) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) (__muldi3) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) (__clz_tab) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) (__clzsi2) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) (__pack_d) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) (__unpack_d) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) (__fpcmp_parts_d) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_close.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) (close) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_close.o) (alt_fd_list) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_errno.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_close.o) (alt_errno) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_fstat.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) (fstat) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_isatty.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) (isatty) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_load.o) + ../DE2_115_ASM3_release_bsp//obj/HAL/src/crt0.o (alt_load) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_lseek.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) (lseek) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) + ../DE2_115_ASM3_release_bsp//obj/HAL/src/crt0.o (alt_main) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_malloc_lock.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) (__malloc_lock) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_read.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) (read) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_release_fd.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_close.o) (alt_release_fd) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sbrk.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) (sbrk) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_usleep.o) + obj/default/LCD.o (usleep) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_write.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) (write) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sys_init.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) (alt_irq_init) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_avalon_jtag_uart_read_fd) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_avalon_jtag_uart_init) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) (altera_avalon_jtag_uart_ioctl) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) (altera_avalon_jtag_uart_read) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) (altera_avalon_jtag_uart_write) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_avalon_lcd_16207_init) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_avalon_lcd_16207_write_fd) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_alarm_start.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) (alt_alarm_start) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_busy_sleep.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_usleep.o) (alt_busy_sleep) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_load.o) (alt_dcache_flush_all) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sys_init.o) (alt_dev_llist_insert) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_ctors.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) (_do_ctors) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_dtors.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) (_do_dtors) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_load.o) (alt_icache_flush_all) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) (alt_ic_isr_register) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic.o) (alt_iic_isr_register) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_io_redirect.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) (alt_io_redirect) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_entry.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic_isr_register.o) (alt_irq_entry) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_handler.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic_isr_register.o) (alt_irq_handler) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_vars.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic.o) (alt_irq_active) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_open.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_io_redirect.o) (open) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_tick.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) (_alt_tick_rate) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sys_init.o) (altera_nios2_qsys_irq_init) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exception_entry.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_entry.o) (alt_exception) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_dev.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_open.o) (alt_find_dev) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_file.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_open.o) (alt_find_file) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_get_fd.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_open.o) (alt_get_fd) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) (atexit) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) (exit) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_dev.o) (memcmp) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) (__register_exitproc) +c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) (__call_exitprocs) +../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exit.o) + c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) (_exit) + +Allocating common symbols +Common symbol size file + +alt_irq 0x100 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_handler.o) +errno 0x4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) +stack 0x5 obj/default/hello_world_small.o +global_registers 0xf obj/default/sys_register.o +_atexit0 0x190 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + +Memory Configuration + +Name Origin Length Attributes +reset 0x00000000 0x00000020 +onchip_memory 0x00000020 0x00031fe0 +*default* 0x00000000 0xffffffff + +Linker script and memory map + +LOAD ../DE2_115_ASM3_release_bsp//obj/HAL/src/crt0.o +LOAD obj/default/LCD.o +LOAD obj/default/hello_world_small.o +LOAD obj/default/hex_encoder.o +LOAD obj/default/hex_out.o +LOAD obj/default/input_int.o +LOAD obj/default/inst_decoder.o +LOAD obj/default/lcd_out.o +LOAD obj/default/sys_debug.o +LOAD obj/default/sys_except.o +LOAD obj/default/sys_memory.o +LOAD obj/default/sys_prog.o +LOAD obj/default/sys_register.o +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libstdc++.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libm.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +START GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a +LOAD ../DE2_115_ASM3_release_bsp/\libhal_bsp.a +END GROUP +LOAD c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a + 0x00000000 __alt_mem_onchip_memory = 0x0 + +.entry 0x00000000 0x20 + *(.entry) + .entry 0x00000000 0x20 ../DE2_115_ASM3_release_bsp//obj/HAL/src/crt0.o + 0x00000000 __reset + +.exceptions 0x00000020 0x194 + 0x00000020 PROVIDE (__ram_exceptions_start, ABSOLUTE (.)) + 0x00000020 . = ALIGN (0x20) + *(.irq) + *(.exceptions.entry.label) + .exceptions.entry.label + 0x00000020 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_entry.o) + 0x00000020 alt_irq_entry + .exceptions.entry.label + 0x00000020 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exception_entry.o) + 0x00000020 alt_exception + *(.exceptions.entry.user) + *(.exceptions.entry) + .exceptions.entry + 0x00000020 0x54 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exception_entry.o) + *(.exceptions.irqtest.user) + *(.exceptions.irqtest) + .exceptions.irqtest + 0x00000074 0x10 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_entry.o) + *(.exceptions.irqhandler.user) + *(.exceptions.irqhandler) + .exceptions.irqhandler + 0x00000084 0x4 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_entry.o) + *(.exceptions.irqreturn.user) + *(.exceptions.irqreturn) + .exceptions.irqreturn + 0x00000088 0x4 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_entry.o) + *(.exceptions.notirq.label) + .exceptions.notirq.label + 0x0000008c 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_entry.o) + *(.exceptions.notirq.user) + *(.exceptions.notirq) + .exceptions.notirq + 0x0000008c 0x8 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exception_entry.o) + *(.exceptions.soft.user) + *(.exceptions.soft) + *(.exceptions.unknown.user) + *(.exceptions.unknown) + .exceptions.unknown + 0x00000094 0x4 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exception_entry.o) + *(.exceptions.exit.label) + .exceptions.exit.label + 0x00000098 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_entry.o) + .exceptions.exit.label + 0x00000098 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exception_entry.o) + *(.exceptions.exit.user) + *(.exceptions.exit) + .exceptions.exit + 0x00000098 0x54 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exception_entry.o) + *(.exceptions) + .exceptions 0x000000ec 0xc8 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_handler.o) + 0x000000ec alt_irq_handler + 0x000001b4 PROVIDE (__ram_exceptions_end, ABSOLUTE (.)) + 0x00000020 PROVIDE (__flash_exceptions_start, LOADADDR (.exceptions)) + +.text 0x000001b4 0xfdf4 + 0x000001b4 PROVIDE (stext, ABSOLUTE (.)) + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + *(.init) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + .text 0x000001b4 0x3c ../DE2_115_ASM3_release_bsp//obj/HAL/src/crt0.o + 0x000001b4 _start + .text 0x000001f0 0x1ec obj/default/LCD.o + 0x000001f0 LCD_Init + 0x0000028c LCD_Show_Text + 0x00000314 LCD_Line2 + 0x00000350 LCD_Test + .text 0x000003dc 0x7cc obj/default/hello_world_small.o + 0x0000049c store_value + 0x00000580 store_inst + 0x000006e4 print_change_memory + 0x00000920 main + .text 0x00000ba8 0x630 obj/default/hex_encoder.o + 0x00000ba8 encodeNumHex + 0x00000d84 encodeLatHex + .text 0x000011d8 0x318 obj/default/hex_out.o + 0x000011d8 print_block + 0x00001368 clear_block + 0x000013f8 print_number + .text 0x000014f0 0x2c0 obj/default/input_int.o + 0x000014f0 in_int + 0x00001600 push_decode + 0x000016ac push_int + .text 0x000017b0 0x75c obj/default/inst_decoder.o + 0x000017b0 inst_fetch + 0x000017fc inst_decode + 0x00001a74 inst_jump + 0x00001ad0 inst_output + 0x00001b40 inst_load + 0x00001b78 inst_store + 0x00001bb0 inst_delay + 0x00001c0c inst_add + 0x00001c68 inst_sub + 0x00001cc4 inst_comp + 0x00001d94 inst_jeq + 0x00001e00 inst_jne + 0x00001e6c inst_jieq + 0x00001ebc inst_jine + .text 0x00001f0c 0xc8 obj/default/lcd_out.o + 0x00001f0c lcd_init + 0x00001f54 lcd_caret_reset + 0x00001f7c lcd_caret_reset2 + 0x00001fa4 lcd_print + .text 0x00001fd4 0x588 obj/default/sys_debug.o + 0x00001fd4 display_inst + 0x00002080 display_mem + 0x000020ec convertRegName + 0x0000225c convertInstName + 0x00002520 delay10ms + .text 0x0000255c 0x40 obj/default/sys_except.o + 0x0000255c panic + .text 0x0000259c 0x240 obj/default/sys_memory.o + 0x0000259c memory_init + 0x00002618 inst_memory_store + 0x00002668 inst_memory_load + 0x000026b0 memory_store + 0x0000274c memory_load + .text 0x000027dc 0x2c4 obj/default/sys_prog.o + 0x000027dc inc_pc + 0x00002860 add_pc + 0x000028b0 set_pc + 0x000028e8 get_pc + 0x00002950 run_proc + .text 0x00002aa0 0x50 obj/default/sys_register.o + 0x00002aa0 registers_init + .text 0x00002af0 0x14c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + 0x00002b6c __divsi3 + 0x00002bcc __modsi3 + 0x00002c2c __udivsi3 + 0x00002c34 __umodsi3 + .text 0x00002c3c 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + 0x00002c3c __mulsi3 + .text 0x00002c74 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .text 0x00002c74 0xd4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + 0x00002c74 sprintf + 0x00002ce8 _sprintf_r + .text 0x00002d48 0x74 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + 0x00002d48 strlen + .text 0x00002dbc 0x1f40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + 0x00002e14 ___vfprintf_internal_r + 0x00004cd8 __vfprintf_internal + .text 0x00004cfc 0x13c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + 0x00004cfc __swsetup_r + .text 0x00004e38 0x17f8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + 0x0000507c _dtoa_r + .text 0x00006630 0x230 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + 0x00006630 _fflush_r + 0x0000682c fflush + .text 0x00006860 0x2f4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + 0x000068b8 __sfp_lock_acquire + 0x000068bc __sfp_lock_release + 0x000068c0 __sinit_lock_acquire + 0x000068c4 __sinit_lock_release + 0x000068c8 __sinit + 0x0000697c __fp_unlock_all + 0x00006994 __fp_lock_all + 0x000069ac _cleanup_r + 0x000069b8 _cleanup + 0x000069c8 __sfmoreglue + 0x00006a64 __sfp + .text 0x00006b54 0x440 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + 0x00006b54 _malloc_trim_r + 0x00006c80 _free_r + .text 0x00006f94 0x49c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + 0x00006f94 __sfvwrite_r + .text 0x00007430 0x180 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + 0x00007430 _fwalk_reent + 0x000074f8 _fwalk + .text 0x000075b0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .text 0x000075b0 0xc4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + 0x000075b0 __locale_charset + 0x000075b8 _localeconv_r + 0x000075c4 localeconv + 0x000075d4 _setlocale_r + 0x00007658 setlocale + .text 0x00007674 0x194 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + 0x00007674 __smakebuf_r + .text 0x00007808 0x740 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + 0x00007808 _malloc_r + .text 0x00007f48 0xe4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + 0x00007f48 memchr + .text 0x0000802c 0xa0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + 0x0000802c memcpy + .text 0x000080cc 0xe0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + 0x000080cc memmove + .text 0x000081ac 0x98 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + 0x000081ac memset + .text 0x00008244 0x108c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + 0x00008244 _Bfree + 0x0000826c __hi0bits + 0x000082dc __lo0bits + 0x000083a0 __mcmp + 0x00008400 __ulp + 0x00008480 __b2d + 0x000085a0 __ratio + 0x00008650 _mprec_log10 + 0x000086e4 __copybits + 0x0000873c __any_on + 0x000087c4 _Balloc + 0x00008880 __d2b + 0x000089fc __mdiff + 0x00008b88 __lshift + 0x00008cd4 __multiply + 0x00008f28 __i2b + 0x00008f64 __multadd + 0x00009090 __pow5mult + 0x000091b0 __s2b + .text 0x000092d0 0x5f4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + 0x000092d0 _realloc_r + .text 0x000098c4 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + 0x000098c4 __isinfd + .text 0x00009904 0x30 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + 0x00009904 __isnand + .text 0x00009934 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + 0x00009934 _sbrk_r + .text 0x000099a4 0x14c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + 0x000099a4 __sclose + 0x000099ac __sseek + 0x00009a14 __swrite + 0x00009a90 __sread + .text 0x00009af0 0xbc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + 0x00009af0 strcmp + .text 0x00009bac 0x78 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + 0x00009bac _write_r + .text 0x00009c24 0xc8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + 0x00009c24 _calloc_r + .text 0x00009cec 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + 0x00009cec _close_r + .text 0x00009d5c 0x124 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + 0x00009d5c _fclose_r + 0x00009e6c fclose + .text 0x00009e80 0x74 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + 0x00009e80 _fstat_r + .text 0x00009ef4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .text 0x00009ef4 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + 0x00009ef4 _isatty_r + .text 0x00009f64 0x78 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + 0x00009f64 _lseek_r + .text 0x00009fdc 0x78 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + 0x00009fdc _read_r + .text 0x0000a054 0x66c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + 0x0000a054 __udivdi3 + .text 0x0000a6c0 0x660 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + 0x0000a6c0 __umoddi3 + .text 0x0000ad20 0x504 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + 0x0000b130 __subdf3 + 0x0000b1b0 __adddf3 + .text 0x0000b224 0x3c4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + 0x0000b224 __muldf3 + .text 0x0000b5e8 0x258 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + 0x0000b5e8 __divdf3 + .text 0x0000b840 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + 0x0000b840 __eqdf2 + .text 0x0000b8c8 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + 0x0000b8c8 __nedf2 + .text 0x0000b950 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + 0x0000b950 __gtdf2 + .text 0x0000b9d8 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + 0x0000b9d8 __gedf2 + .text 0x0000ba60 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + 0x0000ba60 __ltdf2 + .text 0x0000bae8 0xf8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + 0x0000bae8 __floatsidf + .text 0x0000bbe0 0xd8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + 0x0000bbe0 __fixdfsi + .text 0x0000bcb8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .text 0x0000bcb8 0x194 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + 0x0000bcb8 __floatunsidf + .text 0x0000be4c 0x124 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + 0x0000be4c __muldi3 + .text 0x0000bf70 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .text 0x0000bf70 0x80 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + 0x0000bf70 __clzsi2 + .text 0x0000bff0 0x314 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + 0x0000bff0 __pack_d + .text 0x0000c304 0x138 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + 0x0000c304 __unpack_d + .text 0x0000c43c 0xc8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + 0x0000c43c __fpcmp_parts_d + .text 0x0000c504 0x160 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_close.o) + 0x0000c504 close + .text 0x0000c664 0x2c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev.o) + .text 0x0000c690 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_errno.o) + .text 0x0000c690 0x138 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_fstat.o) + 0x0000c690 fstat + .text 0x0000c7c8 0x124 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_isatty.o) + 0x0000c7c8 isatty + .text 0x0000c8ec 0xec ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_load.o) + 0x0000c8ec alt_load + .text 0x0000c9d8 0x154 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_lseek.o) + 0x0000c9d8 lseek + .text 0x0000cb2c 0x6c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) + 0x0000cb2c alt_main + .text 0x0000cb98 0x40 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_malloc_lock.o) + 0x0000cb98 __malloc_lock + 0x0000cbb8 __malloc_unlock + .text 0x0000cbd8 0x184 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_read.o) + 0x0000cbd8 read + .text 0x0000cd5c 0x78 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_release_fd.o) + 0x0000cd5c alt_release_fd + .text 0x0000cdd4 0xbc ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sbrk.o) + 0x0000cdd4 sbrk + .text 0x0000ce90 0x30 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_usleep.o) + 0x0000ce90 usleep + .text 0x0000cec0 0x184 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_write.o) + 0x0000cec0 write + .text 0x0000d044 0xc8 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sys_init.o) + 0x0000d044 alt_irq_init + 0x0000d078 alt_sys_init + .text 0x0000d10c 0x148 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + 0x0000d10c altera_avalon_jtag_uart_read_fd + 0x0000d164 altera_avalon_jtag_uart_write_fd + 0x0000d1bc altera_avalon_jtag_uart_close_fd + 0x0000d204 altera_avalon_jtag_uart_ioctl_fd + .text 0x0000d254 0x40c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + 0x0000d254 altera_avalon_jtag_uart_init + 0x0000d5ec altera_avalon_jtag_uart_close + .text 0x0000d660 0xf4 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + 0x0000d660 altera_avalon_jtag_uart_ioctl + .text 0x0000d754 0x224 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + 0x0000d754 altera_avalon_jtag_uart_read + .text 0x0000d978 0x240 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + 0x0000d978 altera_avalon_jtag_uart_write + .text 0x0000dbb8 0xf80 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + 0x0000e3f4 altera_avalon_lcd_16207_write + 0x0000e9fc altera_avalon_lcd_16207_init + .text 0x0000eb38 0x58 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + 0x0000eb38 altera_avalon_lcd_16207_write_fd + .text 0x0000eb90 0x154 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_alarm_start.o) + 0x0000eb90 alt_alarm_start + .text 0x0000ece4 0x15c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_busy_sleep.o) + 0x0000ece4 alt_busy_sleep + .text 0x0000ee40 0x1c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + 0x0000ee40 alt_dcache_flush_all + .text 0x0000ee5c 0x114 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + 0x0000ee5c alt_dev_llist_insert + .text 0x0000ef70 0x64 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_ctors.o) + 0x0000ef70 _do_ctors + .text 0x0000efd4 0x64 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_dtors.o) + 0x0000efd4 _do_dtors + .text 0x0000f038 0x1c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + 0x0000f038 alt_icache_flush_all + .text 0x0000f054 0x1d4 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic.o) + 0x0000f054 alt_ic_isr_register + 0x0000f0a4 alt_ic_irq_enable + 0x0000f140 alt_ic_irq_disable + 0x0000f1e0 alt_ic_irq_enabled + .text 0x0000f228 0xf8 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + 0x0000f228 alt_iic_isr_register + .text 0x0000f320 0x150 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_io_redirect.o) + 0x0000f3f8 alt_io_redirect + .text 0x0000f470 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_entry.o) + .text 0x0000f470 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_handler.o) + .text 0x0000f470 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_vars.o) + .text 0x0000f470 0x2e4 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_open.o) + 0x0000f568 open + .text 0x0000f754 0x1a4 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_tick.o) + 0x0000f754 alt_alarm_stop + 0x0000f7ec alt_tick + .text 0x0000f8f8 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + 0x0000f8f8 altera_nios2_qsys_irq_init + .text 0x0000f918 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exception_entry.o) + .text 0x0000f918 0x94 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_dev.o) + 0x0000f918 alt_find_dev + .text 0x0000f9ac 0x120 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_file.o) + 0x0000f9ac alt_find_file + .text 0x0000facc 0xd0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_get_fd.o) + 0x0000facc alt_get_fd + .text 0x0000fb9c 0x14 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + 0x0000fb9c atexit + .text 0x0000fbb0 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + 0x0000fbb0 exit + .text 0x0000fbe8 0x74 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + 0x0000fbe8 memcmp + .text 0x0000fc5c 0x134 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + 0x0000fc5c __register_exitproc + .text 0x0000fd90 0x1b4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + 0x0000fd94 __call_exitprocs + .text 0x0000ff44 0x60 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exit.o) + 0x0000ff84 _exit + *(.gnu.warning.*) + *(.fini) + 0x0000ffa4 PROVIDE (__etext, ABSOLUTE (.)) + 0x0000ffa4 PROVIDE (_etext, ABSOLUTE (.)) + 0x0000ffa4 PROVIDE (etext, ABSOLUTE (.)) + *(.eh_frame_hdr) + 0x0000ffa4 . = ALIGN (0x4) + 0x0000ffa4 PROVIDE (__preinit_array_start, ABSOLUTE (.)) + *(.preinit_array) + 0x0000ffa4 PROVIDE (__preinit_array_end, ABSOLUTE (.)) + 0x0000ffa4 PROVIDE (__init_array_start, ABSOLUTE (.)) + *(.init_array) + 0x0000ffa4 PROVIDE (__init_array_end, ABSOLUTE (.)) + 0x0000ffa4 PROVIDE (__fini_array_start, ABSOLUTE (.)) + *(.fini_array) + 0x0000ffa4 PROVIDE (__fini_array_end, ABSOLUTE (.)) + *(.eh_frame) + *(.gcc_except_table) + *(.dynamic) + 0x0000ffa4 PROVIDE (__CTOR_LIST__, ABSOLUTE (.)) + *(.ctors) + *(SORT(.ctors.*)) + .ctors.65535 0x0000ffa4 0x4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + 0x0000ffa8 PROVIDE (__CTOR_END__, ABSOLUTE (.)) + 0x0000ffa8 PROVIDE (__DTOR_LIST__, ABSOLUTE (.)) + *(.dtors) + *(SORT(.dtors.*)) + 0x0000ffa8 PROVIDE (__DTOR_END__, ABSOLUTE (.)) + *(.jcr) + 0x0000ffa8 . = ALIGN (0x4) + +.rodata 0x0000ffa8 0x72c + 0x0000ffa8 PROVIDE (__ram_rodata_start, ABSOLUTE (.)) + 0x0000ffa8 . = ALIGN (0x4) + *(.rodata .rodata.* .gnu.linkonce.r.*) + .rodata 0x0000ffa8 0x28 obj/default/LCD.o + .rodata 0x0000ffd0 0xb4 obj/default/hello_world_small.o + .rodata 0x00010084 0xc obj/default/hex_out.o + .rodata 0x00010090 0x8 obj/default/inst_decoder.o + .rodata 0x00010098 0x40 obj/default/sys_debug.o + .rodata 0x000100d8 0x8 obj/default/sys_except.o + .rodata 0x000100e0 0x24 obj/default/sys_prog.o + .rodata 0x00010104 0x281 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + 0x00010104 _ctype_ + *fill* 0x00010385 0x3 00 + .rodata.str1.4 + 0x00010388 0x5e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + 0x60 (size before relaxing) + .rodata 0x000103e6 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + *fill* 0x00010406 0x2 00 + .rodata.str1.4 + 0x00010408 0x10 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + 0x14 (size before relaxing) + .rodata.str1.4 + 0x00010418 0x2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + 0x4 (size before relaxing) + *fill* 0x0001041a 0x2 00 + .rodata.str1.4 + 0x0001041c 0x10 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + 0x18 (size before relaxing) + .rodata 0x0001042c 0x30 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .rodata 0x0001045c 0x124 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + 0x0001045c __mprec_tens + 0x00010524 __mprec_bigtens + 0x0001054c __mprec_tinytens + .rodata 0x00010580 0x14 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + 0x00010580 __thenan_df + .rodata 0x00010594 0x100 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + 0x00010594 __clz_tab + .rodata 0x00010694 0xc ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev.o) + .rodata 0x000106a0 0x10 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) + .rodata 0x000106b0 0x24 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sys_init.o) + *(.rodata1) + 0x000106d4 . = ALIGN (0x4) + 0x000106d4 PROVIDE (__ram_rodata_end, ABSOLUTE (.)) + 0x0000ffa8 PROVIDE (__flash_rodata_start, LOADADDR (.rodata)) + +.rwdata 0x000106d4 0x1b88 load address 0x0001225c + 0x000106d4 PROVIDE (__ram_rwdata_start, ABSOLUTE (.)) + 0x000106d4 . = ALIGN (0x4) + *(.got.plt) + *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + .data 0x000106d4 0x0 ../DE2_115_ASM3_release_bsp//obj/HAL/src/crt0.o + .data 0x000106d4 0x0 obj/default/LCD.o + .data 0x000106d4 0x0 obj/default/hello_world_small.o + .data 0x000106d4 0x0 obj/default/hex_encoder.o + .data 0x000106d4 0x0 obj/default/hex_out.o + .data 0x000106d4 0x0 obj/default/input_int.o + .data 0x000106d4 0x0 obj/default/inst_decoder.o + .data 0x000106d4 0x0 obj/default/lcd_out.o + .data 0x000106d4 0x0 obj/default/sys_debug.o + .data 0x000106d4 0x0 obj/default/sys_except.o + .data 0x000106d4 0x0 obj/default/sys_memory.o + .data 0x000106d4 0x0 obj/default/sys_prog.o + .data 0x000106d4 0x0 obj/default/sys_register.o + .data 0x000106d4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .data 0x000106d4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .data 0x000106d4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .data 0x000106d4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + .data 0x000106d4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .data 0x000106d4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .data 0x000106d4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .data 0x000106d4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .data 0x000106d4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .data 0x000106d4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .data 0x000106d4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .data 0x000106d4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .data 0x000106d4 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .data 0x000106d4 0x400 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .data 0x00010ad4 0xc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + 0x00010ad4 __lc_ctype + .data 0x00010ae0 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .data 0x00010ae0 0x408 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + 0x00010ae0 __malloc_av_ + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .data 0x00010ee8 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .data 0x00010ee8 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_close.o) + .data 0x00010ee8 0x1a8 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev.o) + 0x00010ee8 alt_dev_null + 0x00010f10 alt_fd_list + .data 0x00011090 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_errno.o) + .data 0x00011090 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_fstat.o) + .data 0x00011090 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_isatty.o) + .data 0x00011090 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_load.o) + .data 0x00011090 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_lseek.o) + .data 0x00011090 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) + .data 0x00011090 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .data 0x00011090 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_read.o) + .data 0x00011090 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_release_fd.o) + .data 0x00011090 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sbrk.o) + .data 0x00011090 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_usleep.o) + .data 0x00011090 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_write.o) + .data 0x00011090 0x1180 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sys_init.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_alarm_start.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_ctors.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_dtors.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_io_redirect.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_entry.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_handler.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_vars.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_open.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_tick.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exception_entry.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_dev.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_file.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_get_fd.o) + .data 0x00012210 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .data 0x00012210 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .data 0x00012210 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .data 0x00012210 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .data 0x00012210 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .data 0x00012210 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exit.o) + 0x0001a210 _gp = ABSOLUTE ((. + 0x8000)) + 0x0001a210 PROVIDE (gp, _gp) + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + .sdata 0x00012210 0x1 obj/default/input_int.o + 0x00012210 PUSH_EVENT + *fill* 0x00012211 0x3 00 + .sdata 0x00012214 0x4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + 0x00012214 __ctype_ptr + .sdata 0x00012218 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + 0x00012218 _impure_ptr + 0x0001221c _global_impure_ptr + .sdata 0x00012220 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + 0x00012220 __mb_cur_max + .sdata 0x00012228 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + 0x00012228 __malloc_trim_threshold + 0x0001222c __malloc_sbrk_base + .sdata 0x00012230 0x14 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev.o) + 0x00012230 alt_fs_list + 0x00012238 alt_dev_list + 0x00012240 alt_max_fd + .sdata 0x00012244 0x4 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_errno.o) + 0x00012244 alt_errno + .sdata 0x00012248 0x4 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sbrk.o) + .sdata 0x0001224c 0x4 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .sdata 0x00012250 0x4 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_vars.o) + 0x00012250 alt_priority_mask + .sdata 0x00012254 0x8 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_tick.o) + 0x00012254 alt_alarm_list + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + 0x0001225c . = ALIGN (0x4) + 0x0001225c _edata = ABSOLUTE (.) + 0x0001225c PROVIDE (edata, ABSOLUTE (.)) + 0x0001225c PROVIDE (__ram_rwdata_end, ABSOLUTE (.)) + 0x0001225c PROVIDE (__flash_rwdata_start, LOADADDR (.rwdata)) + +.bss 0x00013de4 0x810 + 0x00013de4 __bss_start = ABSOLUTE (.) + 0x00013de4 PROVIDE (__sbss_start, ABSOLUTE (.)) + 0x00013de4 PROVIDE (___sbss_start, ABSOLUTE (.)) + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + .sbss 0x00013de4 0x5 obj/default/hello_world_small.o + 0x00013de4 stack + *fill* 0x00013de9 0x3 00 + .sbss 0x00013dec 0x8 obj/default/input_int.o + .sbss 0x00013df4 0x4 obj/default/sys_memory.o + 0x00013df4 global_current_memory + .sbss 0x00013df8 0xc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + 0x00013df8 __nlocale_changed + 0x00013dfc __mlocale_changed + 0x00013e00 _PathLocale + .sbss 0x00013e04 0xc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + 0x00013e04 __malloc_top_pad + 0x00013e08 __malloc_max_sbrked_mem + 0x00013e0c __malloc_max_total_mem + .sbss 0x00013e10 0x4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + 0x00013e10 errno + .sbss 0x00013e14 0xc ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) + 0x00013e14 alt_argc + 0x00013e18 alt_argv + 0x00013e1c alt_envp + .sbss 0x00013e20 0x4 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_vars.o) + 0x00013e20 alt_irq_active + .sbss 0x00013e24 0x8 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_tick.o) + 0x00013e24 _alt_tick_rate + 0x00013e28 _alt_nticks + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + 0x00013e2c PROVIDE (__sbss_end, ABSOLUTE (.)) + 0x00013e2c PROVIDE (___sbss_end, ABSOLUTE (.)) + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + .bss 0x00013e2c 0x0 ../DE2_115_ASM3_release_bsp//obj/HAL/src/crt0.o + .bss 0x00013e2c 0x0 obj/default/LCD.o + .bss 0x00013e2c 0x0 obj/default/hello_world_small.o + .bss 0x00013e2c 0x0 obj/default/hex_encoder.o + .bss 0x00013e2c 0x0 obj/default/hex_out.o + .bss 0x00013e2c 0x0 obj/default/input_int.o + .bss 0x00013e2c 0x0 obj/default/inst_decoder.o + .bss 0x00013e2c 0x0 obj/default/lcd_out.o + .bss 0x00013e2c 0x0 obj/default/sys_debug.o + .bss 0x00013e2c 0x0 obj/default/sys_except.o + .bss 0x00013e2c 0x500 obj/default/sys_memory.o + .bss 0x0001432c 0x0 obj/default/sys_prog.o + .bss 0x0001432c 0x0 obj/default/sys_register.o + .bss 0x0001432c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .bss 0x0001432c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .bss 0x0001432c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .bss 0x0001432c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + .bss 0x0001432c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .bss 0x0001432c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .bss 0x0001432c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .bss 0x0001432c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .bss 0x0001432c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .bss 0x0001432c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .bss 0x0001432c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .bss 0x0001432c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .bss 0x0001432c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .bss 0x0001432c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .bss 0x0001432c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .bss 0x0001432c 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .bss 0x0001432c 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + 0x0001432c __malloc_current_mallinfo + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_close.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_errno.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_fstat.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_isatty.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_load.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_lseek.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_read.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_release_fd.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sbrk.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_usleep.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_write.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sys_init.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_alarm_start.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_ctors.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_dtors.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_io_redirect.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_entry.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_handler.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_vars.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_open.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_tick.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exception_entry.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_dev.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_file.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_get_fd.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .bss 0x00014354 0x0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .bss 0x00014354 0x0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exit.o) + *(COMMON) + COMMON 0x00014354 0xf obj/default/sys_register.o + 0x00014354 global_registers + *fill* 0x00014363 0x1 00 + COMMON 0x00014364 0x100 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_handler.o) + 0x00014364 alt_irq + COMMON 0x00014464 0x190 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + 0x00014464 _atexit0 + 0x000145f4 . = ALIGN (0x4) + 0x000145f4 __bss_end = ABSOLUTE (.) + +.onchip_memory 0x000145f4 0x0 + 0x000145f4 PROVIDE (_alt_partition_onchip_memory_start, ABSOLUTE (.)) + *(.onchip_memory. onchip_memory.*) + 0x000145f4 . = ALIGN (0x4) + 0x000145f4 PROVIDE (_alt_partition_onchip_memory_end, ABSOLUTE (.)) + 0x000145f4 _end = ABSOLUTE (.) + 0x000145f4 end = ABSOLUTE (.) + 0x000145f4 __alt_stack_base = ABSOLUTE (.) + 0x000145f4 PROVIDE (_alt_partition_onchip_memory_load_addr, LOADADDR (.onchip_memory)) + +.stab + *(.stab) + +.stabstr + *(.stabstr) + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment 0x00000000 0x26 + *(.comment) + .comment 0x00000000 0x26 obj/default/LCD.o + 0x27 (size before relaxing) + .comment 0x00000000 0x27 obj/default/hello_world_small.o + .comment 0x00000000 0x27 obj/default/hex_encoder.o + .comment 0x00000000 0x27 obj/default/hex_out.o + .comment 0x00000000 0x27 obj/default/input_int.o + .comment 0x00000000 0x27 obj/default/inst_decoder.o + .comment 0x00000000 0x27 obj/default/lcd_out.o + .comment 0x00000000 0x27 obj/default/sys_debug.o + .comment 0x00000000 0x27 obj/default/sys_except.o + .comment 0x00000000 0x27 obj/default/sys_memory.o + .comment 0x00000000 0x27 obj/default/sys_prog.o + .comment 0x00000000 0x27 obj/default/sys_register.o + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_close.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_errno.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_fstat.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_isatty.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_load.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_lseek.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_read.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_release_fd.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sbrk.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_usleep.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_write.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sys_init.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_alarm_start.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_ctors.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_dtors.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_io_redirect.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_handler.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_vars.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_open.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_tick.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_dev.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_file.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_get_fd.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .comment 0x00000000 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .comment 0x00000000 0x27 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exit.o) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges 0x00000000 0xe18 + *(.debug_aranges) + .debug_aranges + 0x00000000 0x28 ../DE2_115_ASM3_release_bsp//obj/HAL/src/crt0.o + .debug_aranges + 0x00000028 0x20 obj/default/LCD.o + .debug_aranges + 0x00000048 0x20 obj/default/hello_world_small.o + .debug_aranges + 0x00000068 0x20 obj/default/hex_encoder.o + .debug_aranges + 0x00000088 0x20 obj/default/hex_out.o + .debug_aranges + 0x000000a8 0x20 obj/default/input_int.o + .debug_aranges + 0x000000c8 0x20 obj/default/inst_decoder.o + .debug_aranges + 0x000000e8 0x20 obj/default/lcd_out.o + .debug_aranges + 0x00000108 0x20 obj/default/sys_debug.o + .debug_aranges + 0x00000128 0x20 obj/default/sys_except.o + .debug_aranges + 0x00000148 0x20 obj/default/sys_memory.o + .debug_aranges + 0x00000168 0x20 obj/default/sys_prog.o + .debug_aranges + 0x00000188 0x20 obj/default/sys_register.o + .debug_aranges + 0x000001a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_aranges + 0x000001c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_aranges + 0x000001e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + .debug_aranges + 0x00000208 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_aranges + 0x00000228 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_aranges + 0x00000248 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_aranges + 0x00000268 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_aranges + 0x00000288 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_aranges + 0x000002a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_aranges + 0x000002c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_aranges + 0x000002e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_aranges + 0x00000308 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_aranges + 0x00000328 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_aranges + 0x00000348 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_aranges + 0x00000368 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_aranges + 0x00000388 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_aranges + 0x000003a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_aranges + 0x000003c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_aranges + 0x000003e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_aranges + 0x00000408 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_aranges + 0x00000428 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_aranges + 0x00000448 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_aranges + 0x00000468 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_aranges + 0x00000488 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_aranges + 0x000004a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_aranges + 0x000004c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_aranges + 0x000004e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_aranges + 0x00000508 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_aranges + 0x00000528 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_aranges + 0x00000548 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_aranges + 0x00000568 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_aranges + 0x00000588 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_aranges + 0x000005a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_aranges + 0x000005c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_aranges + 0x000005e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_aranges + 0x00000608 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_aranges + 0x00000628 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_aranges + 0x00000648 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_aranges + 0x00000668 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_aranges + 0x00000688 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_aranges + 0x000006a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_aranges + 0x000006c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_aranges + 0x000006e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_aranges + 0x00000708 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_aranges + 0x00000728 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_aranges + 0x00000748 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_aranges + 0x00000768 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_aranges + 0x00000788 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_aranges + 0x000007a8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_aranges + 0x000007c8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_aranges + 0x000007e8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_aranges + 0x00000808 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .debug_aranges + 0x00000828 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_close.o) + .debug_aranges + 0x00000848 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev.o) + .debug_aranges + 0x00000868 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_aranges + 0x00000888 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_aranges + 0x000008a8 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_load.o) + .debug_aranges + 0x000008c8 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_aranges + 0x000008e8 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) + .debug_aranges + 0x00000908 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_aranges + 0x00000928 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_read.o) + .debug_aranges + 0x00000948 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_aranges + 0x00000968 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_aranges + 0x00000988 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_aranges + 0x000009a8 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_write.o) + .debug_aranges + 0x000009c8 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_aranges + 0x000009e8 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_aranges + 0x00000a08 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_aranges + 0x00000a28 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_aranges + 0x00000a48 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_aranges + 0x00000a68 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_aranges + 0x00000a88 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_aranges + 0x00000aa8 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_aranges + 0x00000ac8 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_aranges + 0x00000ae8 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_aranges + 0x00000b08 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_aranges + 0x00000b28 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_aranges + 0x00000b48 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_aranges + 0x00000b68 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_aranges + 0x00000b88 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_aranges + 0x00000ba8 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic.o) + .debug_aranges + 0x00000bc8 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_aranges + 0x00000be8 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_aranges + 0x00000c08 0x30 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_entry.o) + .debug_aranges + 0x00000c38 0x28 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_aranges + 0x00000c60 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_open.o) + .debug_aranges + 0x00000c80 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_tick.o) + .debug_aranges + 0x00000ca0 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_aranges + 0x00000cc0 0x38 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exception_entry.o) + .debug_aranges + 0x00000cf8 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_aranges + 0x00000d18 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_aranges + 0x00000d38 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_aranges + 0x00000d58 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_aranges + 0x00000d78 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_aranges + 0x00000d98 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_aranges + 0x00000db8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_aranges + 0x00000dd8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_aranges + 0x00000df8 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_pubnames + 0x00000000 0x17d8 + *(.debug_pubnames) + .debug_pubnames + 0x00000000 0x4c obj/default/LCD.o + .debug_pubnames + 0x0000004c 0x5c obj/default/hello_world_small.o + .debug_pubnames + 0x000000a8 0x34 obj/default/hex_encoder.o + .debug_pubnames + 0x000000dc 0x43 obj/default/hex_out.o + .debug_pubnames + 0x0000011f 0x49 obj/default/input_int.o + .debug_pubnames + 0x00000168 0xd9 obj/default/inst_decoder.o + .debug_pubnames + 0x00000241 0x56 obj/default/lcd_out.o + .debug_pubnames + 0x00000297 0x68 obj/default/sys_debug.o + .debug_pubnames + 0x000002ff 0x1c obj/default/sys_except.o + .debug_pubnames + 0x0000031b 0x88 obj/default/sys_memory.o + .debug_pubnames + 0x000003a3 0x4b obj/default/sys_prog.o + .debug_pubnames + 0x000003ee 0x3a obj/default/sys_register.o + .debug_pubnames + 0x00000428 0x48 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_pubnames + 0x00000470 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_pubnames + 0x0000048f 0x2e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .debug_pubnames + 0x000004bd 0x2d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + .debug_pubnames + 0x000004ea 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_pubnames + 0x00000507 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_pubnames + 0x0000054c 0x22 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_pubnames + 0x0000056e 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_pubnames + 0x0000058c 0x2b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_pubnames + 0x000005b7 0xdb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_pubnames + 0x00000692 0x31 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_pubnames + 0x000006c3 0x23 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_pubnames + 0x000006e6 0x2e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_pubnames + 0x00000714 0x39 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .debug_pubnames + 0x0000074d 0xc3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_pubnames + 0x00000810 0x23 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_pubnames + 0x00000833 0xce c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_pubnames + 0x00000901 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_pubnames + 0x0000091e 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_pubnames + 0x0000093b 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_pubnames + 0x00000959 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_pubnames + 0x00000976 0x13a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_pubnames + 0x00000ab0 0x21 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_pubnames + 0x00000ad1 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_pubnames + 0x00000af0 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_pubnames + 0x00000b0f 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_pubnames + 0x00000b2d 0x44 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_pubnames + 0x00000b71 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_pubnames + 0x00000b8e 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_pubnames + 0x00000bad 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_pubnames + 0x00000bcd 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_pubnames + 0x00000bec 0x2b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_pubnames + 0x00000c17 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_pubnames + 0x00000c36 0x1c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .debug_pubnames + 0x00000c52 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_pubnames + 0x00000c72 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_pubnames + 0x00000c91 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_pubnames + 0x00000caf 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_pubnames + 0x00000ccf 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_pubnames + 0x00000cef 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_pubnames + 0x00000d1b 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_pubnames + 0x00000d3a 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_pubnames + 0x00000d59 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_pubnames + 0x00000d77 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_pubnames + 0x00000d95 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_pubnames + 0x00000db3 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_pubnames + 0x00000dd1 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_pubnames + 0x00000def 0x22 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_pubnames + 0x00000e11 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_pubnames + 0x00000e31 0x22 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .debug_pubnames + 0x00000e53 0x24 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_pubnames + 0x00000e77 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_pubnames + 0x00000e96 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .debug_pubnames + 0x00000eb6 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_pubnames + 0x00000ed5 0x1f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_pubnames + 0x00000ef4 0x21 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_pubnames + 0x00000f15 0x26 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .debug_pubnames + 0x00000f3b 0x1c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_close.o) + .debug_pubnames + 0x00000f57 0x63 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev.o) + .debug_pubnames + 0x00000fba 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_errno.o) + .debug_pubnames + 0x00000fda 0x1c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_pubnames + 0x00000ff6 0x1d ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_pubnames + 0x00001013 0x1f ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_load.o) + .debug_pubnames + 0x00001032 0x1c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_pubnames + 0x0000104e 0x46 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) + .debug_pubnames + 0x00001094 0x38 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_pubnames + 0x000010cc 0x1b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_read.o) + .debug_pubnames + 0x000010e7 0x25 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_pubnames + 0x0000110c 0x1b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_pubnames + 0x00001127 0x1d ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_pubnames + 0x00001144 0x1c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_write.o) + .debug_pubnames + 0x00001160 0x34 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_pubnames + 0x00001194 0xa5 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_pubnames + 0x00001239 0x55 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_pubnames + 0x0000128e 0x34 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_pubnames + 0x000012c2 0x33 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_pubnames + 0x000012f5 0x34 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_pubnames + 0x00001329 0x55 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_pubnames + 0x0000137e 0x37 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_pubnames + 0x000013b5 0x26 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_pubnames + 0x000013db 0x25 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_pubnames + 0x00001400 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_pubnames + 0x0000142b 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_pubnames + 0x00001456 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_pubnames + 0x00001476 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_pubnames + 0x00001496 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_pubnames + 0x000014c1 0x6e ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic.o) + .debug_pubnames + 0x0000152f 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_pubnames + 0x0000155a 0x26 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_pubnames + 0x00001580 0x32 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_pubnames + 0x000015b2 0x3b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_vars.o) + .debug_pubnames + 0x000015ed 0x1b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_open.o) + .debug_pubnames + 0x00001608 0x68 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_tick.o) + .debug_pubnames + 0x00001670 0x31 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_pubnames + 0x000016a1 0x23 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_pubnames + 0x000016c4 0x24 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_pubnames + 0x000016e8 0x21 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_pubnames + 0x00001709 0x2a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_pubnames + 0x00001733 0x1b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_pubnames + 0x0000174e 0x1d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_pubnames + 0x0000176b 0x2a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_pubnames + 0x00001795 0x27 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_pubnames + 0x000017bc 0x1c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_info 0x00000000 0x253c5 + *(.debug_info .gnu.linkonce.wi.*) + .debug_info 0x00000000 0x84 ../DE2_115_ASM3_release_bsp//obj/HAL/src/crt0.o + .debug_info 0x00000084 0x1e9 obj/default/LCD.o + .debug_info 0x0000026d 0x4da obj/default/hello_world_small.o + .debug_info 0x00000747 0x156 obj/default/hex_encoder.o + .debug_info 0x0000089d 0x1df obj/default/hex_out.o + .debug_info 0x00000a7c 0x33c obj/default/input_int.o + .debug_info 0x00000db8 0x592 obj/default/inst_decoder.o + .debug_info 0x0000134a 0x1b5 obj/default/lcd_out.o + .debug_info 0x000014ff 0x3b5 obj/default/sys_debug.o + .debug_info 0x000018b4 0x98 obj/default/sys_except.o + .debug_info 0x0000194c 0x387 obj/default/sys_memory.o + .debug_info 0x00001cd3 0x306 obj/default/sys_prog.o + .debug_info 0x00001fd9 0x107 obj/default/sys_register.o + .debug_info 0x000020e0 0x21c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_info 0x000022fc 0xf3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_info 0x000023ef 0xa0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .debug_info 0x0000248f 0xa16 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + .debug_info 0x00002ea5 0xdb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_info 0x00002f80 0x10d5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_info 0x00004055 0x95d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_info 0x000049b2 0xd6f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_info 0x00005721 0x9fe c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_info 0x0000611f 0xb72 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_info 0x00006c91 0xbc9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_info 0x0000785a 0xa88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_info 0x000082e2 0xaed c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_info 0x00008dcf 0x93d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .debug_info 0x0000970c 0xb97 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_info 0x0000a2a3 0xb1a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_info 0x0000adbd 0xcd0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_info 0x0000ba8d 0x138 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_info 0x0000bbc5 0x106 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_info 0x0000bccb 0x13e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_info 0x0000be09 0x113 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_info 0x0000bf1c 0x143b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_info 0x0000d357 0xbd7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_info 0x0000df2e 0xd7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_info 0x0000e005 0xd5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_info 0x0000e0da 0x962 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_info 0x0000ea3c 0xaac c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_info 0x0000f4e8 0xdd c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_info 0x0000f5c5 0x993 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_info 0x0000ff58 0xa1b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_info 0x00010973 0x958 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_info 0x000112cb 0x994 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_info 0x00011c5f 0xafc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_info 0x0001275b 0x8c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .debug_info 0x000127e7 0x958 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_info 0x0001313f 0x981 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_info 0x00013ac0 0x98c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_info 0x0001444c 0x71c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_info 0x00014b68 0x749 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_info 0x000152b1 0x493 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_info 0x00015744 0x488 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_info 0x00015bcc 0x39b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_info 0x00015f67 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_info 0x00016204 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_info 0x000164a1 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_info 0x0001673e 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_info 0x000169db 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_info 0x00016c78 0x218 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_info 0x00016e90 0x2cd c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_info 0x0001715d 0x164 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .debug_info 0x000172c1 0x213 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_info 0x000174d4 0x210 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_info 0x000176e4 0xc9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .debug_info 0x000177ad 0x130 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_info 0x000178dd 0x2fc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_info 0x00017bd9 0x268 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_info 0x00017e41 0x21b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .debug_info 0x0001805c 0x470 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_close.o) + .debug_info 0x000184cc 0x688 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev.o) + .debug_info 0x00018b54 0x16d ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_errno.o) + .debug_info 0x00018cc1 0x669 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_info 0x0001932a 0x66f ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_info 0x00019999 0x296 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_load.o) + .debug_info 0x00019c2f 0x4a3 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_info 0x0001a0d2 0x22e ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) + .debug_info 0x0001a300 0xc21 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_info 0x0001af21 0x693 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_read.o) + .debug_info 0x0001b5b4 0x3fb ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_info 0x0001b9af 0x2c0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_info 0x0001bc6f 0x171 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_info 0x0001bde0 0x69c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_write.o) + .debug_info 0x0001c47c 0x910 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_info 0x0001cd8c 0x7e2 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_info 0x0001d56e 0x60a ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_info 0x0001db78 0x44c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_info 0x0001dfc4 0x54f ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_info 0x0001e513 0x547 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_info 0x0001ea5a 0x8f7 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_info 0x0001f351 0x71b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_info 0x0001fa6c 0x44b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_info 0x0001feb7 0x1b4 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_info 0x0002006b 0x165 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_info 0x000201d0 0x2c0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_info 0x00020490 0x118 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_info 0x000205a8 0x117 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_info 0x000206bf 0x165 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_info 0x00020824 0x49c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic.o) + .debug_info 0x00020cc0 0x31d ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_info 0x00020fdd 0x69e ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_info 0x0002167b 0x8d ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_entry.o) + .debug_info 0x00021708 0x27e ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_info 0x00021986 0x170 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_vars.o) + .debug_info 0x00021af6 0x52e ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_open.o) + .debug_info 0x00022024 0x407 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_tick.o) + .debug_info 0x0002242b 0x16c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_info 0x00022597 0x93 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exception_entry.o) + .debug_info 0x0002262a 0x421 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_info 0x00022a4b 0x428 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_info 0x00022e73 0x469 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_info 0x000232dc 0x181 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_info 0x0002345d 0x93f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_info 0x00023d9c 0x115 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_info 0x00023eb1 0x99c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_info 0x0002484d 0x9e2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_info 0x0002522f 0x196 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_abbrev 0x00000000 0x8258 + *(.debug_abbrev) + .debug_abbrev 0x00000000 0x12 ../DE2_115_ASM3_release_bsp//obj/HAL/src/crt0.o + .debug_abbrev 0x00000012 0xa7 obj/default/LCD.o + .debug_abbrev 0x000000b9 0x146 obj/default/hello_world_small.o + .debug_abbrev 0x000001ff 0x75 obj/default/hex_encoder.o + .debug_abbrev 0x00000274 0x87 obj/default/hex_out.o + .debug_abbrev 0x000002fb 0x12f obj/default/input_int.o + .debug_abbrev 0x0000042a 0xe4 obj/default/inst_decoder.o + .debug_abbrev 0x0000050e 0x71 obj/default/lcd_out.o + .debug_abbrev 0x0000057f 0xe9 obj/default/sys_debug.o + .debug_abbrev 0x00000668 0x27 obj/default/sys_except.o + .debug_abbrev 0x0000068f 0x101 obj/default/sys_memory.o + .debug_abbrev 0x00000790 0xe5 obj/default/sys_prog.o + .debug_abbrev 0x00000875 0x66 obj/default/sys_register.o + .debug_abbrev 0x000008db 0xe0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_abbrev 0x000009bb 0x7b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_abbrev 0x00000a36 0x61 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .debug_abbrev 0x00000a97 0x191 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + .debug_abbrev 0x00000c28 0x8b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_abbrev 0x00000cb3 0x30a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_abbrev 0x00000fbd 0x170 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_abbrev 0x0000112d 0x232 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_abbrev 0x0000135f 0x1c6 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_abbrev 0x00001525 0x24c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_abbrev 0x00001771 0x1d9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_abbrev 0x0000194a 0x1a3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_abbrev 0x00001aed 0x1e3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_abbrev 0x00001cd0 0x157 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .debug_abbrev 0x00001e27 0x1ed c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_abbrev 0x00002014 0x197 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_abbrev 0x000021ab 0x216 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_abbrev 0x000023c1 0xb5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_abbrev 0x00002476 0xb5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_abbrev 0x0000252b 0xb5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_abbrev 0x000025e0 0xb8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_abbrev 0x00002698 0x297 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_abbrev 0x0000292f 0x1c3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_abbrev 0x00002af2 0x79 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_abbrev 0x00002b6b 0x79 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_abbrev 0x00002be4 0x18c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_abbrev 0x00002d70 0x1c9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_abbrev 0x00002f39 0x80 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_abbrev 0x00002fb9 0x184 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_abbrev 0x0000313d 0x1b8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_abbrev 0x000032f5 0x17f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_abbrev 0x00003474 0x1a7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_abbrev 0x0000361b 0x18e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_abbrev 0x000037a9 0x3b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .debug_abbrev 0x000037e4 0x17f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_abbrev 0x00003963 0x18e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_abbrev 0x00003af1 0x17f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_abbrev 0x00003c70 0x16b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_abbrev 0x00003ddb 0x18e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_abbrev 0x00003f69 0x1d2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_abbrev 0x0000413b 0x204 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_abbrev 0x0000433f 0x1e3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_abbrev 0x00004522 0x151 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_abbrev 0x00004673 0x151 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_abbrev 0x000047c4 0x151 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_abbrev 0x00004915 0x151 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_abbrev 0x00004a66 0x151 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_abbrev 0x00004bb7 0x13f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_abbrev 0x00004cf6 0x176 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_abbrev 0x00004e6c 0xba c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .debug_abbrev 0x00004f26 0x155 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_abbrev 0x0000507b 0xfb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_abbrev 0x00005176 0x61 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .debug_abbrev 0x000051d7 0xb9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_abbrev 0x00005290 0x1b1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_abbrev 0x00005441 0x149 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_abbrev 0x0000558a 0x132 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .debug_abbrev 0x000056bc 0xfb ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_close.o) + .debug_abbrev 0x000057b7 0xc7 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev.o) + .debug_abbrev 0x0000587e 0x5e ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_errno.o) + .debug_abbrev 0x000058dc 0xfb ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_abbrev 0x000059d7 0xfb ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_abbrev 0x00005ad2 0x88 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_load.o) + .debug_abbrev 0x00005b5a 0xfb ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_abbrev 0x00005c55 0xb7 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) + .debug_abbrev 0x00005d0c 0x181 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_abbrev 0x00005e8d 0xfb ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_read.o) + .debug_abbrev 0x00005f88 0xc1 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_abbrev 0x00006049 0x115 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_abbrev 0x0000615e 0x5d ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_abbrev 0x000061bb 0x100 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_write.o) + .debug_abbrev 0x000062bb 0x158 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_abbrev 0x00006413 0xf7 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_abbrev 0x0000650a 0x17c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_abbrev 0x00006686 0xf0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_abbrev 0x00006776 0x191 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_abbrev 0x00006907 0x18d ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_abbrev 0x00006a94 0x1c3 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_abbrev 0x00006c57 0x104 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_abbrev 0x00006d5b 0x172 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_abbrev 0x00006ecd 0x6c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_abbrev 0x00006f39 0x3f ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_abbrev 0x00006f78 0xf6 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_abbrev 0x0000706e 0x76 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_abbrev 0x000070e4 0x76 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_abbrev 0x0000715a 0x3f ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_abbrev 0x00007199 0x134 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic.o) + .debug_abbrev 0x000072cd 0x14e ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_abbrev 0x0000741b 0xf0 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_abbrev 0x0000750b 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_entry.o) + .debug_abbrev 0x0000751d 0x10c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_abbrev 0x00007629 0x44 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_vars.o) + .debug_abbrev 0x0000766d 0x112 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_open.o) + .debug_abbrev 0x0000777f 0x150 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_tick.o) + .debug_abbrev 0x000078cf 0x3f ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_abbrev 0x0000790e 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exception_entry.o) + .debug_abbrev 0x00007920 0xcf ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_abbrev 0x000079ef 0xcf ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_abbrev 0x00007abe 0xfb ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_abbrev 0x00007bb9 0xb7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_abbrev 0x00007c70 0x16e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_abbrev 0x00007dde 0x7c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_abbrev 0x00007e5a 0x1ae c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_abbrev 0x00008008 0x1de c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_abbrev 0x000081e6 0x72 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_line 0x00000000 0x15d9b + *(.debug_line) + .debug_line 0x00000000 0x66 ../DE2_115_ASM3_release_bsp//obj/HAL/src/crt0.o + .debug_line 0x00000066 0x30a obj/default/LCD.o + .debug_line 0x00000370 0x5fe obj/default/hello_world_small.o + .debug_line 0x0000096e 0x494 obj/default/hex_encoder.o + .debug_line 0x00000e02 0x195 obj/default/hex_out.o + .debug_line 0x00000f97 0x1bb obj/default/input_int.o + .debug_line 0x00001152 0x452 obj/default/inst_decoder.o + .debug_line 0x000015a4 0x222 obj/default/lcd_out.o + .debug_line 0x000017c6 0x3f4 obj/default/sys_debug.o + .debug_line 0x00001bba 0x80 obj/default/sys_except.o + .debug_line 0x00001c3a 0x12f obj/default/sys_memory.o + .debug_line 0x00001d69 0x33e obj/default/sys_prog.o + .debug_line 0x000020a7 0x7f obj/default/sys_register.o + .debug_line 0x00002126 0x24f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_line 0x00002375 0x11a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_line 0x0000248f 0x81 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + .debug_line 0x00002510 0x325 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + .debug_line 0x00002835 0x270 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_line 0x00002aa5 0x110f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_line 0x00003bb4 0x2f3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_line 0x00003ea7 0x1309 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_line 0x000051b0 0x410 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_line 0x000055c0 0x60c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_line 0x00005bcc 0x5ee c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_line 0x000061ba 0x644 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_line 0x000067fe 0x34d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_line 0x00006b4b 0x230 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + .debug_line 0x00006d7b 0x2cb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_line 0x00007046 0x3c6 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_line 0x0000740c 0x80d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_line 0x00007c19 0x306 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_line 0x00007f1f 0x1af c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_line 0x000080ce 0x30d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_line 0x000083db 0x304 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_line 0x000086df 0x125e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_line 0x0000993d 0x58d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_line 0x00009eca 0x225 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_line 0x0000a0ef 0x21d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_line 0x0000a30c 0x29c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_line 0x0000a5a8 0x38f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_line 0x0000a937 0x2d8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_line 0x0000ac0f 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_line 0x0000aeac 0x25f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_line 0x0000b10b 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_line 0x0000b3a8 0x2eb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_line 0x0000b693 0x267 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_line 0x0000b8fa 0x1e2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + .debug_line 0x0000badc 0x29e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_line 0x0000bd7a 0x29d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_line 0x0000c017 0x29c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_line 0x0000c2b3 0x2f2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_line 0x0000c5a5 0x405 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_line 0x0000c9aa 0x430 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_line 0x0000cdda 0x3e5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_line 0x0000d1bf 0x301 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_line 0x0000d4c0 0x129 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_line 0x0000d5e9 0x129 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_line 0x0000d712 0x129 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_line 0x0000d83b 0x129 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_line 0x0000d964 0x129 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_line 0x0000da8d 0x175 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_line 0x0000dc02 0x149 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_line 0x0000dd4b 0x94 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .debug_line 0x0000dddf 0x189 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_line 0x0000df68 0x14f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_line 0x0000e0b7 0xaa c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .debug_line 0x0000e161 0x105 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_line 0x0000e266 0x222 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_line 0x0000e488 0x1e4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_line 0x0000e66c 0x187 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .debug_line 0x0000e7f3 0x299 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_close.o) + .debug_line 0x0000ea8c 0x254 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev.o) + .debug_line 0x0000ece0 0x1aa ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_errno.o) + .debug_line 0x0000ee8a 0x2a1 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_line 0x0000f12b 0x2a2 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_line 0x0000f3cd 0x217 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_load.o) + .debug_line 0x0000f5e4 0x2a1 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_line 0x0000f885 0x2ca ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) + .debug_line 0x0000fb4f 0x20f ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_line 0x0000fd5e 0x2c8 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_read.o) + .debug_line 0x00010026 0xed ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_line 0x00010113 0x261 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_line 0x00010374 0x202 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_line 0x00010576 0x2c9 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_write.o) + .debug_line 0x0001083f 0x2eb ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_line 0x00010b2a 0x217 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_line 0x00010d41 0x4ab ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_line 0x000111ec 0x317 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_line 0x00011503 0x3f7 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_line 0x000118fa 0x405 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_line 0x00011cff 0x8c1 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_line 0x000125c0 0x1b7 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_line 0x00012777 0x2dc ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_line 0x00012a53 0x25c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_line 0x00012caf 0x1b5 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_line 0x00012e64 0x25a ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_line 0x000130be 0x83 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_line 0x00013141 0x83 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_line 0x000131c4 0x1b5 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_line 0x00013379 0x2c8 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic.o) + .debug_line 0x00013641 0x249 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_line 0x0001388a 0x2b4 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_line 0x00013b3e 0x6b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_entry.o) + .debug_line 0x00013ba9 0x248 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_line 0x00013df1 0x72 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_vars.o) + .debug_line 0x00013e63 0x2ff ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_open.o) + .debug_line 0x00014162 0x2dc ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_tick.o) + .debug_line 0x0001443e 0x1ce ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_line 0x0001460c 0xab ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exception_entry.o) + .debug_line 0x000146b7 0x26b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_line 0x00014922 0x27c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_line 0x00014b9e 0x297 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_line 0x00014e35 0x203 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_line 0x00015038 0x23b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_line 0x00015273 0x2a2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_line 0x00015515 0x316 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_line 0x0001582b 0x36a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_line 0x00015b95 0x206 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_frame 0x00000000 0x202c + *(.debug_frame) + .debug_frame 0x00000000 0x84 obj/default/LCD.o + .debug_frame 0x00000084 0x10c obj/default/hello_world_small.o + .debug_frame 0x00000190 0x48 obj/default/hex_encoder.o + .debug_frame 0x000001d8 0x64 obj/default/hex_out.o + .debug_frame 0x0000023c 0x80 obj/default/input_int.o + .debug_frame 0x000002bc 0x198 obj/default/inst_decoder.o + .debug_frame 0x00000454 0x80 obj/default/lcd_out.o + .debug_frame 0x000004d4 0x9c obj/default/sys_debug.o + .debug_frame 0x00000570 0x2c obj/default/sys_except.o + .debug_frame 0x0000059c 0x9c obj/default/sys_memory.o + .debug_frame 0x00000638 0x9c obj/default/sys_prog.o + .debug_frame 0x000006d4 0x2c obj/default/sys_register.o + .debug_frame 0x00000700 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_frame 0x00000770 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_frame 0x00000790 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + .debug_frame 0x000007d0 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_frame 0x000007f0 0x64 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_frame 0x00000854 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_frame 0x00000880 0x64 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_frame 0x000008e4 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_frame 0x00000924 0x118 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_frame 0x00000a3c 0x4c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_frame 0x00000a88 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_frame 0x00000ac0 0x60 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_frame 0x00000b20 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_frame 0x00000b90 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_frame 0x00000bbc 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_frame 0x00000bf4 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_frame 0x00000c14 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_frame 0x00000c34 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_frame 0x00000c54 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_frame 0x00000c74 0x228 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_frame 0x00000e9c 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_frame 0x00000ed4 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_frame 0x00000ef4 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_frame 0x00000f14 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_frame 0x00000f40 0x78 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_frame 0x00000fb8 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_frame 0x00000fd8 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_frame 0x00001004 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_frame 0x00001030 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_frame 0x0000105c 0x3c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_frame 0x00001098 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_frame 0x000010c4 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_frame 0x000010f0 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_frame 0x0000111c 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_frame 0x00001148 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_frame 0x00001180 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_frame 0x000011b8 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_frame 0x00001228 0x3c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_frame 0x00001264 0x30 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_frame 0x00001294 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_frame 0x000012c0 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_frame 0x000012ec 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_frame 0x00001318 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_frame 0x00001344 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_frame 0x00001370 0x30 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_frame 0x000013a0 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_frame 0x000013c8 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_frame 0x00001400 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_frame 0x00001440 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_frame 0x00001460 0x2c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_frame 0x0000148c 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_frame 0x000014ac 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + .debug_frame 0x000014cc 0x48 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_close.o) + .debug_frame 0x00001514 0x2c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev.o) + .debug_frame 0x00001540 0x48 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_frame 0x00001588 0x48 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_frame 0x000015d0 0x48 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_load.o) + .debug_frame 0x00001618 0x48 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_frame 0x00001660 0x2c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) + .debug_frame 0x0000168c 0x48 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_frame 0x000016d4 0x48 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_read.o) + .debug_frame 0x0000171c 0x30 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_frame 0x0000174c 0x2c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_frame 0x00001778 0x2c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_frame 0x000017a4 0x48 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_write.o) + .debug_frame 0x000017ec 0x64 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_frame 0x00001850 0x80 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_frame 0x000018d0 0x80 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_frame 0x00001950 0x2c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_frame 0x0000197c 0x2c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_frame 0x000019a8 0x2c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_frame 0x000019d4 0x124 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_frame 0x00001af8 0x2c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_frame 0x00001b24 0x2c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_frame 0x00001b50 0x2c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_frame 0x00001b7c 0x2c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_frame 0x00001ba8 0x48 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_frame 0x00001bf0 0x2c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_frame 0x00001c1c 0x2c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_frame 0x00001c48 0x2c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_frame 0x00001c74 0x80 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic.o) + .debug_frame 0x00001cf4 0x2c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_frame 0x00001d20 0x4c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_frame 0x00001d6c 0x2c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_frame 0x00001d98 0x68 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_open.o) + .debug_frame 0x00001e00 0x48 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_tick.o) + .debug_frame 0x00001e48 0x2c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_frame 0x00001e74 0x2c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_frame 0x00001ea0 0x2c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_frame 0x00001ecc 0x30 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_frame 0x00001efc 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_frame 0x00001f1c 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_frame 0x00001f44 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_frame 0x00001f64 0x34 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_frame 0x00001f98 0x4c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_frame 0x00001fe4 0x48 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_str 0x00000000 0x23b5 + *(.debug_str) + .debug_str 0x00000000 0x12 obj/default/LCD.o + .debug_str 0x00000012 0x1c obj/default/hello_world_small.o + .debug_str 0x0000002e 0x1f obj/default/inst_decoder.o + .debug_str 0x0000004d 0x12 obj/default/lcd_out.o + .debug_str 0x0000005f 0x25 obj/default/sys_debug.o + .debug_str 0x00000084 0x9 obj/default/sys_memory.o + .debug_str 0x0000008d 0x12 obj/default/sys_prog.o + .debug_str 0x0000009f 0x167 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + 0x1b4 (size before relaxing) + .debug_str 0x00000206 0x37 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + 0x175 (size before relaxing) + .debug_str 0x0000023d 0xf0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-ctype_.o) + 0x113 (size before relaxing) + .debug_str 0x0000032d 0x457 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + 0x539 (size before relaxing) + .debug_str 0x00000784 0xe9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + 0x18b (size before relaxing) + .debug_str 0x0000086d 0x1c4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + 0x706 (size before relaxing) + .debug_str 0x00000a31 0x49 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + 0x51a (size before relaxing) + .debug_str 0x00000a7a 0x19c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + 0x60f (size before relaxing) + .debug_str 0x00000c16 0x68 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + 0x540 (size before relaxing) + .debug_str 0x00000c7e 0x105 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + 0x602 (size before relaxing) + .debug_str 0x00000d83 0x15e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + 0x651 (size before relaxing) + .debug_str 0x00000ee1 0x69 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + 0x571 (size before relaxing) + .debug_str 0x00000f4a 0x61 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + 0x543 (size before relaxing) + .debug_str 0x00000fab 0xdf c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-impure.o) + 0x528 (size before relaxing) + .debug_str 0x0000108a 0x233 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + 0x6b7 (size before relaxing) + .debug_str 0x000012bd 0x126 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + 0x614 (size before relaxing) + .debug_str 0x000013e3 0xef c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + 0x6ff (size before relaxing) + .debug_str 0x000014d2 0x5f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + 0x199 (size before relaxing) + .debug_str 0x00001531 0x6c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + 0x136 (size before relaxing) + .debug_str 0x0000159d 0x50 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + 0x1ab (size before relaxing) + .debug_str 0x000015ed 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + 0x18c (size before relaxing) + .debug_str 0x00001632 0xfb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + 0x61c (size before relaxing) + .debug_str 0x0000172d 0x59 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + 0x5d1 (size before relaxing) + .debug_str 0x00001786 0xea c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + 0x198 (size before relaxing) + .debug_str 0x00001870 0x49 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + 0x198 (size before relaxing) + .debug_str 0x000018b9 0x53 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + 0x519 (size before relaxing) + .debug_str 0x0000190c 0x65 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + 0x53f (size before relaxing) + .debug_str 0x00001971 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + 0x171 (size before relaxing) + .debug_str 0x000019b6 0x4f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + 0x51c (size before relaxing) + .debug_str 0x00001a05 0x19 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + 0x550 (size before relaxing) + .debug_str 0x00001a1e 0x46 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + 0x50c (size before relaxing) + .debug_str 0x00001a64 0x4e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + 0x524 (size before relaxing) + .debug_str 0x00001ab2 0x4c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + 0x5ff (size before relaxing) + .debug_str 0x00001afe 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-int_errno.o) + 0x171 (size before relaxing) + .debug_str 0x00001b3e 0x48 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + 0x50e (size before relaxing) + .debug_str 0x00001b86 0x46 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + 0x51a (size before relaxing) + .debug_str 0x00001bcc 0x44 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + 0x51a (size before relaxing) + .debug_str 0x00001c10 0xb2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + 0x1f7 (size before relaxing) + .debug_str 0x00001cc2 0xa c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + 0x1f7 (size before relaxing) + .debug_str 0x00001ccc 0x137 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + 0x26f (size before relaxing) + .debug_str 0x00001e03 0x40 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + 0x241 (size before relaxing) + .debug_str 0x00001e43 0x35 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + 0x231 (size before relaxing) + .debug_str 0x00001e78 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + 0x1fe (size before relaxing) + .debug_str 0x00001e80 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + 0x1fe (size before relaxing) + .debug_str 0x00001e88 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + 0x1fe (size before relaxing) + .debug_str 0x00001e90 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + 0x1fe (size before relaxing) + .debug_str 0x00001e98 0x8 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + 0x1fe (size before relaxing) + .debug_str 0x00001ea0 0x18 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + 0x1de (size before relaxing) + .debug_str 0x00001eb8 0xa c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + 0x207 (size before relaxing) + .debug_str 0x00000000 0x1a3 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_thenan_df.o) + .debug_str 0x00001ec2 0x14 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + 0x1da (size before relaxing) + .debug_str 0x00001ed6 0x9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + 0x1ac (size before relaxing) + .debug_str 0x00000000 0x161 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clz.o) + .debug_str 0x00001edf 0x9 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + 0x17e (size before relaxing) + .debug_str 0x00001ee8 0x10 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + 0x206 (size before relaxing) + .debug_str 0x00001ef8 0xb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + 0x1e8 (size before relaxing) + .debug_str 0x00001f03 0x10 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_fpcmp_parts_df.o) + 0x1c6 (size before relaxing) + .debug_str 0x00001f13 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_close.o) + .debug_str 0x00001f25 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev.o) + .debug_str 0x00001f37 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_errno.o) + .debug_str 0x00001f49 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_str 0x00001f5b 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_str 0x00001f6d 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_load.o) + .debug_str 0x00001f7f 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_str 0x00001f91 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) + .debug_str 0x00001fa3 0x20 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_str 0x00001fc3 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_read.o) + .debug_str 0x00001fd5 0x1a ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_str 0x00001fef 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_str 0x00002001 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_write.o) + .debug_str 0x00002013 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_str 0x00002025 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_str 0x00002037 0x1a ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_str 0x00002051 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_str 0x00002063 0x1a ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_str 0x0000207d 0x1a ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_str 0x00002097 0x25 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_str 0x000020bc 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_str 0x000020ce 0x23 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_str 0x000020f1 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_str 0x00002103 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_str 0x00002115 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_str 0x00002127 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_str 0x00002139 0x18 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic.o) + .debug_str 0x00002151 0x1a ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_str 0x0000216b 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_str 0x0000217d 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_str 0x0000218f 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_open.o) + .debug_str 0x000021a1 0x1a ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_tick.o) + .debug_str 0x000021bb 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_str 0x000021cd 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_str 0x000021df 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_str 0x000021f1 0x12 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_str 0x00002203 0x3e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + 0x1cd (size before relaxing) + .debug_str 0x00002241 0x41 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + 0x51a (size before relaxing) + .debug_str 0x00002282 0x45 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + 0x178 (size before relaxing) + .debug_str 0x000022c7 0x54 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + 0x532 (size before relaxing) + .debug_str 0x0000231b 0x7e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + 0x55c (size before relaxing) + .debug_str 0x00002399 0x1c ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_loc 0x00000000 0xc7db + *(.debug_loc) + .debug_loc 0x00000000 0xac obj/default/LCD.o + .debug_loc 0x000000ac 0x183 obj/default/hello_world_small.o + .debug_loc 0x0000022f 0x56 obj/default/hex_encoder.o + .debug_loc 0x00000285 0x81 obj/default/hex_out.o + .debug_loc 0x00000306 0xac obj/default/input_int.o + .debug_loc 0x000003b2 0x25a obj/default/inst_decoder.o + .debug_loc 0x0000060c 0xac obj/default/lcd_out.o + .debug_loc 0x000006b8 0xd7 obj/default/sys_debug.o + .debug_loc 0x0000078f 0x2b obj/default/sys_except.o + .debug_loc 0x000007ba 0xd7 obj/default/sys_memory.o + .debug_loc 0x00000891 0xd7 obj/default/sys_prog.o + .debug_loc 0x00000968 0x2b obj/default/sys_register.o + .debug_loc 0x00000993 0x1d2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-divmod.o) + .debug_loc 0x00000b65 0x4f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(lib2-mul.o) + .debug_loc 0x00000bb4 0xc0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sprintf.o) + .debug_loc 0x00000c74 0x3c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strlen.o) + .debug_loc 0x00000cb0 0x1dc0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_loc 0x00002a70 0x7c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-wsetup.o) + .debug_loc 0x00002aec 0x1da7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-dtoa.o) + .debug_loc 0x00004893 0x1f6 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_loc 0x00004a89 0x1e1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-findfp.o) + .debug_loc 0x00004c6a 0x4a7 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-freer.o) + .debug_loc 0x00005111 0x4e4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_loc 0x000055f5 0x1d2 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_loc 0x000057c7 0xe1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-locale.o) + .debug_loc 0x000058a8 0x11c c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-makebuf.o) + .debug_loc 0x000059c4 0xaeb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_loc 0x000064af 0x106 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memchr.o) + .debug_loc 0x000065b5 0xca c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcpy.o) + .debug_loc 0x0000667f 0x117 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memmove.o) + .debug_loc 0x00006796 0xa1 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memset.o) + .debug_loc 0x00006837 0x1547 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mprec.o) + .debug_loc 0x00007d7e 0x8c0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_loc 0x0000863e 0x36 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isinfd.o) + .debug_loc 0x00008674 0x18 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-s_isnand.o) + .debug_loc 0x0000868c 0x5b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-sbrkr.o) + .debug_loc 0x000086e7 0x21f c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-stdio.o) + .debug_loc 0x00008906 0x65 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-strcmp.o) + .debug_loc 0x0000896b 0x97 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-writer.o) + .debug_loc 0x00008a02 0xff c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_loc 0x00008b01 0x5b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-closer.o) + .debug_loc 0x00008b5c 0xe4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fclose.o) + .debug_loc 0x00008c40 0x79 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fstatr.o) + .debug_loc 0x00008cb9 0x5b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-isattyr.o) + .debug_loc 0x00008d14 0x97 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-lseekr.o) + .debug_loc 0x00008dab 0x97 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-readr.o) + .debug_loc 0x00008e42 0xc12 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_loc 0x00009a54 0xbcc c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_loc 0x0000a620 0x47a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_loc 0x0000aa9a 0x3b4 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_loc 0x0000ae4e 0x1df c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_loc 0x0000b02d 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_eq_df.o) + .debug_loc 0x0000b09d 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ne_df.o) + .debug_loc 0x0000b10d 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_gt_df.o) + .debug_loc 0x0000b17d 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_ge_df.o) + .debug_loc 0x0000b1ed 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_lt_df.o) + .debug_loc 0x0000b25d 0x9a c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_si_to_df.o) + .debug_loc 0x0000b2f7 0x8b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_df_to_si.o) + .debug_loc 0x0000b382 0x5b c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_loc 0x0000b3dd 0x103 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_loc 0x0000b4e0 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_loc 0x0000b4fe 0x184 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_loc 0x0000b682 0xe5 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_unpack_df.o) + .debug_loc 0x0000b767 0x56 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_close.o) + .debug_loc 0x0000b7bd 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev.o) + .debug_loc 0x0000b7e8 0x56 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_fstat.o) + .debug_loc 0x0000b83e 0x57 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_isatty.o) + .debug_loc 0x0000b895 0x56 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_load.o) + .debug_loc 0x0000b8eb 0x56 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_lseek.o) + .debug_loc 0x0000b941 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_main.o) + .debug_loc 0x0000b96c 0x56 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_malloc_lock.o) + .debug_loc 0x0000b9c2 0x56 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_read.o) + .debug_loc 0x0000ba18 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_release_fd.o) + .debug_loc 0x0000ba43 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sbrk.o) + .debug_loc 0x0000ba6e 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_usleep.o) + .debug_loc 0x0000ba99 0x56 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_write.o) + .debug_loc 0x0000baef 0x81 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_sys_init.o) + .debug_loc 0x0000bb70 0xac ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_fd.o) + .debug_loc 0x0000bc1c 0xac ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_init.o) + .debug_loc 0x0000bcc8 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_ioctl.o) + .debug_loc 0x0000bcf3 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_read.o) + .debug_loc 0x0000bd1e 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_jtag_uart_write.o) + .debug_loc 0x0000bd49 0x184 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207.o) + .debug_loc 0x0000becd 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_avalon_lcd_16207_fd.o) + .debug_loc 0x0000bef8 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_alarm_start.o) + .debug_loc 0x0000bf23 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_busy_sleep.o) + .debug_loc 0x0000bf4e 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dcache_flush_all.o) + .debug_loc 0x0000bf79 0x56 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_dev_llist_insert.o) + .debug_loc 0x0000bfcf 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_ctors.o) + .debug_loc 0x0000bffa 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_do_dtors.o) + .debug_loc 0x0000c025 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_icache_flush_all.o) + .debug_loc 0x0000c050 0xac ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic.o) + .debug_loc 0x0000c0fc 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_iic_isr_register.o) + .debug_loc 0x0000c127 0x56 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_io_redirect.o) + .debug_loc 0x0000c17d 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_handler.o) + .debug_loc 0x0000c1a8 0x81 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_open.o) + .debug_loc 0x0000c229 0x56 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_tick.o) + .debug_loc 0x0000c27f 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(altera_nios2_qsys_irq.o) + .debug_loc 0x0000c2aa 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_dev.o) + .debug_loc 0x0000c2d5 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_find_file.o) + .debug_loc 0x0000c300 0x2b ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_get_fd.o) + .debug_loc 0x0000c32b 0x1e c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-atexit.o) + .debug_loc 0x0000c349 0x3d c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-exit.o) + .debug_loc 0x0000c386 0x114 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-memcmp.o) + .debug_loc 0x0000c49a 0x120 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__atexit.o) + .debug_loc 0x0000c5ba 0x1cb c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) + .debug_loc 0x0000c785 0x56 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exit.o) + +.debug_macinfo + *(.debug_macinfo) + +.debug_weaknames + *(.debug_weaknames) + +.debug_funcnames + *(.debug_funcnames) + +.debug_typenames + *(.debug_typenames) + +.debug_varnames + *(.debug_varnames) + +.debug_alt_sim_info + 0x00000000 0x40 + *(.debug_alt_sim_info) + .debug_alt_sim_info + 0x00000000 0x10 ../DE2_115_ASM3_release_bsp//obj/HAL/src/crt0.o + .debug_alt_sim_info + 0x00000010 0x30 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_busy_sleep.o) + 0x00032000 __alt_data_end = 0x32000 + 0x00032000 PROVIDE (__alt_stack_pointer, __alt_data_end) + 0x000145f4 PROVIDE (__alt_stack_limit, __alt_stack_base) + 0x000145f4 PROVIDE (__alt_heap_start, end) + 0x00032000 PROVIDE (__alt_heap_limit, 0x32000) +OUTPUT(DE2_115_ASM3_release.elf elf32-littlenios2) + +.debug_ranges 0x00000000 0x9e0 + .debug_ranges 0x00000000 0x20 ../DE2_115_ASM3_release_bsp//obj/HAL/src/crt0.o + .debug_ranges 0x00000020 0x168 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-vfprintf.o) + .debug_ranges 0x00000188 0x20 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fflush.o) + .debug_ranges 0x000001a8 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fvwrite.o) + .debug_ranges 0x000001d0 0xa0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-fwalk.o) + .debug_ranges 0x00000270 0x70 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-mallocr.o) + .debug_ranges 0x000002e0 0x110 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-reallocr.o) + .debug_ranges 0x000003f0 0x38 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-callocr.o) + .debug_ranges 0x00000428 0x190 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_udivdi3.o) + .debug_ranges 0x000005b8 0x1c0 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_umoddi3.o) + .debug_ranges 0x00000778 0x30 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_addsub_df.o) + .debug_ranges 0x000007a8 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_mul_df.o) + .debug_ranges 0x00000830 0x50 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_div_df.o) + .debug_ranges 0x00000880 0x18 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_usi_to_df.o) + .debug_ranges 0x00000898 0x88 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_muldi3.o) + .debug_ranges 0x00000920 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_clzsi2.o) + .debug_ranges 0x00000948 0x28 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/mno-hw-mul\libgcc.a(_pack_df.o) + .debug_ranges 0x00000970 0x28 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_irq_entry.o) + .debug_ranges 0x00000998 0x30 ../DE2_115_ASM3_release_bsp/\libhal_bsp.a(alt_exception_entry.o) + .debug_ranges 0x000009c8 0x18 c:/altera/13.0sp1/nios2eds/bin/gnu/h-i686-mingw32/bin/../lib/gcc/nios2-elf/4.1.2/../../../../nios2-elf/lib/mno-hw-mul\libc.a(lib_a-__call_atexit.o) diff --git a/software/DE2_115_ASM3_release/LCD.c b/software/DE2_115_ASM3_release/LCD.c new file mode 100644 index 0000000..10ff2ea --- /dev/null +++ b/software/DE2_115_ASM3_release/LCD.c @@ -0,0 +1,50 @@ +#include +#include +#include +#include "system.h" +#include "LCD.h" +//------------------------------------------------------------------------- +void LCD_Init() +{ + lcd_write_cmd(LCD_16207_0_BASE,0x38); + usleep(2000); + lcd_write_cmd(LCD_16207_0_BASE,0x0C); + usleep(2000); + lcd_write_cmd(LCD_16207_0_BASE,0x01); + usleep(2000); + lcd_write_cmd(LCD_16207_0_BASE,0x06); + usleep(2000); + lcd_write_cmd(LCD_16207_0_BASE,0x80); + usleep(2000); +} +//------------------------------------------------------------------------- +void LCD_Show_Text(const char* Text) +{ + int i; + for(i=0;i /c/dir). This will ensture +# paths are readable by GNU Make. +# +# If COMSPEC/ComSpec is not defined, Make is launched from linux, and no +# adjustment is necessary +# +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # COMSPEC + +ifdef COMSPEC # if Windows OS + +ifeq ($(MAKE_VERSION),3.81) +# +# adjust-path/adjust-path-mixed for Mingw Gnu Make on Windows +# +# Example Usage: +# $(call adjust-path,c:/aaa/bbb) => /c/aaa/bbb +# $(call adjust-path-mixed,/c/aaa/bbb) => c:/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) => c:/aaa/bbb +# + +# +# adjust-path +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not contain the string ":/", then return input arg +# - using sed, convert mixed path [c:/...] into mingw path [/c/...] +define adjust-path +$(strip \ +$(if $1,\ +$(if $(findstring :/,$(subst \,/,$1)),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^\([a-zA-Z]\):/,/\1/,'),\ +$(subst \,/,$1)))) +endef + +# +# adjust-path-mixed +# - converts back slash characters into forward slashes +# - if input arg ($1) is an empty string then return the empty string +# - if input arg ($1) does not begin with a forward slash '/' char, then +# return input arg +# - using sed, convert mingw path [/c/...] or cygwin path [/c/cygdrive/...] +# into a mixed path [c:/...] +define adjust-path-mixed +$(strip \ +$(if $1,\ +$(if $(findstring $(subst \,/,$1),$(patsubst /%,%,$(subst \,/,$1))),\ +$(subst \,/,$1),\ +$(shell echo $(subst \,/,$1) | sed -e 's,^/cygdrive/\([a-zA-Z]\)/,\1:/,' -e 's,^/\([a-zA-Z]\)/,\1:/,')))) +endef + +else # MAKE_VERSION != 3.81 (MAKE_VERSION == 3.80 or MAKE_VERSION == 3.79) +# +# adjust-path for Cygwin Gnu Make +# $(call adjust-path,c:/aaa/bbb) = /cygdrive/c/aaa/bbb +# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) = c:/aaa/bbb +# +adjust-path = $(if $1,$(shell cygpath -u "$1"),) +adjust-path-mixed = $(if $1,$(shell cygpath -m "$1"),) +endif + +else # !COMSPEC + +adjust-path = $1 +adjust-path-mixed = $1 + +endif # COMSPEC + + +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +# GENERATED SETTINGS START v +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv + +#START GENERATED +ACTIVE_BUILD_CONFIG := default +BUILD_CONFIGS := default + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: APP_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Define path to the application ELF. +# It may be used by the makefile fragments so is defined before including them. +# +ELF := DE2_115_ASM3_release.elf + +# Paths to C, C++, and assembly source files. +C_SRCS += LCD.c +C_SRCS += hello_world_small.c +C_SRCS += hex_encoder.c +C_SRCS += hex_out.c +C_SRCS += input_int.c +C_SRCS += inst_decoder.c +C_SRCS += lcd_out.c +C_SRCS += sys_debug.c +C_SRCS += sys_except.c +C_SRCS += sys_memory.c +C_SRCS += sys_prog.c +C_SRCS += sys_register.c +CXX_SRCS := +ASM_SRCS := + + +# Path to root of object file tree. +OBJ_ROOT_DIR := obj + +# Options to control objdump. +CREATE_OBJDUMP := 1 +OBJDUMP_INCLUDE_SOURCE := 1 +OBJDUMP_FULL_CONTENTS := 0 + +# Options to enable/disable optional files. +CREATE_ELF_DERIVED_FILES := 0 +CREATE_LINKER_MAP := 1 + +# Common arguments for ALT_CFLAGSs +APP_CFLAGS_DEFINED_SYMBOLS := +APP_CFLAGS_UNDEFINED_SYMBOLS := +APP_CFLAGS_OPTIMIZATION := -O0 +APP_CFLAGS_DEBUG_LEVEL := -g +APP_CFLAGS_WARNINGS := -Wall +APP_CFLAGS_USER_FLAGS := + +APP_ASFLAGS_USER := +APP_LDFLAGS_USER := + +# Linker options that have default values assigned later if not +# assigned here. +LINKER_SCRIPT := +CRT0 := +SYS_LIB := + +# Define path to the root of the BSP. +BSP_ROOT_DIR := ../DE2_115_ASM3_release_bsp/ + +# List of application specific include directories, library directories and library names +APP_INCLUDE_DIRS := +APP_LIBRARY_DIRS := +APP_LIBRARY_NAMES := + +# Pre- and post- processor settings. +BUILD_PRE_PROCESS := +BUILD_POST_PROCESS := + +QUARTUS_PROJECT_DIR := ../../ + + +#END GENERATED + +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +# GENERATED SETTINGS END ^ +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +#------------------------------------------------------------------------------ + +# Define the variable used to echo output if not already defined. +ifeq ($(ECHO),) +ECHO := echo +endif + +# Put "all" rule before included makefile fragments because they may +# define rules and we don't want one of those to become the default rule. +.PHONY : all + +all: + @$(ECHO) [$(APP_NAME) build complete] + +all : build_pre_process libs app build_post_process + + +#------------------------------------------------------------------------------ +# VARIABLES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ + +# Define object file directory per build configuration +CONFIG_OBJ_DIR := $(OBJ_ROOT_DIR)/$(ACTIVE_BUILD_CONFIG) + +ifeq ($(BSP_ROOT_DIR),) +$(error Edit Makefile and provide a value for BSP_ROOT_DIR) +endif + +ifeq ($(wildcard $(BSP_ROOT_DIR)),) +$(error BSP directory does not exist: $(BSP_ROOT_DIR)) +endif + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT_DIR := $(call adjust-path-mixed,$(shell cd "$(BSP_ROOT_DIR)"; pwd)) + +# Include makefile fragments. Define variable ALT_LIBRARY_ROOT_DIR before +# including each makefile fragment so that it knows the path to itself. +BSP_INCLUDE_FILE := $(BSP_ROOT_DIR)/public.mk +ALT_LIBRARY_ROOT_DIR := $(BSP_ROOT_DIR) +include $(BSP_INCLUDE_FILE) +# C2H will need this to touch the BSP public.mk and avoid the sopc file +# out-of-date error during a BSP make +ABS_BSP_INCLUDE_FILE := $(ABS_BSP_ROOT_DIR)/public.mk + + +ifneq ($(WARNING.SMALL_STACK_SIZE),) +# This WARNING is here to protect you from unknowingly using a very small stack +# If the warning is set, increase your stack size or enable the BSP small stack +# setting to eliminate the warning +$(warning WARNING: $(WARNING.SMALL_STACK_SIZE)) +endif + + +# If the BSP public.mk indicates that ALT_SIM_OPTIMIZE is set, rename the ELF +# by prefixing it with RUN_ON_HDL_SIMULATOR_ONLY_. +ifneq ($(filter -DALT_SIM_OPTIMIZE,$(ALT_CPPFLAGS)),) +ELF := RUN_ON_HDL_SIMULATOR_ONLY_$(ELF) +endif + +# If the BSP public.mk indicates that ALT_PROVIDE_GMON is set, add option to +# download_elf target +ifneq ($(filter -DALT_PROVIDE_GMON,$(ALT_CPPFLAGS)),) +GMON_OUT_FILENAME := gmon.out +WRITE_GMON_OPTION := --write-gmon $(GMON_OUT_FILENAME) +endif + +# Name of ELF application. +APP_NAME := $(basename $(ELF)) + +# Set to defaults if variables not already defined in settings. +ifeq ($(LINKER_SCRIPT),) +LINKER_SCRIPT := $(BSP_LINKER_SCRIPT) +endif +ifeq ($(CRT0),) +CRT0 := $(BSP_CRT0) +endif +ifeq ($(SYS_LIB),) +SYS_LIB := $(BSP_SYS_LIB) +endif + +OBJDUMP_NAME := $(APP_NAME).objdump +OBJDUMP_FLAGS := --disassemble --syms --all-header +ifeq ($(OBJDUMP_INCLUDE_SOURCE),1) +OBJDUMP_FLAGS += --source +endif +ifeq ($(OBJDUMP_FULL_CONTENTS),1) +OBJDUMP_FLAGS += --full-contents +endif + +# Create list of linker dependencies (*.a files). +APP_LDDEPS := $(ALT_LDDEPS) $(LDDEPS) + +# Take lists and add required prefixes. +APP_INC_DIRS := $(addprefix -I, $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +ASM_INC_PREFIX := -Wa,-I +APP_ASM_INC_DIRS := $(addprefix $(ASM_INC_PREFIX), $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) +APP_LIB_DIRS := $(addprefix -L, $(ALT_LIBRARY_DIRS) $(APP_LIBRARY_DIRS) $(LIB_DIRS)) +APP_LIBS := $(addprefix -l, $(ALT_LIBRARY_NAMES) $(APP_LIBRARY_NAMES) $(LIBS)) + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# +# Avoid Nios II GCC 3.X options. +# + +# Detect if small newlib C library is requested. +# If yes, remove the -msmallc option because it is +# now handled by other means. +ifneq ($(filter -msmallc,$(ALT_LDFLAGS)),) + ALT_LDFLAGS := $(filter-out -msmallc,$(ALT_LDFLAGS)) + ALT_C_LIBRARY := smallc +else + ALT_C_LIBRARY := c +endif + +# Put each BSP dependent library in a group to avoid circular dependencies. +APP_BSP_DEP_LIBS := $(foreach l,$(ALT_BSP_DEP_LIBRARY_NAMES),-Wl,--start-group -l$(ALT_C_LIBRARY) -lgcc -l$(l) -Wl,--end-group) + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# +# Use Nios II GCC 3.X options. +# +APP_BSP_DEP_LIBS := $(addprefix -msys-lib=, $(ALT_BSP_DEP_LIBRARY_NAMES)) + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +# Arguments for the C preprocessor, C/C++ compiler, assembler, and linker. +APP_CFLAGS := $(APP_CFLAGS_DEFINED_SYMBOLS) \ + $(APP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(APP_CFLAGS_OPTIMIZATION) \ + $(APP_CFLAGS_DEBUG_LEVEL) \ + $(APP_CFLAGS_WARNINGS) \ + $(APP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Arguments only for the C++ compiler. +APP_CXXFLAGS := $(ALT_CXXFLAGS) $(CXXFLAGS) + +# Arguments only for the C preprocessor. +# Prefix each include directory with -I. +APP_CPPFLAGS := $(APP_INC_DIRS) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Arguments only for the assembler. +APP_ASFLAGS := $(APP_ASM_INC_DIRS) \ + $(ALT_ASFLAGS) \ + $(APP_ASFLAGS_USER) \ + $(ASFLAGS) + +# Arguments only for the linker. +APP_LDFLAGS := $(APP_LDFLAGS_USER) + +ifneq ($(LINKER_SCRIPT),) +APP_LDFLAGS += -T'$(LINKER_SCRIPT)' +endif + +ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) + +# Avoid Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += $(CRT0) +endif + +# The equivalent of the -msys-lib option is provided +# by the GROUP() command in the linker script. +# Note this means the SYS_LIB variable is now ignored. + +else # !AVOID_NIOS2_GCC3_OPTIONS + +# Use Nios II GCC 3.x options. +ifneq ($(CRT0),) +APP_LDFLAGS += -msys-crt0='$(CRT0)' +endif +ifneq ($(SYS_LIB),) +APP_LDFLAGS += -msys-lib=$(SYS_LIB) +endif + +endif # !AVOID_NIOS2_GCC3_OPTIONS + +APP_LDFLAGS += \ + $(APP_LIB_DIRS) \ + $(ALT_LDFLAGS) \ + $(LDFLAGS) + +LINKER_MAP_NAME := $(APP_NAME).map +ifeq ($(CREATE_LINKER_MAP), 1) +APP_LDFLAGS += -Wl,-Map=$(LINKER_MAP_NAME) +endif + +# QUARTUS_PROJECT_DIR and SOPC_NAME need to be defined if you want the +# mem_init_install target of the mem_init.mk (located in the associated BSP) +# to know how to copy memory initialization files (e.g. .dat, .hex) into +# directories required for Quartus compilation or RTL simulation. + +# Defining QUARTUS_PROJECT_DIR causes mem_init_install to copy memory +# initialization files into your Quartus project directory. This is required +# to provide the initial memory contents of FPGA memories that can be +# initialized by the programming file (.sof) or Hardcopy ROMs. It is also used +# for VHDL simulation of on-chip memories. + +# Defining SOPC_NAME causes the mem_init_install target to copy memory +# initialization files into your RTL simulation directory. This is required +# to provide the initial memory contents of all memories that can be +# initialized by RTL simulation. This variable should be set to the same name +# as your SOPC Builder system name. For example, if you have a system called +# "foo.sopc", this variable should be set to "foo". + +# If SOPC_NAME is not set and QUARTUS_PROJECT_DIR is set, then derive SOPC_NAME. +ifeq ($(SOPC_NAME),) +ifneq ($(QUARTUS_PROJECT_DIR),) +SOPC_NAME := $(basename $(notdir $(wildcard $(QUARTUS_PROJECT_DIR)/*.sopcinfo))) +endif +endif + +# Defining JDI_FILE is required to specify the JTAG Debug Information File +# path. This file is generated by Quartus, and is needed along with the +# .sopcinfo file to resolve processor instance ID's from names in a multi-CPU +# systems. For multi-CPU systems, the processor instance ID is used to select +# from multiple CPU's during ELF download. + +# Both JDI_FILE and SOPCINFO_FILE are provided by the BSP if they found during +# BSP creation. If JDI_FILE is not set and QUARTUS_PROJECT_DIR is set, then +# derive JDI_FILE. We do not attempt to derive SOPCINFO_FILE since there may be +# multiple .sopcinfo files in a Quartus project. +ifeq ($(JDI_FILE),) +ifneq ($(QUARTUS_PROJECT_DIR),) +JDI_FILE := $(wildcard $(QUARTUS_PROJECT_DIR)/*.jdi) +endif +endif + +# Path to root runtime directory used for hdl simulation +RUNTIME_ROOT_DIR := $(CONFIG_OBJ_DIR)/runtime + + + +#------------------------------------------------------------------------------ +# MAKEFILE INCLUDES DEPENDENT ON GENERATED CONTENT +#------------------------------------------------------------------------------ +# mem_init.mk is a generated makefile fragment. This file defines all targets +# used to generate HDL initialization simulation files and pre-initialized +# onchip memory files. +MEM_INIT_FILE := $(BSP_ROOT_DIR)/mem_init.mk +include $(MEM_INIT_FILE) + +# Create list of object files to be built using the list of source files. +# The source file hierarchy is preserved in the object tree. +# The supported file extensions are: +# +# .c - for C files +# .cxx .cc .cpp - for C++ files +# .S .s - for assembler files +# +# Handle source files specified by --src-dir & --src-rdir differently, to +# save some processing time in calling the adjust-path macro. + +OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(C_SRCS))) +OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(CXX_SRCS))) +OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(CXX_SRCS))) +OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(CXX_SRCS))) +OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(ASM_SRCS))) +OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(ASM_SRCS))) + +OBJ_LIST := $(sort $(OBJ_LIST_C) $(OBJ_LIST_CPP) $(OBJ_LIST_CXX) \ + $(OBJ_LIST_CC) $(OBJ_LIST_S) $(OBJ_LIST_SS)) + +SDIR_OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(SDIR_C_SRCS))) +SDIR_OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(SDIR_CXX_SRCS))) +SDIR_OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(SDIR_ASM_SRCS))) +SDIR_OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(SDIR_ASM_SRCS))) + +SDIR_OBJ_LIST := $(sort $(SDIR_OBJ_LIST_C) $(SDIR_OBJ_LIST_CPP) \ + $(SDIR_OBJ_LIST_CXX) $(SDIR_OBJ_LIST_CC) $(SDIR_OBJ_LIST_S) \ + $(SDIR_OBJ_LIST_SS)) + +# Relative-pathed objects that being with "../" are handled differently. +# +# Regular objects are created as +# $(CONFIG_OBJ_DIR)//.o +# where the path structure is maintained under the obj directory. This +# applies for both absolute and relative paths; in the absolute path +# case this means the entire source path will be recreated under the obj +# directory. This is done to allow two source files with the same name +# to be included as part of the project. +# +# Note: On Cygwin, the path recreated under the obj directory will be +# the cygpath -u output path. +# +# Relative-path objects that begin with "../" cause problems under this +# scheme, as $(CONFIG_OBJ_DIR)/..// can potentially put the object +# files anywhere in the system, creating clutter and polluting the source tree. +# As such, their paths are flattened - the object file created will be +# $(CONFIG_OBJ_DIR)/.o. Due to this, two files specified with +# "../" in the beginning cannot have the same name in the project. VPATH +# will be set for these sources to allow make to relocate the source file +# via %.o rules. +# +# The following lines separate the object list into the flatten and regular +# lists, and then handles them as appropriate. + +FLATTEN_OBJ_LIST := $(filter ../%,$(OBJ_LIST)) +FLATTEN_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_OBJ_LIST))) + +REGULAR_OBJ_LIST := $(filter-out $(FLATTEN_OBJ_LIST),$(OBJ_LIST)) +REGULAR_OBJ_LIST_C := $(filter $(OBJ_LIST_C),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CPP := $(filter $(OBJ_LIST_CPP),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CXX := $(filter $(OBJ_LIST_CXX),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_CC := $(filter $(OBJ_LIST_CC),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_S := $(filter $(OBJ_LIST_S),$(REGULAR_OBJ_LIST)) +REGULAR_OBJ_LIST_SS := $(filter $(OBJ_LIST_SS),$(REGULAR_OBJ_LIST)) + +FLATTEN_SDIR_OBJ_LIST := $(filter ../%,$(SDIR_OBJ_LIST)) +FLATTEN_SDIR_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_SDIR_OBJ_LIST))) + +REGULAR_SDIR_OBJ_LIST := $(filter-out $(FLATTEN_SDIR_OBJ_LIST),$(SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_C := $(filter $(SDIR_OBJ_LIST_C),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CPP := $(filter $(SDIR_OBJ_LIST_CPP),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CXX := $(filter $(SDIR_OBJ_LIST_CXX),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_CC := $(filter $(SDIR_OBJ_LIST_CC),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_S := $(filter $(SDIR_OBJ_LIST_S),$(REGULAR_SDIR_OBJ_LIST)) +REGULAR_SDIR_OBJ_LIST_SS := $(filter $(SDIR_OBJ_LIST_SS),$(REGULAR_SDIR_OBJ_LIST)) + +VPATH := $(sort $(dir $(FLATTEN_OBJ_LIST)) $(dir $(FLATTEN_SDIR_OBJ_LIST))) + +APP_OBJS_C := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_C) \ + $(foreach s,$(REGULAR_OBJ_LIST_C),$(call adjust-path,$s))) + +APP_OBJS_CPP := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CPP) \ + $(foreach s,$(REGULAR_OBJ_LIST_CPP),$(call adjust-path,$s))) + +APP_OBJS_CXX := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CXX) \ + $(foreach s,$(REGULAR_OBJ_LIST_CXX),$(call adjust-path,$s))) + +APP_OBJS_CC := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_CC) \ + $(foreach s,$(REGULAR_OBJ_LIST_CC),$(call adjust-path,$s))) + +APP_OBJS_S := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_S) \ + $(foreach s,$(REGULAR_OBJ_LIST_S),$(call adjust-path,$s))) + +APP_OBJS_SS := $(addprefix $(CONFIG_OBJ_DIR)/,\ + $(REGULAR_SDIR_OBJ_LIST_SS) \ + $(foreach s,$(REGULAR_OBJ_LIST_SS),$(call adjust-path,$s))) + +APP_OBJS := $(APP_OBJS_C) $(APP_OBJS_CPP) $(APP_OBJS_CXX) $(APP_OBJS_CC) \ + $(APP_OBJS_S) $(APP_OBJS_SS) \ + $(FLATTEN_APP_OBJS) $(FLATTEN_SDIR_APP_OBJS) + +# Add any extra user-provided object files. +APP_OBJS += $(OBJS) + +# Create list of dependancy files for each object file. +APP_DEPS := $(APP_OBJS:.o=.d) + +# Patch the Elf file with system specific information + +# Patch the Elf with the name of the sopc system +ifneq ($(SOPC_NAME),) +ELF_PATCH_FLAG += --sopc_system_name $(SOPC_NAME) +endif + +# Patch the Elf with the absolute path to the Quartus Project Directory +ifneq ($(QUARTUS_PROJECT_DIR),) +ABS_QUARTUS_PROJECT_DIR := $(call adjust-path-mixed,$(shell cd "$(QUARTUS_PROJECT_DIR)"; pwd)) +ELF_PATCH_FLAG += --quartus_project_dir "$(ABS_QUARTUS_PROJECT_DIR)" +endif + +# Patch the Elf and download args with the JDI_FILE if specified +ifneq ($(wildcard $(JDI_FILE)),) +ELF_PATCH_FLAG += --jdi $(JDI_FILE) +DOWNLOAD_JDI_FLAG := --jdi $(JDI_FILE) +endif + +# Patch the Elf with the SOPCINFO_FILE if specified +ifneq ($(wildcard $(SOPCINFO_FILE)),) +ELF_PATCH_FLAG += --sopcinfo $(SOPCINFO_FILE) +endif + +# Use the DOWNLOAD_CABLE variable to specify which JTAG cable to use. +# This is not needed if you only have one cable. +ifneq ($(DOWNLOAD_CABLE),) +DOWNLOAD_CABLE_FLAG := --cable '$(DOWNLOAD_CABLE)' +endif + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +# +# Set tool default variables if not already defined. +# If these are defined, they would typically be defined in an +# included makefile fragment. +# +ifeq ($(DEFAULT_CROSS_COMPILE),) +DEFAULT_CROSS_COMPILE := nios2-elf- +endif + +ifeq ($(DEFAULT_STACK_REPORT),) +DEFAULT_STACKREPORT := nios2-stackreport +endif + +ifeq ($(DEFAULT_DOWNLOAD),) +DEFAULT_DOWNLOAD := nios2-download +endif + +ifeq ($(DEFAULT_FLASHPROG),) +DEFAULT_FLASHPROG := nios2-flash-programmer +endif + +ifeq ($(DEFAULT_ELFPATCH),) +DEFAULT_ELFPATCH := nios2-elf-insert +endif + +ifeq ($(DEFAULT_RM),) +DEFAULT_RM := rm -f +endif + +ifeq ($(DEFAULT_CP),) +DEFAULT_CP := cp -f +endif + +ifeq ($(DEFAULT_MKDIR),) +DEFAULT_MKDIR := mkdir -p +endif + +# +# Set tool variables to defaults if not already defined. +# If these are defined, they would typically be defined by a +# setting in the generated portion of this makefile. +# +ifeq ($(CROSS_COMPILE),) +CROSS_COMPILE := $(DEFAULT_CROSS_COMPILE) +endif + +ifeq ($(origin CC),default) +CC := $(CROSS_COMPILE)gcc -xc +endif + +ifeq ($(origin CXX),default) +CXX := $(CROSS_COMPILE)gcc -xc++ +endif + +ifeq ($(origin AS),default) +AS := $(CROSS_COMPILE)gcc +endif + +ifeq ($(origin AR),default) +AR := $(CROSS_COMPILE)ar +endif + +ifeq ($(origin LD),default) +LD := $(CROSS_COMPILE)g++ +endif + +ifeq ($(origin NM),default) +NM := $(CROSS_COMPILE)nm +endif + +ifeq ($(origin RM),default) +RM := $(DEFAULT_RM) +endif + +ifeq ($(origin CP),default) +CP := $(DEFAULT_CP) +endif + +ifeq ($(OBJDUMP),) +OBJDUMP := $(CROSS_COMPILE)objdump +endif + +ifeq ($(OBJCOPY),) +OBJCOPY := $(CROSS_COMPILE)objcopy +endif + +ifeq ($(STACKREPORT),) +ifeq ($(CROSS_COMPILE),nios2-elf-) +STACKREPORT := $(DEFAULT_STACKREPORT) +else +DISABLE_STACKREPORT := 1 +endif +endif + +ifeq ($(DOWNLOAD),) +DOWNLOAD := $(DEFAULT_DOWNLOAD) +endif + +ifeq ($(FLASHPROG),) +FLASHPROG := $(DEFAULT_FLASHPROG) +endif + +ifeq ($(ELFPATCH),) +ELFPATCH := $(DEFAULT_ELFPATCH) +endif + +ifeq ($(MKDIR),) +MKDIR := $(DEFAULT_MKDIR) +endif + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ + +define compile.c +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CC) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< +$(CC_POST_PROCESS) +endef + +define compile.cpp +@$(ECHO) Info: Compiling $< to $@ +@$(MKDIR) $(@D) +$(CXX) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< +$(CXX_POST_PROCESS) +endef + +# If assembling with the compiler, ensure "-Wa," is prepended to all APP_ASFLAGS +ifeq ($(AS),$(patsubst %as,%,$(AS))) +COMMA := , +APP_ASFLAGS := $(filter-out $(APP_CFLAGS),$(addprefix -Wa$(COMMA),$(patsubst -Wa$(COMMA)%,%,$(APP_ASFLAGS)))) +endif + +define compile.s +@$(ECHO) Info: Assembling $< to $@ +@$(MKDIR) $(@D) +$(AS) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) $(APP_ASFLAGS) -o $@ $< +$(AS_POST_PROCESS) +endef + +ifeq ($(MAKE_VERSION),3.81) +.SECONDEXPANSION: + +$(APP_OBJS_C): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.c) + $(compile.c) + +$(APP_OBJS_CPP): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cpp) + $(compile.cpp) + +$(APP_OBJS_CC): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cc) + $(compile.cpp) + +$(APP_OBJS_CXX): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cxx) + $(compile.cpp) + +$(APP_OBJS_S): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.S) + $(compile.s) + +$(APP_OBJS_SS): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.s) + $(compile.s) + +endif # MAKE_VERSION != 3.81 + +$(CONFIG_OBJ_DIR)/%.o: %.c + $(compile.c) + +$(CONFIG_OBJ_DIR)/%.o: %.cpp + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cc + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.cxx + $(compile.cpp) + +$(CONFIG_OBJ_DIR)/%.o: %.S + $(compile.s) + +$(CONFIG_OBJ_DIR)/%.o: %.s + $(compile.s) + + +#------------------------------------------------------------------------------ +# PATTERN RULES TO INTERMEDIATE FILES +#------------------------------------------------------------------------------ + +$(CONFIG_OBJ_DIR)/%.s: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -S $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.s: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.c + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CC) -E $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cpp + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cc + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + +$(CONFIG_OBJ_DIR)/%.i: %.cxx + @$(ECHO) Info: Compiling $< to $@ + @$(MKDIR) $(@D) + $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< + + +#------------------------------------------------------------------------------ +# TARGET RULES +#------------------------------------------------------------------------------ + +.PHONY : help +help : + @$(ECHO) "Summary of Makefile targets" + @$(ECHO) " Build targets:" + @$(ECHO) " all (default) - Application and all libraries (including BSP)" + @$(ECHO) " bsp - Just the BSP" + @$(ECHO) " libs - All libraries (including BSP)" + @$(ECHO) " flash - All flash files" + @$(ECHO) " mem_init_generate - All memory initialization files" +ifeq ($(QSYS),1) + @$(ECHO) " mem_init_install - This target is deprecated for QSys Systems" + @$(ECHO) " --> Use the mem_init_generate target and then" + @$(ECHO) " add the generated meminit.qip file to your" + @$(ECHO) " Quartus II Project." +else # if QSYS != 1 + @$(ECHO) " mem_init_install - Copy memory initialization files to Quartus II project" +endif # QSYS == 1 + @$(ECHO) + @$(ECHO) " Clean targets:" + @$(ECHO) " clean_all - Application and all libraries (including BSP)" + @$(ECHO) " clean - Just the application" + @$(ECHO) " clean_bsp - Just the BSP" + @$(ECHO) " clean_libs - All libraries (including BSP)" + @$(ECHO) + @$(ECHO) " Run targets:" + @$(ECHO) " download-elf - Download and run your elf executable" + @$(ECHO) " program-flash - Program flash contents to the board" + +# Handy rule to skip making libraries and just make application. +.PHONY : app +app : $(ELF) + +ifeq ($(CREATE_OBJDUMP), 1) +app : $(OBJDUMP_NAME) +endif + +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +app : elf_derived_files +endif + +.PHONY: elf_derived_files +elf_derived_files: default_mem_init + +# Handy rule for making just the BSP. +.PHONY : bsp +bsp : + @$(ECHO) Info: Building $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) + + +# Make sure all makeable libraries (including the BSP) are up-to-date. +LIB_TARGETS := $(patsubst %,%-recurs-make-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : libs +libs : $(LIB_TARGETS) + +ifneq ($(strip $(LIB_TARGETS)),) +$(LIB_TARGETS): %-recurs-make-lib: + @$(ECHO) Info: Building $* + $(MAKE) --no-print-directory -C $* +endif + +ifneq ($(strip $(APP_LDDEPS)),) +$(APP_LDDEPS): libs + @true +endif + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(CONFIG_OBJ_DIR)/$(FORCE_RELINK_DEP) $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(APP_OBJS): $(wildcard $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP)) $(wildcard $(addsuffix /$(FORCE_REBUILD_ALL_DEP), . $(ALT_LIBRARY_DIRS))) + +$(ELF): $(wildcard $(addsuffix /$(FORCE_RELINK_DEP), $(CONFIG_OBJ_DIR) $(ALT_LIBRARY_DIRS))) + + +# Clean just the application. +.PHONY : clean +ifeq ($(CREATE_ELF_DERIVED_FILES),1) +clean : clean_elf_derived_files +endif + +clean : + @$(RM) -r $(ELF) $(OBJDUMP_NAME) $(LINKER_MAP_NAME) $(OBJ_ROOT_DIR) $(RUNTIME_ROOT_DIR) $(FORCE_REBUILD_DEP_LIST) + @$(ECHO) [$(APP_NAME) clean complete] + +# Clean just the BSP. +.PHONY : clean_bsp +clean_bsp : + @$(ECHO) Info: Cleaning $(BSP_ROOT_DIR) + @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) clean + +# Clean all makeable libraries including the BSP. +LIB_CLEAN_TARGETS := $(patsubst %,%-recurs-make-clean-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) + +.PHONY : clean_libs +clean_libs : $(LIB_CLEAN_TARGETS) + +ifneq ($(strip $(LIB_CLEAN_TARGETS)),) +$(LIB_CLEAN_TARGETS): %-recurs-make-clean-lib: + @$(ECHO) Info: Cleaning $* + $(MAKE) --no-print-directory -C $* clean +endif + +.PHONY: clean_elf_derived_files +clean_elf_derived_files: mem_init_clean + +# Clean application and all makeable libraries including the BSP. +.PHONY : clean_all +clean_all : clean mem_init_clean clean_libs + +# Include the dependency files unless the make goal is performing a clean +# of the application. +ifneq ($(firstword $(MAKECMDGOALS)),clean) +ifneq ($(firstword $(MAKECMDGOALS)),clean_all) +-include $(APP_DEPS) +endif +endif + +.PHONY : download-elf +download-elf : $(ELF) + @if [ "$(DOWNLOAD)" = "none" ]; \ + then \ + $(ECHO) Downloading $(ELF) not supported; \ + else \ + $(ECHO) Info: Downloading $(ELF); \ + $(DOWNLOAD) --go --cpu_name=$(CPU_NAME) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) $(DOWNLOAD_JDI_FLAG) $(WRITE_GMON_OPTION) $(ELF); \ + fi + +# Delete the target of a rule if it has changed and its commands exit +# with a nonzero exit status. +.DELETE_ON_ERROR: + +# Rules for flash programming commands +PROGRAM_FLASH_SUFFIX := -program +PROGRAM_FLASH_TARGET := $(addsuffix $(PROGRAM_FLASH_SUFFIX), $(FLASH_FILES)) + +.PHONY : program-flash +program-flash : $(PROGRAM_FLASH_TARGET) + +.PHONY : $(PROGRAM_FLASH_TARGET) +$(PROGRAM_FLASH_TARGET) : flash + @if [ "$(FLASHPROG)" = "none" ]; \ + then \ + $(ECHO) Programming flash not supported; \ + else \ + $(ECHO) Info: Programming $(basename $@).flash; \ + if [ -z "$($(basename $@)_EPCS_FLAGS)" ]; \ + then \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ + else \ + $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ + fi \ + fi + + +# Rules for simulating with an HDL Simulator [QSYS only] +ifeq ($(QSYS),1) +IP_MAKE_SIMSCRIPT := ip-make-simscript + +ifeq ($(VSIM),) +VSIM_EXE := "$(if $(VSIM_DIR),$(VSIM_DIR)/,)vsim" +ifeq ($(ENABLE_VSIM_GUI),1) +VSIM := $(VSIM_EXE) -gui +else +VSIM := $(VSIM_EXE) -c +endif # ENABLE_VSIM_GUI == 1 +endif # VSIM not set + +ifeq ($(SPD),) +ifneq ($(ABS_QUARTUS_PROJECT_DIR),) +ifneq ($(SOPC_NAME),) +SPD := $(ABS_QUARTUS_PROJECT_DIR)/$(SOPC_NAME)_tb.spd +endif # SOPC_NAME set +endif # ABS_QUARTUS_PROJECT_DIR set +endif # SPD == empty string + +ifeq ($(MSIM_SCRIPT),) +SIM_SCRIPT_DIR := $(RUNTIME_ROOT_DIR)/sim +MSIM_SCRIPT := $(SIM_SCRIPT_DIR)/mentor/msim_setup.tcl +endif # MSIM_SCRIPT == empty string + +ifeq ($(MAKE_VERSION),3.81) +ABS_MEM_INIT_DESCRIPTOR_FILE := $(abspath $(MEM_INIT_DESCRIPTOR_FILE)) +else +ABS_MEM_INIT_DESCRIPTOR_FILE := $(call adjust-path-mixed,$(shell pwd))/$(MEM_INIT_DESCRIPTOR_FILE) +endif + +$(MSIM_SCRIPT): $(SPD) $(MEM_INIT_DESCRIPTOR_FILE) +ifeq ($(SPD),) + $(error No SPD file specified. Ensure QUARTUS_PROJECT_DIR variable is set) +endif + @$(MKDIR) $(SIM_SCRIPT_DIR) + $(IP_MAKE_SIMSCRIPT) --spd=$(SPD) --spd=$(MEM_INIT_DESCRIPTOR_FILE) --output-directory=$(SIM_SCRIPT_DIR) + +VSIM_COMMAND = \ + cd $(dir $(MSIM_SCRIPT)) && \ + $(VSIM) -do "do $(notdir $(MSIM_SCRIPT)); ld; $(if $(VSIM_RUN_TIME),run ${VSIM_RUN_TIME};quit;)" + +.PHONY: sim +sim: $(MSIM_SCRIPT) mem_init_generate +ifeq ($(MSIM_SCRIPT),) + $(error MSIM_SCRIPT not set) +endif + $(VSIM_COMMAND) + +endif # QSYS == 1 + + +#------------------------------------------------------------------------------ +# ELF TARGET RULE +#------------------------------------------------------------------------------ +# Rule for constructing the executable elf file. +$(ELF) : $(APP_OBJS) $(LINKER_SCRIPT) $(APP_LDDEPS) + @$(ECHO) Info: Linking $@ + $(LD) $(APP_LDFLAGS) $(APP_CFLAGS) -o $@ $(filter-out $(CRT0),$(APP_OBJS)) $(APP_LIBS) $(APP_BSP_DEP_LIBS) +ifneq ($(DISABLE_ELFPATCH),1) + $(ELFPATCH) $@ $(ELF_PATCH_FLAG) +endif +ifneq ($(DISABLE_STACKREPORT),1) + @bash -c "$(STACKREPORT) $@" +endif + +$(OBJDUMP_NAME) : $(ELF) + @$(ECHO) Info: Creating $@ + $(OBJDUMP) $(OBJDUMP_FLAGS) $< >$@ + +# Rule for printing the name of the elf file +.PHONY: print-elf-name +print-elf-name: + @$(ECHO) $(ELF) + + diff --git a/software/DE2_115_ASM3_release/create-this-app b/software/DE2_115_ASM3_release/create-this-app new file mode 100644 index 0000000..275882c --- /dev/null +++ b/software/DE2_115_ASM3_release/create-this-app @@ -0,0 +1,114 @@ +#!/bin/bash +# +# This script creates the hello_world application in this directory. + + +BSP_DIR=../DE2_115_ASM3_release_bsp +QUARTUS_PROJECT_DIR=../../ +NIOS2_APP_GEN_ARGS="--elf-name DE2_115_ASM3_release.elf --set OBJDUMP_INCLUDE_SOURCE 1 --src-files hello_world.c" + + +# First, check to see if $SOPC_KIT_NIOS2 environmental variable is set. +# This variable is required for the command line tools to execute correctly. +if [ -z "${SOPC_KIT_NIOS2}" ] +then + echo Required \$SOPC_KIT_NIOS2 Environmental Variable is not set! + exit 1 +fi + + +# Also make sure that the APP has not been created already. Check for +# existence of Makefile in the app directory +if [ -f ./Makefile ] +then + echo Application has already been created! Delete Makefile if you want to create a new application makefile + exit 1 +fi + + +# We are selecting hal_default bsp because it supports this application. +# Check to see if the hal_default has already been generated by checking for +# existence of the public.mk file. If not, we need to run +# create-this-bsp file to generate the bsp. +if [ ! -f ${BSP_DIR}/public.mk ]; then + # Since BSP doesn't exist, create the BSP + # Pass any command line arguments passed to this script to the BSP. + pushd ${BSP_DIR} >> /dev/null + ./create-this-bsp "$@" || { + echo "create-this-bsp failed" + exit 1 + } + popd >> /dev/null +fi + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + esac + shift +done + + +# Now we also need to go copy the sources for this application to the +# local directory. +find "${SOPC_KIT_NIOS2}/examples/software/hello_world/" -name '*.c' -or -name '*.h' -or -name 'hostfs*' | xargs -i cp -L {} ./ || { + echo "failed during copying example source files" + exit 1 +} + +find "${SOPC_KIT_NIOS2}/examples/software/hello_world/" -name 'readme.txt' -or -name 'Readme.txt' | xargs -i cp -L {} ./ || { + echo "failed copying readme file" +} + +if [ -d "${SOPC_KIT_NIOS2}/examples/software/hello_world/system" ] +then + cp -RL "${SOPC_KIT_NIOS2}/examples/software/hello_world/system" . || { + echo "failed during copying project support files" + exit 1 + } +fi + +chmod -R +w . || { + echo "failed during changing file permissions" + exit 1 +} + +cmd="nios2-app-generate-makefile --bsp-dir ${BSP_DIR} --set QUARTUS_PROJECT_DIR=${QUARTUS_PROJECT_DIR} ${NIOS2_APP_GEN_ARGS}" + +echo "create-this-app: Running \"${cmd}\"" +$cmd || { + echo "nios2-app-generate-makefile failed" + exit 1 +} + +if [ -z "$SKIP_MAKE" ]; then + cmd="make" + + echo "create-this-app: Running \"$cmd\"" + $cmd || { + echo "make failed" + exit 1 + } + + echo + echo "To download and run the application:" + echo " 1. Make sure the board is connected to the system." + echo " 2. Run 'nios2-configure-sof ' to configure the FPGA with the hardware design." + echo " 3. If you have a stdio device, run 'nios2-terminal' in a different shell." + echo " 4. Run 'make download-elf' from the application directory." + echo + echo "To debug the application:" + echo " Import the project into Nios II Software Build Tools for Eclipse." + echo " Refer to Nios II Software Build Tools for Eclipse Documentation for more information." + echo + echo -e "" +fi + + +exit 0 diff --git a/software/DE2_115_ASM3_release/hello_world_small.c b/software/DE2_115_ASM3_release/hello_world_small.c new file mode 100644 index 0000000..eafc378 --- /dev/null +++ b/software/DE2_115_ASM3_release/hello_world_small.c @@ -0,0 +1,216 @@ +#include "sys/alt_stdio.h" +#include +#include "system.h" +#include "hex_out.h" +#include "lcd_out.h" +#include "sys_register.h" +#include "sys_memory.h" +#include "input_int.h" +#include "sys_debug.h" +#include "sys_prog.h" + +#define ledrs (volatile int *) LEDRS_BASE + +static void init() { + // lcd + lcd_init(); + lcd_print("Starting now..."); + + registers_init(); + memory_init(); + // hex + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + print_block("ve", 2, HEX6_7); + print_block("r-", 2, HEX4_5); + print_block("0003", 4, HEX0_3); + delay10ms(200); + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + + lcd_caret_reset2(); + lcd_print("Ok!"); +} + +char stack[5]; + +void store_value(){ + unsigned int memi = global_registers[Ssw_memi]; + memory_store(memi, Ssw_data); + + { // �f�o�b�N�\�� + char buf[5]; + sprintf(buf, "%02x", (unsigned char)memi); + print_block(buf, 2, HEX6_7); + print_block("--", 2, HEX4_5); + sprintf(buf, "%04d", global_registers[Ssw_data]); + print_block(buf, 4, HEX0_3); + + display_mem((unsigned char)memi, global_registers[Ssw_data]); + } +} +void store_inst(){ + char inst; + char mem_index; + char reg_index; + unsigned int stored_pc; + struct InstRec inst_rec; + + // �K�v�ȏ��̎擾 + inst = global_registers[Ssw_inst]; + mem_index = global_registers[Ssw_memi]; + reg_index = global_registers[Ssw_regi]; + inst_rec.inst = (unsigned int)inst; + inst_rec.memi = (unsigned int)mem_index; + inst_rec.regi = (unsigned int)reg_index; + + // �X�g�A���� + stored_pc = get_pc(); + inst_memory_store(get_pc(), inst_rec); + { // �f�o�b�N�\�� + char buf[5]; + sprintf(buf, "0x%02x", inst_rec.inst); + print_block(buf, 4, HEX0_3); + sprintf(buf, "--"); + print_block(buf, 2, HEX4_5); + sprintf(buf, "%02x", get_pc()); + print_block(buf, 2, HEX6_7); + + display_inst(inst_rec, stored_pc); + } + inc_pc(); +} + +void print_change_memory(unsigned int current_memory) { + char buf[17]; + sprintf(buf, "Current page:%2d", current_memory); + lcd_caret_reset(); + lcd_print("Change program"); + lcd_caret_reset2(); + lcd_print(buf); + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); +} + +static void reset_mem_cancel() { + lcd_caret_reset(); + lcd_print("rewrite all 0?"); + lcd_caret_reset2(); + lcd_print("push again -> NG"); +} +static char reset_mem(char confirmed) { + if (confirmed == 0) { + lcd_caret_reset(); + lcd_print("rewrite all 0?"); + lcd_caret_reset2(); + lcd_print("push again"); + // �m�F�v�� + return 1; + } else { + int i; + for (i = 0; i < MEM_SIZE; i++){ + memory_store(i,Szero); + } + lcd_caret_reset(); + lcd_print("rewrite all 0?"); + lcd_caret_reset2(); + lcd_print("push again -> OK"); + + // PC���Z�b�g���� + return 0; + } +} +static void reset_pc_cancel() { + lcd_caret_reset(); + lcd_print("reset pc?"); + lcd_caret_reset2(); + lcd_print("push again -> NG"); +} +static char reset_pc(char confirmed) { + if (confirmed == 0) { + lcd_caret_reset(); + lcd_print("reset pc?"); + lcd_caret_reset2(); + lcd_print("push again"); + // �m�F�v�� + return 1; + } else { + set_pc(0); + + lcd_caret_reset(); + lcd_print("reset pc?"); + lcd_caret_reset2(); + lcd_print("push again -> OK"); + + // PC���Z�b�g���� + return 0; + } +} + + +int main() +{ + init(); + + enum RunMode fRun = RUN_STOP; + char reset_pc_confirmed = 0; + char reset_mem_confirmed = 0; + + while(1) { + // interrupt + in_int(); + + // event + // CANCEL + if (global_registers[Ssw_rw] == 0 + || ((PUSH_EVENT & PUSH_ANY) && !(PUSH_EVENT & PUSH_VALSTR))) { + if (reset_mem_confirmed == 1) { + reset_mem_confirmed = 0; //�m�F�L�����Z�� + reset_mem_cancel(); + } + } + if (global_registers[Ssw_rw] == 0 + || ((PUSH_EVENT & PUSH_ANY) && !(PUSH_EVENT & PUSH_INSSTR))) { + if (reset_pc_confirmed == 1) { + reset_pc_confirmed = 0; //�m�F�L�����Z�� + reset_pc_cancel(); + } + } + // CONFIRM + if (PUSH_EVENT & PUSH_VALSTR) { + // �l�̃X�g�A + if (global_registers[Ssw_rw] == 1) { + //�폜 + char res = reset_mem(reset_mem_confirmed);//���m�F�̏��F + if (1 == res) reset_mem_confirmed = 1; //���m�F + if (0 == res) reset_mem_confirmed = 0; //���Z�b�g�̊m�F + } else { + store_value(); + } + } + if (PUSH_EVENT & PUSH_INSSTR) { + // ���߂̃X�g�A + if (global_registers[Ssw_rw] == 1) { + //PC�̃��Z�b�g + char res = reset_pc(reset_pc_confirmed);//���m�F�̏��F + if (1 == res) reset_pc_confirmed = 1; //���m�F + if (0 == res) reset_pc_confirmed = 0; //���Z�b�g�̊m�F + } else { + store_inst(); + } + } + // RUN + if (PUSH_EVENT & PUSH_RUN) { + if (global_current_memory != (unsigned int)global_registers[Ssw_psel]) { + global_current_memory = (unsigned int)global_registers[Ssw_psel]; + print_change_memory(global_current_memory); + } + else { + // �v���O�����������ݒ� + fRun = RUN_INIT; + } + } + if (fRun != RUN_STOP) { + // �v���O�������s���荞�� & ���s���[�h�X�V + fRun = run_proc(fRun); + } + } + return 0; +} diff --git a/software/DE2_115_ASM3_release/hex_encoder.c b/software/DE2_115_ASM3_release/hex_encoder.c new file mode 100644 index 0000000..9639775 --- /dev/null +++ b/software/DE2_115_ASM3_release/hex_encoder.c @@ -0,0 +1,205 @@ +/* + * hex_encoder.c + * + * Created on: 2016/11/17 + * Author: takayun + */ + +#include "hex_encoder.h" +#include + +void encodeNumHex(int hex_i, int num) { + char encoded = 0; + switch (num) { + case 0: + encoded = (char)0x40; // 100 0000 + break; + case 1: + encoded = (char)0xF9; // 111 1001 + break; + case 2: + encoded = (char)0x24; // 010 0100 + break; + case 3: + encoded = (char)0x30; // 011 0000 + break; + case 4: + encoded = (char)0x19; // 001 1001 + break; + case 5: + encoded = (char)0x12; // 001 0010 + break; + case 6: + encoded = (char)0x02; // 000 0010 + break; + case 7: + encoded = (char)0x58; // 101 1000 + break; + case 8: + encoded = (char)0x00; // 000 0000 + break; + case 9: + encoded = (char)0x10; // 001 0000 + break; + default: + encoded = 0; + break; + } + + switch (hex_i) { + case 0: + *hex0 = encoded; + break; + case 1: + *hex1 = encoded; + break; + case 2: + *hex2 = encoded; + break; + case 3: + *hex3 = encoded; + break; + case 4: + *hex4 = encoded; + break; + case 5: + *hex5 = encoded; + break; + case 6: + *hex6 = encoded; + break; + case 7: + *hex7 = encoded; + break; + default: + break; + } +} + +void encodeLatHex(int hex_i, char c) { + char encoded = 0; + + if (isdigit(c)) { + encodeNumHex(hex_i, c-'0'); + return; + } + + switch (c) { + case ' ': + encoded = (char)0xFF; // 111 1111 + break; + case '-': + encoded = (char)0x3F; // 011 1111 + break; + case 'a': + encoded = (char)0x08; // 000 1000 + break; + case 'b': + encoded = (char)0x03; // 000 0011 + break; + case 'c': + encoded = (char)0x27; // 010 0111 + break; + case 'd': + encoded = (char)0x21; // 010 0001 + break; + case 'e': + encoded = (char)0x06; // 000 0110 + break; + case 'f': + encoded = (char)0x0E; // 000 1110 + break; + case 'g': + encoded = (char)0x42; // 100 0010 + break; + case 'h': + encoded = (char)0x0B; // 000 1011 + break; + case 'i': + encoded = (char)0xFB; // 111 1011 + break; + case 'j': + encoded = (char)0x61; // 110 0001 + break; + case 'k': + encoded = (char)0x0A; // 000 1010 + break; + case 'l': + encoded = (char)0x47; // 100 0111 + break; + case 'm': + encoded = (char)0x48; // 100 1000 + break; + case 'n': + encoded = (char)0x2B; // 010 1011 + break; + case 'o': + encoded = (char)0x23; // 010 0011 + break; + case 'p': + encoded = (char)0x0C; // 000 1100 + break; + case 'q': + encoded = (char)0x04; // 000 0100 + break; + case 'r': + encoded = (char)0x2F; // 010 1111 + break; + case 's': + encoded = (char)0x13; // 001 0011 + break; + case 't': + encoded = (char)0x07; // 000 0111 + break; + case 'u': + encoded = (char)0x63; // 110 0011 + break; + case 'v': + encoded = (char)0x41; // 100 0001 + break; + case 'w': + encoded = (char)0x01; // 000 0001 + break; + case 'x': + encoded = (char)0x09; // 000 1001 + break; + case 'y': + encoded = (char)0x11; // 001 0001 + break; + case 'z': + encoded = (char)0x64; // 110 0100 + break; + default: + encoded = 0; + break; + } + + switch (hex_i) { + case 0: + *hex0 = encoded; + break; + case 1: + *hex1 = encoded; + break; + case 2: + *hex2 = encoded; + break; + case 3: + *hex3 = encoded; + break; + case 4: + *hex4 = encoded; + break; + case 5: + *hex5 = encoded; + break; + case 6: + *hex6 = encoded; + break; + case 7: + *hex7 = encoded; + break; + default: + break; + } +} diff --git a/software/DE2_115_ASM3_release/hex_encoder.h b/software/DE2_115_ASM3_release/hex_encoder.h new file mode 100644 index 0000000..7909cf8 --- /dev/null +++ b/software/DE2_115_ASM3_release/hex_encoder.h @@ -0,0 +1,38 @@ +/* + * hex_encoder.h + * + * Created on: 2016/11/17 + * Author: takayun + */ + +#ifndef HEX_ENCODER_H_ +#define HEX_ENCODER_H_ + +#include "system.h" + +/************************************************** + * Defines + **************************************************/ + +#define hex0 (volatile char *) HEX0_BASE +#define hex1 (volatile char *) HEX1_BASE +#define hex2 (volatile char *) HEX2_BASE +#define hex3 (volatile char *) HEX3_BASE +#define hex4 (volatile char *) HEX4_BASE +#define hex5 (volatile char *) HEX5_BASE +#define hex6 (volatile char *) HEX6_BASE +#define hex7 (volatile char *) HEX7_BASE + +/************************************************** + * Variables + **************************************************/ + + +/************************************************** + * Functions + **************************************************/ + +void encodeNumHex(int hex_i, int num); +void encodeLatHex(int hex_i, char c); + +#endif /* HEX_ENCODER_H_ */ diff --git a/software/DE2_115_ASM3_release/hex_out.c b/software/DE2_115_ASM3_release/hex_out.c new file mode 100644 index 0000000..874dbac --- /dev/null +++ b/software/DE2_115_ASM3_release/hex_out.c @@ -0,0 +1,67 @@ +/* + * hex_out.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "hex_out.h" +#include "hex_encoder.h" +#include "sys_except.h" + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { + int i; + if (block_i == HEX0_3) { + if (size > 4) panic(); + for (i = 0; i < size; i++) { + encodeLatHex(i,str[size-1-i]); + } + } + else if (block_i == HEX4_5) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + encodeLatHex(i+4,str[size-1-i]); + } + } + else if (block_i == HEX6_7) { + if (size > 2) panic(); + for (i = 0; i < size; i++) { + encodeLatHex(i+6,str[size-1-i]); + } + } +} + +void clear_block(enum BLOCK_N block_i) { + if (block_i == HEX0_3) { + print_block(" ", 4, HEX0_3); + } + else if (block_i == HEX4_5) { + print_block(" ", 2, HEX4_5); + } + else if (block_i == HEX6_7) { + print_block(" ", 2, HEX6_7); + } +} + +void print_number(char num) { + int i; + char buf[5]; + char val; + for (i = 0; i < 4; i++) { + if (num < 0) { + buf[0] = '-'; + val = -num; + } else { + buf[0] = ' '; + val = num; + } + buf[1] = val/100%10 + '0'; + buf[2] = val/10%10 + '0'; + buf[3] = val%10 + '0'; + } + clear_block(HEX0_3); + print_block(buf, 4, HEX0_3); +} + + + + diff --git a/software/DE2_115_ASM3_release/hex_out.h b/software/DE2_115_ASM3_release/hex_out.h new file mode 100644 index 0000000..99219b5 --- /dev/null +++ b/software/DE2_115_ASM3_release/hex_out.h @@ -0,0 +1,33 @@ +/* + * hex_out.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef HEX_IO_H_ +#define HEX_IO_H_ + +/************************************************** + * Defines + **************************************************/ + +enum BLOCK_N { + HEX0_3, HEX4_5, HEX6_7 +}; + +/************************************************** + * Variables + **************************************************/ + + +/************************************************** + * Functions + **************************************************/ + +void print_block(char * str, unsigned int size, enum BLOCK_N block_i); +void clear_block(enum BLOCK_N block_i); +void print_number(char num); + + +#endif /* HEX_IO_H_ */ diff --git a/software/DE2_115_ASM3_release/input_int.c b/software/DE2_115_ASM3_release/input_int.c new file mode 100644 index 0000000..0145286 --- /dev/null +++ b/software/DE2_115_ASM3_release/input_int.c @@ -0,0 +1,71 @@ +/* + * input_int.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "input_int.h" +#include "sys_register.h" + +unsigned char PUSH_EVENT = PUSH_NONE; + +void in_int() { + push_int(); +} + +static void update_sw_reg(sw_t s) { + global_registers[Ssw_data] = (char)s.data.value; + global_registers[Ssw_inst] = (char)s.splited.instruction_code; + global_registers[Ssw_memi] = (char)s.splited.memory_index; + global_registers[Ssw_regi] = (char)s.splited.register_index; + global_registers[Ssw_psel] = (char)s.splited.program_selecter; + global_registers[Ssw_rw] = (char)s.splited.rw_mode; + global_registers[Ssw_run] = (char)s.splited.run_mode; +} + +enum PushEvent push_decode(char psw) { + int result = PUSH_NONE; + switch(psw) { + case 0x3: + result += PUSH_ANY; + result += PUSH_VALSTR; + break; + case 0x5: + result += PUSH_ANY; + result += PUSH_INSSTR; + break; + case 0x6: + result += PUSH_ANY; + result += PUSH_RUN; + break; + } + return result; +} + +void push_int() { + static unsigned char status = 0; + static enum PushEvent event_code; + volatile sw_t s; + s.sw = *switches; + + switch (status) { + case 0: + PUSH_EVENT = PUSH_NONE; + if (*push_switches != 7) { + event_code = push_decode(*push_switches); + status = 1; + } + update_sw_reg(s); // �X�C�b�`���W�X�^�X�V + break; + case 1: + if (*push_switches == 7) status = 2; + break; + case 2: + PUSH_EVENT = event_code; + status = 0; + break; + default: + status = 0; + break; + } +} diff --git a/software/DE2_115_ASM3_release/input_int.h b/software/DE2_115_ASM3_release/input_int.h new file mode 100644 index 0000000..e1d0612 --- /dev/null +++ b/software/DE2_115_ASM3_release/input_int.h @@ -0,0 +1,62 @@ +/* + * input_int.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SWITCHES_INT_H_ +#define SWITCHES_INT_H_ + +#include "system.h" + +/************************************************** + * Defines + **************************************************/ + +#define switches (volatile int *) SWITCHES_BASE +#define push_switches (volatile char *) PUSH_SWITCHES_BASE + +typedef union { + int sw; + struct { + unsigned int run_mode : 1; + unsigned int rw_mode : 1; + unsigned int program_selecter : 4; + unsigned int memory_index : 4; + unsigned int register_index : 4; + unsigned int instruction_code : 4; + } splited; + struct { + unsigned int : 10; + unsigned int value : 8; + } data; +} sw_t; + +enum PushEvent{ + PUSH_NONE = 1<<0, + PUSH_ANY = 1<<1, + PUSH_VALSTR = 1<<2, + PUSH_INSSTR = 1<<3, + PUSH_RUN = 1<<4 +}; + +/************************************************** + * Variables + **************************************************/ + +extern unsigned char PUSH_EVENT; + +/************************************************** + * Functions + **************************************************/ + +/* Function: in_int + * Sammary: + * �S�Ă̓��͊��荞�݂��s�� + * */ +void in_int(); + +void push_int(); + +#endif /* SWITCHES_INT_H_ */ diff --git a/software/DE2_115_ASM3_release/inst_decoder.c b/software/DE2_115_ASM3_release/inst_decoder.c new file mode 100644 index 0000000..3e6e8a9 --- /dev/null +++ b/software/DE2_115_ASM3_release/inst_decoder.c @@ -0,0 +1,120 @@ +/* + * inst_decoder.c + * + * Created on: 2016/11/25 + * Author: takayun + */ + +#include "inst_decoder.h" +#include "sys_memory.h" +#include "sys_register.h" +#include "hex_out.h" +#include "sys_prog.h" +#include +#include + +struct InstRec inst_fetch(){ + struct InstRec rec = inst_memory_load((unsigned int)global_registers[Spc]); + inc_pc(); + return rec; +} + +void inst_decode(struct InstRec inst_rec){ + switch(inst_rec.inst) { + case INST_END: + break; + case INST_JUMP: + inst_jump(inst_rec.regi, inst_rec.memi); + break; + case INST_OUTPUT: + inst_output(inst_rec.regi, inst_rec.memi); + break; + case INST_LOAD: + inst_load(inst_rec.regi, inst_rec.memi); + break; + case INST_STORE: + inst_store(inst_rec.regi, inst_rec.memi); + break; + case INST_DELAY: + inst_delay(inst_rec.regi, inst_rec.memi); + break; + case INST_ADD: + inst_add(inst_rec.regi, inst_rec.memi); + break; + case INST_SUB: + inst_sub(inst_rec.regi, inst_rec.memi); + break; + case INST_COMP: + inst_comp(inst_rec.regi, inst_rec.memi); + break; + case INST_JEQ: + inst_jeq(inst_rec.regi, inst_rec.memi); + break; + case INST_JNE: + inst_jne(inst_rec.regi, inst_rec.memi); + break; + case INST_JIEQ: + inst_jieq(inst_rec.regi, inst_rec.memi); + break; + case INST_JINE: + inst_jine(inst_rec.regi, inst_rec.memi); + break; + } +} + +void inst_jump(enum Register reg, unsigned char memory_index){ + set_pc(global_registers[reg]+memory_index); +} +void inst_output(enum Register reg, unsigned char memory_index){ + //�������̒l��7�Z�O�ɕ\�� + char buf[5]; + memory_load(memory_index, Sseg); + sprintf(buf, "%04d", global_registers[Sseg]); + print_block(buf, 4, HEX0_3); +} +void inst_load(enum Register reg, unsigned char memory_index){ + memory_load(memory_index, reg); +} +void inst_store(enum Register reg, unsigned char memory_index){ + memory_store(memory_index, reg); +} +void inst_delay(enum Register reg, unsigned char memory_index){ + //���W�X�^�̒l*10ms�҂� + usleep((int)global_registers[reg]*10000); +} +void inst_add(enum Register reg, unsigned char memory_index){ + global_registers[Sacc]+=global_registers[reg]; +} +void inst_sub(enum Register reg, unsigned char memory_index){ + global_registers[Sacc]-=global_registers[reg]; +} +void inst_comp(enum Register reg, unsigned char memory_index){ + if(global_registers[Sacc]==global_registers[reg]){ + global_registers[Sflg]=0; + } else if(global_registers[Sacc] > global_registers[reg]){ + global_registers[Sflg]=-1; + }else{ + global_registers[Sflg]=1; + } +} +void inst_jeq(enum Register reg, unsigned char memory_index){ + if(global_registers[Sflg]==global_registers[reg]){ + inc_pc(); + } +} +void inst_jne(enum Register reg, unsigned char memory_index){ + if(global_registers[Sflg]!=global_registers[reg]){ + inc_pc(); + } +} +void inst_jieq(char im, unsigned char memory_index){ + if(global_registers[Sflg]==im){ + inc_pc(); + } +} +void inst_jine(char im, unsigned char memory_index){ + if(global_registers[Sflg]!=im){ + inc_pc(); + } +} + diff --git a/software/DE2_115_ASM3_release/inst_decoder.h b/software/DE2_115_ASM3_release/inst_decoder.h new file mode 100644 index 0000000..036e179 --- /dev/null +++ b/software/DE2_115_ASM3_release/inst_decoder.h @@ -0,0 +1,51 @@ +/* + * inst_decoder.h + * + * Created on: 2016/11/25 + * Author: takayun + */ + +#ifndef INST_DECODER_H_ +#define INST_DECODER_H_ + +#include "sys_register.h" + +#define INST_END 0x0 +#define INST_JUMP 0x1 +#define INST_OUTPUT 0x2 +#define INST_LOAD 0x3 +#define INST_STORE 0x4 +#define INST_DELAY 0x5 +#define INST_ADD 0x6 +#define INST_COMP 0x7 +#define INST_JEQ 0x8 +#define INST_JNE 0x9 +#define INST_JIEQ 0xA +#define INST_JINE 0xB +#define INST_SUB 0xC + +struct InstRec { + unsigned int inst : 4; + unsigned int memi : 4; + unsigned int regi : 4; +}; + +struct InstRec inst_fetch(); + +void inst_decode(struct InstRec inst_rec); + +void inst_jump(enum Register reg, unsigned char memory_index); +void inst_output(enum Register reg, unsigned char memory_index); +void inst_load(enum Register reg, unsigned char memory_index); +void inst_store(enum Register reg, unsigned char memory_index); +void inst_delay(enum Register reg, unsigned char memory_index); +void inst_add(enum Register reg, unsigned char memory_index); +void inst_sub(enum Register reg, unsigned char memory_index); +void inst_comp(enum Register reg, unsigned char memory_index); +void inst_jeq(enum Register reg, unsigned char memory_index); +void inst_jne(enum Register reg, unsigned char memory_index); +void inst_jieq(char im, unsigned char memory_index); +void inst_jine(char im, unsigned char memory_index); + + +#endif /* INST_DECODER_H_ */ diff --git a/software/DE2_115_ASM3_release/lcd_out.c b/software/DE2_115_ASM3_release/lcd_out.c new file mode 100644 index 0000000..b09a0bb --- /dev/null +++ b/software/DE2_115_ASM3_release/lcd_out.c @@ -0,0 +1,29 @@ +#include "lcd_out.h" +#include +#include +#include +#include +#include "system.h" +#include "LCD.h" + +// LCD�̏����� +void lcd_init() { + *lcd_on = 1; + *lcd_blon = 1; + LCD_Init(); +} + +// LCD�̃L�����b�g���P�s�ڂ̂͂��߂Ɉړ����� +void lcd_caret_reset() { + LCD_Init(); +} + +// LCD�̃L�����b�g���Q�s�ڂ̂͂��߂Ɉړ����� +void lcd_caret_reset2() { + LCD_Line2(); +} + +// LCD�ɕ�����\������ +void lcd_print(const char *str) { + LCD_Show_Text(str); +} diff --git a/software/DE2_115_ASM3_release/lcd_out.h b/software/DE2_115_ASM3_release/lcd_out.h new file mode 100644 index 0000000..7c51dd4 --- /dev/null +++ b/software/DE2_115_ASM3_release/lcd_out.h @@ -0,0 +1,28 @@ +/* + * lcd_out.h + * + * Created on: 2016/12/02 + * Author: takayun + */ + +#ifndef LCD_OUT_H_ +#define LCD_OUT_H_ + +#include "system.h" + +#define lcd_on (volatile char *) LCD_ON_BASE +#define lcd_blon (volatile char *) LCD_BLON_BASE + +// LCD�̏����� +void lcd_init(); + +// LCD�̃L�����b�g���P�s�ڂ̂͂��߂Ɉړ����� +void lcd_caret_reset(); + +// LCD�̃L�����b�g���Q�s�ڂ̂͂��߂Ɉړ����� +void lcd_caret_reset2(); + +// LCD�ɕ�����\������ +void lcd_print(const char *str); + +#endif /* LCD_OUT_H_ */ diff --git a/software/DE2_115_ASM3_release/mem_init/hdl_sim/nios_system_onchip_memory.dat b/software/DE2_115_ASM3_release/mem_init/hdl_sim/nios_system_onchip_memory.dat new file mode 100644 index 0000000..3f4f6ca --- /dev/null +++ b/software/DE2_115_ASM3_release/mem_init/hdl_sim/nios_system_onchip_memory.dat @@ -0,0 +1,18583 @@ +@0000 00400034 +@0001 08406D14 +@0002 0800683A +@0003 00000000 +@0004 00000000 +@0005 00000000 +@0006 00000000 +@0007 00000000 +@0008 DEFFED04 +@0009 DFC00015 +@000A D8400215 +@000B D8800315 +@000C D8C00415 +@000D D9000515 +@000E D9400615 +@000F D9800715 +@0010 D9C00815 +@0011 000B307A +@0012 DA000915 +@0013 DA400A15 +@0014 DA800B15 +@0015 DAC00C15 +@0016 DB000D15 +@0017 DB400E15 +@0018 DB800F15 +@0019 DBC01015 +@001A D9401115 +@001B EBFFFF04 +@001C DBC01215 +@001D 0009313A +@001E 2880004C +@001F 10000326 +@0020 20000226 +@0021 00000EC0 +@0022 00000306 +@0023 DF401215 +@0024 E8BFFF17 +@0025 003DA03A +@0026 D9401117 +@0027 DF401217 +@0028 DFC00017 +@0029 2801707A +@002A D8400217 +@002B D8800317 +@002C D8C00417 +@002D D9000517 +@002E D9400617 +@002F D9800717 +@0030 D9C00817 +@0031 DA000917 +@0032 DA400A17 +@0033 DA800B17 +@0034 DAC00C17 +@0035 DB000D17 +@0036 DB400E17 +@0037 DB800F17 +@0038 DBC01017 +@0039 DEC01304 +@003A EF80083A +@003B DEFFF904 +@003C DFC00615 +@003D DF000515 +@003E DF000504 +@003F 0005313A +@0040 E0BFFC15 +@0041 E0BFFC17 +@0042 E0BFFF15 +@0043 E03FFD15 +@0044 00800044 +@0045 E0BFFE15 +@0046 E0FFFF17 +@0047 E0BFFE17 +@0048 1884703A +@0049 1005003A +@004A 1000161E +@004B E0BFFD17 +@004C 00C00074 +@004D 18D0D904 +@004E 100490FA +@004F 10C5883A +@0050 11400017 +@0051 E0BFFD17 +@0052 00C00074 +@0053 18D0D904 +@0054 100490FA +@0055 10C5883A +@0056 10800104 +@0057 11000017 +@0058 283EE83A +@0059 0005313A +@005A E0BFFB15 +@005B E0BFFB17 +@005C E0BFFF15 +@005D E0BFFF17 +@005E 1004C03A +@005F 103FE31E +@0060 00000706 +@0061 E0BFFE17 +@0062 1085883A +@0063 E0BFFE15 +@0064 E0BFFD17 +@0065 10800044 +@0066 E0BFFD15 +@0067 003FDE06 +@0068 E037883A +@0069 DFC00117 +@006A DF000017 +@006B DEC00204 +@006C F800283A +@006D 06C000F4 +@006E DEC80014 +@006F 06800074 +@0070 D6A88414 +@0071 00800074 +@0072 108F7914 +@0073 00C00074 +@0074 18D17D14 +@0075 10C00326 +@0076 10000015 +@0077 10800104 +@0078 10FFFD36 +@0079 000C8EC0 +@007A 000CB2C0 +@007B 003FFF06 +@007C DEFFFE04 +@007D DFC00115 +@007E DF000015 +@007F D839883A +@0080 00C00134 +@0081 18C40C04 +@0082 00800E04 +@0083 18800035 +@0084 0101F404 +@0085 000CE900 +@0086 00C00134 +@0087 18C40C04 +@0088 00800304 +@0089 18800035 +@008A 0101F404 +@008B 000CE900 +@008C 00C00134 +@008D 18C40C04 +@008E 00800044 +@008F 18800035 +@0090 0101F404 +@0091 000CE900 +@0092 00C00134 +@0093 18C40C04 +@0094 00800184 +@0095 18800035 +@0096 0101F404 +@0097 000CE900 +@0098 00C00134 +@0099 18C40C04 +@009A 00802004 +@009B 18800035 +@009C 0101F404 +@009D 000CE900 +@009E E037883A +@009F DFC00117 +@00A0 DF000017 +@00A1 DEC00204 +@00A2 F800283A +@00A3 DEFFFB04 +@00A4 DFC00415 +@00A5 DF000315 +@00A6 DC000215 +@00A7 DF000204 +@00A8 E13FFF15 +@00A9 E03FFE15 +@00AA 00001006 +@00AB E0BFFE17 +@00AC 1007883A +@00AD E0BFFF17 +@00AE 1885883A +@00AF 10800003 +@00B0 10C03FCC +@00B1 18C0201C +@00B2 18FFE004 +@00B3 00800134 +@00B4 10840E04 +@00B5 10C00035 +@00B6 0101F404 +@00B7 000CE900 +@00B8 E0BFFE17 +@00B9 10800044 +@00BA E0BFFE15 +@00BB E43FFE17 +@00BC E13FFF17 +@00BD 0002D480 +@00BE 80BFEC36 +@00BF E037883A +@00C0 DFC00217 +@00C1 DF000117 +@00C2 DC000017 +@00C3 DEC00304 +@00C4 F800283A +@00C5 DEFFFE04 +@00C6 DFC00115 +@00C7 DF000015 +@00C8 D839883A +@00C9 00C00134 +@00CA 18C40C04 +@00CB 00803004 +@00CC 18800035 +@00CD 0101F404 +@00CE 000CE900 +@00CF E037883A +@00D0 DFC00117 +@00D1 DF000017 +@00D2 DEC00204 +@00D3 F800283A +@00D4 DEFFF604 +@00D5 DFC00915 +@00D6 DF000815 +@00D7 DF000804 +@00D8 00C00074 +@00D9 18FFEA04 +@00DA 18800017 +@00DB E0BFF815 +@00DC 18800117 +@00DD E0BFF915 +@00DE 18800217 +@00DF E0BFFA15 +@00E0 18800317 +@00E1 E0BFFB15 +@00E2 00C00074 +@00E3 18FFEF04 +@00E4 18800017 +@00E5 E0BFFC15 +@00E6 18800117 +@00E7 E0BFFD15 +@00E8 18800217 +@00E9 E0BFFE15 +@00EA 18800317 +@00EB E0BFFF15 +@00EC 00001F00 +@00ED E13FF804 +@00EE 000028C0 +@00EF 00003140 +@00F0 E13FFC04 +@00F1 000028C0 +@00F2 E037883A +@00F3 DFC00117 +@00F4 DF000017 +@00F5 DEC00204 +@00F6 F800283A +@00F7 DEFFFE04 +@00F8 DFC00115 +@00F9 DF000015 +@00FA D839883A +@00FB 0001F0C0 +@00FC 01000074 +@00FD 213FF404 +@00FE 0001FA40 +@00FF 0002AA00 +@0100 000259C0 +@0101 0009883A +@0102 00013680 +@0103 01000044 +@0104 00013680 +@0105 01000084 +@0106 00013680 +@0107 01000074 +@0108 213FF804 +@0109 01400084 +@010A 01800084 +@010B 00011D80 +@010C 01000074 +@010D 213FF904 +@010E 01400084 +@010F 01800044 +@0110 00011D80 +@0111 01000074 +@0112 213FFA04 +@0113 01400104 +@0114 000D883A +@0115 00011D80 +@0116 01003204 +@0117 00025200 +@0118 0009883A +@0119 00013680 +@011A 01000044 +@011B 00013680 +@011C 01000084 +@011D 00013680 +@011E 0001F7C0 +@011F 01000074 +@0120 213FFC04 +@0121 0001FA40 +@0122 E037883A +@0123 DFC00117 +@0124 DF000017 +@0125 DEC00204 +@0126 F800283A +@0127 DEFFFB04 +@0128 DFC00415 +@0129 DF000315 +@012A DF000304 +@012B 00800074 +@012C 1090D504 +@012D 10800283 +@012E 10803FCC +@012F 1080201C +@0130 10BFE004 +@0131 E0BFFD15 +@0132 E13FFD17 +@0133 014001C4 +@0134 00026B00 +@0135 E0BFFD17 +@0136 11803FCC +@0137 E13FFE04 +@0138 01400074 +@0139 297FFD04 +@013A 0002C740 +@013B E13FFE04 +@013C 01400084 +@013D 01800084 +@013E 00011D80 +@013F 01000074 +@0140 213FFF04 +@0141 01400084 +@0142 01800044 +@0143 00011D80 +@0144 00800074 +@0145 1090D504 +@0146 108001C3 +@0147 11803FCC +@0148 3180201C +@0149 31BFE004 +@014A E13FFE04 +@014B 01400074 +@014C 29400004 +@014D 0002C740 +@014E E13FFE04 +@014F 01400104 +@0150 000D883A +@0151 00011D80 +@0152 E0BFFD17 +@0153 11003FCC +@0154 00800074 +@0155 1090D504 +@0156 108001C3 +@0157 11403FCC +@0158 2940201C +@0159 297FE004 +@015A 00020800 +@015B E037883A +@015C DFC00117 +@015D DF000017 +@015E DEC00204 +@015F F800283A +@0160 DEFFF904 +@0161 DFC00615 +@0162 DF000515 +@0163 DF000504 +@0164 00800074 +@0165 1090D504 +@0166 10800203 +@0167 E0BFFC85 +@0168 00800074 +@0169 1090D504 +@016A 10800283 +@016B E0BFFC45 +@016C 00800074 +@016D 1090D504 +@016E 10800243 +@016F E0BFFC05 +@0170 E0BFFC83 +@0171 108003CC +@0172 10803FCC +@0173 110003CC +@0174 E0FFFD17 +@0175 00BFFC04 +@0176 1884703A +@0177 1104B03A +@0178 E0BFFD15 +@0179 E0BFFC43 +@017A 108003CC +@017B 10803FCC +@017C 108003CC +@017D 1008913A +@017E E0FFFD17 +@017F 00BFC3C4 +@0180 1884703A +@0181 1104B03A +@0182 E0BFFD15 +@0183 E0BFFC03 +@0184 108003CC +@0185 10803FCC +@0186 108003CC +@0187 1008923A +@0188 E0FFFD17 +@0189 00BC3FC4 +@018A 1884703A +@018B 1104B03A +@018C E0BFFD15 +@018D 00028E80 +@018E E0BFFB15 +@018F 00028E80 +@0190 1009883A +@0191 E17FFD17 +@0192 00026180 +@0193 E0BFFD17 +@0194 108003CC +@0195 11803FCC +@0196 E13FFE04 +@0197 01400074 +@0198 29400204 +@0199 0002C740 +@019A E13FFE04 +@019B 01400104 +@019C 000D883A +@019D 00011D80 +@019E E0FFFE04 +@019F 008B4B44 +@01A0 1880000D +@01A1 18000085 +@01A2 E13FFE04 +@01A3 01400084 +@01A4 01800044 +@01A5 00011D80 +@01A6 00028E80 +@01A7 100D883A +@01A8 E13FFE04 +@01A9 01400074 +@01AA 297FFD04 +@01AB 0002C740 +@01AC E13FFE04 +@01AD 01400084 +@01AE 01800084 +@01AF 00011D80 +@01B0 E13FFD17 +@01B1 E17FFB17 +@01B2 0001FD40 +@01B3 00027DC0 +@01B4 E037883A +@01B5 DFC00117 +@01B6 DF000017 +@01B7 DEC00204 +@01B8 F800283A +@01B9 DEFFF804 +@01BA DFC00715 +@01BB DF000615 +@01BC DF000604 +@01BD E13FFF15 +@01BE E13FFA04 +@01BF 01400074 +@01C0 29400404 +@01C1 E1BFFF17 +@01C2 0002C740 +@01C3 0001F540 +@01C4 01000074 +@01C5 21000904 +@01C6 0001FA40 +@01C7 0001F7C0 +@01C8 E13FFA04 +@01C9 0001FA40 +@01CA 0009883A +@01CB 00013680 +@01CC 01000044 +@01CD 00013680 +@01CE 01000084 +@01CF 00013680 +@01D0 E037883A +@01D1 DFC00117 +@01D2 DF000017 +@01D3 DEC00204 +@01D4 F800283A +@01D5 DEFFFE04 +@01D6 DFC00115 +@01D7 DF000015 +@01D8 D839883A +@01D9 0001F540 +@01DA 01000074 +@01DB 21000D04 +@01DC 0001FA40 +@01DD 0001F7C0 +@01DE 01000074 +@01DF 21001104 +@01E0 0001FA40 +@01E1 E037883A +@01E2 DFC00117 +@01E3 DF000017 +@01E4 DEC00204 +@01E5 F800283A +@01E6 DEFFFB04 +@01E7 DFC00415 +@01E8 DF000315 +@01E9 DF000304 +@01EA E13FFE05 +@01EB E0BFFE07 +@01EC 1004C03A +@01ED 10000B1E +@01EE 0001F540 +@01EF 01000074 +@01F0 21000D04 +@01F1 0001FA40 +@01F2 0001F7C0 +@01F3 01000074 +@01F4 21001604 +@01F5 0001FA40 +@01F6 00800044 +@01F7 E0BFFF15 +@01F8 00001406 +@01F9 E03FFD15 +@01FA 00000606 +@01FB E13FFD17 +@01FC 000B883A +@01FD 00026B00 +@01FE E0BFFD17 +@01FF 10800044 +@0200 E0BFFD15 +@0201 E0BFFD17 +@0202 10800410 +@0203 103FF71E +@0204 0001F540 +@0205 01000074 +@0206 21000D04 +@0207 0001FA40 +@0208 0001F7C0 +@0209 01000074 +@020A 21001904 +@020B 0001FA40 +@020C E03FFF15 +@020D E0BFFF17 +@020E E037883A +@020F DFC00117 +@0210 DF000017 +@0211 DEC00204 +@0212 F800283A +@0213 DEFFFE04 +@0214 DFC00115 +@0215 DF000015 +@0216 D839883A +@0217 0001F540 +@0218 01000074 +@0219 21001E04 +@021A 0001FA40 +@021B 0001F7C0 +@021C 01000074 +@021D 21001104 +@021E 0001FA40 +@021F E037883A +@0220 DFC00117 +@0221 DF000017 +@0222 DEC00204 +@0223 F800283A +@0224 DEFFFC04 +@0225 DFC00315 +@0226 DF000215 +@0227 DF000204 +@0228 E13FFE05 +@0229 E0BFFE07 +@022A 1004C03A +@022B 10000B1E +@022C 0001F540 +@022D 01000074 +@022E 21001E04 +@022F 0001FA40 +@0230 0001F7C0 +@0231 01000074 +@0232 21001604 +@0233 0001FA40 +@0234 00800044 +@0235 E0BFFF15 +@0236 00000B06 +@0237 0009883A +@0238 00028B00 +@0239 0001F540 +@023A 01000074 +@023B 21001E04 +@023C 0001FA40 +@023D 0001F7C0 +@023E 01000074 +@023F 21001904 +@0240 0001FA40 +@0241 E03FFF15 +@0242 E0BFFF17 +@0243 E037883A +@0244 DFC00117 +@0245 DF000017 +@0246 DEC00204 +@0247 F800283A +@0248 DEFFFC04 +@0249 DFC00315 +@024A DF000215 +@024B DF000204 +@024C 00003DC0 +@024D E03FFF15 +@024E E03FFEC5 +@024F E03FFE85 +@0250 00000006 +@0251 00014F00 +@0252 00800074 +@0253 1090D504 +@0254 10800303 +@0255 10803FCC +@0256 1080201C +@0257 10BFE004 +@0258 1005003A +@0259 10000E1E +@025A 00800074 +@025B 10888404 +@025C 10800003 +@025D 10803FCC +@025E 1080008C +@025F 1005003A +@0260 10000C1E +@0261 00800074 +@0262 10888404 +@0263 10800003 +@0264 10803FCC +@0265 1080010C +@0266 1004C03A +@0267 1000051E +@0268 E0BFFE87 +@0269 10800058 +@026A 1000021E +@026B E03FFE85 +@026C 00007540 +@026D 00800074 +@026E 1090D504 +@026F 10800303 +@0270 10803FCC +@0271 1080201C +@0272 10BFE004 +@0273 1005003A +@0274 10000E1E +@0275 00800074 +@0276 10888404 +@0277 10800003 +@0278 10803FCC +@0279 1080008C +@027A 1005003A +@027B 10000C1E +@027C 00800074 +@027D 10888404 +@027E 10800003 +@027F 10803FCC +@0280 1080020C +@0281 1004C03A +@0282 1000051E +@0283 E0BFFEC7 +@0284 10800058 +@0285 1000021E +@0286 E03FFEC5 +@0287 000084C0 +@0288 00800074 +@0289 10888404 +@028A 10800003 +@028B 10803FCC +@028C 1080010C +@028D 1005003A +@028E 1000161E +@028F 00800074 +@0290 1090D504 +@0291 10800303 +@0292 10803FCC +@0293 1080201C +@0294 10BFE004 +@0295 10800058 +@0296 10000D1E +@0297 E13FFE87 +@0298 00007980 +@0299 E0BFFE45 +@029A E0BFFE47 +@029B 10800058 +@029C 1000021E +@029D 00800044 +@029E E0BFFE85 +@029F E0BFFE47 +@02A0 1004C03A +@02A1 1000031E +@02A2 E03FFE85 +@02A3 00000106 +@02A4 000049C0 +@02A5 00800074 +@02A6 10888404 +@02A7 10800003 +@02A8 10803FCC +@02A9 1080020C +@02AA 1005003A +@02AB 1000161E +@02AC 00800074 +@02AD 1090D504 +@02AE 10800303 +@02AF 10803FCC +@02B0 1080201C +@02B1 10BFE004 +@02B2 10800058 +@02B3 10000D1E +@02B4 E13FFEC7 +@02B5 00008900 +@02B6 E0BFFE05 +@02B7 E0BFFE07 +@02B8 10800058 +@02B9 1000021E +@02BA 00800044 +@02BB E0BFFEC5 +@02BC E0BFFE07 +@02BD 1004C03A +@02BE 1000031E +@02BF E03FFEC5 +@02C0 00000106 +@02C1 00005800 +@02C2 00800074 +@02C3 10888404 +@02C4 10800003 +@02C5 10803FCC +@02C6 1080040C +@02C7 1005003A +@02C8 10001A1E +@02C9 00800074 +@02CA 1090D504 +@02CB 108002C3 +@02CC 10C03FCC +@02CD 18C0201C +@02CE 18FFE004 +@02CF 00800074 +@02D0 108F7D04 +@02D1 10800017 +@02D2 18800E26 +@02D3 00800074 +@02D4 1090D504 +@02D5 108002C3 +@02D6 10C03FCC +@02D7 18C0201C +@02D8 18FFE004 +@02D9 00800074 +@02DA 108F7D04 +@02DB 10C00015 +@02DC 00800074 +@02DD 108F7D04 +@02DE 11000017 +@02DF 00006E40 +@02E0 00000206 +@02E1 00800044 +@02E2 E0BFFF15 +@02E3 E0BFFF17 +@02E4 1005003A +@02E5 103F6B1E +@02E6 E13FFF17 +@02E7 00029500 +@02E8 E0BFFF15 +@02E9 003F6706 +@02EA DEFFFC04 +@02EB DF000315 +@02EC DF000304 +@02ED E13FFE15 +@02EE E17FFF15 +@02EF E03FFD05 +@02F0 E0BFFF17 +@02F1 108002A8 +@02F2 10002F1E +@02F3 E0BFFF17 +@02F4 1085883A +@02F5 1087883A +@02F6 00800034 +@02F7 1082FB04 +@02F8 1885883A +@02F9 10800017 +@02FA 1000683A +@02FB 00000C14 +@02FC 00000C20 +@02FD 00000C2C +@02FE 00000C38 +@02FF 00000C44 +@0300 00000C50 +@0301 00000C5C +@0302 00000C68 +@0303 00000C74 +@0304 00000C7C +@0305 00801004 +@0306 E0BFFD05 +@0307 00001B06 +@0308 00BFFE44 +@0309 E0BFFD05 +@030A 00001806 +@030B 00800904 +@030C E0BFFD05 +@030D 00001506 +@030E 00800C04 +@030F E0BFFD05 +@0310 00001206 +@0311 00800644 +@0312 E0BFFD05 +@0313 00000F06 +@0314 00800484 +@0315 E0BFFD05 +@0316 00000C06 +@0317 00800084 +@0318 E0BFFD05 +@0319 00000906 +@031A 00801604 +@031B E0BFFD05 +@031C 00000606 +@031D E03FFD05 +@031E 00000406 +@031F 00800404 +@0320 E0BFFD05 +@0321 00000106 +@0322 E03FFD05 +@0323 E0BFFE17 +@0324 10800228 +@0325 1000371E +@0326 E0BFFE17 +@0327 1085883A +@0328 1087883A +@0329 00800034 +@032A 10832E04 +@032B 1885883A +@032C 10800017 +@032D 1000683A +@032E 00000CD8 +@032F 00000CEC +@0330 00000D00 +@0331 00000D14 +@0332 00000D28 +@0333 00000D3C +@0334 00000D50 +@0335 00000D64 +@0336 00C00134 +@0337 18C42C04 +@0338 E0BFFD03 +@0339 18800005 +@033A 00002206 +@033B 00C00134 +@033C 18C42804 +@033D E0BFFD03 +@033E 18800005 +@033F 00001D06 +@0340 00C00134 +@0341 18C42404 +@0342 E0BFFD03 +@0343 18800005 +@0344 00001806 +@0345 00C00134 +@0346 18C42004 +@0347 E0BFFD03 +@0348 18800005 +@0349 00001306 +@034A 00C00134 +@034B 18C41C04 +@034C E0BFFD03 +@034D 18800005 +@034E 00000E06 +@034F 00C00134 +@0350 18C41804 +@0351 E0BFFD03 +@0352 18800005 +@0353 00000906 +@0354 00C00134 +@0355 18C41404 +@0356 E0BFFD03 +@0357 18800005 +@0358 00000406 +@0359 00C00134 +@035A 18C41004 +@035B E0BFFD03 +@035C 18800005 +@035D E037883A +@035E DF000017 +@035F DEC00104 +@0360 F800283A +@0361 DEFFFA04 +@0362 DFC00515 +@0363 DF000415 +@0364 DF000404 +@0365 E13FFD15 +@0366 E17FFE05 +@0367 E03FFC05 +@0368 E0BFFE07 +@0369 1007883A +@036A 00800074 +@036B 10888504 +@036C 10800017 +@036D 1885883A +@036E 10800003 +@036F 10803FCC +@0370 1080010C +@0371 1005003A +@0372 1000051E +@0373 E0BFFE07 +@0374 117FF404 +@0375 E13FFD17 +@0376 0000BA80 +@0377 0000F906 +@0378 E0BFFE07 +@0379 10BFF804 +@037A E0BFFF15 +@037B E0FFFF17 +@037C 188016E8 +@037D 1000B81E +@037E E13FFF17 +@037F E13FFF17 +@0380 2105883A +@0381 1087883A +@0382 00800034 +@0383 10838704 +@0384 1885883A +@0385 10800017 +@0386 1000683A +@0387 00000F88 +@0388 000010D8 +@0389 000010D8 +@038A 000010D8 +@038B 000010D8 +@038C 000010D8 +@038D 000010D8 +@038E 000010D8 +@038F 000010D8 +@0390 000010D8 +@0391 000010D8 +@0392 000010D8 +@0393 000010D8 +@0394 00000F94 +@0395 000010D8 +@0396 000010D8 +@0397 000010D8 +@0398 000010D8 +@0399 000010D8 +@039A 000010D8 +@039B 000010D8 +@039C 000010D8 +@039D 000010D8 +@039E 000010D8 +@039F 000010D8 +@03A0 000010D8 +@03A1 000010D8 +@03A2 000010D8 +@03A3 000010D8 +@03A4 000010D8 +@03A5 000010D8 +@03A6 000010D8 +@03A7 000010D8 +@03A8 000010D8 +@03A9 000010D8 +@03AA 000010D8 +@03AB 000010D8 +@03AC 000010D8 +@03AD 000010D8 +@03AE 000010D8 +@03AF 000010D8 +@03B0 000010D8 +@03B1 000010D8 +@03B2 000010D8 +@03B3 000010D8 +@03B4 000010D8 +@03B5 000010D8 +@03B6 000010D8 +@03B7 000010D8 +@03B8 000010D8 +@03B9 000010D8 +@03BA 000010D8 +@03BB 000010D8 +@03BC 000010D8 +@03BD 000010D8 +@03BE 000010D8 +@03BF 000010D8 +@03C0 000010D8 +@03C1 000010D8 +@03C2 000010D8 +@03C3 000010D8 +@03C4 000010D8 +@03C5 000010D8 +@03C6 000010D8 +@03C7 000010D8 +@03C8 00000FA0 +@03C9 00000FAC +@03CA 00000FB8 +@03CB 00000FC4 +@03CC 00000FD0 +@03CD 00000FDC +@03CE 00000FE8 +@03CF 00000FF4 +@03D0 00001000 +@03D1 0000100C +@03D2 00001018 +@03D3 00001024 +@03D4 00001030 +@03D5 0000103C +@03D6 00001048 +@03D7 00001054 +@03D8 00001060 +@03D9 0000106C +@03DA 00001078 +@03DB 00001084 +@03DC 00001090 +@03DD 0000109C +@03DE 000010A8 +@03DF 000010B4 +@03E0 000010C0 +@03E1 000010CC +@03E2 00BFFFC4 +@03E3 E0BFFC05 +@03E4 00005206 +@03E5 00800FC4 +@03E6 E0BFFC05 +@03E7 00004F06 +@03E8 00800204 +@03E9 E0BFFC05 +@03EA 00004C06 +@03EB 008000C4 +@03EC E0BFFC05 +@03ED 00004906 +@03EE 008009C4 +@03EF E0BFFC05 +@03F0 00004606 +@03F1 00800844 +@03F2 E0BFFC05 +@03F3 00004306 +@03F4 00800184 +@03F5 E0BFFC05 +@03F6 00004006 +@03F7 00800384 +@03F8 E0BFFC05 +@03F9 00003D06 +@03FA 00801084 +@03FB E0BFFC05 +@03FC 00003A06 +@03FD 008002C4 +@03FE E0BFFC05 +@03FF 00003706 +@0400 00BFFEC4 +@0401 E0BFFC05 +@0402 00003406 +@0403 00801844 +@0404 E0BFFC05 +@0405 00003106 +@0406 00800284 +@0407 E0BFFC05 +@0408 00002E06 +@0409 008011C4 +@040A E0BFFC05 +@040B 00002B06 +@040C 00801204 +@040D E0BFFC05 +@040E 00002806 +@040F 00800AC4 +@0410 E0BFFC05 +@0411 00002506 +@0412 008008C4 +@0413 E0BFFC05 +@0414 00002206 +@0415 00800304 +@0416 E0BFFC05 +@0417 00001F06 +@0418 00800104 +@0419 E0BFFC05 +@041A 00001C06 +@041B 00800BC4 +@041C E0BFFC05 +@041D 00001906 +@041E 008004C4 +@041F E0BFFC05 +@0420 00001606 +@0421 008001C4 +@0422 E0BFFC05 +@0423 00001306 +@0424 008018C4 +@0425 E0BFFC05 +@0426 00001006 +@0427 00801044 +@0428 E0BFFC05 +@0429 00000D06 +@042A 00800044 +@042B E0BFFC05 +@042C 00000A06 +@042D 00800244 +@042E E0BFFC05 +@042F 00000706 +@0430 00800444 +@0431 E0BFFC05 +@0432 00000406 +@0433 00801904 +@0434 E0BFFC05 +@0435 00000106 +@0436 E03FFC05 +@0437 E0BFFD17 +@0438 10800228 +@0439 1000371E +@043A E0BFFD17 +@043B 1085883A +@043C 1087883A +@043D 00800034 +@043E 10844204 +@043F 1885883A +@0440 10800017 +@0441 1000683A +@0442 00001128 +@0443 0000113C +@0444 00001150 +@0445 00001164 +@0446 00001178 +@0447 0000118C +@0448 000011A0 +@0449 000011B4 +@044A 00C00134 +@044B 18C42C04 +@044C E0BFFC03 +@044D 18800005 +@044E 00002206 +@044F 00C00134 +@0450 18C42804 +@0451 E0BFFC03 +@0452 18800005 +@0453 00001D06 +@0454 00C00134 +@0455 18C42404 +@0456 E0BFFC03 +@0457 18800005 +@0458 00001806 +@0459 00C00134 +@045A 18C42004 +@045B E0BFFC03 +@045C 18800005 +@045D 00001306 +@045E 00C00134 +@045F 18C41C04 +@0460 E0BFFC03 +@0461 18800005 +@0462 00000E06 +@0463 00C00134 +@0464 18C41804 +@0465 E0BFFC03 +@0466 18800005 +@0467 00000906 +@0468 00C00134 +@0469 18C41404 +@046A E0BFFC03 +@046B 18800005 +@046C 00000406 +@046D 00C00134 +@046E 18C41004 +@046F E0BFFC03 +@0470 18800005 +@0471 E037883A +@0472 DFC00117 +@0473 DF000017 +@0474 DEC00204 +@0475 F800283A +@0476 DEFFFA04 +@0477 DFC00515 +@0478 DF000415 +@0479 DF000404 +@047A E13FFD15 +@047B E17FFE15 +@047C E1BFFF15 +@047D E0BFFF17 +@047E 1004C03A +@047F 10001A1E +@0480 E0BFFE17 +@0481 10800170 +@0482 1000011E +@0483 000255C0 +@0484 E03FFC15 +@0485 00001006 +@0486 E0FFFC17 +@0487 E0BFFE17 +@0488 10C5C83A +@0489 1007883A +@048A E0BFFD17 +@048B 1885883A +@048C 10BFFFC4 +@048D 10800003 +@048E 11403FCC +@048F 2940201C +@0490 297FE004 +@0491 E13FFC17 +@0492 0000D840 +@0493 E0BFFC17 +@0494 10800044 +@0495 E0BFFC15 +@0496 E0FFFC17 +@0497 E0BFFE17 +@0498 18BFED36 +@0499 00003B06 +@049A E0BFFF17 +@049B 10800058 +@049C 10001B1E +@049D E0BFFE17 +@049E 108000F0 +@049F 1000011E +@04A0 000255C0 +@04A1 E03FFC15 +@04A2 00001106 +@04A3 E0BFFC17 +@04A4 11000104 +@04A5 E0FFFC17 +@04A6 E0BFFE17 +@04A7 10C5C83A +@04A8 1007883A +@04A9 E0BFFD17 +@04AA 1885883A +@04AB 10BFFFC4 +@04AC 10800003 +@04AD 11403FCC +@04AE 2940201C +@04AF 297FE004 +@04B0 0000D840 +@04B1 E0BFFC17 +@04B2 10800044 +@04B3 E0BFFC15 +@04B4 E0FFFC17 +@04B5 E0BFFE17 +@04B6 18BFEC36 +@04B7 00001D06 +@04B8 E0BFFF17 +@04B9 10800098 +@04BA 10001A1E +@04BB E0BFFE17 +@04BC 108000F0 +@04BD 1000011E +@04BE 000255C0 +@04BF E03FFC15 +@04C0 00001106 +@04C1 E0BFFC17 +@04C2 11000184 +@04C3 E0FFFC17 +@04C4 E0BFFE17 +@04C5 10C5C83A +@04C6 1007883A +@04C7 E0BFFD17 +@04C8 1885883A +@04C9 10BFFFC4 +@04CA 10800003 +@04CB 11403FCC +@04CC 2940201C +@04CD 297FE004 +@04CE 0000D840 +@04CF E0BFFC17 +@04D0 10800044 +@04D1 E0BFFC15 +@04D2 E0FFFC17 +@04D3 E0BFFE17 +@04D4 18BFEC36 +@04D5 E037883A +@04D6 DFC00117 +@04D7 DF000017 +@04D8 DEC00204 +@04D9 F800283A +@04DA DEFFFD04 +@04DB DFC00215 +@04DC DF000115 +@04DD DF000104 +@04DE E13FFF15 +@04DF E0BFFF17 +@04E0 1004C03A +@04E1 1000061E +@04E2 01000074 +@04E3 21002104 +@04E4 01400104 +@04E5 000D883A +@04E6 00011D80 +@04E7 00001106 +@04E8 E0BFFF17 +@04E9 10800058 +@04EA 1000061E +@04EB 01000074 +@04EC 21002304 +@04ED 01400084 +@04EE 01800044 +@04EF 00011D80 +@04F0 00000806 +@04F1 E0BFFF17 +@04F2 10800098 +@04F3 1000051E +@04F4 01000074 +@04F5 21002304 +@04F6 01400084 +@04F7 01800084 +@04F8 00011D80 +@04F9 E037883A +@04FA DFC00117 +@04FB DF000017 +@04FC DEC00204 +@04FD F800283A +@04FE DEFFF904 +@04FF DFC00615 +@0500 DF000515 +@0501 DF000504 +@0502 E13FFF05 +@0503 E03FFC15 +@0504 00002906 +@0505 E0BFFF07 +@0506 1004403A +@0507 1000061E +@0508 00800B44 +@0509 E0BFFD05 +@050A E0BFFF03 +@050B 0085C83A +@050C E0BFFB05 +@050D 00000406 +@050E 00800804 +@050F E0BFFD05 +@0510 E0BFFF03 +@0511 E0BFFB05 +@0512 E13FFB07 +@0513 01401904 +@0514 0002B6C0 +@0515 11003FCC +@0516 2100201C +@0517 213FE004 +@0518 01400284 +@0519 0002BCC0 +@051A 10800C04 +@051B E0BFFD45 +@051C E13FFB07 +@051D 01400284 +@051E 0002B6C0 +@051F 11003FCC +@0520 2100201C +@0521 213FE004 +@0522 01400284 +@0523 0002BCC0 +@0524 10800C04 +@0525 E0BFFD85 +@0526 E13FFB07 +@0527 01400284 +@0528 0002BCC0 +@0529 10800C04 +@052A E0BFFDC5 +@052B E0BFFC17 +@052C 10800044 +@052D E0BFFC15 +@052E E0BFFC17 +@052F 10800110 +@0530 103FD41E +@0531 0009883A +@0532 00013680 +@0533 E13FFD04 +@0534 01400104 +@0535 000D883A +@0536 00011D80 +@0537 E037883A +@0538 DFC00117 +@0539 DF000017 +@053A DEC00204 +@053B F800283A +@053C DEFFFE04 +@053D DFC00115 +@053E DF000015 +@053F D839883A +@0540 00016AC0 +@0541 E037883A +@0542 DFC00117 +@0543 DF000017 +@0544 DEC00204 +@0545 F800283A +@0546 DEFFFE04 +@0547 DF000115 +@0548 DF000104 +@0549 E13FFF15 +@054A E0BFFF17 +@054B 1004D2BA +@054C 1007883A +@054D 00BFFFC4 +@054E 1884703A +@054F 1007883A +@0550 00800074 +@0551 1090D504 +@0552 10C001C5 +@0553 E0BFFF17 +@0554 1004D3BA +@0555 108003CC +@0556 1007883A +@0557 00800074 +@0558 1090D504 +@0559 10C00205 +@055A E0BFFF17 +@055B 1004D1BA +@055C 108003CC +@055D 1007883A +@055E 00800074 +@055F 1090D504 +@0560 10C00285 +@0561 E0BFFF17 +@0562 1004D2BA +@0563 108003CC +@0564 1007883A +@0565 00800074 +@0566 1090D504 +@0567 10C00245 +@0568 E0BFFF17 +@0569 1004D0BA +@056A 108003CC +@056B 1007883A +@056C 00800074 +@056D 1090D504 +@056E 10C002C5 +@056F E0BFFF17 +@0570 1004D07A +@0571 1080004C +@0572 1007883A +@0573 00800074 +@0574 1090D504 +@0575 10C00305 +@0576 E0BFFF17 +@0577 1080004C +@0578 1007883A +@0579 00800074 +@057A 1090D504 +@057B 10C00345 +@057C E037883A +@057D DF000017 +@057E DEC00104 +@057F F800283A +@0580 DEFFFC04 +@0581 DF000315 +@0582 DF000304 +@0583 E13FFE05 +@0584 00800044 +@0585 E0BFFD15 +@0586 E0BFFE07 +@0587 E0BFFF15 +@0588 E0FFFF17 +@0589 18800160 +@058A 10000E1E +@058B E0FFFF17 +@058C 188001A0 +@058D 1000121E +@058E E0FFFF17 +@058F 188000E0 +@0590 1000011E +@0591 00001406 +@0592 E0BFFD17 +@0593 10800084 +@0594 E0BFFD15 +@0595 E0BFFD17 +@0596 10800104 +@0597 E0BFFD15 +@0598 00000D06 +@0599 E0BFFD17 +@059A 10800084 +@059B E0BFFD15 +@059C E0BFFD17 +@059D 10800204 +@059E E0BFFD15 +@059F 00000606 +@05A0 E0BFFD17 +@05A1 10800084 +@05A2 E0BFFD15 +@05A3 E0BFFD17 +@05A4 10800404 +@05A5 E0BFFD15 +@05A6 E0BFFD17 +@05A7 E037883A +@05A8 DF000017 +@05A9 DEC00104 +@05AA F800283A +@05AB DEFFFC04 +@05AC DFC00315 +@05AD DF000215 +@05AE DF000204 +@05AF 00800134 +@05B0 10843404 +@05B1 10800017 +@05B2 E0BFFE15 +@05B3 D0A6F803 +@05B4 10803FCC +@05B5 E0BFFF15 +@05B6 E0FFFF17 +@05B7 18800060 +@05B8 10001E1E +@05B9 E0FFFF17 +@05BA 188000A0 +@05BB 1000261E +@05BC E0FFFF17 +@05BD 1805003A +@05BE 1000011E +@05BF 00002606 +@05C0 00800044 +@05C1 D0A00005 +@05C2 00800134 +@05C3 10843004 +@05C4 10800003 +@05C5 10803FCC +@05C6 1080201C +@05C7 10BFE004 +@05C8 108001E0 +@05C9 10000A1E +@05CA 00800134 +@05CB 10843004 +@05CC 10800003 +@05CD 11003FCC +@05CE 2100201C +@05CF 213FE004 +@05D0 00016000 +@05D1 D0A6F715 +@05D2 00800044 +@05D3 D0A6F805 +@05D4 E13FFE17 +@05D5 00015180 +@05D6 00001006 +@05D7 00800134 +@05D8 10843004 +@05D9 10800003 +@05DA 10803FCC +@05DB 1080201C +@05DC 10BFE004 +@05DD 108001D8 +@05DE 1000081E +@05DF 00800084 +@05E0 D0A6F805 +@05E1 00000506 +@05E2 D0A6F717 +@05E3 D0A00005 +@05E4 D026F805 +@05E5 00000106 +@05E6 D026F805 +@05E7 E037883A +@05E8 DFC00117 +@05E9 DF000017 +@05EA DEC00204 +@05EB F800283A +@05EC DEFFFD04 +@05ED DFC00215 +@05EE DF000115 +@05EF DF000104 +@05F0 00800074 +@05F1 1090D504 +@05F2 10800043 +@05F3 11003FCC +@05F4 2100201C +@05F5 213FE004 +@05F6 00026680 +@05F7 E0BFFF15 +@05F8 00027DC0 +@05F9 E0BFFF17 +@05FA E037883A +@05FB DFC00117 +@05FC DF000017 +@05FD DEC00204 +@05FE F800283A +@05FF DEFFFC04 +@0600 DFC00315 +@0601 DF000215 +@0602 DF000204 +@0603 E13FFE15 +@0604 E0BFFE17 +@0605 108003CC +@0606 10803FCC +@0607 E0BFFF15 +@0608 E0FFFF17 +@0609 18800368 +@060A 10008D1E +@060B E13FFF17 +@060C E13FFF17 +@060D 2105883A +@060E 1087883A +@060F 00800034 +@0610 10861404 +@0611 1885883A +@0612 10800017 +@0613 1000683A +@0614 00001A60 +@0615 00001884 +@0616 000018AC +@0617 000018D4 +@0618 000018FC +@0619 00001924 +@061A 0000194C +@061B 0000199C +@061C 000019C4 +@061D 000019EC +@061E 00001A14 +@061F 00001A3C +@0620 00001974 +@0621 E0BFFE17 +@0622 1004D23A +@0623 108003CC +@0624 11003FCC +@0625 E0BFFE17 +@0626 1004D13A +@0627 108003CC +@0628 11403FCC +@0629 0001A740 +@062A 00006D06 +@062B E0BFFE17 +@062C 1004D23A +@062D 108003CC +@062E 11003FCC +@062F E0BFFE17 +@0630 1004D13A +@0631 108003CC +@0632 11403FCC +@0633 0001AD00 +@0634 00006306 +@0635 E0BFFE17 +@0636 1004D23A +@0637 108003CC +@0638 11003FCC +@0639 E0BFFE17 +@063A 1004D13A +@063B 108003CC +@063C 11403FCC +@063D 0001B400 +@063E 00005906 +@063F E0BFFE17 +@0640 1004D23A +@0641 108003CC +@0642 11003FCC +@0643 E0BFFE17 +@0644 1004D13A +@0645 108003CC +@0646 11403FCC +@0647 0001B780 +@0648 00004F06 +@0649 E0BFFE17 +@064A 1004D23A +@064B 108003CC +@064C 11003FCC +@064D E0BFFE17 +@064E 1004D13A +@064F 108003CC +@0650 11403FCC +@0651 0001BB00 +@0652 00004506 +@0653 E0BFFE17 +@0654 1004D23A +@0655 108003CC +@0656 11003FCC +@0657 E0BFFE17 +@0658 1004D13A +@0659 108003CC +@065A 11403FCC +@065B 0001C0C0 +@065C 00003B06 +@065D E0BFFE17 +@065E 1004D23A +@065F 108003CC +@0660 11003FCC +@0661 E0BFFE17 +@0662 1004D13A +@0663 108003CC +@0664 11403FCC +@0665 0001C680 +@0666 00003106 +@0667 E0BFFE17 +@0668 1004D23A +@0669 108003CC +@066A 11003FCC +@066B E0BFFE17 +@066C 1004D13A +@066D 108003CC +@066E 11403FCC +@066F 0001CC40 +@0670 00002706 +@0671 E0BFFE17 +@0672 1004D23A +@0673 108003CC +@0674 11003FCC +@0675 E0BFFE17 +@0676 1004D13A +@0677 108003CC +@0678 11403FCC +@0679 0001D940 +@067A 00001D06 +@067B E0BFFE17 +@067C 1004D23A +@067D 108003CC +@067E 11003FCC +@067F E0BFFE17 +@0680 1004D13A +@0681 108003CC +@0682 11403FCC +@0683 0001E000 +@0684 00001306 +@0685 E0BFFE17 +@0686 1004D23A +@0687 108003CC +@0688 11003FCC +@0689 E0BFFE17 +@068A 1004D13A +@068B 108003CC +@068C 11403FCC +@068D 0001E6C0 +@068E 00000906 +@068F E0BFFE17 +@0690 1004D23A +@0691 108003CC +@0692 11003FCC +@0693 E0BFFE17 +@0694 1004D13A +@0695 108003CC +@0696 11403FCC +@0697 0001EBC0 +@0698 E037883A +@0699 DFC00117 +@069A DF000017 +@069B DEC00204 +@069C F800283A +@069D DEFFFC04 +@069E DFC00315 +@069F DF000215 +@06A0 DF000204 +@06A1 E13FFE15 +@06A2 E17FFF05 +@06A3 E0FFFE17 +@06A4 00800074 +@06A5 1090D504 +@06A6 10C5883A +@06A7 10800003 +@06A8 10C03FCC +@06A9 18C0201C +@06AA 18FFE004 +@06AB E0BFFF03 +@06AC 1885883A +@06AD 1009883A +@06AE 00028B00 +@06AF E037883A +@06B0 DFC00117 +@06B1 DF000017 +@06B2 DEC00204 +@06B3 F800283A +@06B4 DEFFFA04 +@06B5 DFC00515 +@06B6 DF000415 +@06B7 DF000404 +@06B8 E13FFE15 +@06B9 E17FFF05 +@06BA E13FFF03 +@06BB 01400384 +@06BC 000274C0 +@06BD 00800074 +@06BE 1090D504 +@06BF 10800383 +@06C0 11803FCC +@06C1 3180201C +@06C2 31BFE004 +@06C3 E13FFC04 +@06C4 01400074 +@06C5 29402404 +@06C6 0002C740 +@06C7 E13FFC04 +@06C8 01400104 +@06C9 000D883A +@06CA 00011D80 +@06CB E037883A +@06CC DFC00117 +@06CD DF000017 +@06CE DEC00204 +@06CF F800283A +@06D0 DEFFFC04 +@06D1 DFC00315 +@06D2 DF000215 +@06D3 DF000204 +@06D4 E13FFE15 +@06D5 E17FFF05 +@06D6 E13FFF03 +@06D7 E17FFE17 +@06D8 000274C0 +@06D9 E037883A +@06DA DFC00117 +@06DB DF000017 +@06DC DEC00204 +@06DD F800283A +@06DE DEFFFC04 +@06DF DFC00315 +@06E0 DF000215 +@06E1 DF000204 +@06E2 E13FFE15 +@06E3 E17FFF05 +@06E4 E13FFF03 +@06E5 E17FFE17 +@06E6 00026B00 +@06E7 E037883A +@06E8 DFC00117 +@06E9 DF000017 +@06EA DEC00204 +@06EB F800283A +@06EC DEFFFC04 +@06ED DFC00315 +@06EE DF000215 +@06EF DF000204 +@06F0 E13FFE15 +@06F1 E17FFF05 +@06F2 E0FFFE17 +@06F3 00800074 +@06F4 1090D504 +@06F5 10C5883A +@06F6 10800003 +@06F7 11003FCC +@06F8 2100201C +@06F9 213FE004 +@06FA 0149C404 +@06FB 0002C3C0 +@06FC 1009883A +@06FD 000CE900 +@06FE E037883A +@06FF DFC00117 +@0700 DF000017 +@0701 DEC00204 +@0702 F800283A +@0703 DEFFFD04 +@0704 DF000215 +@0705 DF000204 +@0706 E13FFE15 +@0707 E17FFF05 +@0708 00800074 +@0709 1090D504 +@070A 10800143 +@070B 1009883A +@070C E0FFFE17 +@070D 00800074 +@070E 1090D504 +@070F 10C5883A +@0710 10800003 +@0711 2085883A +@0712 1007883A +@0713 00800074 +@0714 1090D504 +@0715 10C00145 +@0716 E037883A +@0717 DF000017 +@0718 DEC00104 +@0719 F800283A +@071A DEFFFD04 +@071B DF000215 +@071C DF000204 +@071D E13FFE15 +@071E E17FFF05 +@071F 00800074 +@0720 1090D504 +@0721 10800143 +@0722 1009883A +@0723 E0FFFE17 +@0724 00800074 +@0725 1090D504 +@0726 10C5883A +@0727 10800003 +@0728 2085C83A +@0729 1007883A +@072A 00800074 +@072B 1090D504 +@072C 10C00145 +@072D E037883A +@072E DF000017 +@072F DEC00104 +@0730 F800283A +@0731 DEFFFD04 +@0732 DF000215 +@0733 DF000204 +@0734 E13FFE15 +@0735 E17FFF05 +@0736 00800074 +@0737 1090D504 +@0738 11000143 +@0739 E0FFFE17 +@073A 00800074 +@073B 1090D504 +@073C 10C5883A +@073D 10800003 +@073E 20C03FCC +@073F 18C0201C +@0740 18FFE004 +@0741 10803FCC +@0742 1080201C +@0743 10BFE004 +@0744 1880041E +@0745 00800074 +@0746 1090D504 +@0747 10000185 +@0748 00001806 +@0749 00800074 +@074A 1090D504 +@074B 11000143 +@074C E0FFFE17 +@074D 00800074 +@074E 1090D504 +@074F 10C5883A +@0750 10800003 +@0751 20C03FCC +@0752 18C0201C +@0753 18FFE004 +@0754 10803FCC +@0755 1080201C +@0756 10BFE004 +@0757 10C0050E +@0758 00C00074 +@0759 18D0D504 +@075A 00BFFFC4 +@075B 18800185 +@075C 00000406 +@075D 00C00074 +@075E 18D0D504 +@075F 00800044 +@0760 18800185 +@0761 E037883A +@0762 DF000017 +@0763 DEC00104 +@0764 F800283A +@0765 DEFFFC04 +@0766 DFC00315 +@0767 DF000215 +@0768 DF000204 +@0769 E13FFE15 +@076A E17FFF05 +@076B 00800074 +@076C 1090D504 +@076D 11000183 +@076E E0FFFE17 +@076F 00800074 +@0770 1090D504 +@0771 10C5883A +@0772 10800003 +@0773 20C03FCC +@0774 18C0201C +@0775 18FFE004 +@0776 10803FCC +@0777 1080201C +@0778 10BFE004 +@0779 1880011E +@077A 00027DC0 +@077B E037883A +@077C DFC00117 +@077D DF000017 +@077E DEC00204 +@077F F800283A +@0780 DEFFFC04 +@0781 DFC00315 +@0782 DF000215 +@0783 DF000204 +@0784 E13FFE15 +@0785 E17FFF05 +@0786 00800074 +@0787 1090D504 +@0788 11000183 +@0789 E0FFFE17 +@078A 00800074 +@078B 1090D504 +@078C 10C5883A +@078D 10800003 +@078E 20C03FCC +@078F 18C0201C +@0790 18FFE004 +@0791 10803FCC +@0792 1080201C +@0793 10BFE004 +@0794 18800126 +@0795 00027DC0 +@0796 E037883A +@0797 DFC00117 +@0798 DF000017 +@0799 DEC00204 +@079A F800283A +@079B DEFFFC04 +@079C DFC00315 +@079D DF000215 +@079E DF000204 +@079F E13FFE05 +@07A0 E17FFF05 +@07A1 00800074 +@07A2 1090D504 +@07A3 10800183 +@07A4 10C03FCC +@07A5 18C0201C +@07A6 18FFE004 +@07A7 E0BFFE07 +@07A8 1880011E +@07A9 00027DC0 +@07AA E037883A +@07AB DFC00117 +@07AC DF000017 +@07AD DEC00204 +@07AE F800283A +@07AF DEFFFC04 +@07B0 DFC00315 +@07B1 DF000215 +@07B2 DF000204 +@07B3 E13FFE05 +@07B4 E17FFF05 +@07B5 00800074 +@07B6 1090D504 +@07B7 10800183 +@07B8 10C03FCC +@07B9 18C0201C +@07BA 18FFE004 +@07BB E0BFFE07 +@07BC 18800126 +@07BD 00027DC0 +@07BE E037883A +@07BF DFC00117 +@07C0 DF000017 +@07C1 DEC00204 +@07C2 F800283A +@07C3 DEFFFE04 +@07C4 DFC00115 +@07C5 DF000015 +@07C6 D839883A +@07C7 00C00134 +@07C8 18C40404 +@07C9 00800044 +@07CA 18800005 +@07CB 00C00134 +@07CC 18C40804 +@07CD 00800044 +@07CE 18800005 +@07CF 00001F00 +@07D0 E037883A +@07D1 DFC00117 +@07D2 DF000017 +@07D3 DEC00204 +@07D4 F800283A +@07D5 DEFFFE04 +@07D6 DFC00115 +@07D7 DF000015 +@07D8 D839883A +@07D9 00001F00 +@07DA E037883A +@07DB DFC00117 +@07DC DF000017 +@07DD DEC00204 +@07DE F800283A +@07DF DEFFFE04 +@07E0 DFC00115 +@07E1 DF000015 +@07E2 D839883A +@07E3 00003140 +@07E4 E037883A +@07E5 DFC00117 +@07E6 DF000017 +@07E7 DEC00204 +@07E8 F800283A +@07E9 DEFFFD04 +@07EA DFC00215 +@07EB DF000115 +@07EC DF000104 +@07ED E13FFF15 +@07EE E13FFF17 +@07EF 000028C0 +@07F0 E037883A +@07F1 DFC00117 +@07F2 DF000017 +@07F3 DEC00204 +@07F4 F800283A +@07F5 DEFFF504 +@07F6 DFC00A15 +@07F7 DF000915 +@07F8 DF000904 +@07F9 E13FFE15 +@07FA E17FFF15 +@07FB E0BFFE17 +@07FC 108003CC +@07FD 11403FCC +@07FE E13FF704 +@07FF 000225C0 +@0800 E0BFFE17 +@0801 1004D23A +@0802 108003CC +@0803 11403FCC +@0804 E13FF844 +@0805 00020EC0 +@0806 0001F540 +@0807 E13FF944 +@0808 01400074 +@0809 29402604 +@080A E1BFFF17 +@080B E1FFF704 +@080C 0002C740 +@080D E13FF944 +@080E 0001FA40 +@080F 0001F7C0 +@0810 E0BFFE17 +@0811 1004D13A +@0812 108003CC +@0813 11C03FCC +@0814 E13FF944 +@0815 E1BFF844 +@0816 01400074 +@0817 29402B04 +@0818 0002C740 +@0819 E13FF944 +@081A 0001FA40 +@081B E037883A +@081C DFC00117 +@081D DF000017 +@081E DEC00204 +@081F F800283A +@0820 DEFFF704 +@0821 DFC00815 +@0822 DF000715 +@0823 DF000704 +@0824 E13FFE05 +@0825 E17FFF05 +@0826 0001F540 +@0827 E1BFFE03 +@0828 E13FF904 +@0829 01400074 +@082A 29403004 +@082B 0002C740 +@082C E13FF904 +@082D 0001FA40 +@082E 0001F7C0 +@082F E1BFFF07 +@0830 E13FF904 +@0831 01400074 +@0832 29403304 +@0833 0002C740 +@0834 E13FF904 +@0835 0001FA40 +@0836 E037883A +@0837 DFC00117 +@0838 DF000017 +@0839 DEC00204 +@083A F800283A +@083B DEFFFD04 +@083C DF000215 +@083D DF000204 +@083E E13FFE15 +@083F E17FFF15 +@0840 E0BFFF17 +@0841 108001E8 +@0842 1000481E +@0843 E0BFFF17 +@0844 1085883A +@0845 1087883A +@0846 00800034 +@0847 10884B04 +@0848 1885883A +@0849 10800017 +@084A 1000683A +@084B 00002148 +@084C 00002164 +@084D 00002180 +@084E 0000219C +@084F 000021C0 +@0850 000021E4 +@0851 00002208 +@0852 E0BFFE17 +@0853 00C01684 +@0854 10C00005 +@0855 00C01144 +@0856 10C00045 +@0857 10000085 +@0858 00003A06 +@0859 E0BFFE17 +@085A 00C01404 +@085B 10C00005 +@085C 00C010C4 +@085D 10C00045 +@085E 10000085 +@085F 00003306 +@0860 E0BFFE17 +@0861 00C014C4 +@0862 10C00005 +@0863 00C01404 +@0864 10C00045 +@0865 10000085 +@0866 00002C06 +@0867 E0FFFE17 +@0868 008011C4 +@0869 18800005 +@086A 00801404 +@086B 18800045 +@086C 00800C04 +@086D 18800085 +@086E 180000C5 +@086F 00002306 +@0870 E0FFFE17 +@0871 008011C4 +@0872 18800005 +@0873 00801404 +@0874 18800045 +@0875 00800C44 +@0876 18800085 +@0877 180000C5 +@0878 00001A06 +@0879 E0FFFE17 +@087A 00801044 +@087B 18800005 +@087C 008010C4 +@087D 18800045 +@087E 008010C4 +@087F 18800085 +@0880 180000C5 +@0881 00001106 +@0882 E0FFFE17 +@0883 00801184 +@0884 18800005 +@0885 00801304 +@0886 18800045 +@0887 008011C4 +@0888 18800085 +@0889 180000C5 +@088A 00000806 +@088B E0FFFE17 +@088C 00801B84 +@088D 18800005 +@088E 00801BC4 +@088F 18800045 +@0890 00801B84 +@0891 18800085 +@0892 180000C5 +@0893 E037883A +@0894 DF000017 +@0895 DEC00104 +@0896 F800283A +@0897 DEFFFC04 +@0898 DF000315 +@0899 DF000304 +@089A E13FFD15 +@089B E17FFE05 +@089C E0BFFE03 +@089D E0BFFF15 +@089E E0FFFF17 +@089F 18800368 +@08A0 1000991E +@08A1 E13FFF17 +@08A2 E13FFF17 +@08A3 2105883A +@08A4 1087883A +@08A5 00800034 +@08A6 1088AA04 +@08A7 1885883A +@08A8 10800017 +@08A9 1000683A +@08AA 000022DC +@08AB 00002300 +@08AC 0000232C +@08AD 00002350 +@08AE 0000237C +@08AF 000023A8 +@08B0 000023D4 +@08B1 0000241C +@08B2 00002448 +@08B3 0000246C +@08B4 00002490 +@08B5 000024BC +@08B6 000023F8 +@08B7 E0FFFD17 +@08B8 00801144 +@08B9 18800005 +@08BA 00801384 +@08BB 18800045 +@08BC 00801104 +@08BD 18800085 +@08BE 180000C5 +@08BF 00008406 +@08C0 E0FFFD17 +@08C1 00801284 +@08C2 18800005 +@08C3 00801544 +@08C4 18800045 +@08C5 00801344 +@08C6 18800085 +@08C7 00801404 +@08C8 188000C5 +@08C9 18000105 +@08CA 00007906 +@08CB E0FFFD17 +@08CC 008013C4 +@08CD 18800005 +@08CE 00801544 +@08CF 18800045 +@08D0 00801504 +@08D1 18800085 +@08D2 180000C5 +@08D3 00007006 +@08D4 E0FFFD17 +@08D5 00801304 +@08D6 18800005 +@08D7 008013C4 +@08D8 18800045 +@08D9 00801044 +@08DA 18800085 +@08DB 00801104 +@08DC 188000C5 +@08DD 18000105 +@08DE 00006506 +@08DF E0FFFD17 +@08E0 008014C4 +@08E1 18800005 +@08E2 00801504 +@08E3 18800045 +@08E4 008013C4 +@08E5 18800085 +@08E6 00801484 +@08E7 188000C5 +@08E8 18000105 +@08E9 00005A06 +@08EA E0FFFD17 +@08EB 00801104 +@08EC 18800005 +@08ED 00801144 +@08EE 18800045 +@08EF 00801304 +@08F0 18800085 +@08F1 00801644 +@08F2 188000C5 +@08F3 18000105 +@08F4 00004F06 +@08F5 E0FFFD17 +@08F6 00801044 +@08F7 18800005 +@08F8 00801104 +@08F9 18800045 +@08FA 00801104 +@08FB 18800085 +@08FC 180000C5 +@08FD 00004606 +@08FE E0FFFD17 +@08FF 008014C4 +@0900 18800005 +@0901 00801544 +@0902 18800045 +@0903 00801084 +@0904 18800085 +@0905 180000C5 +@0906 00003D06 +@0907 E0FFFD17 +@0908 008010C4 +@0909 18800005 +@090A 008013C4 +@090B 18800045 +@090C 00801344 +@090D 18800085 +@090E 00801404 +@090F 188000C5 +@0910 18000105 +@0911 00003206 +@0912 E0FFFD17 +@0913 00801284 +@0914 18800005 +@0915 00801144 +@0916 18800045 +@0917 00801444 +@0918 18800085 +@0919 180000C5 +@091A 00002906 +@091B E0FFFD17 +@091C 00801284 +@091D 18800005 +@091E 00801384 +@091F 18800045 +@0920 00801144 +@0921 18800085 +@0922 180000C5 +@0923 00002006 +@0924 E0FFFD17 +@0925 00801284 +@0926 18800005 +@0927 00801244 +@0928 18800045 +@0929 00801144 +@092A 18800085 +@092B 00801444 +@092C 188000C5 +@092D 18000105 +@092E 00001506 +@092F E0FFFD17 +@0930 00801284 +@0931 18800005 +@0932 00801244 +@0933 18800045 +@0934 00801384 +@0935 18800085 +@0936 00801144 +@0937 188000C5 +@0938 18000105 +@0939 00000A06 +@093A E0FFFD17 +@093B 00801384 +@093C 18800005 +@093D 00801BC4 +@093E 18800045 +@093F 008013C4 +@0940 18800085 +@0941 00801C04 +@0942 188000C5 +@0943 18000105 +@0944 E037883A +@0945 DF000017 +@0946 DEC00104 +@0947 F800283A +@0948 DEFFFD04 +@0949 DFC00215 +@094A DF000115 +@094B DF000104 +@094C E13FFF15 +@094D E13FFF17 +@094E 0149C404 +@094F 0002C3C0 +@0950 1009883A +@0951 000CE900 +@0952 E037883A +@0953 DFC00117 +@0954 DF000017 +@0955 DEC00204 +@0956 F800283A +@0957 DEFFFE04 +@0958 DFC00115 +@0959 DF000015 +@095A D839883A +@095B 0009883A +@095C 00013680 +@095D 01000074 +@095E 21003604 +@095F 01400104 +@0960 000D883A +@0961 00011D80 +@0962 E037883A +@0963 DFC00117 +@0964 DF000017 +@0965 DEC00204 +@0966 F800283A +@0967 DEFFFD04 +@0968 DF000215 +@0969 DF000204 +@096A E03FFF15 +@096B 00001306 +@096C E03FFE15 +@096D 00000B06 +@096E E0BFFF17 +@096F E13FFE17 +@0970 00C00074 +@0971 18CF8B04 +@0972 1004913A +@0973 10C5883A +@0974 1105883A +@0975 10000005 +@0976 E0BFFE17 +@0977 10800044 +@0978 E0BFFE15 +@0979 E0BFFE17 +@097A 10800410 +@097B 103FF21E +@097C E0BFFF17 +@097D 10800044 +@097E E0BFFF15 +@097F E0BFFF17 +@0980 10800410 +@0981 103FEA1E +@0982 E037883A +@0983 DF000017 +@0984 DEC00104 +@0985 F800283A +@0986 DEFFFD04 +@0987 DF000215 +@0988 DF000204 +@0989 E13FFE15 +@098A E17FFF15 +@098B D0A6F917 +@098C E0FFFE17 +@098D 01000074 +@098E 210FCB04 +@098F 1004913A +@0990 10C5883A +@0991 1085883A +@0992 1085883A +@0993 1107883A +@0994 E0BFFF17 +@0995 18800015 +@0996 E037883A +@0997 DF000017 +@0998 DEC00104 +@0999 F800283A +@099A DEFFFE04 +@099B DF000115 +@099C DF000104 +@099D E13FFF15 +@099E D0A6F917 +@099F E0FFFF17 +@09A0 01000074 +@09A1 210FCB04 +@09A2 1004913A +@09A3 10C5883A +@09A4 1085883A +@09A5 1085883A +@09A6 1105883A +@09A7 10800017 +@09A8 E037883A +@09A9 DF000017 +@09AA DEC00104 +@09AB F800283A +@09AC DEFFFC04 +@09AD DFC00315 +@09AE DF000215 +@09AF DF000204 +@09B0 E13FFE15 +@09B1 E17FFF15 +@09B2 E0BFFE17 +@09B3 10800430 +@09B4 1000011E +@09B5 000255C0 +@09B6 D166F917 +@09B7 E1BFFE17 +@09B8 E0FFFF17 +@09B9 00800074 +@09BA 1090D504 +@09BB 10C5883A +@09BC 11000003 +@09BD 00C00074 +@09BE 18CF8B04 +@09BF 2804913A +@09C0 10C5883A +@09C1 1185883A +@09C2 11000005 +@09C3 D0A6F917 +@09C4 E13FFE17 +@09C5 00C00074 +@09C6 18CF8B04 +@09C7 1004913A +@09C8 10C5883A +@09C9 1105883A +@09CA 10800003 +@09CB 10803FCC +@09CC 1080201C +@09CD 10BFE004 +@09CE E037883A +@09CF DFC00117 +@09D0 DF000017 +@09D1 DEC00204 +@09D2 F800283A +@09D3 DEFFFC04 +@09D4 DFC00315 +@09D5 DF000215 +@09D6 DF000204 +@09D7 E13FFE15 +@09D8 E17FFF15 +@09D9 E0BFFE17 +@09DA 10800430 +@09DB 1000011E +@09DC 000255C0 +@09DD E17FFF17 +@09DE D0A6F917 +@09DF E13FFE17 +@09E0 00C00074 +@09E1 18CF8B04 +@09E2 1004913A +@09E3 10C5883A +@09E4 1105883A +@09E5 10C00003 +@09E6 00800074 +@09E7 1090D504 +@09E8 1145883A +@09E9 10C00005 +@09EA E0FFFF17 +@09EB 00800074 +@09EC 1090D504 +@09ED 10C5883A +@09EE 10800003 +@09EF 10803FCC +@09F0 1080201C +@09F1 10BFE004 +@09F2 E037883A +@09F3 DFC00117 +@09F4 DF000017 +@09F5 DEC00204 +@09F6 F800283A +@09F7 DEFFFF04 +@09F8 DF000015 +@09F9 D839883A +@09FA 00800074 +@09FB 1090D504 +@09FC 10800043 +@09FD 10803FCC +@09FE 10800044 +@09FF 1009883A +@0A00 00800074 +@0A01 108F7D04 +@0A02 10800017 +@0A03 1006913A +@0A04 00804004 +@0A05 10C5C83A +@0A06 2080092E +@0A07 00800074 +@0A08 1090D504 +@0A09 10800043 +@0A0A 10800044 +@0A0B 1007883A +@0A0C 00800074 +@0A0D 1090D504 +@0A0E 10C00045 +@0A0F 00000306 +@0A10 00800074 +@0A11 1090D504 +@0A12 10000045 +@0A13 0005883A +@0A14 E037883A +@0A15 DF000017 +@0A16 DEC00104 +@0A17 F800283A +@0A18 DEFFFC04 +@0A19 DFC00315 +@0A1A DF000215 +@0A1B DF000204 +@0A1C E13FFF15 +@0A1D E03FFE15 +@0A1E 00000406 +@0A1F 00027DC0 +@0A20 E0BFFE17 +@0A21 10800044 +@0A22 E0BFFE15 +@0A23 E0FFFE17 +@0A24 E0BFFF17 +@0A25 18BFF936 +@0A26 0005883A +@0A27 E037883A +@0A28 DFC00117 +@0A29 DF000017 +@0A2A DEC00204 +@0A2B F800283A +@0A2C DEFFFE04 +@0A2D DF000115 +@0A2E DF000104 +@0A2F E13FFF15 +@0A30 E0BFFF17 +@0A31 1007883A +@0A32 00800074 +@0A33 1090D504 +@0A34 10C00045 +@0A35 0005883A +@0A36 E037883A +@0A37 DF000017 +@0A38 DEC00104 +@0A39 F800283A +@0A3A DEFFFE04 +@0A3B DF000115 +@0A3C DF000104 +@0A3D 00800074 +@0A3E 1090D504 +@0A3F 10800043 +@0A40 11003FCC +@0A41 00800074 +@0A42 108F7D04 +@0A43 10800017 +@0A44 1006913A +@0A45 00804004 +@0A46 10C5C83A +@0A47 2080062E +@0A48 00800074 +@0A49 1090D504 +@0A4A 10800043 +@0A4B 10803FCC +@0A4C E0BFFF15 +@0A4D 00000106 +@0A4E E03FFF15 +@0A4F E0BFFF17 +@0A50 E037883A +@0A51 DF000017 +@0A52 DEC00104 +@0A53 F800283A +@0A54 DEFFF904 +@0A55 DFC00615 +@0A56 DF000515 +@0A57 DF000504 +@0A58 E13FFE15 +@0A59 E0BFFE17 +@0A5A 10800058 +@0A5B 1000101E +@0A5C 0001F540 +@0A5D 01000074 +@0A5E 21003804 +@0A5F 0001FA40 +@0A60 00800074 +@0A61 1090D504 +@0A62 10000045 +@0A63 0009883A +@0A64 00013680 +@0A65 01000044 +@0A66 00013680 +@0A67 01000084 +@0A68 00013680 +@0A69 00800084 +@0A6A E0BFFF15 +@0A6B 00003606 +@0A6C E0BFFE17 +@0A6D 10800098 +@0A6E 1000291E +@0A6F 00017B00 +@0A70 E0BFFB15 +@0A71 E13FFB17 +@0A72 00017FC0 +@0A73 00800074 +@0A74 1090D504 +@0A75 10800043 +@0A76 11803FCC +@0A77 E13FFC04 +@0A78 01400074 +@0A79 29403B04 +@0A7A 0002C740 +@0A7B 01000074 +@0A7C 21003D04 +@0A7D 01400084 +@0A7E 01800084 +@0A7F 00011D80 +@0A80 E13FFC04 +@0A81 01400084 +@0A82 01800044 +@0A83 00011D80 +@0A84 00800074 +@0A85 1090D504 +@0A86 10800343 +@0A87 10803FCC +@0A88 1080201C +@0A89 10BFE004 +@0A8A 1005003A +@0A8B 1000021E +@0A8C 01001904 +@0A8D 00025200 +@0A8E E0BFFB17 +@0A8F 108003CC +@0A90 1005003A +@0A91 1000031E +@0A92 00800084 +@0A93 E0BFFF15 +@0A94 00000D06 +@0A95 008000C4 +@0A96 E0BFFF15 +@0A97 00000A06 +@0A98 E0BFFE17 +@0A99 108000D8 +@0A9A 1000061E +@0A9B 0001F540 +@0A9C 01000074 +@0A9D 21003E04 +@0A9E 0001FA40 +@0A9F E03FFF15 +@0AA0 00000106 +@0AA1 E03FFF15 +@0AA2 E0BFFF17 +@0AA3 E037883A +@0AA4 DFC00117 +@0AA5 DF000017 +@0AA6 DEC00204 +@0AA7 F800283A +@0AA8 DEFFFE04 +@0AA9 DF000115 +@0AAA DF000104 +@0AAB E03FFF15 +@0AAC 00000806 +@0AAD E0FFFF17 +@0AAE 00800074 +@0AAF 1090D504 +@0AB0 10C5883A +@0AB1 10000005 +@0AB2 E0BFFF17 +@0AB3 10800044 +@0AB4 E0BFFF15 +@0AB5 E0BFFF17 +@0AB6 108003D0 +@0AB7 103FF51E +@0AB8 E037883A +@0AB9 DF000017 +@0ABA DEC00104 +@0ABB F800283A +@0ABC 29001B2E +@0ABD 28001A16 +@0ABE 00800044 +@0ABF 0007883A +@0AC0 01C007C4 +@0AC1 00000306 +@0AC2 19C01326 +@0AC3 18C00044 +@0AC4 28000416 +@0AC5 294B883A +@0AC6 1085883A +@0AC7 293FFA36 +@0AC8 10000D26 +@0AC9 0007883A +@0ACA 21400236 +@0ACB 2149C83A +@0ACC 1886B03A +@0ACD 1004D07A +@0ACE 280AD07A +@0ACF 103FFA1E +@0AD0 30000226 +@0AD1 2005883A +@0AD2 F800283A +@0AD3 1809883A +@0AD4 2005883A +@0AD5 F800283A +@0AD6 0007883A +@0AD7 003FF806 +@0AD8 00800044 +@0AD9 0007883A +@0ADA 003FEF06 +@0ADB DEFFFE04 +@0ADC DC000015 +@0ADD DFC00115 +@0ADE 0021883A +@0ADF 20000C16 +@0AE0 000D883A +@0AE1 28000E16 +@0AE2 0002AF00 +@0AE3 1007883A +@0AE4 8005003A +@0AE5 1000011E +@0AE6 00C7C83A +@0AE7 1805883A +@0AE8 DFC00117 +@0AE9 DC000017 +@0AEA DEC00204 +@0AEB F800283A +@0AEC 0109C83A +@0AED 04000044 +@0AEE 000D883A +@0AEF 283FF20E +@0AF0 014BC83A +@0AF1 8021003A +@0AF2 003FEF06 +@0AF3 DEFFFF04 +@0AF4 DFC00015 +@0AF5 01800044 +@0AF6 2807883A +@0AF7 20000416 +@0AF8 28000C16 +@0AF9 DFC00017 +@0AFA DEC00104 +@0AFB 0002AF01 +@0AFC 0109C83A +@0AFD 28000B16 +@0AFE 180B883A +@0AFF 01800044 +@0B00 0002AF00 +@0B01 0085C83A +@0B02 DFC00017 +@0B03 DEC00104 +@0B04 F800283A +@0B05 014BC83A +@0B06 DFC00017 +@0B07 DEC00104 +@0B08 0002AF01 +@0B09 0147C83A +@0B0A 003FF306 +@0B0B 000D883A +@0B0C 0002AF01 +@0B0D 01800044 +@0B0E 0002AF01 +@0B0F 20000A26 +@0B10 0007883A +@0B11 2080004C +@0B12 1005003A +@0B13 2008D07A +@0B14 1000011E +@0B15 1947883A +@0B16 294B883A +@0B17 203FF91E +@0B18 1805883A +@0B19 F800283A +@0B1A 0007883A +@0B1B 1805883A +@0B1C F800283A +@0B1D DEFFE504 +@0B1E 2013883A +@0B1F DFC01815 +@0B20 D9801915 +@0B21 D9C01A15 +@0B22 D8801904 +@0B23 D8800015 +@0B24 00800074 +@0B25 10888604 +@0B26 11000017 +@0B27 D9C00017 +@0B28 00808204 +@0B29 00E00034 +@0B2A 18FFFFC4 +@0B2B 280D883A +@0B2C D880040D +@0B2D D9400104 +@0B2E 00BFFFC4 +@0B2F D8C00615 +@0B30 D8C00315 +@0B31 DA400515 +@0B32 D880048D +@0B33 DA400115 +@0B34 0002E140 +@0B35 D8C00117 +@0B36 18000005 +@0B37 DFC01817 +@0B38 DEC01B04 +@0B39 F800283A +@0B3A DEFFE604 +@0B3B 2813883A +@0B3C DFC01815 +@0B3D D9C01915 +@0B3E D8801904 +@0B3F D8800015 +@0B40 100F883A +@0B41 00808204 +@0B42 00E00034 +@0B43 18FFFFC4 +@0B44 D880040D +@0B45 D9400104 +@0B46 00BFFFC4 +@0B47 D8C00615 +@0B48 D8C00315 +@0B49 DA400515 +@0B4A D880048D +@0B4B DA400115 +@0B4C 0002E140 +@0B4D D8C00117 +@0B4E 18000005 +@0B4F DFC01817 +@0B50 DEC01A04 +@0B51 F800283A +@0B52 208000CC +@0B53 2011883A +@0B54 1000161E +@0B55 20C00017 +@0B56 017FBFF4 +@0B57 297FBFC4 +@0B58 01E02074 +@0B59 39E02004 +@0B5A 1945883A +@0B5B 11C4703A +@0B5C 00C6303A +@0B5D 1886703A +@0B5E 18000C1E +@0B5F 280D883A +@0B60 380B883A +@0B61 21000104 +@0B62 20800017 +@0B63 1187883A +@0B64 1946703A +@0B65 0084303A +@0B66 10C4703A +@0B67 103FF926 +@0B68 20800007 +@0B69 10000326 +@0B6A 21000044 +@0B6B 20800007 +@0B6C 103FFD1E +@0B6D 2205C83A +@0B6E F800283A +@0B6F 30800217 +@0B70 DEFFFE04 +@0B71 DC000015 +@0B72 DFC00115 +@0B73 3021883A +@0B74 0007883A +@0B75 1000061E +@0B76 1805883A +@0B77 30000115 +@0B78 DFC00117 +@0B79 DC000017 +@0B7A DEC00204 +@0B7B F800283A +@0B7C 0006F940 +@0B7D 1007883A +@0B7E 1805883A +@0B7F 80000115 +@0B80 80000215 +@0B81 DFC00117 +@0B82 DC000017 +@0B83 DEC00204 +@0B84 F800283A +@0B85 DEFEA404 +@0B86 DD815815 +@0B87 DC015215 +@0B88 D9C15115 +@0B89 DFC15B15 +@0B8A DF015A15 +@0B8B DDC15915 +@0B8C DD415715 +@0B8D DD015615 +@0B8E DCC15515 +@0B8F DC815415 +@0B90 DC415315 +@0B91 282D883A +@0B92 3021883A +@0B93 D9014F15 +@0B94 00075B80 +@0B95 10800017 +@0B96 D9C15117 +@0B97 D8814915 +@0B98 D8814F17 +@0B99 10000226 +@0B9A 10800E17 +@0B9B 10020D26 +@0B9C B080030B +@0B9D 1080020C +@0B9E 10020E26 +@0B9F B0800417 +@0BA0 10020C26 +@0BA1 B200030B +@0BA2 00800284 +@0BA3 40C0068C +@0BA4 18802F1E +@0BA5 B080038F +@0BA6 10002D16 +@0BA7 B240038B +@0BA8 B2800717 +@0BA9 B2C00917 +@0BAA D9014F17 +@0BAB DC402904 +@0BAC D8804004 +@0BAD 00C10004 +@0BAE 423FFF4C +@0BAF 800D883A +@0BB0 880B883A +@0BB1 DA002C0D +@0BB2 DA402C8D +@0BB3 DA803015 +@0BB4 DAC03215 +@0BB5 D8802D15 +@0BB6 D8C02E15 +@0BB7 D8802915 +@0BB8 D8C02B15 +@0BB9 D8002F15 +@0BBA 0002E140 +@0BBB D8814B15 +@0BBC 10000416 +@0BBD D9014F17 +@0BBE 880B883A +@0BBF 00066300 +@0BC0 1002321E +@0BC1 D8802C0B +@0BC2 1080100C +@0BC3 10000326 +@0BC4 B080030B +@0BC5 10801014 +@0BC6 B080030D +@0BC7 D8814B17 +@0BC8 DFC15B17 +@0BC9 DF015A17 +@0BCA DDC15917 +@0BCB DD815817 +@0BCC DD415717 +@0BCD DD015617 +@0BCE DCC15517 +@0BCF DC815417 +@0BD0 DC415317 +@0BD1 DC015217 +@0BD2 DEC15C04 +@0BD3 F800283A +@0BD4 0005883A +@0BD5 0007883A +@0BD6 DD401904 +@0BD7 D8814215 +@0BD8 802F883A +@0BD9 D8C14315 +@0BDA D8014B15 +@0BDB D8014815 +@0BDC D8014415 +@0BDD D8014715 +@0BDE DD400C15 +@0BDF D8000E15 +@0BE0 D8000D15 +@0BE1 B8800007 +@0BE2 10001926 +@0BE3 00C00944 +@0BE4 10C01726 +@0BE5 B821883A +@0BE6 00000106 +@0BE7 10C00326 +@0BE8 84000044 +@0BE9 80800007 +@0BEA 103FFC1E +@0BEB 85E7C83A +@0BEC 98000E26 +@0BED DC800E17 +@0BEE DC400D17 +@0BEF 008001C4 +@0BF0 94E5883A +@0BF1 8C400044 +@0BF2 ADC00015 +@0BF3 DC800E15 +@0BF4 ACC00115 +@0BF5 DC400D15 +@0BF6 14428B16 +@0BF7 AD400204 +@0BF8 D9014B17 +@0BF9 24C9883A +@0BFA D9014B15 +@0BFB 802F883A +@0BFC B8800007 +@0BFD 10013C26 +@0BFE BDC00044 +@0BFF D8000405 +@0C00 B8C00007 +@0C01 04FFFFC4 +@0C02 D8014C15 +@0C03 D8014A15 +@0C04 D8C14D15 +@0C05 BDC00044 +@0C06 D9414D17 +@0C07 00801604 +@0C08 28FFF804 +@0C09 10C06036 +@0C0A 18C5883A +@0C0B 1085883A +@0C0C 00C00034 +@0C0D 18CC1104 +@0C0E 10C5883A +@0C0F 11000017 +@0C10 2000683A +@0C11 00003FB8 +@0C12 000031A8 +@0C13 000031A8 +@0C14 00003FA4 +@0C15 000031A8 +@0C16 000031A8 +@0C17 000031A8 +@0C18 000031A8 +@0C19 000031A8 +@0C1A 000031A8 +@0C1B 00003D84 +@0C1C 00003F94 +@0C1D 000031A8 +@0C1E 00003D9C +@0C1F 0000403C +@0C20 000031A8 +@0C21 00004028 +@0C22 00003FE4 +@0C23 00003FE4 +@0C24 00003FE4 +@0C25 00003FE4 +@0C26 00003FE4 +@0C27 00003FE4 +@0C28 00003FE4 +@0C29 00003FE4 +@0C2A 00003FE4 +@0C2B 000031A8 +@0C2C 000031A8 +@0C2D 000031A8 +@0C2E 000031A8 +@0C2F 000031A8 +@0C30 000031A8 +@0C31 000031A8 +@0C32 000031A8 +@0C33 000031A8 +@0C34 000031A8 +@0C35 00003800 +@0C36 00003E6C +@0C37 000031A8 +@0C38 00003E6C +@0C39 000031A8 +@0C3A 000031A8 +@0C3B 000031A8 +@0C3C 000031A8 +@0C3D 00003FD0 +@0C3E 000031A8 +@0C3F 000031A8 +@0C40 000038B4 +@0C41 000031A8 +@0C42 000031A8 +@0C43 000031A8 +@0C44 000031A8 +@0C45 000031A8 +@0C46 00003900 +@0C47 000031A8 +@0C48 000031A8 +@0C49 00003F20 +@0C4A 000031A8 +@0C4B 000031A8 +@0C4C 000031A8 +@0C4D 000031A8 +@0C4E 000031A8 +@0C4F 000031A8 +@0C50 000031A8 +@0C51 000031A8 +@0C52 000031A8 +@0C53 000031A8 +@0C54 00003EF4 +@0C55 0000380C +@0C56 00003E6C +@0C57 00003E6C +@0C58 00003E6C +@0C59 00003E58 +@0C5A 0000380C +@0C5B 000031A8 +@0C5C 000031A8 +@0C5D 00003DE0 +@0C5E 000031A8 +@0C5F 00003DB0 +@0C60 000038C0 +@0C61 00003E10 +@0C62 00003DFC +@0C63 000031A8 +@0C64 000040A4 +@0C65 000031A8 +@0C66 0000390C +@0C67 000031A8 +@0C68 000031A8 +@0C69 00003F84 +@0C6A D9014D17 +@0C6B 2000CE26 +@0C6C 01400044 +@0C6D D9800F04 +@0C6E D9C14015 +@0C6F D9414515 +@0C70 D9814115 +@0C71 280F883A +@0C72 D9000F05 +@0C73 D8000405 +@0C74 D8014615 +@0C75 D8C14C17 +@0C76 1880008C +@0C77 1005003A +@0C78 D8815015 +@0C79 1000031E +@0C7A D9014517 +@0C7B 21000084 +@0C7C D9014515 +@0C7D D9414C17 +@0C7E 2940210C +@0C7F D9414E15 +@0C80 28002D1E +@0C81 D9814A17 +@0C82 D8814517 +@0C83 30A1C83A +@0C84 0400290E +@0C85 00800404 +@0C86 14045E0E +@0C87 DC800E17 +@0C88 DC400D17 +@0C89 1027883A +@0C8A 07000074 +@0C8B E700FD84 +@0C8C 050001C4 +@0C8D 00000306 +@0C8E 843FFC04 +@0C8F AD400204 +@0C90 9C00130E +@0C91 94800404 +@0C92 8C400044 +@0C93 AF000015 +@0C94 ACC00115 +@0C95 DC800E15 +@0C96 DC400D15 +@0C97 A47FF60E +@0C98 D9014F17 +@0C99 B00B883A +@0C9A D9800C04 +@0C9B D9C15115 +@0C9C 0002DBC0 +@0C9D D9C15117 +@0C9E 10009E1E +@0C9F 843FFC04 +@0CA0 DC800E17 +@0CA1 DC400D17 +@0CA2 DD401904 +@0CA3 9C3FED16 +@0CA4 9425883A +@0CA5 8C400044 +@0CA6 008001C4 +@0CA7 AF000015 +@0CA8 AC000115 +@0CA9 DC800E15 +@0CAA DC400D15 +@0CAB 1441F516 +@0CAC AD400204 +@0CAD 00000206 +@0CAE DC800E17 +@0CAF DC400D17 +@0CB0 D8800407 +@0CB1 10000B26 +@0CB2 00800044 +@0CB3 94800044 +@0CB4 8C400044 +@0CB5 A8800115 +@0CB6 D8C00404 +@0CB7 008001C4 +@0CB8 A8C00015 +@0CB9 DC800E15 +@0CBA DC400D15 +@0CBB 1441DA16 +@0CBC AD400204 +@0CBD D9015017 +@0CBE 20000B1E +@0CBF D8800444 +@0CC0 94800084 +@0CC1 8C400044 +@0CC2 A8800015 +@0CC3 00C00084 +@0CC4 008001C4 +@0CC5 A8C00115 +@0CC6 DC800E15 +@0CC7 DC400D15 +@0CC8 1441C216 +@0CC9 AD400204 +@0CCA D9414E17 +@0CCB 00802004 +@0CCC 2880B126 +@0CCD D8C14617 +@0CCE 19E1C83A +@0CCF 0400260E +@0CD0 00800404 +@0CD1 1403CF0E +@0CD2 1027883A +@0CD3 07000074 +@0CD4 E700F984 +@0CD5 050001C4 +@0CD6 00000306 +@0CD7 843FFC04 +@0CD8 AD400204 +@0CD9 9C00130E +@0CDA 94800404 +@0CDB 8C400044 +@0CDC AF000015 +@0CDD ACC00115 +@0CDE DC800E15 +@0CDF DC400D15 +@0CE0 A47FF60E +@0CE1 D9014F17 +@0CE2 B00B883A +@0CE3 D9800C04 +@0CE4 D9C15115 +@0CE5 0002DBC0 +@0CE6 D9C15117 +@0CE7 1000551E +@0CE8 843FFC04 +@0CE9 DC800E17 +@0CEA DC400D17 +@0CEB DD401904 +@0CEC 9C3FED16 +@0CED 9425883A +@0CEE 8C400044 +@0CEF 008001C4 +@0CF0 AF000015 +@0CF1 AC000115 +@0CF2 DC800E15 +@0CF3 DC400D15 +@0CF4 14418216 +@0CF5 AD400204 +@0CF6 D9014C17 +@0CF7 2080400C +@0CF8 10004A1E +@0CF9 D9414117 +@0CFA 91E5883A +@0CFB 8C400044 +@0CFC 008001C4 +@0CFD A9400015 +@0CFE A9C00115 +@0CFF DC800E15 +@0D00 DC400D15 +@0D01 14416716 +@0D02 A8C00204 +@0D03 D9814C17 +@0D04 3080010C +@0D05 10002826 +@0D06 D8814A17 +@0D07 D9014517 +@0D08 1121C83A +@0D09 0400240E +@0D0A 00800404 +@0D0B 1404550E +@0D0C DC400D17 +@0D0D 1027883A +@0D0E 07000074 +@0D0F E700FD84 +@0D10 050001C4 +@0D11 00000306 +@0D12 843FFC04 +@0D13 18C00204 +@0D14 9C00110E +@0D15 94800404 +@0D16 8C400044 +@0D17 1F000015 +@0D18 1CC00115 +@0D19 DC800E15 +@0D1A DC400D15 +@0D1B A47FF60E +@0D1C D9014F17 +@0D1D B00B883A +@0D1E D9800C04 +@0D1F 0002DBC0 +@0D20 10001C1E +@0D21 843FFC04 +@0D22 DC800E17 +@0D23 DC400D17 +@0D24 D8C01904 +@0D25 9C3FEF16 +@0D26 9425883A +@0D27 8C400044 +@0D28 008001C4 +@0D29 1F000015 +@0D2A 1C000115 +@0D2B DC800E15 +@0D2C DC400D15 +@0D2D 1440CB16 +@0D2E D8814A17 +@0D2F D9414517 +@0D30 1140010E +@0D31 2805883A +@0D32 D9814B17 +@0D33 308D883A +@0D34 D9814B15 +@0D35 90013B1E +@0D36 D9C14017 +@0D37 DD401904 +@0D38 D8000D15 +@0D39 003EA706 +@0D3A D8800E17 +@0D3B 1005451E +@0D3C D8000D15 +@0D3D B080030B +@0D3E 1080100C +@0D3F 103E8726 +@0D40 00BFFFC4 +@0D41 D8814B15 +@0D42 003E8406 +@0D43 D9814D17 +@0D44 00801944 +@0D45 11806E16 +@0D46 D9414717 +@0D47 00C00044 +@0D48 1943490E +@0D49 D8814117 +@0D4A 94800044 +@0D4B 8C400044 +@0D4C A8800015 +@0D4D 008001C4 +@0D4E A8C00115 +@0D4F DC800E15 +@0D50 DC400D15 +@0D51 1441CA16 +@0D52 A8C00204 +@0D53 D9014917 +@0D54 00800044 +@0D55 94800044 +@0D56 8C400044 +@0D57 18800115 +@0D58 008001C4 +@0D59 19000015 +@0D5A DC800E15 +@0D5B DC400D15 +@0D5C 1441B616 +@0D5D 1CC00204 +@0D5E D9014217 +@0D5F D9414317 +@0D60 000D883A +@0D61 000F883A +@0D62 000B8C80 +@0D63 10017426 +@0D64 D9414717 +@0D65 D9814117 +@0D66 8C400044 +@0D67 2C85883A +@0D68 14BFFFC4 +@0D69 28BFFFC4 +@0D6A 30C00044 +@0D6B 98800115 +@0D6C 008001C4 +@0D6D 98C00015 +@0D6E DC800E15 +@0D6F DC400D15 +@0D70 14418E16 +@0D71 9CC00204 +@0D72 D9414817 +@0D73 D8800804 +@0D74 8C400044 +@0D75 9165883A +@0D76 98800015 +@0D77 008001C4 +@0D78 99400115 +@0D79 DC800E15 +@0D7A DC400D15 +@0D7B 1440ED16 +@0D7C 98C00204 +@0D7D 003F8506 +@0D7E D9814A17 +@0D7F D8814517 +@0D80 30A1C83A +@0D81 043F4B0E +@0D82 00800404 +@0D83 14043A0E +@0D84 1027883A +@0D85 07000074 +@0D86 E700F984 +@0D87 050001C4 +@0D88 00000306 +@0D89 843FFC04 +@0D8A AD400204 +@0D8B 9C00130E +@0D8C 94800404 +@0D8D 8C400044 +@0D8E AF000015 +@0D8F ACC00115 +@0D90 DC800E15 +@0D91 DC400D15 +@0D92 A47FF60E +@0D93 D9014F17 +@0D94 B00B883A +@0D95 D9800C04 +@0D96 D9C15115 +@0D97 0002DBC0 +@0D98 D9C15117 +@0D99 103FA31E +@0D9A 843FFC04 +@0D9B DC800E17 +@0D9C DC400D17 +@0D9D DD401904 +@0D9E 9C3FED16 +@0D9F 9425883A +@0DA0 8C400044 +@0DA1 008001C4 +@0DA2 AF000015 +@0DA3 AC000115 +@0DA4 DC800E15 +@0DA5 DC400D15 +@0DA6 14416116 +@0DA7 AD400204 +@0DA8 003F2406 +@0DA9 D9014F17 +@0DAA 00068C80 +@0DAB D9C15117 +@0DAC 003DEF06 +@0DAD D9014F17 +@0DAE B00B883A +@0DAF D9C15115 +@0DB0 0004CFC0 +@0DB1 D9C15117 +@0DB2 103DEE26 +@0DB3 003F8C06 +@0DB4 D9014217 +@0DB5 D9414317 +@0DB6 000D883A +@0DB7 000F883A +@0DB8 000B8400 +@0DB9 1000F21E +@0DBA 00800074 +@0DBB 1080F904 +@0DBC 94800044 +@0DBD 8C400044 +@0DBE A8800015 +@0DBF 00C00044 +@0DC0 008001C4 +@0DC1 A8C00115 +@0DC2 DC800E15 +@0DC3 DC400D15 +@0DC4 14430016 +@0DC5 A8C00204 +@0DC6 D8800517 +@0DC7 D9014717 +@0DC8 11015C0E +@0DC9 DC400D17 +@0DCA D9814917 +@0DCB 00800044 +@0DCC 94800044 +@0DCD 8C400044 +@0DCE 18800115 +@0DCF 008001C4 +@0DD0 19800015 +@0DD1 DC800E15 +@0DD2 DC400D15 +@0DD3 14431616 +@0DD4 18C00204 +@0DD5 D8814717 +@0DD6 143FFFC4 +@0DD7 043F2B0E +@0DD8 00800404 +@0DD9 1402A80E +@0DDA DC400D17 +@0DDB 1027883A +@0DDC 07000074 +@0DDD E700F984 +@0DDE 050001C4 +@0DDF 00000306 +@0DE0 18C00204 +@0DE1 843FFC04 +@0DE2 9C02A20E +@0DE3 94800404 +@0DE4 8C400044 +@0DE5 1F000015 +@0DE6 1CC00115 +@0DE7 DC800E15 +@0DE8 DC400D15 +@0DE9 A47FF60E +@0DEA D9014F17 +@0DEB B00B883A +@0DEC D9800C04 +@0DED 0002DBC0 +@0DEE 103F4E1E +@0DEF DC800E17 +@0DF0 DC400D17 +@0DF1 D8C01904 +@0DF2 003FEE06 +@0DF3 D8802C0B +@0DF4 00FFFFC4 +@0DF5 D8C14B15 +@0DF6 1080100C +@0DF7 103DCC1E +@0DF8 003DCE06 +@0DF9 D9014F17 +@0DFA B00B883A +@0DFB D9800C04 +@0DFC 0002DBC0 +@0DFD 103F3F1E +@0DFE DC800E17 +@0DFF 003F2E06 +@0E00 D9414C17 +@0E01 29400414 +@0E02 D9414C15 +@0E03 D9814C17 +@0E04 3080080C +@0E05 10014F1E +@0E06 D8C14C17 +@0E07 1880040C +@0E08 1002F01E +@0E09 D9014C17 +@0E0A 2080100C +@0E0B 1002ED26 +@0E0C 3880000F +@0E0D 39C00104 +@0E0E D9C14015 +@0E0F 1023D7FA +@0E10 1021883A +@0E11 88037816 +@0E12 01000044 +@0E13 98000416 +@0E14 D8C14C17 +@0E15 00BFDFC4 +@0E16 1886703A +@0E17 D8C14C15 +@0E18 8444B03A +@0E19 10022C1E +@0E1A 98022B1E +@0E1B 20803FCC +@0E1C 1002A126 +@0E1D D8C01904 +@0E1E DD000F04 +@0E1F D8C14115 +@0E20 D8C14117 +@0E21 DCC14515 +@0E22 A0C5C83A +@0E23 11C00A04 +@0E24 99C0010E +@0E25 D9C14515 +@0E26 DCC14615 +@0E27 D8800407 +@0E28 103E4C26 +@0E29 D8814517 +@0E2A 10800044 +@0E2B D8814515 +@0E2C 003E4806 +@0E2D D9814C17 +@0E2E 31800414 +@0E2F D9814C15 +@0E30 D8C14C17 +@0E31 1880080C +@0E32 1001271E +@0E33 D9414C17 +@0E34 2880040C +@0E35 1002BC1E +@0E36 D9814C17 +@0E37 3080100C +@0E38 1002B926 +@0E39 3C00000B +@0E3A 0009883A +@0E3B 39C00104 +@0E3C 0023883A +@0E3D D9C14015 +@0E3E D8000405 +@0E3F 003FD306 +@0E40 D9014C17 +@0E41 21000414 +@0E42 D9014C15 +@0E43 D9414C17 +@0E44 2880080C +@0E45 1001081E +@0E46 D8C14C17 +@0E47 1880040C +@0E48 1002B61E +@0E49 D9014C17 +@0E4A 2080100C +@0E4B 1002B326 +@0E4C 3C00000B +@0E4D 01000044 +@0E4E 39C00104 +@0E4F 0023883A +@0E50 D9C14015 +@0E51 D8000405 +@0E52 003FC006 +@0E53 D9014F17 +@0E54 B00B883A +@0E55 D9800C04 +@0E56 0002DBC0 +@0E57 103EE51E +@0E58 DC800E17 +@0E59 D8C01904 +@0E5A D9814C17 +@0E5B 3080004C +@0E5C 1005003A +@0E5D 103EA51E +@0E5E 00800044 +@0E5F DC400D17 +@0E60 18800115 +@0E61 D8814917 +@0E62 94800044 +@0E63 8C400044 +@0E64 18800015 +@0E65 008001C4 +@0E66 DC800E15 +@0E67 DC400D15 +@0E68 1442240E +@0E69 D9014F17 +@0E6A B00B883A +@0E6B D9800C04 +@0E6C 0002DBC0 +@0E6D 103ECF1E +@0E6E DC800E17 +@0E6F D8C01904 +@0E70 003E9206 +@0E71 D9014F17 +@0E72 B00B883A +@0E73 D9800C04 +@0E74 0002DBC0 +@0E75 103EC026 +@0E76 003EC606 +@0E77 D9014F17 +@0E78 B00B883A +@0E79 D9800C04 +@0E7A D9C15115 +@0E7B 0002DBC0 +@0E7C D9C15117 +@0E7D 103EBF1E +@0E7E DC800E17 +@0E7F DC400D17 +@0E80 DD401904 +@0E81 003E7406 +@0E82 D9014F17 +@0E83 B00B883A +@0E84 D9800C04 +@0E85 D9C15115 +@0E86 0002DBC0 +@0E87 D9C15117 +@0E88 103EB41E +@0E89 DD401904 +@0E8A 003D6D06 +@0E8B D9014F17 +@0E8C B00B883A +@0E8D D9800C04 +@0E8E D9C15115 +@0E8F 0002DBC0 +@0E90 D9C15117 +@0E91 103EAB1E +@0E92 DC800E17 +@0E93 DC400D17 +@0E94 DD401904 +@0E95 003E3406 +@0E96 D9014F17 +@0E97 B00B883A +@0E98 D9800C04 +@0E99 D9C15115 +@0E9A 0002DBC0 +@0E9B D9C15117 +@0E9C 103EA01E +@0E9D DC800E17 +@0E9E DC400D17 +@0E9F DD401904 +@0EA0 003E1C06 +@0EA1 D9014F17 +@0EA2 B00B883A +@0EA3 D9800C04 +@0EA4 D9C15115 +@0EA5 0002DBC0 +@0EA6 D9C15117 +@0EA7 103E951E +@0EA8 DC800E17 +@0EA9 DC400D17 +@0EAA DD401904 +@0EAB 003E0406 +@0EAC D9000517 +@0EAD 0102580E +@0EAE D9814717 +@0EAF 21807A16 +@0EB0 D8814117 +@0EB1 91A5883A +@0EB2 8C400044 +@0EB3 A8800015 +@0EB4 008001C4 +@0EB5 A9800115 +@0EB6 DC800E15 +@0EB7 DC400D15 +@0EB8 1442FC16 +@0EB9 A8C00204 +@0EBA D9414717 +@0EBB 2161C83A +@0EBC 043F9D0E +@0EBD 00800404 +@0EBE 1402190E +@0EBF DC400D17 +@0EC0 1027883A +@0EC1 07000074 +@0EC2 E700F984 +@0EC3 050001C4 +@0EC4 00000306 +@0EC5 18C00204 +@0EC6 843FFC04 +@0EC7 9C02130E +@0EC8 94800404 +@0EC9 8C400044 +@0ECA 1F000015 +@0ECB 1CC00115 +@0ECC DC800E15 +@0ECD DC400D15 +@0ECE A47FF60E +@0ECF D9014F17 +@0ED0 B00B883A +@0ED1 D9800C04 +@0ED2 0002DBC0 +@0ED3 103E691E +@0ED4 DC800E17 +@0ED5 DC400D17 +@0ED6 D8C01904 +@0ED7 003FEE06 +@0ED8 D8814717 +@0ED9 143FFFC4 +@0EDA 043E970E +@0EDB 00800404 +@0EDC 1400180E +@0EDD 1029883A +@0EDE 07000074 +@0EDF E700F984 +@0EE0 054001C4 +@0EE1 00000306 +@0EE2 9CC00204 +@0EE3 843FFC04 +@0EE4 A400120E +@0EE5 94800404 +@0EE6 8C400044 +@0EE7 9F000015 +@0EE8 9D000115 +@0EE9 DC800E15 +@0EEA DC400D15 +@0EEB AC7FF60E +@0EEC D9014F17 +@0EED B00B883A +@0EEE D9800C04 +@0EEF 0002DBC0 +@0EF0 103E4C1E +@0EF1 DC800E17 +@0EF2 DC400D17 +@0EF3 DCC01904 +@0EF4 003FEE06 +@0EF5 07000074 +@0EF6 E700F984 +@0EF7 9425883A +@0EF8 8C400044 +@0EF9 008001C4 +@0EFA 9F000015 +@0EFB 9C000115 +@0EFC DC800E15 +@0EFD DC400D15 +@0EFE 147E720E +@0EFF D9014F17 +@0F00 B00B883A +@0F01 D9800C04 +@0F02 0002DBC0 +@0F03 103E391E +@0F04 DC800E17 +@0F05 DC400D17 +@0F06 DCC01904 +@0F07 003E6A06 +@0F08 D9014F17 +@0F09 B00B883A +@0F0A D9800C04 +@0F0B D9C15115 +@0F0C 0002DBC0 +@0F0D D9C15117 +@0F0E 103E2E1E +@0F0F DC800E17 +@0F10 DC400D17 +@0F11 DD401904 +@0F12 003DBA06 +@0F13 D9014F17 +@0F14 B00B883A +@0F15 D9800C04 +@0F16 0002DBC0 +@0F17 103E251E +@0F18 DC800E17 +@0F19 DC400D17 +@0F1A DCC01904 +@0F1B 003E4206 +@0F1C D9014F17 +@0F1D B00B883A +@0F1E D9800C04 +@0F1F 0002DBC0 +@0F20 103E1C1E +@0F21 DC800E17 +@0F22 DC400D17 +@0F23 D8C01904 +@0F24 003E2E06 +@0F25 D9414C17 +@0F26 2880004C +@0F27 1005003A +@0F28 103DDA1E +@0F29 003E9F06 +@0F2A D8C14117 +@0F2B 9125883A +@0F2C 8C400044 +@0F2D 008001C4 +@0F2E A8C00015 +@0F2F A9000115 +@0F30 DC800E15 +@0F31 DC400D15 +@0F32 14426C16 +@0F33 A8C00204 +@0F34 D9414917 +@0F35 00800044 +@0F36 94800044 +@0F37 8C400044 +@0F38 18800115 +@0F39 008001C4 +@0F3A 19400015 +@0F3B DC800E15 +@0F3C DC400D15 +@0F3D 2021883A +@0F3E 14425616 +@0F3F 19400204 +@0F40 D9814717 +@0F41 8C400044 +@0F42 DC400D15 +@0F43 3107C83A +@0F44 D9014117 +@0F45 90E5883A +@0F46 28C00115 +@0F47 8105883A +@0F48 28800015 +@0F49 008001C4 +@0F4A DC800E15 +@0F4B 147F1D16 +@0F4C 28C00204 +@0F4D 003DB506 +@0F4E 3C000017 +@0F4F 3C400117 +@0F50 39800204 +@0F51 01000044 +@0F52 D9814015 +@0F53 D8000405 +@0F54 003EBE06 +@0F55 3C000017 +@0F56 3C400117 +@0F57 38800204 +@0F58 D8814015 +@0F59 003EB706 +@0F5A 3C000017 +@0F5B 3C400117 +@0F5C 39000204 +@0F5D D9014015 +@0F5E 0009883A +@0F5F D8000405 +@0F60 003EB206 +@0F61 38C00017 +@0F62 39C00104 +@0F63 D8C14A15 +@0F64 1800D70E +@0F65 00C7C83A +@0F66 D8C14A15 +@0F67 D9014C17 +@0F68 B8C00007 +@0F69 21000114 +@0F6A D9014C15 +@0F6B 003C9806 +@0F6C D9814C17 +@0F6D 3080080C +@0F6E 1001F626 +@0F6F D9014B17 +@0F70 38800017 +@0F71 39C00104 +@0F72 D9C14015 +@0F73 2007D7FA +@0F74 D9C14017 +@0F75 11000015 +@0F76 10C00115 +@0F77 003C6906 +@0F78 B8C00007 +@0F79 00801B04 +@0F7A 18825526 +@0F7B D9414C17 +@0F7C 29400414 +@0F7D D9414C15 +@0F7E 003C8506 +@0F7F D9814C17 +@0F80 B8C00007 +@0F81 31800814 +@0F82 D9814C15 +@0F83 003C8006 +@0F84 D8814C17 +@0F85 3C000017 +@0F86 00C01E04 +@0F87 10800094 +@0F88 D8814C15 +@0F89 39C00104 +@0F8A 01400074 +@0F8B 2940E204 +@0F8C 00800C04 +@0F8D 0023883A +@0F8E 01000084 +@0F8F D9C14015 +@0F90 D8C14D15 +@0F91 D9414415 +@0F92 D8800445 +@0F93 D8C00485 +@0F94 D8000405 +@0F95 003E7D06 +@0F96 D8814C17 +@0F97 B8C00007 +@0F98 10801014 +@0F99 D8814C15 +@0F9A 003C6906 +@0F9B D9414C17 +@0F9C 2880020C +@0F9D 1001E526 +@0F9E 39800017 +@0F9F 38800204 +@0FA0 D8814015 +@0FA1 D9814215 +@0FA2 39C00117 +@0FA3 D9C14315 +@0FA4 D9014217 +@0FA5 D9414317 +@0FA6 00098C40 +@0FA7 10021D26 +@0FA8 D9014217 +@0FA9 D9414317 +@0FAA 000D883A +@0FAB 000F883A +@0FAC 000BA600 +@0FAD 1002D016 +@0FAE D9414D17 +@0FAF 008011C4 +@0FB0 11421016 +@0FB1 01800074 +@0FB2 3180E704 +@0FB3 D9814115 +@0FB4 D9014C17 +@0FB5 00C000C4 +@0FB6 00BFDFC4 +@0FB7 2088703A +@0FB8 180F883A +@0FB9 D8C14515 +@0FBA D9014C15 +@0FBB D8014615 +@0FBC 003E6A06 +@0FBD 38800017 +@0FBE 00C00044 +@0FBF 39C00104 +@0FC0 D9C14015 +@0FC1 D9000F04 +@0FC2 180F883A +@0FC3 D8C14515 +@0FC4 D9014115 +@0FC5 D8800F05 +@0FC6 D8000405 +@0FC7 003CAC06 +@0FC8 01400074 +@0FC9 2940ED04 +@0FCA D9414415 +@0FCB D9814C17 +@0FCC 3080080C +@0FCD 1000FF26 +@0FCE 3C000017 +@0FCF 3C400117 +@0FD0 38800204 +@0FD1 D8814015 +@0FD2 D9414C17 +@0FD3 2880004C +@0FD4 1005003A +@0FD5 1000B91E +@0FD6 8444B03A +@0FD7 1000B726 +@0FD8 D9814D17 +@0FD9 29400094 +@0FDA 00800C04 +@0FDB 01000084 +@0FDC D9414C15 +@0FDD D8800445 +@0FDE D9800485 +@0FDF D8000405 +@0FE0 003E3206 +@0FE1 01800074 +@0FE2 3180E204 +@0FE3 D9814415 +@0FE4 003FE606 +@0FE5 00800AC4 +@0FE6 D8800405 +@0FE7 B8C00007 +@0FE8 003C1B06 +@0FE9 D8814C17 +@0FEA B8C00007 +@0FEB 10800054 +@0FEC D8814C15 +@0FED 003C1606 +@0FEE D8800407 +@0FEF 10004C1E +@0FF0 00800804 +@0FF1 D8800405 +@0FF2 B8C00007 +@0FF3 003C1006 +@0FF4 D9814C17 +@0FF5 B8C00007 +@0FF6 31800214 +@0FF7 D9814C15 +@0FF8 003C0B06 +@0FF9 0009883A +@0FFA 04000244 +@0FFB 01400284 +@0FFC D9C15115 +@0FFD 0002C3C0 +@0FFE B9000007 +@0FFF D8C14D17 +@1000 BDC00044 +@1001 D9014D15 +@1002 D9414D17 +@1003 1885883A +@1004 113FF404 +@1005 28BFF404 +@1006 D9C15117 +@1007 80BFF32E +@1008 D9014A15 +@1009 003BFC06 +@100A D8814C17 +@100B B8C00007 +@100C 10802014 +@100D D8814C15 +@100E 003BF506 +@100F B8C00007 +@1010 00800A84 +@1011 BDC00044 +@1012 18831826 +@1013 D8C14D15 +@1014 18BFF404 +@1015 00C00244 +@1016 18827B36 +@1017 1821883A +@1018 0009883A +@1019 01400284 +@101A D9C15115 +@101B 0002C3C0 +@101C D9414D17 +@101D B9800007 +@101E D9C15117 +@101F 1145883A +@1020 113FF404 +@1021 30BFF404 +@1022 D9814D15 +@1023 BDC00044 +@1024 80BFF42E +@1025 2027883A +@1026 203BDF0E +@1027 04FFFFC4 +@1028 003BDD06 +@1029 D8000405 +@102A 39800017 +@102B 39C00104 +@102C D9C14015 +@102D D9814115 +@102E 3001C926 +@102F 98000E16 +@1030 D9014117 +@1031 000B883A +@1032 980D883A +@1033 0007F480 +@1034 10025926 +@1035 D8C14117 +@1036 10CFC83A +@1037 99C19E16 +@1038 D9C14515 +@1039 38000916 +@103A D8014615 +@103B 003DEB06 +@103C B8C00007 +@103D 003BC606 +@103E D9014117 +@103F 0002D480 +@1040 D8814515 +@1041 100F883A +@1042 103FF70E +@1043 D8014515 +@1044 D8014615 +@1045 003DE106 +@1046 20C03FCC +@1047 00800044 +@1048 18802D26 +@1049 18800E36 +@104A 00800084 +@104B 1880FA26 +@104C 01000074 +@104D 2100F204 +@104E 0002D480 +@104F 100F883A +@1050 DCC14515 +@1051 9880010E +@1052 D8814515 +@1053 00800074 +@1054 1080F204 +@1055 DCC14615 +@1056 D8814115 +@1057 003DCF06 +@1058 D9401904 +@1059 DD000F04 +@105A D9414115 +@105B 880A977A +@105C D9814117 +@105D 8004D0FA +@105E 8806D0FA +@105F 810001CC +@1060 2884B03A +@1061 31BFFFC4 +@1062 21000C04 +@1063 D9814115 +@1064 10CAB03A +@1065 31000005 +@1066 1021883A +@1067 1823883A +@1068 283FF21E +@1069 D8C14C17 +@106A 1880004C +@106B 1005003A +@106C 103DB31E +@106D 20803FCC +@106E 1080201C +@106F 10BFE004 +@1070 00C00C04 +@1071 10FDAE26 +@1072 31BFFFC4 +@1073 D9814115 +@1074 30C00005 +@1075 003DAA06 +@1076 88800068 +@1077 10002C1E +@1078 8800021E +@1079 00800244 +@107A 14002936 +@107B D90018C4 +@107C DD000F04 +@107D D9014115 +@107E D9014117 +@107F 80800C04 +@1080 20800005 +@1081 003D9E06 +@1082 DC400D17 +@1083 07000074 +@1084 E700F984 +@1085 9425883A +@1086 8C400044 +@1087 008001C4 +@1088 1F000015 +@1089 1C000115 +@108A DC800E15 +@108B DC400D15 +@108C 147DDC16 +@108D 18C00204 +@108E 003C7406 +@108F 01000084 +@1090 D8000405 +@1091 003D8106 +@1092 D9814C17 +@1093 30C4703A +@1094 1005003A +@1095 103CB326 +@1096 D9014117 +@1097 94800044 +@1098 8C400044 +@1099 008001C4 +@109A A9000015 +@109B A8C00115 +@109C DC800E15 +@109D DC400D15 +@109E 147E6016 +@109F ACC00204 +@10A0 003CD106 +@10A1 07000074 +@10A2 E700F984 +@10A3 003C4906 +@10A4 DD000F04 +@10A5 DC801904 +@10A6 8009883A +@10A7 880B883A +@10A8 01800284 +@10A9 000F883A +@10AA 000A6C00 +@10AB 12000C04 +@10AC 94BFFFC4 +@10AD 8009883A +@10AE 880B883A +@10AF 01800284 +@10B0 000F883A +@10B1 92000005 +@10B2 000A0540 +@10B3 1009883A +@10B4 1021883A +@10B5 18800068 +@10B6 1823883A +@10B7 103FEE1E +@10B8 1800021E +@10B9 00800244 +@10BA 113FEB36 +@10BB 94BFFFC4 +@10BC DC814115 +@10BD 003FC006 +@10BE D9014C17 +@10BF 2080004C +@10C0 10009A1E +@10C1 D9401904 +@10C2 DD000F04 +@10C3 D9414115 +@10C4 003D5B06 +@10C5 D9014F17 +@10C6 B00B883A +@10C7 D9800C04 +@10C8 0002DBC0 +@10C9 103C731E +@10CA DC800E17 +@10CB D8C01904 +@10CC 003CF906 +@10CD D8C14C17 +@10CE 1880040C +@10CF 1000711E +@10D0 D9014C17 +@10D1 2080100C +@10D2 10006E26 +@10D3 3C00000B +@10D4 0023883A +@10D5 39C00104 +@10D6 D9C14015 +@10D7 003EFA06 +@10D8 DC400D17 +@10D9 07000074 +@10DA E700F984 +@10DB 9425883A +@10DC 8C400044 +@10DD 008001C4 +@10DE 1F000015 +@10DF 1C000115 +@10E0 DC800E15 +@10E1 DC400D15 +@10E2 147D7016 +@10E3 18C00204 +@10E4 003D7506 +@10E5 DC800E17 +@10E6 DC400D17 +@10E7 07000074 +@10E8 E700FD84 +@10E9 003BBA06 +@10EA D9014F17 +@10EB B00B883A +@10EC D9800C04 +@10ED 0002DBC0 +@10EE 103C4E1E +@10EF DC800E17 +@10F0 D8C01904 +@10F1 003CE306 +@10F2 3C000017 +@10F3 0009883A +@10F4 39C00104 +@10F5 0023883A +@10F6 D9C14015 +@10F7 D8000405 +@10F8 003D1A06 +@10F9 38800017 +@10FA 39C00104 +@10FB D9C14015 +@10FC 1023D7FA +@10FD 1021883A +@10FE 003D1206 +@10FF 3C000017 +@1100 01000044 +@1101 39C00104 +@1102 0023883A +@1103 D9C14015 +@1104 D8000405 +@1105 003D0D06 +@1106 00800074 +@1107 1080F904 +@1108 94800044 +@1109 8C400044 +@110A A8800015 +@110B 00C00044 +@110C 008001C4 +@110D A8C00115 +@110E DC800E15 +@110F DC400D15 +@1110 1440CA16 +@1111 A8C00204 +@1112 2000061E +@1113 D9414717 +@1114 2800041E +@1115 D9814C17 +@1116 3080004C +@1117 1005003A +@1118 103BEA1E +@1119 00800044 +@111A DC400D17 +@111B 18800115 +@111C D8814917 +@111D 94800044 +@111E 8C400044 +@111F 18800015 +@1120 008001C4 +@1121 DC800E15 +@1122 DC400D15 +@1123 1440CA16 +@1124 18C00204 +@1125 0121C83A +@1126 0400500E +@1127 00800404 +@1128 1400800E +@1129 1027883A +@112A 07000074 +@112B E700F984 +@112C 050001C4 +@112D 00000306 +@112E 18C00204 +@112F 843FFC04 +@1130 9C007A0E +@1131 94800404 +@1132 8C400044 +@1133 1F000015 +@1134 1CC00115 +@1135 DC800E15 +@1136 DC400D15 +@1137 A47FF60E +@1138 D9014F17 +@1139 B00B883A +@113A D9800C04 +@113B 0002DBC0 +@113C 103C001E +@113D DC800E17 +@113E DC400D17 +@113F D8C01904 +@1140 003FEE06 +@1141 3C000017 +@1142 0023883A +@1143 39C00104 +@1144 D9C14015 +@1145 003E8C06 +@1146 D9401904 +@1147 DD000F04 +@1148 D9414115 +@1149 D9814417 +@114A 880A973A +@114B 8004D13A +@114C 810003CC +@114D 3109883A +@114E 2884B03A +@114F 21400003 +@1150 D9014117 +@1151 8806D13A +@1152 1021883A +@1153 213FFFC4 +@1154 D9014115 +@1155 D9814117 +@1156 10C8B03A +@1157 1823883A +@1158 31400005 +@1159 203FEF1E +@115A 003CC506 +@115B 00800C04 +@115C D98018C4 +@115D DD000F04 +@115E D88018C5 +@115F D9814115 +@1160 003CBF06 +@1161 DC400D17 +@1162 07000074 +@1163 E700FD84 +@1164 003BC106 +@1165 D9414C17 +@1166 2880040C +@1167 10007C26 +@1168 38800017 +@1169 39C00104 +@116A D9C14015 +@116B D9814B17 +@116C D9C14017 +@116D 11800015 +@116E 003A7206 +@116F D9014F17 +@1170 B00B883A +@1171 D9800C04 +@1172 0002DBC0 +@1173 103BC91E +@1174 DC800E17 +@1175 DC400D17 +@1176 D8C01904 +@1177 D9014717 +@1178 D9414117 +@1179 8C400044 +@117A 9125883A +@117B 008001C4 +@117C 19400015 +@117D 19000115 +@117E DC800E15 +@117F DC400D15 +@1180 147CE816 +@1181 18C00204 +@1182 003B8006 +@1183 38C00017 +@1184 39000204 +@1185 D9014015 +@1186 D8C14215 +@1187 39C00117 +@1188 D9C14315 +@1189 003E1A06 +@118A 0005883A +@118B 1409C83A +@118C 1105803A +@118D 044BC83A +@118E 2885C83A +@118F 2021883A +@1190 1023883A +@1191 01000044 +@1192 00800B44 +@1193 D8800405 +@1194 003C7E06 +@1195 D9014F17 +@1196 B00B883A +@1197 D9800C04 +@1198 0002DBC0 +@1199 103BA31E +@119A DC800E17 +@119B DC400D17 +@119C D9000517 +@119D D9401904 +@119E 003DA106 +@119F D9014F17 +@11A0 B00B883A +@11A1 D9800C04 +@11A2 0002DBC0 +@11A3 103B991E +@11A4 DC800E17 +@11A5 DC400D17 +@11A6 D9000517 +@11A7 D8C01904 +@11A8 003D8B06 +@11A9 07000074 +@11AA E700F984 +@11AB 9425883A +@11AC 8C400044 +@11AD 008001C4 +@11AE 1F000015 +@11AF 1C000115 +@11B0 DC800E15 +@11B1 DC400D15 +@11B2 147FBC16 +@11B3 18C00204 +@11B4 003FC206 +@11B5 D9014F17 +@11B6 B00B883A +@11B7 D9800C04 +@11B8 0002DBC0 +@11B9 103B831E +@11BA DC800E17 +@11BB D9000517 +@11BC D8C01904 +@11BD 003CFC06 +@11BE 07000074 +@11BF E700F984 +@11C0 003BDE06 +@11C1 00800074 +@11C2 1080E804 +@11C3 D8814115 +@11C4 003DEF06 +@11C5 D9014217 +@11C6 D9414317 +@11C7 00099040 +@11C8 10003926 +@11C9 D9414D17 +@11CA 008011C4 +@11CB 1140CE16 +@11CC 01800074 +@11CD 3180E904 +@11CE D9814115 +@11CF 003DE406 +@11D0 D9014C17 +@11D1 BDC00044 +@11D2 B8C00007 +@11D3 21000814 +@11D4 D9014C15 +@11D5 003A2E06 +@11D6 DCC14515 +@11D7 98011016 +@11D8 980F883A +@11D9 D8014615 +@11DA 003C4C06 +@11DB D9014F17 +@11DC B00B883A +@11DD D9800C04 +@11DE 0002DBC0 +@11DF 103B5D1E +@11E0 DC800E17 +@11E1 D9000517 +@11E2 D8C01904 +@11E3 003F2E06 +@11E4 D8C14C17 +@11E5 1880100C +@11E6 1000A026 +@11E7 38800017 +@11E8 39C00104 +@11E9 D9C14015 +@11EA D9014B17 +@11EB D9C14017 +@11EC 1100000D +@11ED 0039F306 +@11EE D9014F17 +@11EF B00B883A +@11F0 D9800C04 +@11F1 0002DBC0 +@11F2 103B4A1E +@11F3 DC800E17 +@11F4 DC400D17 +@11F5 D9000517 +@11F6 D8C01904 +@11F7 003F2D06 +@11F8 00800184 +@11F9 14C09A36 +@11FA DCC14515 +@11FB 9800010E +@11FC D8014515 +@11FD 00800074 +@11FE 1080EB04 +@11FF 980F883A +@1200 D8814115 +@1201 003A7206 +@1202 00BFFFC4 +@1203 9880E226 +@1204 D9414D17 +@1205 008019C4 +@1206 2880DC26 +@1207 008011C4 +@1208 2880DA26 +@1209 D9414C17 +@120A D9014317 +@120B D9814217 +@120C 29404014 +@120D D9414C15 +@120E 2000CC16 +@120F 3021883A +@1210 2023883A +@1211 0039883A +@1212 D9414D17 +@1213 00801984 +@1214 2880B726 +@1215 00801184 +@1216 2880B526 +@1217 00801944 +@1218 2880C826 +@1219 00801144 +@121A 2880C626 +@121B 9829883A +@121C D9014F17 +@121D D8800504 +@121E 880D883A +@121F D8800115 +@1220 D8C00604 +@1221 D8800704 +@1222 800B883A +@1223 01C00084 +@1224 D8C00215 +@1225 D8800315 +@1226 DD000015 +@1227 000507C0 +@1228 D9814D17 +@1229 D8814115 +@122A 008019C4 +@122B 30809526 +@122C D8C14D17 +@122D 008011C4 +@122E 18809226 +@122F D9414117 +@1230 D9814D17 +@1231 00801984 +@1232 2D25883A +@1233 30808626 +@1234 00801184 +@1235 30808426 +@1236 000D883A +@1237 000F883A +@1238 880B883A +@1239 8009883A +@123A 000B8400 +@123B 1000751E +@123C 9005883A +@123D DC800715 +@123E D9014117 +@123F D9414D17 +@1240 00C019C4 +@1241 1125C83A +@1242 28C06826 +@1243 008011C4 +@1244 28806626 +@1245 D9000517 +@1246 D8C14D17 +@1247 00801944 +@1248 10C05516 +@1249 213FFFC4 +@124A D9000515 +@124B D8C00805 +@124C 2021883A +@124D 2000C116 +@124E 00800AC4 +@124F D8800845 +@1250 00800244 +@1251 1400AF0E +@1252 1027883A +@1253 DC400B84 +@1254 8009883A +@1255 01400284 +@1256 0002BCC0 +@1257 10800C04 +@1258 8C7FFFC4 +@1259 8009883A +@125A 01400284 +@125B 88800005 +@125C 0002B6C0 +@125D 1021883A +@125E 98BFF516 +@125F 10C00C04 +@1260 D88009C4 +@1261 108001C4 +@1262 897FFFC4 +@1263 88FFFFC5 +@1264 2880A72E +@1265 1009883A +@1266 D9800804 +@1267 D8C00884 +@1268 28800003 +@1269 29400044 +@126A 18800005 +@126B 18C00044 +@126C 293FFB36 +@126D 1987C83A +@126E 00800044 +@126F D8C14815 +@1270 90CF883A +@1271 1480960E +@1272 39C00044 +@1273 D9C14515 +@1274 38003416 +@1275 E0803FCC +@1276 1080201C +@1277 10BFE004 +@1278 10004E26 +@1279 00800B44 +@127A DC814715 +@127B D8014615 +@127C D8800405 +@127D 003BAB06 +@127E 00800B44 +@127F D8800405 +@1280 003D2D06 +@1281 D9014F17 +@1282 B00B883A +@1283 D9800C04 +@1284 0002DBC0 +@1285 103AB71E +@1286 003AB506 +@1287 38800017 +@1288 39C00104 +@1289 D9C14015 +@128A D9414B17 +@128B D9C14017 +@128C 11400015 +@128D 00395306 +@128E 980F883A +@128F DCC14515 +@1290 D8014615 +@1291 003B9506 +@1292 0027883A +@1293 00397206 +@1294 00C00074 +@1295 18C0EB04 +@1296 100F883A +@1297 D8814515 +@1298 D8C14115 +@1299 0039DA06 +@129A 00800074 +@129B 1080EA04 +@129C D8814115 +@129D 003D1606 +@129E D9414D17 +@129F 00801984 +@12A0 28804926 +@12A1 200F883A +@12A2 24805716 +@12A3 D9414C17 +@12A4 2880004C +@12A5 10000126 +@12A6 21C00044 +@12A7 D9C14515 +@12A8 383FCC0E +@12A9 D8014515 +@12AA 003FCA06 +@12AB D9000517 +@12AC 00BFFF04 +@12AD 1100480E +@12AE 99004716 +@12AF D8C14D15 +@12B0 003FF006 +@12B1 D8800717 +@12B2 14BF8B2E +@12B3 9007883A +@12B4 01000C04 +@12B5 11000005 +@12B6 10800044 +@12B7 D8800715 +@12B8 18BFFC1E +@12B9 003F8406 +@12BA D8814117 +@12BB 10C00007 +@12BC 00800C04 +@12BD 18805B26 +@12BE D9000517 +@12BF 9125883A +@12C0 003F7506 +@12C1 D9014C17 +@12C2 2080004C +@12C3 1005003A +@12C4 103F6A26 +@12C5 D8800717 +@12C6 003F7706 +@12C7 D9C14515 +@12C8 38004D16 +@12C9 DC814715 +@12CA D8014615 +@12CB 003B5B06 +@12CC D9014F17 +@12CD D8800504 +@12CE D8800115 +@12CF D8C00604 +@12D0 D8800704 +@12D1 800B883A +@12D2 880D883A +@12D3 01C000C4 +@12D4 D8C00215 +@12D5 D8800315 +@12D6 DCC00015 +@12D7 9829883A +@12D8 000507C0 +@12D9 D8814115 +@12DA 003F5106 +@12DB D8C14217 +@12DC D9014317 +@12DD 07000B44 +@12DE 1821883A +@12DF 2460003C +@12E0 003F3106 +@12E1 9D000044 +@12E2 003F3906 +@12E3 983F251E +@12E4 04C00044 +@12E5 003F2306 +@12E6 04C00184 +@12E7 003F2106 +@12E8 D8014515 +@12E9 003EEE06 +@12EA 200F883A +@12EB 0100370E +@12EC 9800031E +@12ED D9814C17 +@12EE 3080004C +@12EF 103FB726 +@12F0 20800044 +@12F1 98A7883A +@12F2 DCC14515 +@12F3 980F883A +@12F4 983F800E +@12F5 003FB306 +@12F6 D9814D17 +@12F7 31BFFF84 +@12F8 D9814D15 +@12F9 003F4C06 +@12FA 0100180E +@12FB 00800044 +@12FC 1485883A +@12FD D8814515 +@12FE 100F883A +@12FF 103F750E +@1300 003FA806 +@1301 80C00C04 +@1302 00800C04 +@1303 D8C008C5 +@1304 D9800804 +@1305 D8C00904 +@1306 D8800885 +@1307 003F6506 +@1308 D9014C17 +@1309 2084703A +@130A 103F9C26 +@130B 003F6606 +@130C D9800804 +@130D D8C00884 +@130E 003F5E06 +@130F 00800B44 +@1310 0121C83A +@1311 D8800845 +@1312 003F3D06 +@1313 00800084 +@1314 1105C83A +@1315 003FE606 +@1316 D8014515 +@1317 DC814715 +@1318 003FB106 +@1319 000D883A +@131A 000F883A +@131B 8009883A +@131C 880B883A +@131D 000B8C80 +@131E 103F9F26 +@131F 00800044 +@1320 1509C83A +@1321 D9000515 +@1322 003F9B06 +@1323 98000D1E +@1324 D8C14C17 +@1325 1880004C +@1326 10000A1E +@1327 01000044 +@1328 200F883A +@1329 D9014515 +@132A 003F4A06 +@132B 3CC00017 +@132C 39C00104 +@132D 983D0E0E +@132E B8C00007 +@132F 04FFFFC4 +@1330 0038D306 +@1331 9CC00084 +@1332 DCC14515 +@1333 980F883A +@1334 983F400E +@1335 003F7306 +@1336 00800074 +@1337 10888604 +@1338 2013883A +@1339 11000017 +@133A 2805883A +@133B 300F883A +@133C 480B883A +@133D 100D883A +@133E 0002E141 +@133F 00800074 +@1340 10888604 +@1341 10C00017 +@1342 DEFFFD04 +@1343 DC400115 +@1344 DC000015 +@1345 DFC00215 +@1346 2023883A +@1347 2821883A +@1348 18000226 +@1349 18800E17 +@134A 10001F26 +@134B 8100030B +@134C 2080020C +@134D 10002826 +@134E 81400417 +@134F 28001D26 +@1350 2080004C +@1351 1005003A +@1352 10000B26 +@1353 2080008C +@1354 10001226 +@1355 0005883A +@1356 80800215 +@1357 28000B26 +@1358 0005883A +@1359 DFC00217 +@135A DC400117 +@135B DC000017 +@135C DEC00304 +@135D F800283A +@135E 80800517 +@135F 80000215 +@1360 0085C83A +@1361 80800615 +@1362 283FF51E +@1363 2080200C +@1364 103FF326 +@1365 00BFFFC4 +@1366 003FF206 +@1367 80800517 +@1368 80800215 +@1369 003FED06 +@136A 1809883A +@136B 00068C80 +@136C 003FDE06 +@136D 20C0A00C +@136E 00808004 +@136F 18BFE026 +@1370 8809883A +@1371 800B883A +@1372 00076740 +@1373 8100030B +@1374 81400417 +@1375 003FDA06 +@1376 2080040C +@1377 103FED26 +@1378 2080010C +@1379 10001226 +@137A 81400C17 +@137B 28000526 +@137C 80801004 +@137D 28800226 +@137E 8809883A +@137F 0006C800 +@1380 80000C15 +@1381 8080030B +@1382 81400417 +@1383 80000115 +@1384 10BFF6CC +@1385 8080030D +@1386 81400015 +@1387 8080030B +@1388 10800214 +@1389 113FFFCC +@138A 8080030D +@138B 003FC306 +@138C 81400417 +@138D 003FF906 +@138E 28C00417 +@138F 20800417 +@1390 DEFFF104 +@1391 DFC00E15 +@1392 DF000D15 +@1393 DDC00C15 +@1394 DD800B15 +@1395 DD400A15 +@1396 DD000915 +@1397 DCC00815 +@1398 DC800715 +@1399 DC400615 +@139A DC000515 +@139B D9000315 +@139C D9400415 +@139D 10C07F16 +@139E 1D3FFFC4 +@139F D8C00417 +@13A0 D9000317 +@13A1 A505883A +@13A2 1085883A +@13A3 1CC00504 +@13A4 25C00504 +@13A5 98AD883A +@13A6 15C7883A +@13A7 B1400017 +@13A8 19000017 +@13A9 D8C00015 +@13AA 29400044 +@13AB D9000215 +@13AC 0002C2C0 +@13AD 1039883A +@13AE 10003D1E +@13AF D9400417 +@13B0 D9000317 +@13B1 00083A00 +@13B2 10002C16 +@13B3 E7000044 +@13B4 B80F883A +@13B5 0011883A +@13B6 0009883A +@13B7 99400017 +@13B8 38C00017 +@13B9 9CC00104 +@13BA 28BFFFCC +@13BB 2085883A +@13BC 11BFFFCC +@13BD 193FFFCC +@13BE 1004D43A +@13BF 280AD43A +@13C0 2189C83A +@13C1 2209883A +@13C2 1806D43A +@13C3 288B883A +@13C4 200DD43A +@13C5 28BFFFCC +@13C6 1887C83A +@13C7 1987883A +@13C8 3900000D +@13C9 38C0008D +@13CA 2808D43A +@13CB 39C00104 +@13CC 1811D43A +@13CD B4FFE92E +@13CE A505883A +@13CF 1085883A +@13D0 B885883A +@13D1 10C00017 +@13D2 18000C1E +@13D3 113FFF04 +@13D4 B900082E +@13D5 10BFFF17 +@13D6 10000326 +@13D7 00000506 +@13D8 20800017 +@13D9 1000031E +@13DA 213FFF04 +@13DB A53FFFC4 +@13DC B93FFB36 +@13DD D9000317 +@13DE 25000415 +@13DF E005883A +@13E0 DFC00E17 +@13E1 DF000D17 +@13E2 DDC00C17 +@13E3 DD800B17 +@13E4 DD400A17 +@13E5 DD000917 +@13E6 DCC00817 +@13E7 DC800717 +@13E8 DC400617 +@13E9 DC000517 +@13EA DEC00F04 +@13EB F800283A +@13EC B823883A +@13ED 9825883A +@13EE D8000115 +@13EF 002B883A +@13F0 94000017 +@13F1 E009883A +@13F2 94800104 +@13F3 817FFFCC +@13F4 0002C3C0 +@13F5 800AD43A +@13F6 E009883A +@13F7 A8A1883A +@13F8 0002C3C0 +@13F9 89000017 +@13FA 80FFFFCC +@13FB 8020D43A +@13FC 217FFFCC +@13FD 28CBC83A +@13FE D8C00117 +@13FF 2008D43A +@1400 1405883A +@1401 28CB883A +@1402 280DD43A +@1403 10FFFFCC +@1404 20C9C83A +@1405 2189883A +@1406 8900008D +@1407 2009D43A +@1408 8940000D +@1409 102AD43A +@140A 8C400104 +@140B D9000115 +@140C B4BFE32E +@140D D9000217 +@140E 203FA01E +@140F D8800017 +@1410 10FFFF04 +@1411 B8C0082E +@1412 10BFFF17 +@1413 10000326 +@1414 00000506 +@1415 18800017 +@1416 1000031E +@1417 18FFFF04 +@1418 A53FFFC4 +@1419 B8FFFB36 +@141A D8C00317 +@141B 1D000415 +@141C 003F9206 +@141D 0005883A +@141E 003FC106 +@141F 22001017 +@1420 DEFFDA04 +@1421 DD402115 +@1422 DD002015 +@1423 DC801E15 +@1424 DC401D15 +@1425 DFC02515 +@1426 DF002415 +@1427 DDC02315 +@1428 DD802215 +@1429 DCC01F15 +@142A DC001C15 +@142B D9001615 +@142C 3023883A +@142D 2829883A +@142E D9C01715 +@142F DC802817 +@1430 302B883A +@1431 40000A26 +@1432 20801117 +@1433 400B883A +@1434 40800115 +@1435 20C01117 +@1436 00800044 +@1437 10C4983A +@1438 40800215 +@1439 00082440 +@143A D8C01617 +@143B 18001015 +@143C 8800A316 +@143D 90000015 +@143E A8DFFC2C +@143F 009FFC34 +@1440 18809126 +@1441 000D883A +@1442 000F883A +@1443 A009883A +@1444 A80B883A +@1445 DD001215 +@1446 DD401315 +@1447 000B8C80 +@1448 1000171E +@1449 D9802717 +@144A 00800044 +@144B 30800015 +@144C D8802917 +@144D 10029B26 +@144E D9002917 +@144F 00800074 +@1450 1080F944 +@1451 10FFFFC4 +@1452 20800015 +@1453 1805883A +@1454 DFC02517 +@1455 DF002417 +@1456 DDC02317 +@1457 DD802217 +@1458 DD402117 +@1459 DD002017 +@145A DCC01F17 +@145B DC801E17 +@145C DC401D17 +@145D DC001C17 +@145E DEC02604 +@145F F800283A +@1460 D9001617 +@1461 D9401217 +@1462 D8800104 +@1463 A80D883A +@1464 D9C00204 +@1465 D8800015 +@1466 00088800 +@1467 D8800715 +@1468 A804D53A +@1469 1101FFCC +@146A 20008626 +@146B D8C01217 +@146C 00800434 +@146D 10BFFFC4 +@146E DDC00117 +@146F A884703A +@1470 1811883A +@1471 124FFC34 +@1472 25BF0044 +@1473 D8000815 +@1474 0005883A +@1475 00CFFE34 +@1476 480B883A +@1477 4009883A +@1478 180F883A +@1479 100D883A +@147A 000B1300 +@147B 0218DBF4 +@147C 4210D844 +@147D 024FF4F4 +@147E 4A61E9C4 +@147F 480F883A +@1480 400D883A +@1481 180B883A +@1482 1009883A +@1483 000B2240 +@1484 0222D874 +@1485 42322CC4 +@1486 024FF1F4 +@1487 4A628A04 +@1488 480F883A +@1489 400D883A +@148A 180B883A +@148B 1009883A +@148C 000B1B00 +@148D B009883A +@148E 1021883A +@148F 1823883A +@1490 000BAE80 +@1491 021427F4 +@1492 421E7EC4 +@1493 024FF4F4 +@1494 4A5104C4 +@1495 480F883A +@1496 400D883A +@1497 180B883A +@1498 1009883A +@1499 000B2240 +@149A 180F883A +@149B 880B883A +@149C 100D883A +@149D 8009883A +@149E 000B1B00 +@149F 1009883A +@14A0 180B883A +@14A1 1021883A +@14A2 1823883A +@14A3 000BBE00 +@14A4 000D883A +@14A5 000F883A +@14A6 8009883A +@14A7 880B883A +@14A8 D8800D15 +@14A9 000BA600 +@14AA 10031716 +@14AB D8C00D17 +@14AC 00800584 +@14AD 10C1482E +@14AE 01000044 +@14AF D9000C15 +@14B0 BD85C83A +@14B1 11BFFFC4 +@14B2 30030B16 +@14B3 D9800A15 +@14B4 D8001115 +@14B5 D8C00D17 +@14B6 1802FF16 +@14B7 D9000A17 +@14B8 D8C00915 +@14B9 D8001015 +@14BA 20C9883A +@14BB D9000A15 +@14BC D9001717 +@14BD 00800244 +@14BE 11004636 +@14BF 00800144 +@14C0 11020416 +@14C1 04400044 +@14C2 D8C01717 +@14C3 00800144 +@14C4 10C1ED36 +@14C5 18C5883A +@14C6 1085883A +@14C7 00C00034 +@14C8 18D4CC04 +@14C9 10C5883A +@14CA 11000017 +@14CB 2000683A +@14CC 0000541C +@14CD 0000541C +@14CE 00005E1C +@14CF 00005DF4 +@14D0 00005E38 +@14D1 00005E44 +@14D2 D9002717 +@14D3 0089C3C4 +@14D4 20800015 +@14D5 A0001026 +@14D6 00C00074 +@14D7 18C10504 +@14D8 D9802917 +@14D9 303F7926 +@14DA 188000C7 +@14DB 190000C4 +@14DC 1000101E +@14DD D8802917 +@14DE 11000015 +@14DF 003F7306 +@14E0 00A00034 +@14E1 10BFFFC4 +@14E2 00C00044 +@14E3 88AA703A +@14E4 90C00015 +@14E5 003F5806 +@14E6 00800434 +@14E7 10BFFFC4 +@14E8 A884703A +@14E9 103FEC1E +@14EA 00C00074 +@14EB 18C10204 +@14EC 003FEB06 +@14ED D8802917 +@14EE 19000204 +@14EF 11000015 +@14F0 003F6206 +@14F1 DDC00117 +@14F2 D8800217 +@14F3 01000804 +@14F4 B8C10C84 +@14F5 18A3883A +@14F6 2441B80E +@14F7 00C01004 +@14F8 1C47C83A +@14F9 88BFF804 +@14FA A8C6983A +@14FB A084D83A +@14FC 1888B03A +@14FD 000BCB80 +@14FE 1011883A +@14FF 00BF8434 +@1500 01000044 +@1501 10D3883A +@1502 8DBEF344 +@1503 D9000815 +@1504 003F6F06 +@1505 D8001715 +@1506 04400044 +@1507 00BFFFC4 +@1508 00C00044 +@1509 D8800E15 +@150A D8002615 +@150B D8800F15 +@150C D8C00B15 +@150D 1021883A +@150E D8801617 +@150F 10001115 +@1510 D8801617 +@1511 11401117 +@1512 1009883A +@1513 00087C40 +@1514 D8C01617 +@1515 D8800515 +@1516 18801015 +@1517 00800384 +@1518 14006836 +@1519 8805003A +@151A 1000661E +@151B D9000D17 +@151C 0102300E +@151D 208003CC +@151E 100490FA +@151F 2025D13A +@1520 00C00074 +@1521 18C11704 +@1522 10C5883A +@1523 90C0040C +@1524 14000017 +@1525 14400117 +@1526 18036A1E +@1527 05800084 +@1528 90001026 +@1529 04C00074 +@152A 9CC14904 +@152B 9080004C +@152C 1005003A +@152D 1000081E +@152E 99800017 +@152F 99C00117 +@1530 880B883A +@1531 8009883A +@1532 000B2240 +@1533 1021883A +@1534 B5800044 +@1535 1823883A +@1536 9025D07A +@1537 9CC00204 +@1538 903FF21E +@1539 A80B883A +@153A A009883A +@153B 880F883A +@153C 800D883A +@153D 000B5E80 +@153E 1029883A +@153F 182B883A +@1540 D8C00C17 +@1541 1805003A +@1542 1000081E +@1543 0005883A +@1544 00CFFC34 +@1545 180F883A +@1546 A009883A +@1547 A80B883A +@1548 100D883A +@1549 000BA600 +@154A 1003FE16 +@154B B009883A +@154C 000BAE80 +@154D 180B883A +@154E 1009883A +@154F A00D883A +@1550 A80F883A +@1551 000B2240 +@1552 0011883A +@1553 02500734 +@1554 1009883A +@1555 180B883A +@1556 480F883A +@1557 400D883A +@1558 000B1B00 +@1559 D9000F17 +@155A 102D883A +@155B 00BF3034 +@155C 18B9883A +@155D E02F883A +@155E 20028F1E +@155F 0005883A +@1560 00D00534 +@1561 A009883A +@1562 A80B883A +@1563 180F883A +@1564 100D883A +@1565 000B1300 +@1566 1009883A +@1567 E00F883A +@1568 180B883A +@1569 B00D883A +@156A 1025883A +@156B 1827883A +@156C 000B9500 +@156D 00834F16 +@156E E0E0003C +@156F 9009883A +@1570 980B883A +@1571 180F883A +@1572 B00D883A +@1573 000BA600 +@1574 1000080E +@1575 0027883A +@1576 0025883A +@1577 D8802617 +@1578 DF000517 +@1579 D8000615 +@157A 0084303A +@157B D8800D15 +@157C 00019B06 +@157D D9801217 +@157E D8801317 +@157F 3029883A +@1580 102B883A +@1581 D8C00217 +@1582 18008516 +@1583 D9000D17 +@1584 00800384 +@1585 11008216 +@1586 200490FA +@1587 D9802617 +@1588 00C00074 +@1589 18C11704 +@158A 10C5883A +@158B 14800017 +@158C 14C00117 +@158D 30031E16 +@158E D9000517 +@158F D8C00F17 +@1590 A823883A +@1591 A021883A +@1592 192B883A +@1593 2039883A +@1594 00000F06 +@1595 0005883A +@1596 00D00934 +@1597 5009883A +@1598 580B883A +@1599 180F883A +@159A 100D883A +@159B 000B2240 +@159C 180B883A +@159D 000D883A +@159E 000F883A +@159F 1009883A +@15A0 1021883A +@15A1 1823883A +@15A2 000B8C80 +@15A3 10004526 +@15A4 900D883A +@15A5 980F883A +@15A6 8009883A +@15A7 880B883A +@15A8 000B5E80 +@15A9 180B883A +@15AA 1009883A +@15AB 000BBE00 +@15AC 1009883A +@15AD 1029883A +@15AE 000BAE80 +@15AF 180F883A +@15B0 9009883A +@15B1 980B883A +@15B2 100D883A +@15B3 000B2240 +@15B4 180F883A +@15B5 880B883A +@15B6 8009883A +@15B7 100D883A +@15B8 000B1300 +@15B9 1015883A +@15BA A0800C04 +@15BB E0800005 +@15BC E7000044 +@15BD 1817883A +@15BE E57FD61E +@15BF 500D883A +@15C0 180F883A +@15C1 5009883A +@15C2 180B883A +@15C3 000B1B00 +@15C4 100D883A +@15C5 9009883A +@15C6 980B883A +@15C7 180F883A +@15C8 1021883A +@15C9 1823883A +@15CA 000BA600 +@15CB 10000816 +@15CC 980B883A +@15CD 800D883A +@15CE 880F883A +@15CF 9009883A +@15D0 000B8400 +@15D1 1000171E +@15D2 A080004C +@15D3 10001526 +@15D4 D8800D17 +@15D5 D8800415 +@15D6 E009883A +@15D7 213FFFC4 +@15D8 20C00007 +@15D9 00800E44 +@15DA 1880081E +@15DB D8800517 +@15DC 113FFA1E +@15DD D8C00417 +@15DE D9800517 +@15DF 00800C04 +@15E0 18C00044 +@15E1 D8C00415 +@15E2 30800005 +@15E3 20800003 +@15E4 D8C00417 +@15E5 27000044 +@15E6 10800044 +@15E7 D8C00D15 +@15E8 20800005 +@15E9 D9001617 +@15EA D9400717 +@15EB 00082440 +@15EC E0000005 +@15ED D9800D17 +@15EE D8C02717 +@15EF D9002917 +@15F0 30800044 +@15F1 18800015 +@15F2 20029C26 +@15F3 D8C00517 +@15F4 27000015 +@15F5 003E5D06 +@15F6 D9800D17 +@15F7 00C00074 +@15F8 18C11704 +@15F9 D9001217 +@15FA 300490FA +@15FB D9401317 +@15FC 10C5883A +@15FD 12000017 +@15FE 12400117 +@15FF 400D883A +@1600 480F883A +@1601 000BA600 +@1602 1000030E +@1603 D8800D17 +@1604 10BFFFC4 +@1605 D8800D15 +@1606 D8000C15 +@1607 003EA806 +@1608 D9000B17 +@1609 202CC03A +@160A B000C71E +@160B DC001117 +@160C DC801017 +@160D 0027883A +@160E 04000B0E +@160F D8C00A17 +@1610 00C0090E +@1611 8005883A +@1612 1C011316 +@1613 D9000A17 +@1614 D9801117 +@1615 80A1C83A +@1616 2089C83A +@1617 308DC83A +@1618 D9000A15 +@1619 D9801115 +@161A D8801017 +@161B 0080150E +@161C D8C00B17 +@161D 1805003A +@161E 1001C91E +@161F 04800E0E +@1620 D9001617 +@1621 980B883A +@1622 900D883A +@1623 00090900 +@1624 D9001617 +@1625 D9800717 +@1626 100B883A +@1627 1027883A +@1628 0008CD40 +@1629 D9001617 +@162A D9400717 +@162B 1023883A +@162C 00082440 +@162D DC400715 +@162E D9001017 +@162F 248DC83A +@1630 30010E1E +@1631 D9001617 +@1632 04400044 +@1633 880B883A +@1634 0008F280 +@1635 D9800917 +@1636 1025883A +@1637 0180040E +@1638 D9001617 +@1639 100B883A +@163A 00090900 +@163B 1025883A +@163C D8801717 +@163D 8880F30E +@163E 0023883A +@163F D9800917 +@1640 30019E1E +@1641 00C00044 +@1642 D9000A17 +@1643 20C5883A +@1644 10C007CC +@1645 1800841E +@1646 00800704 +@1647 D9000A17 +@1648 D9801117 +@1649 80A1883A +@164A 2089883A +@164B 308D883A +@164C D9000A15 +@164D D9801115 +@164E D8801117 +@164F 0080050E +@1650 D9400717 +@1651 D9001617 +@1652 100D883A +@1653 0008B880 +@1654 D8800715 +@1655 D8C00A17 +@1656 00C0050E +@1657 D9001617 +@1658 900B883A +@1659 180D883A +@165A 0008B880 +@165B 1025883A +@165C D9000C17 +@165D 2005003A +@165E 10016F26 +@165F D9000F17 +@1660 0102170E +@1661 D9800B17 +@1662 3005003A +@1663 1000881E +@1664 0400050E +@1665 D9001617 +@1666 980B883A +@1667 800D883A +@1668 0008B880 +@1669 1027883A +@166A 8804C03A +@166B 1002541E +@166C 980B883A +@166D DD800517 +@166E DCC00615 +@166F A700004C +@1670 2827883A +@1671 D9000717 +@1672 900B883A +@1673 0004E380 +@1674 D9000717 +@1675 D9400617 +@1676 1023883A +@1677 8DC00C04 +@1678 00083A00 +@1679 D9001617 +@167A 900B883A +@167B 980D883A +@167C 1029883A +@167D 00089FC0 +@167E 102B883A +@167F 10800317 +@1680 1001281E +@1681 D9000717 +@1682 A80B883A +@1683 00083A00 +@1684 D9001617 +@1685 1021883A +@1686 A80B883A +@1687 00082440 +@1688 8000041E +@1689 D8801717 +@168A 1000021E +@168B E004C03A +@168C 10011726 +@168D A0010616 +@168E A000041E +@168F D8C01717 +@1690 1800021E +@1691 E004C03A +@1692 10010126 +@1693 04023D16 +@1694 B5C00005 +@1695 D9800517 +@1696 D9000F17 +@1697 B5800044 +@1698 3105883A +@1699 B0806526 +@169A D9400717 +@169B D9001617 +@169C 01800284 +@169D 000F883A +@169E 0008F640 +@169F D8800715 +@16A0 D8800617 +@16A1 14C10C26 +@16A2 D9400617 +@16A3 D9001617 +@16A4 01800284 +@16A5 000F883A +@16A6 0008F640 +@16A7 D9001617 +@16A8 980B883A +@16A9 01800284 +@16AA 000F883A +@16AB D8800615 +@16AC 0008F640 +@16AD 1027883A +@16AE 003FC206 +@16AF 2445C83A +@16B0 A088983A +@16B1 003E4B06 +@16B2 01BFFFC4 +@16B3 00800044 +@16B4 D9800E15 +@16B5 D9800F15 +@16B6 D8800B15 +@16B7 D8C01617 +@16B8 008005C4 +@16B9 18001115 +@16BA 1580082E +@16BB 00C00104 +@16BC 0009883A +@16BD 18C7883A +@16BE 18800504 +@16BF 21000044 +@16C0 B0BFFC2E +@16C1 D9801617 +@16C2 31001115 +@16C3 DC000F17 +@16C4 003E4B06 +@16C5 D9801717 +@16C6 0023883A +@16C7 31BFFF04 +@16C8 D9801715 +@16C9 003DF806 +@16CA 00800804 +@16CB 10C9C83A +@16CC 00C00104 +@16CD 19005A16 +@16CE 008000C4 +@16CF 113F7E16 +@16D0 20800704 +@16D1 003F7506 +@16D2 D9801717 +@16D3 00800044 +@16D4 1180A10E +@16D5 D9800F17 +@16D6 D8C01017 +@16D7 30BFFFC4 +@16D8 1881C616 +@16D9 18A5C83A +@16DA D8800F17 +@16DB 10026216 +@16DC DC001117 +@16DD 1007883A +@16DE D9800A17 +@16DF D8801117 +@16E0 D9001617 +@16E1 30CD883A +@16E2 10C5883A +@16E3 01400044 +@16E4 D9800A15 +@16E5 D8801115 +@16E6 0008F280 +@16E7 1027883A +@16E8 003F2506 +@16E9 00C00074 +@16EA 18C0F904 +@16EB 003D6706 +@16EC DD800517 +@16ED 04000044 +@16EE 00000706 +@16EF D9400717 +@16F0 D9001617 +@16F1 01800284 +@16F2 000F883A +@16F3 0008F640 +@16F4 D8800715 +@16F5 84000044 +@16F6 D9000717 +@16F7 900B883A +@16F8 0004E380 +@16F9 15C00C04 +@16FA B5C00005 +@16FB D8C00F17 +@16FC B5800044 +@16FD 80FFF116 +@16FE D8000615 +@16FF D9400717 +@1700 D9001617 +@1701 01800044 +@1702 0008B880 +@1703 1009883A +@1704 900B883A +@1705 D8800715 +@1706 00083A00 +@1707 00803C0E +@1708 B009883A +@1709 213FFFC4 +@170A 21400003 +@170B 00800E44 +@170C 28C03FCC +@170D 18C0201C +@170E 18FFE004 +@170F 1881981E +@1710 D9800517 +@1711 21BFF71E +@1712 D8800D17 +@1713 37000044 +@1714 10800044 +@1715 D8800D15 +@1716 00800C44 +@1717 30800005 +@1718 D9001617 +@1719 900B883A +@171A 00082440 +@171B 983ECD26 +@171C D8C00617 +@171D 18000426 +@171E 1CC00326 +@171F D9001617 +@1720 180B883A +@1721 00082440 +@1722 D9001617 +@1723 980B883A +@1724 00082440 +@1725 003EC306 +@1726 1805883A +@1727 003EEB06 +@1728 D9800A17 +@1729 D8C01117 +@172A 20BFFF04 +@172B 308D883A +@172C 1887883A +@172D 80A1883A +@172E D9800A15 +@172F D8C01115 +@1730 003F1D06 +@1731 A03F0C1E +@1732 00800434 +@1733 10BFFFC4 +@1734 A884703A +@1735 103F081E +@1736 A89FFC2C +@1737 103F0626 +@1738 D8C01117 +@1739 D9000A17 +@173A 18C00044 +@173B 21000044 +@173C D8C01115 +@173D D9000A15 +@173E 003F0006 +@173F D9400717 +@1740 D9001617 +@1741 00090900 +@1742 D8800715 +@1743 003EED06 +@1744 1000021E +@1745 B880004C +@1746 103FC11E +@1747 B5BFFFC4 +@1748 B0C00007 +@1749 00800C04 +@174A 18BFFC26 +@174B B7000044 +@174C 003FCB06 +@174D D9800D17 +@174E 018FC83A +@174F 3801F726 +@1750 398003CC +@1751 300C90FA +@1752 01400074 +@1753 29411704 +@1754 D9001217 +@1755 314D883A +@1756 30C00117 +@1757 30800017 +@1758 D9401317 +@1759 3821D13A +@175A 100D883A +@175B 180F883A +@175C 000B2240 +@175D 1011883A +@175E 1813883A +@175F 1029883A +@1760 182B883A +@1761 8001E526 +@1762 05800084 +@1763 04400074 +@1764 8C414904 +@1765 8080004C +@1766 1005003A +@1767 1000081E +@1768 89800017 +@1769 89C00117 +@176A 480B883A +@176B 4009883A +@176C 000B2240 +@176D 1011883A +@176E B5800044 +@176F 1813883A +@1770 8021D07A +@1771 8C400204 +@1772 803FF21E +@1773 4029883A +@1774 482B883A +@1775 003DCA06 +@1776 D9000817 +@1777 2005003A +@1778 1001F61E +@1779 DC001117 +@177A DC801017 +@177B 18C10CC4 +@177C 003F6106 +@177D D8000B15 +@177E D9802617 +@177F D8C00D17 +@1780 30800044 +@1781 18AD883A +@1782 B13FFFC4 +@1783 D9000E15 +@1784 0581F60E +@1785 DD800F15 +@1786 003F3006 +@1787 D8000B15 +@1788 D9002617 +@1789 0101EB0E +@178A 202D883A +@178B D9000E15 +@178C D9000F15 +@178D 003F2906 +@178E 01800044 +@178F D9800B15 +@1790 003FF706 +@1791 01000044 +@1792 D9000B15 +@1793 003FEA06 +@1794 04000C0E +@1795 D9400717 +@1796 D9001617 +@1797 01800044 +@1798 0008B880 +@1799 1009883A +@179A 900B883A +@179B D8800715 +@179C 00083A00 +@179D 0081E00E +@179E BDC00044 +@179F 00800E84 +@17A0 B881A226 +@17A1 B7000044 +@17A2 B5C00005 +@17A3 003F7406 +@17A4 00800E44 +@17A5 B8819D26 +@17A6 053FFA0E +@17A7 8DC00C44 +@17A8 003FF806 +@17A9 D9001617 +@17AA A80B883A +@17AB 04000044 +@17AC 00082440 +@17AD 003EDF06 +@17AE D9001617 +@17AF 980B883A +@17B0 01800284 +@17B1 000F883A +@17B2 0008F640 +@17B3 1027883A +@17B4 D8800615 +@17B5 003EBB06 +@17B6 D9801117 +@17B7 D8800D17 +@17B8 D8000915 +@17B9 308DC83A +@17BA 0087C83A +@17BB D9801115 +@17BC D8C01015 +@17BD 003CFE06 +@17BE 018DC83A +@17BF D9801115 +@17C0 D8000A15 +@17C1 003CF306 +@17C2 D9000D17 +@17C3 000BAE80 +@17C4 880B883A +@17C5 8009883A +@17C6 180F883A +@17C7 100D883A +@17C8 000B8C80 +@17C9 103CE126 +@17CA D9800D17 +@17CB 31BFFFC4 +@17CC D9800D15 +@17CD 003CDD06 +@17CE D9000717 +@17CF 900B883A +@17D0 00083A00 +@17D1 103E8D0E +@17D2 D9400717 +@17D3 D9001617 +@17D4 01800284 +@17D5 000F883A +@17D6 0008F640 +@17D7 D9800D17 +@17D8 D8800715 +@17D9 31BFFFC4 +@17DA D9800D15 +@17DB B001A71E +@17DC D8800E17 +@17DD D8800F15 +@17DE 003E8006 +@17DF 90800417 +@17E0 1085883A +@17E1 1085883A +@17E2 1485883A +@17E3 11000417 +@17E4 000826C0 +@17E5 00C00804 +@17E6 1887C83A +@17E7 003E5A06 +@17E8 D9400717 +@17E9 D9801017 +@17EA D9001617 +@17EB 00090900 +@17EC D8800715 +@17ED 003E4306 +@17EE D9800F17 +@17EF D8800D17 +@17F0 D9800315 +@17F1 D8800415 +@17F2 D8C00B17 +@17F3 1805003A +@17F4 1000E21E +@17F5 D9000317 +@17F6 0005883A +@17F7 00CFF834 +@17F8 200C90FA +@17F9 01000074 +@17FA 21011704 +@17FB 180B883A +@17FC 310D883A +@17FD 327FFF17 +@17FE 323FFE17 +@17FF 1009883A +@1800 480F883A +@1801 400D883A +@1802 000B5E80 +@1803 180B883A +@1804 B00D883A +@1805 B80F883A +@1806 1009883A +@1807 000B1300 +@1808 A80B883A +@1809 A009883A +@180A D8C01915 +@180B D8801815 +@180C 000BBE00 +@180D 1009883A +@180E 1027883A +@180F 000BAE80 +@1810 A80B883A +@1811 A009883A +@1812 180F883A +@1813 100D883A +@1814 000B1300 +@1815 D9801817 +@1816 1823883A +@1817 D8801415 +@1818 302D883A +@1819 D9800517 +@181A 9CC00C04 +@181B DC401515 +@181C D8C01917 +@181D 34C00005 +@181E D8800517 +@181F D9401917 +@1820 D9801417 +@1821 B009883A +@1822 880F883A +@1823 182F883A +@1824 17000044 +@1825 000B9500 +@1826 00804E16 +@1827 D9801417 +@1828 0005883A +@1829 00CFFC34 +@182A 180B883A +@182B 880F883A +@182C 1009883A +@182D 000B1300 +@182E D9401917 +@182F 180F883A +@1830 B009883A +@1831 100D883A +@1832 000B9500 +@1833 00BDA216 +@1834 D8C00317 +@1835 00800044 +@1836 10C01216 +@1837 003D4506 +@1838 D9801417 +@1839 0005883A +@183A 00CFFC34 +@183B 180B883A +@183C 880F883A +@183D 1009883A +@183E 000B1300 +@183F D9C01B17 +@1840 180B883A +@1841 1009883A +@1842 B00D883A +@1843 000BA600 +@1844 103D9116 +@1845 D9800517 +@1846 D9000317 +@1847 3105883A +@1848 E0BD3426 +@1849 04500934 +@184A 0021883A +@184B B80B883A +@184C B009883A +@184D 800D883A +@184E 880F883A +@184F 000B2240 +@1850 D9401517 +@1851 D9001417 +@1852 880F883A +@1853 000D883A +@1854 D8801A15 +@1855 D8C01B15 +@1856 000B2240 +@1857 180B883A +@1858 1009883A +@1859 1823883A +@185A 1021883A +@185B 000BBE00 +@185C 1009883A +@185D 102B883A +@185E 000BAE80 +@185F 880B883A +@1860 8009883A +@1861 180F883A +@1862 100D883A +@1863 000B1300 +@1864 1021883A +@1865 D9001B17 +@1866 1823883A +@1867 DC001415 +@1868 AD400C04 +@1869 DC401515 +@186A D8801A17 +@186B E5400005 +@186C 202F883A +@186D D9C01B17 +@186E D9001417 +@186F 880B883A +@1870 100D883A +@1871 102D883A +@1872 E7000044 +@1873 000BA600 +@1874 103FC30E +@1875 D9000417 +@1876 D9000D15 +@1877 003D7106 +@1878 D9801717 +@1879 00800084 +@187A 11BDE60E +@187B 203CFB1E +@187C D9001617 +@187D 900B883A +@187E 01800144 +@187F 000F883A +@1880 0008F640 +@1881 D9000717 +@1882 100B883A +@1883 1025883A +@1884 00083A00 +@1885 00BCF10E +@1886 D8C00D17 +@1887 D9000517 +@1888 D8000615 +@1889 18C00044 +@188A D8C00D15 +@188B 00800C44 +@188C 27000044 +@188D 20800005 +@188E 003E8906 +@188F D8C00517 +@1890 003BC206 +@1891 01800074 +@1892 31814904 +@1893 30C00917 +@1894 30800817 +@1895 D9001217 +@1896 D9401317 +@1897 180F883A +@1898 100D883A +@1899 000B5E80 +@189A 948003CC +@189B 058000C4 +@189C 1029883A +@189D 182B883A +@189E 003C8906 +@189F D9001017 +@18A0 D9800917 +@18A1 0025883A +@18A2 1105C83A +@18A3 2089883A +@18A4 308D883A +@18A5 D9001015 +@18A6 D9800915 +@18A7 003E3206 +@18A8 28800044 +@18A9 27000044 +@18AA 20800005 +@18AB 003E6C06 +@18AC D8800F17 +@18AD 00BCE016 +@18AE D9800F17 +@18AF 303CC51E +@18B0 0005883A +@18B1 00D00534 +@18B2 980B883A +@18B3 180F883A +@18B4 9009883A +@18B5 100D883A +@18B6 000B2240 +@18B7 180B883A +@18B8 A80F883A +@18B9 1009883A +@18BA A00D883A +@18BB 000B9D80 +@18BC 103CB80E +@18BD 0027883A +@18BE 0025883A +@18BF 003FC606 +@18C0 99400117 +@18C1 D9001617 +@18C2 00087C40 +@18C3 99800417 +@18C4 11000304 +@18C5 99400304 +@18C6 318D883A +@18C7 318D883A +@18C8 31800204 +@18C9 1023883A +@18CA 000802C0 +@18CB D9001617 +@18CC 880B883A +@18CD 01800044 +@18CE 0008B880 +@18CF 100B883A +@18D0 003D9C06 +@18D1 00800E44 +@18D2 B8807026 +@18D3 B8800044 +@18D4 B7000044 +@18D5 B0800005 +@18D6 003E4106 +@18D7 D8800317 +@18D8 01800074 +@18D9 31811704 +@18DA B009883A +@18DB 100E90FA +@18DC B80B883A +@18DD 398F883A +@18DE 38BFFE17 +@18DF D9800517 +@18E0 38FFFF17 +@18E1 37000044 +@18E2 180F883A +@18E3 100D883A +@18E4 000B2240 +@18E5 A80B883A +@18E6 A009883A +@18E7 182F883A +@18E8 102D883A +@18E9 000BBE00 +@18EA 1009883A +@18EB 1027883A +@18EC 000BAE80 +@18ED A80B883A +@18EE A009883A +@18EF 180F883A +@18F0 100D883A +@18F1 000B1300 +@18F2 180B883A +@18F3 D8C00517 +@18F4 9CC00C04 +@18F5 1009883A +@18F6 1CC00005 +@18F7 2021883A +@18F8 D9000317 +@18F9 00800044 +@18FA 2823883A +@18FB 20802226 +@18FC 1029883A +@18FD 0005883A +@18FE 00D00934 +@18FF 180F883A +@1900 100D883A +@1901 880B883A +@1902 8009883A +@1903 000B2240 +@1904 180B883A +@1905 1009883A +@1906 1823883A +@1907 1021883A +@1908 000BBE00 +@1909 1009883A +@190A 102B883A +@190B 000BAE80 +@190C 880B883A +@190D 8009883A +@190E 180F883A +@190F 100D883A +@1910 000B1300 +@1911 180B883A +@1912 D8C00517 +@1913 1009883A +@1914 AD400C04 +@1915 1D05883A +@1916 15400005 +@1917 2021883A +@1918 D9000317 +@1919 A5000044 +@191A 2823883A +@191B A13FE11E +@191C E505883A +@191D 173FFFC4 +@191E 0025883A +@191F 04CFF834 +@1920 B009883A +@1921 B80B883A +@1922 900D883A +@1923 980F883A +@1924 000B1B00 +@1925 180B883A +@1926 1009883A +@1927 800D883A +@1928 880F883A +@1929 000BA600 +@192A 103CAB16 +@192B 0009883A +@192C 980B883A +@192D B80F883A +@192E B00D883A +@192F 000B1300 +@1930 180B883A +@1931 880F883A +@1932 1009883A +@1933 800D883A +@1934 000B9500 +@1935 00BC470E +@1936 00C00C04 +@1937 E73FFFC4 +@1938 E0800007 +@1939 10FFFD26 +@193A D9800417 +@193B E7000044 +@193C D9800D15 +@193D 003CAB06 +@193E D8C00F17 +@193F D9001117 +@1940 20E1C83A +@1941 0007883A +@1942 003D9B06 +@1943 00800E44 +@1944 B0800005 +@1945 B5800044 +@1946 003DC106 +@1947 05800084 +@1948 003BF706 +@1949 D9000F17 +@194A 013C000E +@194B D9800E17 +@194C 01BC300E +@194D 0005883A +@194E 00D00934 +@194F A80B883A +@1950 180F883A +@1951 A009883A +@1952 100D883A +@1953 000B2240 +@1954 B1000044 +@1955 1021883A +@1956 1823883A +@1957 000BAE80 +@1958 880B883A +@1959 8009883A +@195A 180F883A +@195B 100D883A +@195C 000B2240 +@195D 0011883A +@195E 02500734 +@195F 180B883A +@1960 480F883A +@1961 1009883A +@1962 400D883A +@1963 000B1B00 +@1964 102D883A +@1965 00BF3034 +@1966 10EF883A +@1967 D8800D17 +@1968 D8C00E17 +@1969 8029883A +@196A 10BFFFC4 +@196B 882B883A +@196C D8800415 +@196D D8C00315 +@196E 003E8306 +@196F D8800117 +@1970 DC001117 +@1971 DC801017 +@1972 00C00D84 +@1973 1887C83A +@1974 003D6906 +@1975 01800044 +@1976 3021883A +@1977 D9800F15 +@1978 D9802615 +@1979 D9800E15 +@197A 003B9306 +@197B B021883A +@197C DD800F15 +@197D 003B9006 +@197E 103E221E +@197F B880004C +@1980 1005003A +@1981 103E1F1E +@1982 003E1B06 +@1983 D9001617 +@1984 980B883A +@1985 01800284 +@1986 000F883A +@1987 0008F640 +@1988 D8C00E17 +@1989 1027883A +@198A D8C00F15 +@198B 003CD306 +@198C DEFFFB04 +@198D DCC00315 +@198E DC800215 +@198F DFC00415 +@1990 DC400115 +@1991 DC000015 +@1992 2027883A +@1993 2825883A +@1994 20000226 +@1995 20800E17 +@1996 10005626 +@1997 9100030B +@1998 20FFFFCC +@1999 18E0001C +@199A 18E00004 +@199B 1880020C +@199C 1000261E +@199D 90C00117 +@199E 20820014 +@199F 9080030D +@19A0 1009883A +@19A1 00C0400E +@19A2 92000A17 +@19A3 40004026 +@19A4 2084000C +@19A5 10005326 +@19A6 94001417 +@19A7 9080030B +@19A8 1080010C +@19A9 1000481E +@19AA 91400717 +@19AB 9809883A +@19AC 800D883A +@19AD 000F883A +@19AE 403EE83A +@19AF 8080261E +@19B0 9080030B +@19B1 91000417 +@19B2 90000115 +@19B3 10BDFFCC +@19B4 10FFFFCC +@19B5 18C4000C +@19B6 9080030D +@19B7 91000015 +@19B8 18002B26 +@19B9 0007883A +@19BA 1805883A +@19BB 94001415 +@19BC DFC00417 +@19BD DCC00317 +@19BE DC800217 +@19BF DC400117 +@19C0 DC000017 +@19C1 DEC00504 +@19C2 F800283A +@19C3 94400417 +@19C4 88001F26 +@19C5 90800017 +@19C6 18C000CC +@19C7 94400015 +@19C8 1461C83A +@19C9 18002526 +@19CA 0005883A +@19CB 90800215 +@19CC 0400170E +@19CD 90C00917 +@19CE 91400717 +@19CF 880D883A +@19D0 800F883A +@19D1 9809883A +@19D2 183EE83A +@19D3 88A3883A +@19D4 80A1C83A +@19D5 00BFF616 +@19D6 9080030B +@19D7 00FFFFC4 +@19D8 10801014 +@19D9 9080030D +@19DA 1805883A +@19DB DFC00417 +@19DC DCC00317 +@19DD DC800217 +@19DE DC400117 +@19DF DC000017 +@19E0 DEC00504 +@19E1 F800283A +@19E2 90800F17 +@19E3 00BFBE16 +@19E4 0007883A +@19E5 1805883A +@19E6 DFC00417 +@19E7 DCC00317 +@19E8 DC800217 +@19E9 DC400117 +@19EA DC000017 +@19EB DEC00504 +@19EC F800283A +@19ED 00068C80 +@19EE 003FA806 +@19EF 90800517 +@19F0 90800215 +@19F1 003FDA06 +@19F2 90800117 +@19F3 90C00C17 +@19F4 80A1C83A +@19F5 183FB426 +@19F6 90800F17 +@19F7 80A1C83A +@19F8 003FB106 +@19F9 91400717 +@19FA 9809883A +@19FB 000D883A +@19FC 01C00044 +@19FD 403EE83A +@19FE 1021883A +@19FF 00BFFFC4 +@1A00 80800226 +@1A01 92000A17 +@1A02 003FA406 +@1A03 98C00017 +@1A04 00800744 +@1A05 18BFDE26 +@1A06 9080030B +@1A07 8007883A +@1A08 10801014 +@1A09 9080030D +@1A0A 003FCF06 +@1A0B 01400034 +@1A0C 29598C04 +@1A0D 2007883A +@1A0E 20000526 +@1A0F 00800074 +@1A10 10888604 +@1A11 11000017 +@1A12 180B883A +@1A13 00066301 +@1A14 00800074 +@1A15 10888704 +@1A16 11000017 +@1A17 00074301 +@1A18 00800074 +@1A19 10A66904 +@1A1A 20800B15 +@1A1B 00800074 +@1A1C 10A6A404 +@1A1D 20800815 +@1A1E 00C00074 +@1A1F 18E68504 +@1A20 00800074 +@1A21 10A66B04 +@1A22 2140030D +@1A23 2180038D +@1A24 20C00915 +@1A25 20800A15 +@1A26 20000015 +@1A27 20000115 +@1A28 20000215 +@1A29 20000415 +@1A2A 20000515 +@1A2B 20000615 +@1A2C 21000715 +@1A2D F800283A +@1A2E F800283A +@1A2F F800283A +@1A30 F800283A +@1A31 F800283A +@1A32 20800E17 +@1A33 DEFFFD04 +@1A34 DC400115 +@1A35 DC000015 +@1A36 DFC00215 +@1A37 04400044 +@1A38 01400104 +@1A39 000D883A +@1A3A 2021883A +@1A3B 2200BB04 +@1A3C 200F883A +@1A3D 10000526 +@1A3E DFC00217 +@1A3F DC400117 +@1A40 DC000017 +@1A41 DEC00304 +@1A42 F800283A +@1A43 21000117 +@1A44 00800034 +@1A45 109A6B04 +@1A46 00C000C4 +@1A47 80800F15 +@1A48 80C0B915 +@1A49 8200BA15 +@1A4A 84400E15 +@1A4B 8000B815 +@1A4C 00068600 +@1A4D 81000217 +@1A4E 880D883A +@1A4F 800F883A +@1A50 01400284 +@1A51 00068600 +@1A52 81000317 +@1A53 800F883A +@1A54 01400484 +@1A55 01800084 +@1A56 DFC00217 +@1A57 DC400117 +@1A58 DC000017 +@1A59 DEC00304 +@1A5A 00068601 +@1A5B 0005883A +@1A5C F800283A +@1A5D 0005883A +@1A5E F800283A +@1A5F 00800074 +@1A60 10888604 +@1A61 11000017 +@1A62 01400034 +@1A63 295A5D04 +@1A64 00074F81 +@1A65 00800074 +@1A66 10888604 +@1A67 11000017 +@1A68 01400034 +@1A69 295A5B04 +@1A6A 00074F81 +@1A6B 01400074 +@1A6C 29679B04 +@1A6D 00074F81 +@1A6E 00800074 +@1A6F 10888704 +@1A70 11000017 +@1A71 00069AC1 +@1A72 DEFFFC04 +@1A73 DC000015 +@1A74 2821883A +@1A75 DC400115 +@1A76 01401704 +@1A77 2023883A +@1A78 8009883A +@1A79 DFC00315 +@1A7A DCC00215 +@1A7B 0002C3C0 +@1A7C 11400304 +@1A7D 8809883A +@1A7E 1027883A +@1A7F 00078080 +@1A80 10C00304 +@1A81 1023883A +@1A82 1809883A +@1A83 980D883A +@1A84 000B883A +@1A85 10000B26 +@1A86 14000115 +@1A87 10C00215 +@1A88 10000015 +@1A89 00081AC0 +@1A8A 8805883A +@1A8B DFC00317 +@1A8C DCC00217 +@1A8D DC400117 +@1A8E DC000017 +@1A8F DEC00404 +@1A90 F800283A +@1A91 0023883A +@1A92 8805883A +@1A93 DFC00317 +@1A94 DCC00217 +@1A95 DC400117 +@1A96 DC000017 +@1A97 DEC00404 +@1A98 F800283A +@1A99 DEFFFD04 +@1A9A 00800074 +@1A9B 10888704 +@1A9C DC000015 +@1A9D 14000017 +@1A9E DC400115 +@1A9F DFC00215 +@1AA0 80800E17 +@1AA1 2023883A +@1AA2 10002626 +@1AA3 8400B804 +@1AA4 80800117 +@1AA5 81000217 +@1AA6 10FFFFC4 +@1AA7 18000916 +@1AA8 2080030F +@1AA9 10000B26 +@1AAA 017FFFC4 +@1AAB 00000206 +@1AAC 2080030F +@1AAD 10000726 +@1AAE 18FFFFC4 +@1AAF 21001704 +@1AB0 197FFB1E +@1AB1 80800017 +@1AB2 10001926 +@1AB3 1021883A +@1AB4 003FEF06 +@1AB5 00BFFFC4 +@1AB6 00C00044 +@1AB7 2080038D +@1AB8 20C0030D +@1AB9 20000015 +@1ABA 20000215 +@1ABB 20000115 +@1ABC 20000415 +@1ABD 20000515 +@1ABE 20000615 +@1ABF 20000C15 +@1AC0 20000D15 +@1AC1 20001115 +@1AC2 20001215 +@1AC3 2005883A +@1AC4 DFC00217 +@1AC5 DC400117 +@1AC6 DC000017 +@1AC7 DEC00304 +@1AC8 F800283A +@1AC9 8009883A +@1ACA 00068C80 +@1ACB 003FD706 +@1ACC 8809883A +@1ACD 01400104 +@1ACE 00069C80 +@1ACF 80800015 +@1AD0 103FE21E +@1AD1 00800304 +@1AD2 0009883A +@1AD3 88800015 +@1AD4 003FEE06 +@1AD5 DEFFFB04 +@1AD6 DCC00315 +@1AD7 04C00074 +@1AD8 9CC2B804 +@1AD9 DC800215 +@1ADA DC400115 +@1ADB DC000015 +@1ADC 2823883A +@1ADD 2025883A +@1ADE DFC00415 +@1ADF 000CB980 +@1AE0 98800217 +@1AE1 9009883A +@1AE2 000B883A +@1AE3 10C00117 +@1AE4 00BFFF04 +@1AE5 18A0703A +@1AE6 8463C83A +@1AE7 8C43FBC4 +@1AE8 8822D33A +@1AE9 0083FFC4 +@1AEA 8C7FFFC4 +@1AEB 8822933A +@1AEC 1440060E +@1AED 00099340 +@1AEE 98C00217 +@1AEF 9009883A +@1AF0 044BC83A +@1AF1 80C7883A +@1AF2 10C00926 +@1AF3 000CBB80 +@1AF4 0005883A +@1AF5 DFC00417 +@1AF6 DCC00317 +@1AF7 DC800217 +@1AF8 DC400117 +@1AF9 DC000017 +@1AFA DEC00504 +@1AFB F800283A +@1AFC 9009883A +@1AFD 00099340 +@1AFE 844DC83A +@1AFF 00FFFFC4 +@1B00 9009883A +@1B01 000B883A +@1B02 01C00074 +@1B03 39D0CB04 +@1B04 31800054 +@1B05 10C00926 +@1B06 38800017 +@1B07 98C00217 +@1B08 9009883A +@1B09 1445C83A +@1B0A 38800015 +@1B0B 19800115 +@1B0C 000CBB80 +@1B0D 00800044 +@1B0E 003FE606 +@1B0F 00099340 +@1B10 99800217 +@1B11 100F883A +@1B12 9009883A +@1B13 1187C83A +@1B14 008003C4 +@1B15 19400054 +@1B16 10FFDC0E +@1B17 00800074 +@1B18 10888B04 +@1B19 10C00017 +@1B1A 00800074 +@1B1B 1090CB04 +@1B1C 31400115 +@1B1D 38C7C83A +@1B1E 10C00015 +@1B1F 003FD306 +@1B20 DEFFFD04 +@1B21 DC400115 +@1B22 DC000015 +@1B23 DFC00215 +@1B24 2821883A +@1B25 2023883A +@1B26 28005A26 +@1B27 000CB980 +@1B28 823FFE04 +@1B29 41400117 +@1B2A 00BFFF84 +@1B2B 02800074 +@1B2C 5282B804 +@1B2D 288E703A +@1B2E 41CD883A +@1B2F 30C00117 +@1B30 51000217 +@1B31 00BFFF04 +@1B32 1892703A +@1B33 5017883A +@1B34 31006726 +@1B35 2880004C +@1B36 1005003A +@1B37 32400115 +@1B38 10001A1E +@1B39 000B883A +@1B3A 3247883A +@1B3B 18800117 +@1B3C 1080004C +@1B3D 1000231E +@1B3E 280AC03A +@1B3F 3A4F883A +@1B40 2800451E +@1B41 31000217 +@1B42 00800074 +@1B43 1082BA04 +@1B44 20807B26 +@1B45 30800317 +@1B46 3A07883A +@1B47 19C00015 +@1B48 11000215 +@1B49 20800315 +@1B4A 38800054 +@1B4B 40800115 +@1B4C 28001A26 +@1B4D 8809883A +@1B4E DFC00217 +@1B4F DC400117 +@1B50 DC000017 +@1B51 DEC00304 +@1B52 000CBB81 +@1B53 80BFFE17 +@1B54 50C00204 +@1B55 4091C83A +@1B56 41000217 +@1B57 388F883A +@1B58 20C06126 +@1B59 40800317 +@1B5A 3247883A +@1B5B 000B883A +@1B5C 11000215 +@1B5D 20800315 +@1B5E 18800117 +@1B5F 1080004C +@1B60 103FDD26 +@1B61 38800054 +@1B62 3A07883A +@1B63 280AC03A +@1B64 40800115 +@1B65 19C00015 +@1B66 283FE61E +@1B67 00807FC4 +@1B68 11C01F2E +@1B69 3806D27A +@1B6A 1800481E +@1B6B 3804D0FA +@1B6C 100690FA +@1B6D 1ACD883A +@1B6E 31400217 +@1B6F 31405926 +@1B70 28800117 +@1B71 00FFFF04 +@1B72 10C4703A +@1B73 3880022E +@1B74 29400217 +@1B75 317FFA1E +@1B76 29800317 +@1B77 41800315 +@1B78 41400215 +@1B79 8809883A +@1B7A 2A000315 +@1B7B 32000215 +@1B7C DFC00217 +@1B7D DC400117 +@1B7E DC000017 +@1B7F DEC00304 +@1B80 000CBB81 +@1B81 DFC00217 +@1B82 DC400117 +@1B83 DC000017 +@1B84 DEC00304 +@1B85 F800283A +@1B86 31000217 +@1B87 003FBD06 +@1B88 3806D0FA +@1B89 00800044 +@1B8A 51400117 +@1B8B 180890FA +@1B8C 1807D0BA +@1B8D 22C9883A +@1B8E 21800217 +@1B8F 10C4983A +@1B90 41000315 +@1B91 41800215 +@1B92 288AB03A +@1B93 22000215 +@1B94 8809883A +@1B95 51400115 +@1B96 32000315 +@1B97 DFC00217 +@1B98 DC400117 +@1B99 DC000017 +@1B9A DEC00304 +@1B9B 000CBB81 +@1B9C 2880004C +@1B9D 3A4D883A +@1B9E 1000071E +@1B9F 80BFFE17 +@1BA0 4091C83A +@1BA1 41000317 +@1BA2 40C00217 +@1BA3 308D883A +@1BA4 20C00215 +@1BA5 19000315 +@1BA6 00800074 +@1BA7 10888A04 +@1BA8 11000017 +@1BA9 30C00054 +@1BAA 52000215 +@1BAB 40C00115 +@1BAC 313FA036 +@1BAD 00800074 +@1BAE 108F8104 +@1BAF 11400017 +@1BB0 8809883A +@1BB1 0006B540 +@1BB2 003F9A06 +@1BB3 00800104 +@1BB4 10C0072E +@1BB5 00800504 +@1BB6 10C01936 +@1BB7 188016C4 +@1BB8 100690FA +@1BB9 003FB306 +@1BBA 01400044 +@1BBB 003F7E06 +@1BBC 3804D1BA +@1BBD 10800E04 +@1BBE 100690FA +@1BBF 003FAD06 +@1BC0 22000315 +@1BC1 22000215 +@1BC2 3A05883A +@1BC3 38C00054 +@1BC4 11C00015 +@1BC5 41000215 +@1BC6 40C00115 +@1BC7 41000315 +@1BC8 003F8406 +@1BC9 1005D0BA +@1BCA 00C00044 +@1BCB 51000117 +@1BCC 1886983A +@1BCD 20C8B03A +@1BCE 51000115 +@1BCF 003FA706 +@1BD0 00801504 +@1BD1 10C00436 +@1BD2 3804D33A +@1BD3 10801B84 +@1BD4 100690FA +@1BD5 003F9706 +@1BD6 00805504 +@1BD7 10C00436 +@1BD8 3804D3FA +@1BD9 10801DC4 +@1BDA 100690FA +@1BDB 003F9106 +@1BDC 00815504 +@1BDD 10C0032E +@1BDE 00801F84 +@1BDF 00C0FC04 +@1BE0 003F8C06 +@1BE1 3804D4BA +@1BE2 10801F04 +@1BE3 100690FA +@1BE4 003F8806 +@1BE5 30800217 +@1BE6 DEFFF504 +@1BE7 DF000915 +@1BE8 DD800715 +@1BE9 DC800315 +@1BEA DFC00A15 +@1BEB DDC00815 +@1BEC DD400615 +@1BED DD000515 +@1BEE DCC00415 +@1BEF DC400215 +@1BF0 DC000115 +@1BF1 302D883A +@1BF2 2039883A +@1BF3 2825883A +@1BF4 10001C26 +@1BF5 29C0030B +@1BF6 3880020C +@1BF7 10002726 +@1BF8 28800417 +@1BF9 10002526 +@1BFA 3880008C +@1BFB B5400017 +@1BFC 10002826 +@1BFD 0021883A +@1BFE 0023883A +@1BFF 880D883A +@1C00 E009883A +@1C01 00810004 +@1C02 80006E26 +@1C03 800F883A +@1C04 91400717 +@1C05 1400012E +@1C06 100F883A +@1C07 90C00917 +@1C08 183EE83A +@1C09 1007883A +@1C0A 80A1C83A +@1C0B 88A3883A +@1C0C 00806D0E +@1C0D B0800217 +@1C0E 10C5C83A +@1C0F B0800215 +@1C10 103FEE1E +@1C11 0009883A +@1C12 2005883A +@1C13 DFC00A17 +@1C14 DF000917 +@1C15 DDC00817 +@1C16 DD800717 +@1C17 DD400617 +@1C18 DD000517 +@1C19 DCC00417 +@1C1A DC800317 +@1C1B DC400217 +@1C1C DC000117 +@1C1D DEC00B04 +@1C1E F800283A +@1C1F 0004CFC0 +@1C20 1000E41E +@1C21 91C0030B +@1C22 B5400017 +@1C23 3880008C +@1C24 103FD81E +@1C25 3880004C +@1C26 1005003A +@1C27 10005726 +@1C28 0029883A +@1C29 002F883A +@1C2A A0004226 +@1C2B 3880800C +@1C2C 94000217 +@1C2D 10008B26 +@1C2E 800D883A +@1C2F A400A536 +@1C30 3881200C +@1C31 10002726 +@1C32 90800517 +@1C33 92000417 +@1C34 91400017 +@1C35 1087883A +@1C36 1887883A +@1C37 1808D7FA +@1C38 2A21C83A +@1C39 80800044 +@1C3A 20C9883A +@1C3B 2027D07A +@1C3C A085883A +@1C3D 980D883A +@1C3E 9880022E +@1C3F 1027883A +@1C40 100D883A +@1C41 3881000C +@1C42 1000B826 +@1C43 300B883A +@1C44 E009883A +@1C45 00078080 +@1C46 10003126 +@1C47 91400417 +@1C48 1009883A +@1C49 800D883A +@1C4A 1023883A +@1C4B 000802C0 +@1C4C 90C0030B +@1C4D 00BEFFC4 +@1C4E 1886703A +@1C4F 18C02014 +@1C50 90C0030D +@1C51 9C07C83A +@1C52 8C05883A +@1C53 A00D883A +@1C54 A021883A +@1C55 90800015 +@1C56 90C00215 +@1C57 94400415 +@1C58 94C00515 +@1C59 91000017 +@1C5A B80B883A +@1C5B A023883A +@1C5C 00080CC0 +@1C5D 90C00217 +@1C5E 90800017 +@1C5F A027883A +@1C60 1C07C83A +@1C61 1405883A +@1C62 90C00215 +@1C63 A021883A +@1C64 90800015 +@1C65 B0800217 +@1C66 1405C83A +@1C67 B0800215 +@1C68 103FA826 +@1C69 A469C83A +@1C6A 91C0030B +@1C6B BCEF883A +@1C6C A03FBE1E +@1C6D ADC00017 +@1C6E AD000117 +@1C6F AD400204 +@1C70 003FB906 +@1C71 AC400017 +@1C72 AC000117 +@1C73 AD400204 +@1C74 003F8A06 +@1C75 91400417 +@1C76 E009883A +@1C77 0006C800 +@1C78 00800304 +@1C79 E0800015 +@1C7A 9080030B +@1C7B 013FFFC4 +@1C7C 10801014 +@1C7D 9080030D +@1C7E 003F9306 +@1C7F 0027883A +@1C80 002F883A +@1C81 D8000015 +@1C82 0029883A +@1C83 98001E26 +@1C84 D8C00017 +@1C85 1804C03A +@1C86 10005E26 +@1C87 9821883A +@1C88 A4C0012E +@1C89 A021883A +@1C8A 91000017 +@1C8B 90800417 +@1C8C 91800217 +@1C8D 91C00517 +@1C8E 1100022E +@1C8F 31E3883A +@1C90 8C001616 +@1C91 81C03816 +@1C92 90C00917 +@1C93 91400717 +@1C94 E009883A +@1C95 B80D883A +@1C96 183EE83A +@1C97 1023883A +@1C98 00BFE10E +@1C99 A469C83A +@1C9A A0001826 +@1C9B B0800217 +@1C9C 1445C83A +@1C9D B0800215 +@1C9E 103F7226 +@1C9F 9C67C83A +@1CA0 BC6F883A +@1CA1 983FE21E +@1CA2 ADC00017 +@1CA3 ACC00117 +@1CA4 AD400204 +@1CA5 D8000015 +@1CA6 003FDC06 +@1CA7 B80B883A +@1CA8 880D883A +@1CA9 00080CC0 +@1CAA 90C00017 +@1CAB E009883A +@1CAC 900B883A +@1CAD 1C47883A +@1CAE 90C00015 +@1CAF 00066300 +@1CB0 103FC91E +@1CB1 A469C83A +@1CB2 A03FE81E +@1CB3 E009883A +@1CB4 900B883A +@1CB5 00066300 +@1CB6 103FC31E +@1CB7 D8000015 +@1CB8 003FE206 +@1CB9 91000017 +@1CBA 90800417 +@1CBB 1100022E +@1CBC 8023883A +@1CBD 85003136 +@1CBE 91C00517 +@1CBF A1C01836 +@1CC0 90C00917 +@1CC1 91400717 +@1CC2 E009883A +@1CC3 B80D883A +@1CC4 183EE83A +@1CC5 1021883A +@1CC6 00BFB30E +@1CC7 1023883A +@1CC8 1027883A +@1CC9 003F9B06 +@1CCA B80B883A +@1CCB 800D883A +@1CCC 00080CC0 +@1CCD 90C00217 +@1CCE 90800017 +@1CCF 8023883A +@1CD0 1C07C83A +@1CD1 1405883A +@1CD2 90C00215 +@1CD3 90800015 +@1CD4 003FC406 +@1CD5 A00D883A +@1CD6 A021883A +@1CD7 003F8106 +@1CD8 B80B883A +@1CD9 A00D883A +@1CDA 00080CC0 +@1CDB 90C00217 +@1CDC 90800017 +@1CDD A021883A +@1CDE 1D07C83A +@1CDF 1505883A +@1CE0 A023883A +@1CE1 A027883A +@1CE2 90C00215 +@1CE3 90800015 +@1CE4 003F8006 +@1CE5 B809883A +@1CE6 01400284 +@1CE7 980D883A +@1CE8 0007F480 +@1CE9 10001726 +@1CEA 15C5C83A +@1CEB 15000044 +@1CEC 00800044 +@1CED D8800015 +@1CEE 003F9806 +@1CEF B80B883A +@1CF0 800D883A +@1CF1 00080CC0 +@1CF2 90C00017 +@1CF3 E009883A +@1CF4 900B883A +@1CF5 1C07883A +@1CF6 90C00015 +@1CF7 8027883A +@1CF8 00066300 +@1CF9 103F6B26 +@1CFA 003F7F06 +@1CFB 400B883A +@1CFC E009883A +@1CFD 00092D00 +@1CFE 103F7626 +@1CFF 1023883A +@1D00 003F5006 +@1D01 00C00044 +@1D02 9D000044 +@1D03 D8C00015 +@1D04 003F8206 +@1D05 9080030B +@1D06 00C00244 +@1D07 013FFFC4 +@1D08 10801014 +@1D09 9080030D +@1D0A E0C00015 +@1D0B 003F0606 +@1D0C DEFFF704 +@1D0D DCC00315 +@1D0E 24C0B804 +@1D0F DD800615 +@1D10 DD400515 +@1D11 DFC00815 +@1D12 DDC00715 +@1D13 DD000415 +@1D14 DC800215 +@1D15 DC400115 +@1D16 DC000015 +@1D17 202B883A +@1D18 282D883A +@1D19 00068B80 +@1D1A 98002126 +@1D1B 002F883A +@1D1C 9C800117 +@1D1D 9C000217 +@1D1E 90BFFFC4 +@1D1F 10000D16 +@1D20 0023883A +@1D21 053FFFC4 +@1D22 8080030F +@1D23 8C400044 +@1D24 10000626 +@1D25 8080038F +@1D26 800B883A +@1D27 A809883A +@1D28 15000226 +@1D29 B03EE83A +@1D2A B8AEB03A +@1D2B 84001704 +@1D2C 947FF51E +@1D2D 9CC00017 +@1D2E 983FED1E +@1D2F 00068BC0 +@1D30 B805883A +@1D31 DFC00817 +@1D32 DDC00717 +@1D33 DD800617 +@1D34 DD400517 +@1D35 DD000417 +@1D36 DCC00317 +@1D37 DC800217 +@1D38 DC400117 +@1D39 DC000017 +@1D3A DEC00904 +@1D3B F800283A +@1D3C 002F883A +@1D3D 003FF106 +@1D3E DEFFF804 +@1D3F DCC00315 +@1D40 24C0B804 +@1D41 DD400515 +@1D42 DFC00715 +@1D43 DD800615 +@1D44 DD000415 +@1D45 DC800215 +@1D46 DC400115 +@1D47 DC000015 +@1D48 282B883A +@1D49 00068B80 +@1D4A 98001F26 +@1D4B 002D883A +@1D4C 9C800117 +@1D4D 9C000217 +@1D4E 90BFFFC4 +@1D4F 10000C16 +@1D50 0023883A +@1D51 053FFFC4 +@1D52 8080030F +@1D53 8C400044 +@1D54 10000526 +@1D55 8080038F +@1D56 8009883A +@1D57 15000226 +@1D58 A83EE83A +@1D59 B0ACB03A +@1D5A 84001704 +@1D5B 947FF61E +@1D5C 9CC00017 +@1D5D 983FEE1E +@1D5E 00068BC0 +@1D5F B005883A +@1D60 DFC00717 +@1D61 DD800617 +@1D62 DD400517 +@1D63 DD000417 +@1D64 DCC00317 +@1D65 DC800217 +@1D66 DC400117 +@1D67 DC000017 +@1D68 DEC00804 +@1D69 F800283A +@1D6A 002D883A +@1D6B 003FF206 +@1D6C D0A00517 +@1D6D F800283A +@1D6E 00800074 +@1D6F 10810B04 +@1D70 F800283A +@1D71 00800074 +@1D72 10888604 +@1D73 11000017 +@1D74 00075B81 +@1D75 DEFFFC04 +@1D76 00C00074 +@1D77 18C10604 +@1D78 DC800215 +@1D79 DC400115 +@1D7A DC000015 +@1D7B 2023883A +@1D7C 2825883A +@1D7D DFC00315 +@1D7E 3021883A +@1D7F 3009883A +@1D80 180B883A +@1D81 30000926 +@1D82 0009AF00 +@1D83 8009883A +@1D84 01400074 +@1D85 2940F104 +@1D86 10000B1E +@1D87 8C000D15 +@1D88 8C800C15 +@1D89 00C00074 +@1D8A 18C10604 +@1D8B 1805883A +@1D8C DFC00317 +@1D8D DC800217 +@1D8E DC400117 +@1D8F DC000017 +@1D90 DEC00404 +@1D91 F800283A +@1D92 0009AF00 +@1D93 0007883A +@1D94 103FF226 +@1D95 003FF506 +@1D96 01800074 +@1D97 31888604 +@1D98 2007883A +@1D99 31000017 +@1D9A 280D883A +@1D9B 180B883A +@1D9C 00075D41 +@1D9D 2880030B +@1D9E DEFFED04 +@1D9F DC401015 +@1DA0 1080008C +@1DA1 DC000F15 +@1DA2 DFC01215 +@1DA3 DC801115 +@1DA4 2821883A +@1DA5 2023883A +@1DA6 10000B26 +@1DA7 28C010C4 +@1DA8 00800044 +@1DA9 28800515 +@1DAA 28C00415 +@1DAB 28C00015 +@1DAC DFC01217 +@1DAD DC801117 +@1DAE DC401017 +@1DAF DC000F17 +@1DB0 DEC01304 +@1DB1 F800283A +@1DB2 2940038F +@1DB3 28002116 +@1DB4 D80D883A +@1DB5 0009E800 +@1DB6 10001E16 +@1DB7 D8800117 +@1DB8 00E00014 +@1DB9 113C000C +@1DBA 20C03126 +@1DBB 8080030B +@1DBC 00C80004 +@1DBD 10820014 +@1DBE 8080030D +@1DBF 20C01E26 +@1DC0 04810004 +@1DC1 8809883A +@1DC2 900B883A +@1DC3 00078080 +@1DC4 1009883A +@1DC5 10003126 +@1DC6 80C0030B +@1DC7 00800034 +@1DC8 109A6B04 +@1DC9 88800F15 +@1DCA 18C02014 +@1DCB 84800515 +@1DCC 80C0030D +@1DCD 81000415 +@1DCE 81000015 +@1DCF DFC01217 +@1DD0 DC801117 +@1DD1 DC401017 +@1DD2 DC000F17 +@1DD3 DEC01304 +@1DD4 F800283A +@1DD5 80C0030B +@1DD6 1880200C +@1DD7 10000426 +@1DD8 04801004 +@1DD9 18820014 +@1DDA 8080030D +@1DDB 003FE506 +@1DDC 04810004 +@1DDD 003FFB06 +@1DDE 8140038F +@1DDF 8809883A +@1DE0 0009EF40 +@1DE1 103FDE26 +@1DE2 8080030B +@1DE3 80C010C4 +@1DE4 04810004 +@1DE5 10800054 +@1DE6 8080030D +@1DE7 00800044 +@1DE8 80C00415 +@1DE9 80800515 +@1DEA 80C00015 +@1DEB 003FD506 +@1DEC 80C00A17 +@1DED 00800074 +@1DEE 10A66B04 +@1DEF 18BFCB1E +@1DF0 8080030B +@1DF1 00C10004 +@1DF2 1825883A +@1DF3 10C4B03A +@1DF4 8080030D +@1DF5 80C01315 +@1DF6 003FCA06 +@1DF7 8100030B +@1DF8 2080800C +@1DF9 103FB21E +@1DFA 80C010C4 +@1DFB 21000094 +@1DFC 00800044 +@1DFD 80800515 +@1DFE 8100030D +@1DFF 80C00415 +@1E00 80C00015 +@1E01 003FAA06 +@1E02 DEFFF604 +@1E03 28C002C4 +@1E04 00800584 +@1E05 DC800215 +@1E06 DFC00915 +@1E07 DF000815 +@1E08 DDC00715 +@1E09 DD800615 +@1E0A DD400515 +@1E0B DD000415 +@1E0C DCC00315 +@1E0D DC400115 +@1E0E DC000015 +@1E0F 2025883A +@1E10 10C01236 +@1E11 04400404 +@1E12 8940142E +@1E13 00800304 +@1E14 0007883A +@1E15 90800015 +@1E16 1805883A +@1E17 DFC00917 +@1E18 DF000817 +@1E19 DDC00717 +@1E1A DD800617 +@1E1B DD400517 +@1E1C DD000417 +@1E1D DCC00317 +@1E1E DC800217 +@1E1F DC400117 +@1E20 DC000017 +@1E21 DEC00A04 +@1E22 F800283A +@1E23 00BFFE04 +@1E24 18A2703A +@1E25 883FED16 +@1E26 897FEC36 +@1E27 9009883A +@1E28 000CB980 +@1E29 00807DC4 +@1E2A 14402B2E +@1E2B 8806D27A +@1E2C 18003F1E +@1E2D 880CD0FA +@1E2E 300490FA +@1E2F 02C00074 +@1E30 5AC2B804 +@1E31 12CB883A +@1E32 2C000317 +@1E33 580F883A +@1E34 2C00041E +@1E35 00000A06 +@1E36 1800860E +@1E37 84000317 +@1E38 2C000726 +@1E39 80800117 +@1E3A 00FFFF04 +@1E3B 10C8703A +@1E3C 2447C83A +@1E3D 008003C4 +@1E3E 10FFF70E +@1E3F 31BFFFC4 +@1E40 32400044 +@1E41 02800074 +@1E42 5282BA04 +@1E43 54000217 +@1E44 8280A026 +@1E45 80800117 +@1E46 00FFFF04 +@1E47 10CA703A +@1E48 2C4DC83A +@1E49 008003C4 +@1E4A 11808316 +@1E4B 52800315 +@1E4C 52800215 +@1E4D 30002916 +@1E4E 8147883A +@1E4F 18800117 +@1E50 9009883A +@1E51 10800054 +@1E52 18800115 +@1E53 000CBB80 +@1E54 80C00204 +@1E55 003FC006 +@1E56 02C00074 +@1E57 5AC2B804 +@1E58 8AC5883A +@1E59 14000317 +@1E5A 580F883A +@1E5B 8806D0FA +@1E5C 14006C26 +@1E5D 80C00117 +@1E5E 00BFFF04 +@1E5F 81800317 +@1E60 1886703A +@1E61 80C7883A +@1E62 18800117 +@1E63 81400217 +@1E64 9009883A +@1E65 10800054 +@1E66 18800115 +@1E67 31400215 +@1E68 29800315 +@1E69 000CBB80 +@1E6A 80C00204 +@1E6B 003FAA06 +@1E6C 00800104 +@1E6D 10C0052E +@1E6E 00800504 +@1E6F 10C07836 +@1E70 198016C4 +@1E71 300490FA +@1E72 003FBC06 +@1E73 8804D1BA +@1E74 11800E04 +@1E75 300490FA +@1E76 003FB806 +@1E77 00807FC4 +@1E78 1140BB36 +@1E79 2806D0FA +@1E7A 573FFE04 +@1E7B 00800044 +@1E7C 180890FA +@1E7D 1807D0BA +@1E7E E1C00117 +@1E7F 5909883A +@1E80 21400217 +@1E81 10C4983A +@1E82 81000315 +@1E83 81400215 +@1E84 388EB03A +@1E85 2C000315 +@1E86 24000215 +@1E87 E1C00115 +@1E88 4807883A +@1E89 4800CD16 +@1E8A 1807D0BA +@1E8B 00800044 +@1E8C 10C8983A +@1E8D 39004436 +@1E8E 21C4703A +@1E8F 10000A1E +@1E90 2109883A +@1E91 00BFFF04 +@1E92 4884703A +@1E93 3906703A +@1E94 12400104 +@1E95 1800041E +@1E96 2109883A +@1E97 3904703A +@1E98 4A400104 +@1E99 103FFC26 +@1E9A 480490FA +@1E9B 4819883A +@1E9C 023FFF04 +@1E9D 589B883A +@1E9E 6807883A +@1E9F 014003C4 +@1EA0 1C000317 +@1EA1 1C00041E +@1EA2 0000A706 +@1EA3 3000AB0E +@1EA4 84000317 +@1EA5 1C00A426 +@1EA6 80800117 +@1EA7 1204703A +@1EA8 144DC83A +@1EA9 29BFF90E +@1EAA 81000317 +@1EAB 80C00217 +@1EAC 89400054 +@1EAD 8445883A +@1EAE 20C00215 +@1EAF 19000315 +@1EB0 81400115 +@1EB1 1187883A +@1EB2 31000054 +@1EB3 50800315 +@1EB4 50800215 +@1EB5 19800015 +@1EB6 11000115 +@1EB7 12800215 +@1EB8 12800315 +@1EB9 9009883A +@1EBA 000CBB80 +@1EBB 80C00204 +@1EBC 003F5906 +@1EBD 8109883A +@1EBE 20800117 +@1EBF 80C00217 +@1EC0 81400317 +@1EC1 10800054 +@1EC2 20800115 +@1EC3 28C00215 +@1EC4 19400315 +@1EC5 9009883A +@1EC6 000CBB80 +@1EC7 80C00204 +@1EC8 003F4D06 +@1EC9 80800204 +@1ECA 14000317 +@1ECB 143F911E +@1ECC 1A400084 +@1ECD 003F7306 +@1ECE 88C00054 +@1ECF 8445883A +@1ED0 80C00115 +@1ED1 003FDF06 +@1ED2 E4000217 +@1ED3 00BFFF04 +@1ED4 80C00117 +@1ED5 802D883A +@1ED6 18AA703A +@1ED7 AC401636 +@1ED8 AC49C83A +@1ED9 008003C4 +@1EDA 1100130E +@1EDB 88800054 +@1EDC 8447883A +@1EDD 80800115 +@1EDE 20800054 +@1EDF 18800115 +@1EE0 E0C00215 +@1EE1 9009883A +@1EE2 000CBB80 +@1EE3 80C00204 +@1EE4 003F3106 +@1EE5 39C00117 +@1EE6 573FFE04 +@1EE7 003FA006 +@1EE8 00801504 +@1EE9 10C06736 +@1EEA 8804D33A +@1EEB 11801B84 +@1EEC 300490FA +@1EED 003F4106 +@1EEE D0A6FD17 +@1EEF D0E00717 +@1EF0 053FFFC4 +@1EF1 10800404 +@1EF2 88A7883A +@1EF3 1D000326 +@1EF4 98C3FFC4 +@1EF5 00BC0004 +@1EF6 18A6703A +@1EF7 9009883A +@1EF8 980B883A +@1EF9 00099340 +@1EFA 1009883A +@1EFB 15000426 +@1EFC 854B883A +@1EFD 1029883A +@1EFE 11405A2E +@1EFF 87000C26 +@1F00 E4000217 +@1F01 80C00117 +@1F02 00BFFF04 +@1F03 1884703A +@1F04 14400336 +@1F05 1449C83A +@1F06 008003C4 +@1F07 113FD316 +@1F08 9009883A +@1F09 000CBB80 +@1F0A 0007883A +@1F0B 003F0A06 +@1F0C 05C00074 +@1F0D BDD0CB04 +@1F0E B8800017 +@1F0F 988D883A +@1F10 B9800015 +@1F11 D0E00717 +@1F12 00BFFFC4 +@1F13 18808E26 +@1F14 2145C83A +@1F15 3085883A +@1F16 B8800015 +@1F17 20C001CC +@1F18 18005F1E +@1F19 000B883A +@1F1A A4C5883A +@1F1B 1083FFCC +@1F1C 00C40004 +@1F1D 1887C83A +@1F1E 28E7883A +@1F1F 9009883A +@1F20 980B883A +@1F21 00099340 +@1F22 1007883A +@1F23 00BFFFC4 +@1F24 18807A26 +@1F25 1D05C83A +@1F26 9885883A +@1F27 10C00054 +@1F28 B8800017 +@1F29 A021883A +@1F2A A0C00115 +@1F2B 9885883A +@1F2C B8800015 +@1F2D E5000215 +@1F2E B7003626 +@1F2F 018003C4 +@1F30 35404B36 +@1F31 00800044 +@1F32 A0800115 +@1F33 003FCD06 +@1F34 2808D27A +@1F35 2000371E +@1F36 2808D0FA +@1F37 200690FA +@1F38 1AD1883A +@1F39 41800217 +@1F3A 41805B26 +@1F3B 30800117 +@1F3C 00FFFF04 +@1F3D 10C4703A +@1F3E 2880022E +@1F3F 31800217 +@1F40 41BFFA1E +@1F41 32000317 +@1F42 39C00117 +@1F43 82000315 +@1F44 81800215 +@1F45 07000074 +@1F46 E702B804 +@1F47 34000315 +@1F48 44000215 +@1F49 003F3E06 +@1F4A 63000044 +@1F4B 608000CC +@1F4C 10005D26 +@1F4D 18C00204 +@1F4E 003F5106 +@1F4F 8089883A +@1F50 003F6D06 +@1F51 00805504 +@1F52 10C02036 +@1F53 8804D3FA +@1F54 11801DC4 +@1F55 300490FA +@1F56 003ED806 +@1F57 48C000C4 +@1F58 003F3106 +@1F59 05C00074 +@1F5A BDD0CB04 +@1F5B B8800017 +@1F5C 988D883A +@1F5D B9800015 +@1F5E 293FB21E +@1F5F 2083FFCC +@1F60 103FB01E +@1F61 E4000217 +@1F62 9D45883A +@1F63 10800054 +@1F64 80800115 +@1F65 B8C00017 +@1F66 D0A6FE17 +@1F67 10C0012E +@1F68 D0E6FE15 +@1F69 D0A6FF17 +@1F6A 10FF962E +@1F6B D0E6FF15 +@1F6C 003F9406 +@1F6D 00800104 +@1F6E 11001E36 +@1F6F 2804D1BA +@1F70 11000E04 +@1F71 200690FA +@1F72 003FC506 +@1F73 00815504 +@1F74 10C01D2E +@1F75 01801F84 +@1F76 0080FC04 +@1F77 003EB706 +@1F78 00800204 +@1F79 10CBC83A +@1F7A 2169883A +@1F7B 003F9E06 +@1F7C 00BFFE04 +@1F7D A93FFD04 +@1F7E 2088703A +@1F7F B10B883A +@1F80 00C00144 +@1F81 28C00215 +@1F82 28C00115 +@1F83 B0800117 +@1F84 1080004C +@1F85 2084B03A +@1F86 B0800115 +@1F87 313FDD2E +@1F88 B1400204 +@1F89 9009883A +@1F8A 0006C800 +@1F8B E4000217 +@1F8C 003FD806 +@1F8D 00800504 +@1F8E 11001536 +@1F8F 210016C4 +@1F90 200690FA +@1F91 003FA606 +@1F92 8804D4BA +@1F93 11801F04 +@1F94 300490FA +@1F95 003E9906 +@1F96 2009D0BA +@1F97 01400074 +@1F98 2942B804 +@1F99 00C00044 +@1F9A 28800117 +@1F9B 1906983A +@1F9C 10C4B03A +@1F9D 28800115 +@1F9E 003FA306 +@1F9F 0027883A +@1FA0 00C00044 +@1FA1 003F8606 +@1FA2 D1200715 +@1FA3 003F7306 +@1FA4 00801504 +@1FA5 11001936 +@1FA6 2804D33A +@1FA7 11001B84 +@1FA8 200690FA +@1FA9 003F8E06 +@1FAA 480B883A +@1FAB 6807883A +@1FAC 288000CC +@1FAD 18FFFE04 +@1FAE 297FFFC4 +@1FAF 10001526 +@1FB0 18800217 +@1FB1 10FFFA26 +@1FB2 2109883A +@1FB3 393F1E36 +@1FB4 203F1D26 +@1FB5 21C4703A +@1FB6 10000226 +@1FB7 6013883A +@1FB8 003EE106 +@1FB9 2109883A +@1FBA 3904703A +@1FBB 63000104 +@1FBC 103FFC26 +@1FBD 6013883A +@1FBE 003EDB06 +@1FBF 00805504 +@1FC0 11000836 +@1FC1 2804D3FA +@1FC2 11001DC4 +@1FC3 200690FA +@1FC4 003F7306 +@1FC5 0104303A +@1FC6 388E703A +@1FC7 E1C00115 +@1FC8 003FE906 +@1FC9 00815504 +@1FCA 1100032E +@1FCB 01001F84 +@1FCC 00C0FC04 +@1FCD 003F6A06 +@1FCE 2804D4BA +@1FCF 11001F04 +@1FD0 200690FA +@1FD1 003F6606 +@1FD2 008000C4 +@1FD3 29403FCC +@1FD4 2007883A +@1FD5 1180022E +@1FD6 2084703A +@1FD7 10000B26 +@1FD8 313FFFC4 +@1FD9 3000051E +@1FDA 00002C06 +@1FDB 213FFFC4 +@1FDC 00BFFFC4 +@1FDD 18C00044 +@1FDE 20802826 +@1FDF 18800003 +@1FE0 28BFFA1E +@1FE1 1805883A +@1FE2 F800283A +@1FE3 0011883A +@1FE4 0007883A +@1FE5 01C00104 +@1FE6 4004923A +@1FE7 18C00044 +@1FE8 1151883A +@1FE9 19FFFC1E +@1FEA 02BFBFF4 +@1FEB 52BFBFC4 +@1FEC 02602074 +@1FED 4A602004 +@1FEE 02C000C4 +@1FEF 20800017 +@1FF0 31BFFF04 +@1FF1 200F883A +@1FF2 1204F03A +@1FF3 1287883A +@1FF4 1A46703A +@1FF5 0084303A +@1FF6 10C4703A +@1FF7 10000B26 +@1FF8 20800003 +@1FF9 28800F26 +@1FFA 20800043 +@1FFB 21C00044 +@1FFC 28800C26 +@1FFD 20800083 +@1FFE 21C00084 +@1FFF 28800926 +@2000 208000C3 +@2001 21C000C4 +@2002 28800626 +@2003 21000104 +@2004 59BFEA36 +@2005 2007883A +@2006 003FD106 +@2007 0005883A +@2008 F800283A +@2009 3805883A +@200A F800283A +@200B 01C003C4 +@200C 2007883A +@200D 3980032E +@200E 2904B03A +@200F 108000CC +@2010 10000926 +@2011 30000626 +@2012 30CD883A +@2013 28800003 +@2014 29400044 +@2015 18800005 +@2016 18C00044 +@2017 30FFFB1E +@2018 2005883A +@2019 F800283A +@201A 3811883A +@201B 200F883A +@201C 28C00017 +@201D 31BFFC04 +@201E 38C00015 +@201F 28800117 +@2020 38800115 +@2021 28C00217 +@2022 38C00215 +@2023 28800317 +@2024 29400404 +@2025 38800315 +@2026 39C00404 +@2027 41BFF436 +@2028 008000C4 +@2029 1180072E +@202A 1007883A +@202B 28800017 +@202C 31BFFF04 +@202D 29400104 +@202E 38800015 +@202F 39C00104 +@2030 19BFFA36 +@2031 3807883A +@2032 003FDE06 +@2033 2807883A +@2034 2011883A +@2035 29000C2E +@2036 298F883A +@2037 21C00A2E +@2038 30000726 +@2039 2187883A +@203A 198DC83A +@203B 39FFFFC4 +@203C 38800003 +@203D 18FFFFC4 +@203E 18800005 +@203F 19BFFB1E +@2040 2005883A +@2041 F800283A +@2042 01C003C4 +@2043 39800A36 +@2044 303FFB26 +@2045 400F883A +@2046 320D883A +@2047 28800003 +@2048 29400044 +@2049 38800005 +@204A 39C00044 +@204B 39BFFB1E +@204C 2005883A +@204D F800283A +@204E 1904B03A +@204F 108000CC +@2050 103FF31E +@2051 3811883A +@2052 180B883A +@2053 200F883A +@2054 28C00017 +@2055 31BFFC04 +@2056 38C00015 +@2057 28800117 +@2058 38800115 +@2059 28C00217 +@205A 38C00215 +@205B 28800317 +@205C 29400404 +@205D 38800315 +@205E 39C00404 +@205F 41BFF436 +@2060 008000C4 +@2061 1180072E +@2062 1007883A +@2063 28800017 +@2064 31BFFF04 +@2065 29400104 +@2066 38800015 +@2067 39C00104 +@2068 19BFFA36 +@2069 3811883A +@206A 003FD906 +@206B 008000C4 +@206C 29403FCC +@206D 2007883A +@206E 1180022E +@206F 2084703A +@2070 10000826 +@2071 30000526 +@2072 2805883A +@2073 30CD883A +@2074 18800005 +@2075 18C00044 +@2076 19BFFD1E +@2077 2005883A +@2078 F800283A +@2079 2804923A +@207A 020003C4 +@207B 200F883A +@207C 2884B03A +@207D 1006943A +@207E 10C6B03A +@207F 41800A2E +@2080 4005883A +@2081 31BFFC04 +@2082 38C00015 +@2083 38C00115 +@2084 38C00215 +@2085 38C00315 +@2086 39C00404 +@2087 11BFF936 +@2088 008000C4 +@2089 1180052E +@208A 31BFFF04 +@208B 008000C4 +@208C 38C00015 +@208D 39C00104 +@208E 11BFFB36 +@208F 3807883A +@2090 003FE006 +@2091 28000826 +@2092 28800117 +@2093 21001317 +@2094 1085883A +@2095 1085883A +@2096 1105883A +@2097 10C00017 +@2098 28C00015 +@2099 11400015 +@209A F800283A +@209B 20BFFFEC +@209C 10001426 +@209D 0007883A +@209E 20BFC02C +@209F 1000021E +@20A0 2008923A +@20A1 18C00204 +@20A2 20BC002C +@20A3 1000021E +@20A4 2008913A +@20A5 18C00104 +@20A6 20B0002C +@20A7 1000031E +@20A8 2105883A +@20A9 18C00084 +@20AA 1089883A +@20AB 20000316 +@20AC 2090002C +@20AD 10000626 +@20AE 18C00044 +@20AF 1805883A +@20B0 F800283A +@20B1 2008943A +@20B2 00C00404 +@20B3 003FEA06 +@20B4 00C00804 +@20B5 1805883A +@20B6 F800283A +@20B7 20C00017 +@20B8 188001CC +@20B9 10000A26 +@20BA 1880004C +@20BB 1005003A +@20BC 10002126 +@20BD 1880008C +@20BE 1000251E +@20BF 1804D0BA +@20C0 01400084 +@20C1 20800015 +@20C2 2805883A +@20C3 F800283A +@20C4 18BFFFCC +@20C5 10001526 +@20C6 000B883A +@20C7 18803FCC +@20C8 1000021E +@20C9 1806D23A +@20CA 29400204 +@20CB 188003CC +@20CC 1000021E +@20CD 1806D13A +@20CE 29400104 +@20CF 188000CC +@20D0 1000021E +@20D1 1806D0BA +@20D2 29400084 +@20D3 1880004C +@20D4 1000031E +@20D5 1806D07A +@20D6 18000A26 +@20D7 29400044 +@20D8 2805883A +@20D9 20C00015 +@20DA F800283A +@20DB 1806D43A +@20DC 01400404 +@20DD 003FE906 +@20DE 000B883A +@20DF 2805883A +@20E0 F800283A +@20E1 01400804 +@20E2 2805883A +@20E3 F800283A +@20E4 1804D07A +@20E5 01400044 +@20E6 20800015 +@20E7 003FDA06 +@20E8 20800417 +@20E9 28C00417 +@20EA 10CFC83A +@20EB 38000C1E +@20EC 18C5883A +@20ED 1085883A +@20EE 10C00504 +@20EF 21000504 +@20F0 28CB883A +@20F1 2085883A +@20F2 10BFFF04 +@20F3 297FFF04 +@20F4 11800017 +@20F5 28C00017 +@20F6 30C0031E +@20F7 20BFFA36 +@20F8 3805883A +@20F9 F800283A +@20FA 30C00336 +@20FB 01C00044 +@20FC 3805883A +@20FD F800283A +@20FE 01FFFFC4 +@20FF 003FF806 +@2100 295FFC2C +@2101 013F3034 +@2102 290B883A +@2103 0145C83A +@2104 1007D53A +@2105 000D883A +@2106 0140040E +@2107 280F883A +@2108 3807883A +@2109 3005883A +@210A F800283A +@210B 008004C4 +@210C 193FFB04 +@210D 10C00C0E +@210E 008007C4 +@210F 1107C83A +@2110 00800784 +@2111 01400044 +@2112 11000216 +@2113 00800044 +@2114 10CA983A +@2115 000F883A +@2116 280D883A +@2117 3807883A +@2118 3005883A +@2119 F800283A +@211A 00800234 +@211B 10CFD83A +@211C 000D883A +@211D 3005883A +@211E 3807883A +@211F F800283A +@2120 20800417 +@2121 DEFFF904 +@2122 DD000415 +@2123 1085883A +@2124 25000504 +@2125 1085883A +@2126 DC000015 +@2127 A0A1883A +@2128 DD400515 +@2129 857FFF17 +@212A DC400115 +@212B DFC00615 +@212C A809883A +@212D 2823883A +@212E DCC00315 +@212F DC800215 +@2130 000826C0 +@2131 100B883A +@2132 00800804 +@2133 1145C83A +@2134 88800015 +@2135 00800284 +@2136 80FFFF04 +@2137 11401416 +@2138 008002C4 +@2139 1149C83A +@213A A0C02736 +@213B 000D883A +@213C 28800544 +@213D A906D83A +@213E A884983A +@213F 1CCFFC34 +@2140 11A4B03A +@2141 9005883A +@2142 9807883A +@2143 DFC00617 +@2144 DD400517 +@2145 DD000417 +@2146 DCC00317 +@2147 DC800217 +@2148 DC400117 +@2149 DC000017 +@214A DEC00704 +@214B F800283A +@214C A0C00E36 +@214D 293FFD44 +@214E 000D883A +@214F 20000F26 +@2150 00800804 +@2151 110BC83A +@2152 A0C01236 +@2153 000F883A +@2154 A904983A +@2155 3146D83A +@2156 3108983A +@2157 108FFC34 +@2158 18A6B03A +@2159 3924B03A +@215A 003FE606 +@215B 293FFD44 +@215C 81BFFE17 +@215D 80FFFE04 +@215E 203FF11E +@215F ACCFFC34 +@2160 3025883A +@2161 003FDF06 +@2162 18BFFF17 +@2163 110CD83A +@2164 003FD706 +@2165 18BFFF17 +@2166 114ED83A +@2167 003FEC06 +@2168 DEFFF904 +@2169 DC400215 +@216A 2823883A +@216B D80B883A +@216C DFC00615 +@216D DD000515 +@216E DCC00415 +@216F DC800315 +@2170 2025883A +@2171 00084800 +@2172 8809883A +@2173 D9400104 +@2174 1027883A +@2175 1829883A +@2176 00084800 +@2177 89000417 +@2178 91C00417 +@2179 D9800117 +@217A 180B883A +@217B 390FC83A +@217C 1009883A +@217D D8800017 +@217E 380E917A +@217F 2011883A +@2180 1185C83A +@2181 11C5883A +@2182 1006953A +@2183 2813883A +@2184 00800D0E +@2185 1D29883A +@2186 A00B883A +@2187 480F883A +@2188 9809883A +@2189 400D883A +@218A 000B5E80 +@218B DFC00617 +@218C DD000517 +@218D DCC00417 +@218E DC800317 +@218F DC400217 +@2190 DEC00704 +@2191 F800283A +@2192 28D3C83A +@2193 003FF206 +@2194 DEFFFE04 +@2195 008005C4 +@2196 DC000015 +@2197 DFC00115 +@2198 2021883A +@2199 11000C16 +@219A 200490FA +@219B 00C00074 +@219C 18C11704 +@219D 10C5883A +@219E 12400117 +@219F 12000017 +@21A0 4807883A +@21A1 4005883A +@21A2 DFC00117 +@21A3 DC000017 +@21A4 DEC00204 +@21A5 F800283A +@21A6 0011883A +@21A7 024FFC34 +@21A8 0005883A +@21A9 00D00934 +@21AA 480B883A +@21AB 4009883A +@21AC 180F883A +@21AD 100D883A +@21AE 000B2240 +@21AF 843FFFC4 +@21B0 1011883A +@21B1 1813883A +@21B2 803FF51E +@21B3 4005883A +@21B4 4807883A +@21B5 DFC00117 +@21B6 DC000017 +@21B7 DEC00204 +@21B8 F800283A +@21B9 297FFFC4 +@21BA 30800417 +@21BB 280BD17A +@21BC 31800504 +@21BD 1085883A +@21BE 294B883A +@21BF 294B883A +@21C0 1085883A +@21C1 290B883A +@21C2 3087883A +@21C3 29400104 +@21C4 30C0052E +@21C5 30800017 +@21C6 31800104 +@21C7 20800015 +@21C8 21000104 +@21C9 30FFFB36 +@21CA 2140032E +@21CB 20000015 +@21CC 21000104 +@21CD 217FFD36 +@21CE F800283A +@21CF 20800417 +@21D0 2807D17A +@21D1 21000504 +@21D2 10C00D0E +@21D3 1085883A +@21D4 1085883A +@21D5 208D883A +@21D6 2180182E +@21D7 30BFFF17 +@21D8 30FFFF04 +@21D9 1000041E +@21DA 20C0142E +@21DB 18FFFF04 +@21DC 18800017 +@21DD 103FFC26 +@21DE 00800044 +@21DF F800283A +@21E0 18800A0E +@21E1 294007CC +@21E2 28000826 +@21E3 18C5883A +@21E4 1085883A +@21E5 208D883A +@21E6 30C00017 +@21E7 1944D83A +@21E8 1144983A +@21E9 18BFF41E +@21EA 003FEB06 +@21EB 18C5883A +@21EC 1085883A +@21ED 208D883A +@21EE 003FE706 +@21EF 0005883A +@21F0 F800283A +@21F1 20C01317 +@21F2 DEFFFB04 +@21F3 DCC00315 +@21F4 DC800215 +@21F5 DFC00415 +@21F6 2825883A +@21F7 DC400115 +@21F8 DC000015 +@21F9 2027883A +@21FA 01800404 +@21FB 01400104 +@21FC 18001726 +@21FD 01400044 +@21FE 9485883A +@21FF 2CA2983A +@2200 1085883A +@2201 10C7883A +@2202 1C000017 +@2203 8C4D883A +@2204 318D883A +@2205 9809883A +@2206 31800504 +@2207 80001226 +@2208 80800017 +@2209 18800015 +@220A 80000415 +@220B 80000315 +@220C 8005883A +@220D DFC00417 +@220E DCC00317 +@220F DC800217 +@2210 DC400117 +@2211 DC000017 +@2212 DEC00504 +@2213 F800283A +@2214 0009C240 +@2215 1007883A +@2216 0021883A +@2217 98801315 +@2218 103FE41E +@2219 003FF206 +@221A 0009C240 +@221B 103FF026 +@221C 1021883A +@221D 14800115 +@221E 14400215 +@221F 003FEA06 +@2220 DEFFF504 +@2221 DCC00515 +@2222 04C00044 +@2223 DC000215 +@2224 2821883A +@2225 980B883A +@2226 DDC00915 +@2227 DD800815 +@2228 DD400715 +@2229 DD000615 +@222A DC800415 +@222B DC400315 +@222C DFC00A15 +@222D 3023883A +@222E 382D883A +@222F DDC00B17 +@2230 00087C40 +@2231 1025883A +@2232 00A00034 +@2233 10BFFFC4 +@2234 8888703A +@2235 202AD53A +@2236 00800434 +@2237 10BFFFC4 +@2238 8886703A +@2239 A829003A +@223A 800B883A +@223B D8C00115 +@223C 94000504 +@223D A000021E +@223E 18C00434 +@223F D8C00115 +@2240 28002726 +@2241 D809883A +@2242 D9400015 +@2243 00082DC0 +@2244 100D883A +@2245 10003526 +@2246 D8C00117 +@2247 00800804 +@2248 1185C83A +@2249 D9000017 +@224A 1886983A +@224B 1906B03A +@224C 90C00515 +@224D D8C00117 +@224E 1986D83A +@224F D8C00115 +@2250 180B003A +@2251 00800084 +@2252 114BC83A +@2253 80C00115 +@2254 91400415 +@2255 A0001A1E +@2256 3545883A +@2257 10BEF344 +@2258 00C00D44 +@2259 B0800015 +@225A 1987C83A +@225B B8C00015 +@225C 9005883A +@225D DFC00A17 +@225E DDC00917 +@225F DD800817 +@2260 DD400717 +@2261 DD000617 +@2262 DCC00517 +@2263 DC800417 +@2264 DC400317 +@2265 DC000217 +@2266 DEC00B04 +@2267 F800283A +@2268 D9000104 +@2269 00082DC0 +@226A 11800804 +@226B D8800117 +@226C 94C00415 +@226D 980B883A +@226E 90800515 +@226F A03FE626 +@2270 2945883A +@2271 1085883A +@2272 1405883A +@2273 113FFF17 +@2274 30FEF384 +@2275 2820917A +@2276 B0C00015 +@2277 000826C0 +@2278 80A1C83A +@2279 BC000015 +@227A 003FE106 +@227B D8800017 +@227C 90800515 +@227D D8C00117 +@227E 003FD106 +@227F DEFFFB04 +@2280 DC000015 +@2281 2821883A +@2282 DC800215 +@2283 300B883A +@2284 2025883A +@2285 8009883A +@2286 DC400115 +@2287 DFC00415 +@2288 DCC00315 +@2289 3023883A +@228A 00083A00 +@228B 10004226 +@228C 10005016 +@228D 0027883A +@228E 81400117 +@228F 9009883A +@2290 00087C40 +@2291 1019883A +@2292 82800417 +@2293 88800417 +@2294 81800504 +@2295 5287883A +@2296 1085883A +@2297 18C7883A +@2298 1085883A +@2299 8A000504 +@229A 64C00315 +@229B 30DB883A +@229C 4097883A +@229D 61C00504 +@229E 0013883A +@229F 31000017 +@22A0 41400017 +@22A1 42000104 +@22A2 20BFFFCC +@22A3 28FFFFCC +@22A4 10C5C83A +@22A5 1245883A +@22A6 2008D43A +@22A7 280AD43A +@22A8 1007D43A +@22A9 3880000D +@22AA 2149C83A +@22AB 20C9883A +@22AC 3900008D +@22AD 31800104 +@22AE 39C00104 +@22AF 2013D43A +@22B0 42FFEE36 +@22B1 33400C2E +@22B2 30800017 +@22B3 31800104 +@22B4 10FFFFCC +@22B5 1A47883A +@22B6 1004D43A +@22B7 1809D43A +@22B8 38C0000D +@22B9 1105883A +@22BA 3880008D +@22BB 1013D43A +@22BC 39C00104 +@22BD 337FF436 +@22BE 38BFFF17 +@22BF 38FFFF04 +@22C0 1000041E +@22C1 18FFFF04 +@22C2 18800017 +@22C3 52BFFFC4 +@22C4 103FFC26 +@22C5 6005883A +@22C6 62800415 +@22C7 DFC00417 +@22C8 DCC00317 +@22C9 DC800217 +@22CA DC400117 +@22CB DC000017 +@22CC DEC00504 +@22CD F800283A +@22CE 9009883A +@22CF 000B883A +@22D0 00087C40 +@22D1 1019883A +@22D2 00800044 +@22D3 60800415 +@22D4 6005883A +@22D5 60000515 +@22D6 DFC00417 +@22D7 DCC00317 +@22D8 DC800217 +@22D9 DC400117 +@22DA DC000017 +@22DB DEC00504 +@22DC F800283A +@22DD 880D883A +@22DE 04C00044 +@22DF 8023883A +@22E0 3021883A +@22E1 003FAC06 +@22E2 DEFFF904 +@22E3 28800417 +@22E4 DC000015 +@22E5 3021D17A +@22E6 28C00217 +@22E7 10800044 +@22E8 DC400115 +@22E9 80A3883A +@22EA DD400515 +@22EB DD000415 +@22EC DC800215 +@22ED DFC00615 +@22EE 2825883A +@22EF DCC00315 +@22F0 3029883A +@22F1 202B883A +@22F2 29400117 +@22F3 1C40030E +@22F4 18C7883A +@22F5 29400044 +@22F6 1C7FFD16 +@22F7 A809883A +@22F8 00087C40 +@22F9 1027883A +@22FA 11400504 +@22FB 0400090E +@22FC 2805883A +@22FD 0007883A +@22FE 18C00044 +@22FF 10000015 +@2300 10800104 +@2301 80FFFC1E +@2302 8405883A +@2303 1085883A +@2304 288B883A +@2305 90800417 +@2306 91000504 +@2307 A18007CC +@2308 1085883A +@2309 1085883A +@230A 208F883A +@230B 30001E26 +@230C 00800804 +@230D 1191C83A +@230E 0007883A +@230F 20800017 +@2310 1184983A +@2311 1884B03A +@2312 28800015 +@2313 20C00017 +@2314 21000104 +@2315 29400104 +@2316 1A06D83A +@2317 21FFF736 +@2318 28C00015 +@2319 18000126 +@231A 8C400044 +@231B 88BFFFC4 +@231C 98800415 +@231D A809883A +@231E 900B883A +@231F 00082440 +@2320 9805883A +@2321 DFC00617 +@2322 DD400517 +@2323 DD000417 +@2324 DCC00317 +@2325 DC800217 +@2326 DC400117 +@2327 DC000017 +@2328 DEC00704 +@2329 F800283A +@232A 20800017 +@232B 21000104 +@232C 28800015 +@232D 29400104 +@232E 21FFEC2E +@232F 20800017 +@2330 21000104 +@2331 28800015 +@2332 29400104 +@2333 21FFF636 +@2334 003FE606 +@2335 DEFFF004 +@2336 DC800815 +@2337 DC400715 +@2338 2C800417 +@2339 34400417 +@233A DCC00915 +@233B DC000615 +@233C DFC00F15 +@233D DF000E15 +@233E DDC00D15 +@233F DD800C15 +@2340 DD400B15 +@2341 DD000A15 +@2342 2821883A +@2343 3027883A +@2344 9440040E +@2345 8825883A +@2346 2C400417 +@2347 2827883A +@2348 3021883A +@2349 80800217 +@234A 9447883A +@234B D8C00415 +@234C 81400117 +@234D 10C0010E +@234E 29400044 +@234F 00087C40 +@2350 D8800515 +@2351 D9000417 +@2352 D8C00517 +@2353 2105883A +@2354 1085883A +@2355 19000504 +@2356 2085883A +@2357 D8800315 +@2358 2080052E +@2359 2005883A +@235A D8C00317 +@235B 10000015 +@235C 10800104 +@235D 10FFFC36 +@235E 8C45883A +@235F 9487883A +@2360 9DC00504 +@2361 1085883A +@2362 84000504 +@2363 18C7883A +@2364 B885883A +@2365 DC000015 +@2366 D8800215 +@2367 80F9883A +@2368 B880432E +@2369 D9000115 +@236A B9000017 +@236B 253FFFCC +@236C A0001A26 +@236D DCC00017 +@236E DC800117 +@236F 002B883A +@2370 9C400017 +@2371 94000017 +@2372 A009883A +@2373 897FFFCC +@2374 0002C3C0 +@2375 880AD43A +@2376 80FFFFCC +@2377 A8C7883A +@2378 A009883A +@2379 10E3883A +@237A 8020D43A +@237B 0002C3C0 +@237C 8806D43A +@237D 1405883A +@237E 9CC00104 +@237F 1887883A +@2380 90C0008D +@2381 9440000D +@2382 182AD43A +@2383 94800104 +@2384 9F3FEB36 +@2385 95400015 +@2386 B9000017 +@2387 202AD43A +@2388 A8001C26 +@2389 D9000117 +@238A DD000017 +@238B 002D883A +@238C 24C00017 +@238D 2025883A +@238E 9823883A +@238F A4000017 +@2390 A809883A +@2391 A5000104 +@2392 817FFFCC +@2393 0002C3C0 +@2394 8806D43A +@2395 800AD43A +@2396 94C0000D +@2397 B0C7883A +@2398 10E1883A +@2399 9400008D +@239A A809883A +@239B 94800104 +@239C 0002C3C0 +@239D 94400017 +@239E 8020D43A +@239F 88FFFFCC +@23A0 10C5883A +@23A1 80A7883A +@23A2 982CD43A +@23A3 A73FEB36 +@23A4 94C00015 +@23A5 D8800217 +@23A6 BDC00104 +@23A7 B880042E +@23A8 D8C00117 +@23A9 18C00104 +@23AA D8C00115 +@23AB 003FBE06 +@23AC D9000417 +@23AD 01000C0E +@23AE D8C00317 +@23AF 18BFFF17 +@23B0 18FFFF04 +@23B1 10000326 +@23B2 00000706 +@23B3 18800017 +@23B4 1000051E +@23B5 D9000417 +@23B6 18FFFF04 +@23B7 213FFFC4 +@23B8 D9000415 +@23B9 203FF91E +@23BA D8800417 +@23BB D8C00517 +@23BC 18800415 +@23BD 1805883A +@23BE DFC00F17 +@23BF DF000E17 +@23C0 DDC00D17 +@23C1 DD800C17 +@23C2 DD400B17 +@23C3 DD000A17 +@23C4 DCC00917 +@23C5 DC800817 +@23C6 DC400717 +@23C7 DC000617 +@23C8 DEC01004 +@23C9 F800283A +@23CA DEFFFD04 +@23CB DC000015 +@23CC 04000044 +@23CD DC800115 +@23CE 2825883A +@23CF 800B883A +@23D0 DFC00215 +@23D1 00087C40 +@23D2 14000415 +@23D3 14800515 +@23D4 DFC00217 +@23D5 DC800117 +@23D6 DC000017 +@23D7 DEC00304 +@23D8 F800283A +@23D9 DEFFF604 +@23DA DD800615 +@23DB 2D800417 +@23DC DF000815 +@23DD DDC00715 +@23DE DD400515 +@23DF DD000415 +@23E0 DCC00315 +@23E1 DC800215 +@23E2 DFC00915 +@23E3 DC400115 +@23E4 DC000015 +@23E5 282F883A +@23E6 2039883A +@23E7 302B883A +@23E8 3829883A +@23E9 2C800504 +@23EA 0027883A +@23EB 94400017 +@23EC A80B883A +@23ED 9CC00044 +@23EE 893FFFCC +@23EF 0002C3C0 +@23F0 8808D43A +@23F1 1521883A +@23F2 A80B883A +@23F3 0002C3C0 +@23F4 8008D43A +@23F5 843FFFCC +@23F6 1105883A +@23F7 1006943A +@23F8 1028D43A +@23F9 1C07883A +@23FA 90C00015 +@23FB 94800104 +@23FC 9DBFEE16 +@23FD A0000826 +@23FE B8800217 +@23FF B080130E +@2400 B585883A +@2401 1085883A +@2402 15C5883A +@2403 B0C00044 +@2404 15000515 +@2405 B8C00415 +@2406 B805883A +@2407 DFC00917 +@2408 DF000817 +@2409 DDC00717 +@240A DD800617 +@240B DD400517 +@240C DD000417 +@240D DCC00317 +@240E DC800217 +@240F DC400117 +@2410 DC000017 +@2411 DEC00A04 +@2412 F800283A +@2413 B9400117 +@2414 E009883A +@2415 29400044 +@2416 00087C40 +@2417 B9800417 +@2418 B9400304 +@2419 11000304 +@241A 318D883A +@241B 318D883A +@241C 31800204 +@241D 1023883A +@241E 000802C0 +@241F B80B883A +@2420 E009883A +@2421 00082440 +@2422 882F883A +@2423 003FDC06 +@2424 DEFFFA04 +@2425 308000CC +@2426 DD000415 +@2427 DCC00315 +@2428 DC000015 +@2429 DFC00515 +@242A DC800215 +@242B DC400115 +@242C 3021883A +@242D 2027883A +@242E 2829883A +@242F 10002B1E +@2430 8025D0BA +@2431 90001B26 +@2432 9C001217 +@2433 8000081E +@2434 00003006 +@2435 800B883A +@2436 800D883A +@2437 9809883A +@2438 90001426 +@2439 80800017 +@243A 10001B26 +@243B 1021883A +@243C 9080004C +@243D 1005003A +@243E 9025D07A +@243F 800D883A +@2440 9809883A +@2441 A00B883A +@2442 103FF21E +@2443 0008CD40 +@2444 A00B883A +@2445 9809883A +@2446 1023883A +@2447 00082440 +@2448 8829883A +@2449 800B883A +@244A 800D883A +@244B 9809883A +@244C 903FEC1E +@244D A005883A +@244E DFC00517 +@244F DD000417 +@2450 DCC00317 +@2451 DC800217 +@2452 DC400117 +@2453 DC000017 +@2454 DEC00604 +@2455 F800283A +@2456 0008CD40 +@2457 80800015 +@2458 1021883A +@2459 10000015 +@245A 003FE106 +@245B 1085883A +@245C 00C00074 +@245D 18C15D04 +@245E 1085883A +@245F 10C5883A +@2460 11BFFF17 +@2461 000F883A +@2462 0008F640 +@2463 1029883A +@2464 003FCB06 +@2465 9809883A +@2466 01409C44 +@2467 0008F280 +@2468 98801215 +@2469 1021883A +@246A 10000015 +@246B 003FD006 +@246C DEFFF904 +@246D DCC00315 +@246E DC800215 +@246F 2827883A +@2470 2025883A +@2471 01400244 +@2472 39000204 +@2473 DD000415 +@2474 DC400115 +@2475 DFC00615 +@2476 DD400515 +@2477 DC000015 +@2478 3829883A +@2479 3023883A +@247A 0002B6C0 +@247B 00C00044 +@247C 1880350E +@247D 000B883A +@247E 18C7883A +@247F 29400044 +@2480 18BFFD16 +@2481 9009883A +@2482 00087C40 +@2483 1011883A +@2484 D8800717 +@2485 00C00044 +@2486 01800244 +@2487 40800515 +@2488 40C00415 +@2489 3440260E +@248A 3021883A +@248B 99AB883A +@248C 9C05883A +@248D 11C00007 +@248E 400B883A +@248F 9009883A +@2490 39FFF404 +@2491 01800284 +@2492 0008F640 +@2493 84000044 +@2494 1011883A +@2495 8C3FF61E +@2496 AC45883A +@2497 117FFE04 +@2498 880D883A +@2499 35000C0E +@249A A185C83A +@249B 2821883A +@249C 28A3883A +@249D 81C00007 +@249E 400B883A +@249F 9009883A +@24A0 39FFF404 +@24A1 01800284 +@24A2 0008F640 +@24A3 84000044 +@24A4 1011883A +@24A5 847FF71E +@24A6 4005883A +@24A7 DFC00617 +@24A8 DD400517 +@24A9 DD000417 +@24AA DCC00317 +@24AB DC800217 +@24AC DC400117 +@24AD DC000017 +@24AE DEC00704 +@24AF F800283A +@24B0 99400284 +@24B1 003FE706 +@24B2 000B883A +@24B3 003FCD06 +@24B4 DEFFF404 +@24B5 DD800815 +@24B6 DC800415 +@24B7 DC400315 +@24B8 DFC00B15 +@24B9 DF000A15 +@24BA DDC00915 +@24BB DD400715 +@24BC DD000615 +@24BD DCC00515 +@24BE DC000215 +@24BF 2825883A +@24C0 3023883A +@24C1 202D883A +@24C2 2800C926 +@24C3 000CB980 +@24C4 943FFE04 +@24C5 88C002C4 +@24C6 00800584 +@24C7 82000117 +@24C8 10C01B2E +@24C9 00BFFE04 +@24CA 188E703A +@24CB 3839883A +@24CC 38001A16 +@24CD E4401936 +@24CE 013FFF04 +@24CF 4126703A +@24D0 99C02616 +@24D1 802B883A +@24D2 9829883A +@24D3 84000204 +@24D4 A80F883A +@24D5 A70DC83A +@24D6 008003C4 +@24D7 1180C136 +@24D8 38800117 +@24D9 A549883A +@24DA 1080004C +@24DB A084B03A +@24DC 38800115 +@24DD 20C00117 +@24DE 18C00054 +@24DF 20C00115 +@24E0 B009883A +@24E1 000CBB80 +@24E2 8023883A +@24E3 00000606 +@24E4 01C00404 +@24E5 3839883A +@24E6 E47FE72E +@24E7 00800304 +@24E8 0023883A +@24E9 B0800015 +@24EA 8805883A +@24EB DFC00B17 +@24EC DF000A17 +@24ED DDC00917 +@24EE DD800817 +@24EF DD400717 +@24F0 DD000617 +@24F1 DCC00517 +@24F2 DC800417 +@24F3 DC400317 +@24F4 DC000217 +@24F5 DEC00C04 +@24F6 F800283A +@24F7 00800074 +@24F8 1082B804 +@24F9 12400217 +@24FA 84CD883A +@24FB 802B883A +@24FC 3240B926 +@24FD 31400117 +@24FE 00BFFF84 +@24FF 2884703A +@2500 1185883A +@2501 10C00117 +@2502 18C0004C +@2503 1807003A +@2504 1800A326 +@2505 2908703A +@2506 9929883A +@2507 A1C0A30E +@2508 4080004C +@2509 1000551E +@250A 80800017 +@250B 80AFC83A +@250C B8C00117 +@250D 00BFFF04 +@250E 1884703A +@250F 30002E26 +@2510 3240B926 +@2511 98A9883A +@2512 2509883A +@2513 D9000015 +@2514 21C02A16 +@2515 30800317 +@2516 30C00217 +@2517 01400904 +@2518 99BFFF04 +@2519 18800315 +@251A 10C00215 +@251B B9000317 +@251C B8800217 +@251D B82B883A +@251E BC000204 +@251F 20800215 +@2520 11000315 +@2521 2980E436 +@2522 008004C4 +@2523 9009883A +@2524 8011883A +@2525 11800F2E +@2526 90800017 +@2527 BA000404 +@2528 91000204 +@2529 B8800215 +@252A 90C00117 +@252B 008006C4 +@252C B8C00315 +@252D 1180072E +@252E 90C00217 +@252F BA000604 +@2530 91000404 +@2531 B8C00415 +@2532 90800317 +@2533 B8800515 +@2534 3140E726 +@2535 20800017 +@2536 DD000017 +@2537 B80F883A +@2538 40800015 +@2539 20C00117 +@253A 40C00115 +@253B 20800217 +@253C 40800215 +@253D 003F9706 +@253E 98A9883A +@253F A1C01F16 +@2540 B8C00317 +@2541 B8800217 +@2542 99BFFF04 +@2543 01400904 +@2544 B82B883A +@2545 18800215 +@2546 10C00315 +@2547 BC000204 +@2548 2980C336 +@2549 008004C4 +@254A 9009883A +@254B 8011883A +@254C 11800F2E +@254D 90800017 +@254E BA000404 +@254F 91000204 +@2550 B8800215 +@2551 90C00117 +@2552 008006C4 +@2553 B8C00315 +@2554 1180072E +@2555 90C00217 +@2556 BA000604 +@2557 91000404 +@2558 B8C00415 +@2559 90800317 +@255A B8800515 +@255B 3140C726 +@255C 20800017 +@255D B80F883A +@255E 003FD906 +@255F 880B883A +@2560 B009883A +@2561 00078080 +@2562 1023883A +@2563 10002526 +@2564 80800117 +@2565 00FFFF84 +@2566 893FFE04 +@2567 10C4703A +@2568 8085883A +@2569 20809526 +@256A 99BFFF04 +@256B 01C00904 +@256C 39804536 +@256D 008004C4 +@256E 9009883A +@256F 880B883A +@2570 11800F2E +@2571 90800017 +@2572 89400204 +@2573 91000204 +@2574 88800015 +@2575 90C00117 +@2576 008006C4 +@2577 88C00115 +@2578 1180072E +@2579 90C00217 +@257A 89400404 +@257B 91000404 +@257C 88C00215 +@257D 90800317 +@257E 88800315 +@257F 31C09126 +@2580 20800017 +@2581 28800015 +@2582 20C00117 +@2583 28C00115 +@2584 20800217 +@2585 28800215 +@2586 900B883A +@2587 B009883A +@2588 0006C800 +@2589 B009883A +@258A 000CBB80 +@258B 003F5E06 +@258C 300B883A +@258D DFC00B17 +@258E DF000A17 +@258F DDC00917 +@2590 DD800817 +@2591 DD400717 +@2592 DD000617 +@2593 DCC00517 +@2594 DC800417 +@2595 DC400317 +@2596 DC000217 +@2597 DEC00C04 +@2598 00078081 +@2599 38800117 +@259A E54B883A +@259B 31000054 +@259C 1080004C +@259D 1704B03A +@259E 38800115 +@259F 29000115 +@25A0 2987883A +@25A1 18800117 +@25A2 29400204 +@25A3 B009883A +@25A4 10800054 +@25A5 18800115 +@25A6 0006C800 +@25A7 003F3806 +@25A8 000D883A +@25A9 0009883A +@25AA 003F5D06 +@25AB 30C00217 +@25AC 30800317 +@25AD 800F883A +@25AE 84000204 +@25AF 10C00215 +@25B0 18800315 +@25B1 003F2306 +@25B2 8809883A +@25B3 900B883A +@25B4 00080CC0 +@25B5 003FD006 +@25B6 30800117 +@25B7 E0C00404 +@25B8 1108703A +@25B9 9905883A +@25BA 10FF4D16 +@25BB 1705C83A +@25BC 870B883A +@25BD 10800054 +@25BE 28800115 +@25BF 80C00117 +@25C0 00800074 +@25C1 1082B804 +@25C2 B009883A +@25C3 18C0004C +@25C4 E0C6B03A +@25C5 11400215 +@25C6 80C00115 +@25C7 000CBB80 +@25C8 84400204 +@25C9 003F2006 +@25CA 98A9883A +@25CB 2509883A +@25CC E0800404 +@25CD D9000115 +@25CE 20BF7016 +@25CF B8C00317 +@25D0 B8800217 +@25D1 99BFFF04 +@25D2 01400904 +@25D3 18800215 +@25D4 10C00315 +@25D5 BC400204 +@25D6 29804136 +@25D7 008004C4 +@25D8 9009883A +@25D9 880F883A +@25DA 11800F2E +@25DB 90800017 +@25DC B9C00404 +@25DD 91000204 +@25DE B8800215 +@25DF 90C00117 +@25E0 008006C4 +@25E1 B8C00315 +@25E2 1180072E +@25E3 90C00217 +@25E4 B9C00604 +@25E5 91000404 +@25E6 B8C00415 +@25E7 90800317 +@25E8 B8800515 +@25E9 31404026 +@25EA 20800017 +@25EB 38800015 +@25EC 20C00117 +@25ED 38C00115 +@25EE 20800217 +@25EF 38800215 +@25F0 D8C00117 +@25F1 BF0B883A +@25F2 B009883A +@25F3 1F05C83A +@25F4 10800054 +@25F5 28800115 +@25F6 B8C00117 +@25F7 00800074 +@25F8 1082B804 +@25F9 11400215 +@25FA 18C0004C +@25FB E0C6B03A +@25FC B8C00115 +@25FD 000CBB80 +@25FE 003EEB06 +@25FF 20800117 +@2600 00FFFF04 +@2601 800F883A +@2602 10C4703A +@2603 98A9883A +@2604 84000204 +@2605 003ECF06 +@2606 900B883A +@2607 8009883A +@2608 00080CC0 +@2609 DD000017 +@260A B80F883A +@260B 003EC906 +@260C 900B883A +@260D 8009883A +@260E 00080CC0 +@260F B80F883A +@2610 003EC406 +@2611 90C00417 +@2612 89400604 +@2613 91000604 +@2614 88C00415 +@2615 90800517 +@2616 88800515 +@2617 003F6806 +@2618 900B883A +@2619 8809883A +@261A 00080CC0 +@261B 003FD406 +@261C 90C00417 +@261D 91000604 +@261E BA000804 +@261F B8C00615 +@2620 90800517 +@2621 B8800715 +@2622 003F1206 +@2623 90C00417 +@2624 91000604 +@2625 BA000804 +@2626 B8C00615 +@2627 90800517 +@2628 B8800715 +@2629 003F3206 +@262A 90C00417 +@262B 91000604 +@262C B9C00804 +@262D B8C00615 +@262E 90800517 +@262F B8800715 +@2630 003FB906 +@2631 200D883A +@2632 0109C83A +@2633 2188B03A +@2634 2008D7FA +@2635 00A00034 +@2636 10BFFFC4 +@2637 1144703A +@2638 2088B03A +@2639 009FFC34 +@263A 1105C83A +@263B 0087C83A +@263C 10C4B03A +@263D 1004D7FA +@263E 00C00044 +@263F 1885C83A +@2640 F800283A +@2641 200D883A +@2642 0109C83A +@2643 2188B03A +@2644 2008D7FA +@2645 00A00034 +@2646 10BFFFC4 +@2647 1144703A +@2648 2088B03A +@2649 009FFC34 +@264A 1105C83A +@264B 1004D7FA +@264C F800283A +@264D DEFFFD04 +@264E DC000015 +@264F 04000074 +@2650 840F8404 +@2651 DC400115 +@2652 80000015 +@2653 2023883A +@2654 2809883A +@2655 DFC00215 +@2656 000CDD40 +@2657 1007883A +@2658 00BFFFC4 +@2659 18800626 +@265A 1805883A +@265B DFC00217 +@265C DC400117 +@265D DC000017 +@265E DEC00304 +@265F F800283A +@2660 80800017 +@2661 103FF826 +@2662 88800015 +@2663 1805883A +@2664 DFC00217 +@2665 DC400117 +@2666 DC000017 +@2667 DEC00304 +@2668 F800283A +@2669 2940038F +@266A 0009CEC1 +@266B DEFFFE04 +@266C DC000015 +@266D 2821883A +@266E 2940038F +@266F DFC00115 +@2670 0009F640 +@2671 1007883A +@2672 00BFFFC4 +@2673 18800926 +@2674 8080030B +@2675 80C01415 +@2676 10840014 +@2677 8080030D +@2678 1805883A +@2679 DFC00117 +@267A DC000017 +@267B DEC00204 +@267C F800283A +@267D 8080030B +@267E 10BBFFCC +@267F 8080030D +@2680 1805883A +@2681 DFC00117 +@2682 DC000017 +@2683 DEC00204 +@2684 F800283A +@2685 2880030B +@2686 DEFFFB04 +@2687 DCC00315 +@2688 1080400C +@2689 DC800215 +@268A DC400115 +@268B DC000015 +@268C 3027883A +@268D 3825883A +@268E DFC00415 +@268F 2821883A +@2690 000D883A +@2691 01C00084 +@2692 2023883A +@2693 10000226 +@2694 2940038F +@2695 0009F640 +@2696 8080030B +@2697 8140038F +@2698 8809883A +@2699 10BBFFCC +@269A 980D883A +@269B 900F883A +@269C 8080030D +@269D DFC00417 +@269E DCC00317 +@269F DC800217 +@26A0 DC400117 +@26A1 DC000017 +@26A2 DEC00504 +@26A3 0009BAC1 +@26A4 DEFFFE04 +@26A5 DC000015 +@26A6 2821883A +@26A7 2940038F +@26A8 DFC00115 +@26A9 0009FDC0 +@26AA 1007883A +@26AB 10000816 +@26AC 80801417 +@26AD 10C5883A +@26AE 80801415 +@26AF 1805883A +@26B0 DFC00117 +@26B1 DC000017 +@26B2 DEC00204 +@26B3 F800283A +@26B4 8080030B +@26B5 10BBFFCC +@26B6 8080030D +@26B7 1805883A +@26B8 DFC00117 +@26B9 DC000017 +@26BA DEC00204 +@26BB F800283A +@26BC 2144B03A +@26BD 108000CC +@26BE 10001D1E +@26BF 200F883A +@26C0 28800017 +@26C1 21000017 +@26C2 280D883A +@26C3 2080161E +@26C4 023FBFF4 +@26C5 423FBFC4 +@26C6 2207883A +@26C7 01602074 +@26C8 29602004 +@26C9 1946703A +@26CA 0104303A +@26CB 10C4703A +@26CC 10001C1E +@26CD 4013883A +@26CE 2811883A +@26CF 00000106 +@26D0 1800181E +@26D1 39C00104 +@26D2 39000017 +@26D3 31800104 +@26D4 31400017 +@26D5 2245883A +@26D6 1204703A +@26D7 0106303A +@26D8 1886703A +@26D9 217FF626 +@26DA 3809883A +@26DB 300B883A +@26DC 20C00007 +@26DD 1800051E +@26DE 00000606 +@26DF 21000044 +@26E0 20C00007 +@26E1 29400044 +@26E2 18000226 +@26E3 28800007 +@26E4 18BFFA26 +@26E5 20C00003 +@26E6 28800003 +@26E7 1885C83A +@26E8 F800283A +@26E9 0005883A +@26EA F800283A +@26EB DEFFFD04 +@26EC DC000015 +@26ED 04000074 +@26EE 840F8404 +@26EF DC400115 +@26F0 80000015 +@26F1 2023883A +@26F2 2809883A +@26F3 300B883A +@26F4 380D883A +@26F5 DFC00215 +@26F6 000CEC00 +@26F7 1007883A +@26F8 00BFFFC4 +@26F9 18800626 +@26FA 1805883A +@26FB DFC00217 +@26FC DC400117 +@26FD DC000017 +@26FE DEC00304 +@26FF F800283A +@2700 80800017 +@2701 103FF826 +@2702 88800015 +@2703 1805883A +@2704 DFC00217 +@2705 DC400117 +@2706 DC000017 +@2707 DEC00304 +@2708 F800283A +@2709 DEFFFE04 +@270A DC400015 +@270B 2023883A +@270C 2809883A +@270D 300B883A +@270E DFC00115 +@270F 0002C3C0 +@2710 100B883A +@2711 8809883A +@2712 00078080 +@2713 1023883A +@2714 01C00904 +@2715 10000D26 +@2716 10FFFF17 +@2717 1009883A +@2718 00BFFF04 +@2719 1886703A +@271A 1887883A +@271B 180D883A +@271C 000B883A +@271D 38C01736 +@271E 008004C4 +@271F 10C00836 +@2720 20000215 +@2721 20000015 +@2722 20000115 +@2723 8805883A +@2724 DFC00117 +@2725 DC400017 +@2726 DEC00204 +@2727 F800283A +@2728 008006C4 +@2729 88000015 +@272A 88000115 +@272B 89000204 +@272C 10FFF32E +@272D 88000215 +@272E 88000315 +@272F 89000404 +@2730 19FFEF1E +@2731 89000604 +@2732 88000415 +@2733 88000515 +@2734 003FEB06 +@2735 00081AC0 +@2736 8805883A +@2737 DFC00117 +@2738 DC400017 +@2739 DEC00204 +@273A F800283A +@273B DEFFFD04 +@273C DC000015 +@273D 04000074 +@273E 840F8404 +@273F DC400115 +@2740 80000015 +@2741 2023883A +@2742 2809883A +@2743 DFC00215 +@2744 000C5040 +@2745 1007883A +@2746 00BFFFC4 +@2747 18800626 +@2748 1805883A +@2749 DFC00217 +@274A DC400117 +@274B DC000017 +@274C DEC00304 +@274D F800283A +@274E 80800017 +@274F 103FF826 +@2750 88800015 +@2751 1805883A +@2752 DFC00217 +@2753 DC400117 +@2754 DC000017 +@2755 DEC00304 +@2756 F800283A +@2757 DEFFFC04 +@2758 DC400115 +@2759 DC000015 +@275A DFC00315 +@275B DC800215 +@275C 2821883A +@275D 2023883A +@275E 28002926 +@275F 00068B80 +@2760 88000226 +@2761 88800E17 +@2762 10002D26 +@2763 8080030F +@2764 10002226 +@2765 8809883A +@2766 800B883A +@2767 00066300 +@2768 1025883A +@2769 80800B17 +@276A 10000426 +@276B 81400717 +@276C 8809883A +@276D 103EE83A +@276E 10002A16 +@276F 8080030B +@2770 1080200C +@2771 1000231E +@2772 81400C17 +@2773 28000526 +@2774 80801004 +@2775 28800226 +@2776 8809883A +@2777 0006C800 +@2778 80000C15 +@2779 81401117 +@277A 28000326 +@277B 8809883A +@277C 0006C800 +@277D 80001115 +@277E 8000030D +@277F 00068BC0 +@2780 9005883A +@2781 DFC00317 +@2782 DC800217 +@2783 DC400117 +@2784 DC000017 +@2785 DEC00404 +@2786 F800283A +@2787 00068BC0 +@2788 0025883A +@2789 9005883A +@278A DFC00317 +@278B DC800217 +@278C DC400117 +@278D DC000017 +@278E DEC00404 +@278F F800283A +@2790 8809883A +@2791 00068C80 +@2792 8080030F +@2793 103FD11E +@2794 003FF206 +@2795 81400417 +@2796 8809883A +@2797 0006C800 +@2798 003FD906 +@2799 04BFFFC4 +@279A 003FD406 +@279B 00800074 +@279C 10888604 +@279D 200B883A +@279E 11000017 +@279F 0009D5C1 +@27A0 DEFFFD04 +@27A1 DC000015 +@27A2 04000074 +@27A3 840F8404 +@27A4 DC400115 +@27A5 80000015 +@27A6 2023883A +@27A7 2809883A +@27A8 300B883A +@27A9 DFC00215 +@27AA 000C6900 +@27AB 1007883A +@27AC 00BFFFC4 +@27AD 18800626 +@27AE 1805883A +@27AF DFC00217 +@27B0 DC400117 +@27B1 DC000017 +@27B2 DEC00304 +@27B3 F800283A +@27B4 80800017 +@27B5 103FF826 +@27B6 88800015 +@27B7 1805883A +@27B8 DFC00217 +@27B9 DC400117 +@27BA DC000017 +@27BB DEC00304 +@27BC F800283A +@27BD DEFFFD04 +@27BE DC000015 +@27BF 04000074 +@27C0 840F8404 +@27C1 DC400115 +@27C2 80000015 +@27C3 2023883A +@27C4 2809883A +@27C5 DFC00215 +@27C6 000C7C80 +@27C7 1007883A +@27C8 00BFFFC4 +@27C9 18800626 +@27CA 1805883A +@27CB DFC00217 +@27CC DC400117 +@27CD DC000017 +@27CE DEC00304 +@27CF F800283A +@27D0 80800017 +@27D1 103FF826 +@27D2 88800015 +@27D3 1805883A +@27D4 DFC00217 +@27D5 DC400117 +@27D6 DC000017 +@27D7 DEC00304 +@27D8 F800283A +@27D9 DEFFFD04 +@27DA DC000015 +@27DB 04000074 +@27DC 840F8404 +@27DD DC400115 +@27DE 80000015 +@27DF 2023883A +@27E0 2809883A +@27E1 300B883A +@27E2 380D883A +@27E3 DFC00215 +@27E4 000C9D80 +@27E5 1007883A +@27E6 00BFFFC4 +@27E7 18800626 +@27E8 1805883A +@27E9 DFC00217 +@27EA DC400117 +@27EB DC000017 +@27EC DEC00304 +@27ED F800283A +@27EE 80800017 +@27EF 103FF826 +@27F0 88800015 +@27F1 1805883A +@27F2 DFC00217 +@27F3 DC400117 +@27F4 DC000017 +@27F5 DEC00304 +@27F6 F800283A +@27F7 DEFFFD04 +@27F8 DC000015 +@27F9 04000074 +@27FA 840F8404 +@27FB DC400115 +@27FC 80000015 +@27FD 2023883A +@27FE 2809883A +@27FF 300B883A +@2800 380D883A +@2801 DFC00215 +@2802 000CBD80 +@2803 1007883A +@2804 00BFFFC4 +@2805 18800626 +@2806 1805883A +@2807 DFC00217 +@2808 DC400117 +@2809 DC000017 +@280A DEC00304 +@280B F800283A +@280C 80800017 +@280D 103FF826 +@280E 88800015 +@280F 1805883A +@2810 DFC00217 +@2811 DC400117 +@2812 DC000017 +@2813 DEC00304 +@2814 F800283A +@2815 DEFFF104 +@2816 0015883A +@2817 2005883A +@2818 3011883A +@2819 DF000D15 +@281A DD400A15 +@281B DCC00815 +@281C DFC00E15 +@281D DDC00C15 +@281E DD800B15 +@281F DD000915 +@2820 DC800715 +@2821 DC400615 +@2822 DC000515 +@2823 DA800315 +@2824 4027883A +@2825 1039883A +@2826 282B883A +@2827 DA800415 +@2828 3800401E +@2829 2A006536 +@282A 4000B526 +@282B 00BFFFD4 +@282C 14C0AD36 +@282D 00803FC4 +@282E 14C15E36 +@282F 000B883A +@2830 0005883A +@2831 9884D83A +@2832 01000074 +@2833 21016504 +@2834 01800804 +@2835 1105883A +@2836 10C00003 +@2837 28C7883A +@2838 30E9C83A +@2839 A0010A1E +@283A 982ED43A +@283B ACEBC83A +@283C 9DBFFFCC +@283D 05000044 +@283E A809883A +@283F B80B883A +@2840 0002C2C0 +@2841 100B883A +@2842 B009883A +@2843 1021883A +@2844 0002C3C0 +@2845 A809883A +@2846 B80B883A +@2847 1023883A +@2848 0002C340 +@2849 1004943A +@284A E006D43A +@284B 10C4B03A +@284C 1440042E +@284D 14C5883A +@284E 843FFFC4 +@284F 14C00136 +@2850 14415C36 +@2851 1463C83A +@2852 8809883A +@2853 B80B883A +@2854 0002C2C0 +@2855 100B883A +@2856 B009883A +@2857 102B883A +@2858 0002C3C0 +@2859 8809883A +@285A B80B883A +@285B 1025883A +@285C 0002C340 +@285D 1004943A +@285E E0FFFFCC +@285F 10C4B03A +@2860 1480042E +@2861 9885883A +@2862 AD7FFFC4 +@2863 14C00136 +@2864 14813C36 +@2865 8004943A +@2866 A009883A +@2867 A884B03A +@2868 00001506 +@2869 380D883A +@286A 29C06C36 +@286B 00BFFFD4 +@286C 11C06436 +@286D 00803FC4 +@286E 11C11836 +@286F 000B883A +@2870 0005883A +@2871 3084D83A +@2872 01000074 +@2873 21016504 +@2874 01C00804 +@2875 1105883A +@2876 10C00003 +@2877 28C7883A +@2878 38EDC83A +@2879 B000731E +@287A 35400136 +@287B E4C05B36 +@287C 00800044 +@287D 0009883A +@287E D8800315 +@287F D9400317 +@2880 2007883A +@2881 D9000415 +@2882 2805883A +@2883 DFC00E17 +@2884 DF000D17 +@2885 DDC00C17 +@2886 DD800B17 +@2887 DD400A17 +@2888 DD000917 +@2889 DCC00817 +@288A DC800717 +@288B DC400617 +@288C DC000517 +@288D DEC00F04 +@288E F800283A +@288F 00BFFFD4 +@2890 12005636 +@2891 00803FC4 +@2892 12010036 +@2893 000B883A +@2894 0005883A +@2895 9884D83A +@2896 01000074 +@2897 21016504 +@2898 01800804 +@2899 1105883A +@289A 10C00003 +@289B 28C7883A +@289C 30CBC83A +@289D 28000626 +@289E 3145C83A +@289F E084D83A +@28A0 A946983A +@28A1 E178983A +@28A2 9966983A +@28A3 18AAB03A +@28A4 982ED43A +@28A5 A809883A +@28A6 9CBFFFCC +@28A7 B80B883A +@28A8 0002C2C0 +@28A9 100B883A +@28AA 9009883A +@28AB 1021883A +@28AC 0002C3C0 +@28AD A809883A +@28AE B80B883A +@28AF 1023883A +@28B0 0002C340 +@28B1 1004943A +@28B2 E006D43A +@28B3 10C4B03A +@28B4 1440042E +@28B5 14C5883A +@28B6 843FFFC4 +@28B7 14C00136 +@28B8 1440EA36 +@28B9 1463C83A +@28BA 8809883A +@28BB B80B883A +@28BC 0002C2C0 +@28BD 100B883A +@28BE 9009883A +@28BF 102B883A +@28C0 0002C3C0 +@28C1 8809883A +@28C2 B80B883A +@28C3 1025883A +@28C4 0002C340 +@28C5 1004943A +@28C6 E0FFFFCC +@28C7 10C4B03A +@28C8 1480042E +@28C9 9885883A +@28CA AD7FFFC4 +@28CB 14C00136 +@28CC 1480D936 +@28CD 8004943A +@28CE 0009883A +@28CF A884B03A +@28D0 003FAD06 +@28D1 00804034 +@28D2 10BFFFC4 +@28D3 11C0B636 +@28D4 01400404 +@28D5 2805883A +@28D6 003F9A06 +@28D7 0005883A +@28D8 0009883A +@28D9 003FA406 +@28DA 00804034 +@28DB 10BFFFC4 +@28DC 14C0B336 +@28DD 01400404 +@28DE 2805883A +@28DF 003F5106 +@28E0 01000044 +@28E1 000B883A +@28E2 0002C2C0 +@28E3 1027883A +@28E4 00BFFFD4 +@28E5 14FFF436 +@28E6 003F4606 +@28E7 00804034 +@28E8 10BFFFC4 +@28E9 1200AC36 +@28EA 01400404 +@28EB 2805883A +@28EC 003FA806 +@28ED 3D85C83A +@28EE 3588983A +@28EF 9886D83A +@28F0 A8A2D83A +@28F1 E084D83A +@28F2 20EEB03A +@28F3 B824D43A +@28F4 AD86983A +@28F5 8809883A +@28F6 900B883A +@28F7 1886B03A +@28F8 D8C00115 +@28F9 BC3FFFCC +@28FA 0002C2C0 +@28FB 100B883A +@28FC 8009883A +@28FD 1029883A +@28FE 0002C3C0 +@28FF 900B883A +@2900 8809883A +@2901 102B883A +@2902 0002C340 +@2903 D9400117 +@2904 1004943A +@2905 9DA6983A +@2906 2806D43A +@2907 10C4B03A +@2908 1540032E +@2909 15C5883A +@290A A53FFFC4 +@290B 15C0912E +@290C 1563C83A +@290D 8809883A +@290E 900B883A +@290F 0002C2C0 +@2910 100B883A +@2911 8009883A +@2912 102B883A +@2913 0002C3C0 +@2914 8809883A +@2915 900B883A +@2916 1021883A +@2917 0002C340 +@2918 DA800117 +@2919 1004943A +@291A 50FFFFCC +@291B 10C6B03A +@291C 1C00032E +@291D 1DC7883A +@291E AD7FFFC4 +@291F 1DC0792E +@2920 A004943A +@2921 982ED43A +@2922 9CFFFFCC +@2923 A8A4B03A +@2924 947FFFCC +@2925 902AD43A +@2926 8809883A +@2927 980B883A +@2928 1C21C83A +@2929 0002C3C0 +@292A 8809883A +@292B B80B883A +@292C 1029883A +@292D 0002C3C0 +@292E 980B883A +@292F A809883A +@2930 1023883A +@2931 0002C3C0 +@2932 A809883A +@2933 B80B883A +@2934 1027883A +@2935 0002C3C0 +@2936 1009883A +@2937 A004D43A +@2938 8CE3883A +@2939 1447883A +@293A 1CC0022E +@293B 00800074 +@293C 2089883A +@293D 1804D43A +@293E 2085883A +@293F 80804436 +@2940 80803E26 +@2941 9005883A +@2942 0009883A +@2943 003F3A06 +@2944 9D26983A +@2945 3505C83A +@2946 A8A2D83A +@2947 982ED43A +@2948 E084D83A +@2949 AD06983A +@294A 8809883A +@294B B80B883A +@294C 1886B03A +@294D D8C00015 +@294E 9DBFFFCC +@294F 0002C2C0 +@2950 100B883A +@2951 B009883A +@2952 D8800215 +@2953 0002C3C0 +@2954 8809883A +@2955 B80B883A +@2956 102B883A +@2957 0002C340 +@2958 D9000017 +@2959 1004943A +@295A 2006D43A +@295B 10C4B03A +@295C 1540052E +@295D D9400217 +@295E 14C5883A +@295F 297FFFC4 +@2960 D9400215 +@2961 14C0462E +@2962 1563C83A +@2963 8809883A +@2964 B80B883A +@2965 0002C2C0 +@2966 100B883A +@2967 B009883A +@2968 1025883A +@2969 0002C3C0 +@296A 8809883A +@296B B80B883A +@296C 1021883A +@296D 0002C340 +@296E DA800017 +@296F 1004943A +@2970 50FFFFCC +@2971 10C6B03A +@2972 1C00062E +@2973 1CC7883A +@2974 94BFFFC4 +@2975 1CC00336 +@2976 1C00022E +@2977 94BFFFC4 +@2978 1CC7883A +@2979 D9000217 +@297A E538983A +@297B 1C2BC83A +@297C 2004943A +@297D 90A8B03A +@297E 003EBF06 +@297F 1804943A +@2980 E588983A +@2981 A0FFFFCC +@2982 10C5883A +@2983 20BFBD2E +@2984 90BFFFC4 +@2985 0009883A +@2986 003EF706 +@2987 01400204 +@2988 2805883A +@2989 003EE706 +@298A 01400604 +@298B 2805883A +@298C 003EE406 +@298D 01400204 +@298E 2805883A +@298F 003EA106 +@2990 01400604 +@2991 2805883A +@2992 003E9E06 +@2993 01400204 +@2994 2805883A +@2995 003EFF06 +@2996 01400604 +@2997 2805883A +@2998 003EFC06 +@2999 1C3F862E +@299A 1DC7883A +@299B AD7FFFC4 +@299C 003F8306 +@299D 157F6E2E +@299E A53FFFC4 +@299F 15C5883A +@29A0 003F6B06 +@29A1 AD7FFFC4 +@29A2 003EC206 +@29A3 843FFFC4 +@29A4 14C5883A +@29A5 003F1306 +@29A6 AD7FFFC4 +@29A7 003F2506 +@29A8 157FB92E +@29A9 297FFFC4 +@29AA 14C5883A +@29AB D9400215 +@29AC 003FB506 +@29AD 843FFFC4 +@29AE 14C5883A +@29AF 003EA106 +@29B0 DEFFF004 +@29B1 3011883A +@29B2 000D883A +@29B3 DD400B15 +@29B4 DCC00915 +@29B5 DC000615 +@29B6 DFC00F15 +@29B7 DF000E15 +@29B8 DDC00D15 +@29B9 DD800C15 +@29BA DD000A15 +@29BB DC800815 +@29BC DC400715 +@29BD 2817883A +@29BE D9800415 +@29BF 4027883A +@29C0 D9800515 +@29C1 2021883A +@29C2 282B883A +@29C3 38002C1E +@29C4 2A005636 +@29C5 40009A26 +@29C6 00BFFFD4 +@29C7 14C09236 +@29C8 00803FC4 +@29C9 14C15C36 +@29CA 000B883A +@29CB 0005883A +@29CC 9884D83A +@29CD 01000074 +@29CE 21016504 +@29CF 01800804 +@29D0 1105883A +@29D1 10C00003 +@29D2 28C7883A +@29D3 30E5C83A +@29D4 9000A41E +@29D5 982ED43A +@29D6 ACEBC83A +@29D7 9D3FFFCC +@29D8 002D883A +@29D9 A809883A +@29DA B80B883A +@29DB 0002C2C0 +@29DC 100B883A +@29DD A009883A +@29DE 0002C3C0 +@29DF A809883A +@29E0 B80B883A +@29E1 1023883A +@29E2 0002C340 +@29E3 1004943A +@29E4 8006D43A +@29E5 10C4B03A +@29E6 1440032E +@29E7 14C5883A +@29E8 14C00136 +@29E9 14415836 +@29EA 1463C83A +@29EB 8809883A +@29EC B80B883A +@29ED 0002C2C0 +@29EE A009883A +@29EF 00005306 +@29F0 380D883A +@29F1 29C0132E +@29F2 D9000415 +@29F3 D9400515 +@29F4 D9400417 +@29F5 5813883A +@29F6 2811883A +@29F7 4005883A +@29F8 4807883A +@29F9 DFC00F17 +@29FA DF000E17 +@29FB DDC00D17 +@29FC DD800C17 +@29FD DD400B17 +@29FE DD000A17 +@29FF DCC00917 +@2A00 DC800817 +@2A01 DC400717 +@2A02 DC000617 +@2A03 DEC01004 +@2A04 F800283A +@2A05 00BFFFD4 +@2A06 11C06636 +@2A07 00803FC4 +@2A08 11C12036 +@2A09 000B883A +@2A0A 0005883A +@2A0B 3084D83A +@2A0C 01000074 +@2A0D 21016504 +@2A0E 01C00804 +@2A0F 1105883A +@2A10 10C00003 +@2A11 28C7883A +@2A12 38E5C83A +@2A13 9000941E +@2A14 35405E36 +@2A15 84C05D2E +@2A16 8011883A +@2A17 A813883A +@2A18 DC000415 +@2A19 DD400515 +@2A1A 003FDC06 +@2A1B 00BFFFD4 +@2A1C 12004A36 +@2A1D 00803FC4 +@2A1E 12010D36 +@2A1F 000B883A +@2A20 0005883A +@2A21 9884D83A +@2A22 01000074 +@2A23 21016504 +@2A24 01800804 +@2A25 1105883A +@2A26 10C00003 +@2A27 28C7883A +@2A28 30C7C83A +@2A29 1800DC1E +@2A2A 002D883A +@2A2B 982ED43A +@2A2C A809883A +@2A2D 9CBFFFCC +@2A2E B80B883A +@2A2F 0002C2C0 +@2A30 100B883A +@2A31 9009883A +@2A32 0002C3C0 +@2A33 A809883A +@2A34 B80B883A +@2A35 1023883A +@2A36 0002C340 +@2A37 1004943A +@2A38 8006D43A +@2A39 10C4B03A +@2A3A 1440032E +@2A3B 14C5883A +@2A3C 14C00136 +@2A3D 14410236 +@2A3E 1463C83A +@2A3F 8809883A +@2A40 B80B883A +@2A41 0002C2C0 +@2A42 9009883A +@2A43 100B883A +@2A44 0002C3C0 +@2A45 8809883A +@2A46 B80B883A +@2A47 102B883A +@2A48 0002C340 +@2A49 1004943A +@2A4A 80FFFFCC +@2A4B 10C4B03A +@2A4C 1540042E +@2A4D 14C5883A +@2A4E 14C00236 +@2A4F 1540012E +@2A50 14C5883A +@2A51 1545C83A +@2A52 1584D83A +@2A53 0013883A +@2A54 D8800415 +@2A55 D8C00417 +@2A56 0005883A +@2A57 D8800515 +@2A58 1811883A +@2A59 003F9D06 +@2A5A 00804034 +@2A5B 10BFFFC4 +@2A5C 14C0C636 +@2A5D 01400404 +@2A5E 2805883A +@2A5F 003F6C06 +@2A60 01000044 +@2A61 000B883A +@2A62 0002C2C0 +@2A63 1027883A +@2A64 00BFFFD4 +@2A65 14FFF436 +@2A66 003F6106 +@2A67 00804034 +@2A68 10BFFFC4 +@2A69 1200C536 +@2A6A 01400404 +@2A6B 2805883A +@2A6C 003FB406 +@2A6D 00804034 +@2A6E 10BFFFC4 +@2A6F 11C0C236 +@2A70 01400404 +@2A71 2805883A +@2A72 003F9806 +@2A73 84C9C83A +@2A74 8105803A +@2A75 A987C83A +@2A76 18ABC83A +@2A77 2021883A +@2A78 003F9D06 +@2A79 9CA6983A +@2A7A 3485C83A +@2A7B A8A2D83A +@2A7C 982ED43A +@2A7D AC86983A +@2A7E 8084D83A +@2A7F 8809883A +@2A80 B80B883A +@2A81 18B8B03A +@2A82 9D3FFFCC +@2A83 0002C2C0 +@2A84 100B883A +@2A85 A009883A +@2A86 0002C3C0 +@2A87 8809883A +@2A88 B80B883A +@2A89 102B883A +@2A8A 0002C340 +@2A8B 1004943A +@2A8C E006D43A +@2A8D 902D883A +@2A8E 10C4B03A +@2A8F 1540022E +@2A90 14C5883A +@2A91 14C0AB2E +@2A92 1563C83A +@2A93 8809883A +@2A94 B80B883A +@2A95 0002C2C0 +@2A96 100B883A +@2A97 A009883A +@2A98 0002C3C0 +@2A99 8809883A +@2A9A B80B883A +@2A9B 102B883A +@2A9C 0002C340 +@2A9D 1004943A +@2A9E E0FFFFCC +@2A9F 10C4B03A +@2AA0 1540042E +@2AA1 14C5883A +@2AA2 14C00236 +@2AA3 1540012E +@2AA4 14C5883A +@2AA5 84A0983A +@2AA6 156BC83A +@2AA7 003F3106 +@2AA8 3C8FC83A +@2AA9 3486983A +@2AAA 99C4D83A +@2AAB A9E2D83A +@2AAC AC8C983A +@2AAD 18ACB03A +@2AAE B02ED43A +@2AAF 81C4D83A +@2AB0 8809883A +@2AB1 B80B883A +@2AB2 308CB03A +@2AB3 D9C00315 +@2AB4 D9800215 +@2AB5 B53FFFCC +@2AB6 0002C2C0 +@2AB7 100B883A +@2AB8 A009883A +@2AB9 1039883A +@2ABA 0002C3C0 +@2ABB 8809883A +@2ABC B80B883A +@2ABD 102B883A +@2ABE 0002C340 +@2ABF D9000217 +@2AC0 1004943A +@2AC1 9CA6983A +@2AC2 2006D43A +@2AC3 84A0983A +@2AC4 DCC00015 +@2AC5 10C4B03A +@2AC6 DC000115 +@2AC7 1540032E +@2AC8 1585883A +@2AC9 E73FFFC4 +@2ACA 15806E2E +@2ACB 1563C83A +@2ACC 8809883A +@2ACD B80B883A +@2ACE 0002C2C0 +@2ACF 100B883A +@2AD0 A009883A +@2AD1 1021883A +@2AD2 0002C3C0 +@2AD3 B80B883A +@2AD4 8809883A +@2AD5 1029883A +@2AD6 0002C340 +@2AD7 D9400217 +@2AD8 1004943A +@2AD9 28FFFFCC +@2ADA 10C4B03A +@2ADB 1500032E +@2ADC 1585883A +@2ADD 843FFFC4 +@2ADE 1580562E +@2ADF D9800017 +@2AE0 E022943A +@2AE1 302ED43A +@2AE2 8462B03A +@2AE3 34FFFFCC +@2AE4 882AD43A +@2AE5 8C7FFFCC +@2AE6 8809883A +@2AE7 980B883A +@2AE8 1521C83A +@2AE9 0002C3C0 +@2AEA 8809883A +@2AEB B80B883A +@2AEC 1029883A +@2AED 0002C3C0 +@2AEE 980B883A +@2AEF A809883A +@2AF0 1023883A +@2AF1 0002C3C0 +@2AF2 A809883A +@2AF3 B80B883A +@2AF4 1027883A +@2AF5 0002C3C0 +@2AF6 100B883A +@2AF7 A004D43A +@2AF8 8CE3883A +@2AF9 1449883A +@2AFA 24C0022E +@2AFB 00800074 +@2AFC 288B883A +@2AFD 2004D43A +@2AFE 2008943A +@2AFF A0FFFFCC +@2B00 288D883A +@2B01 20C9883A +@2B02 81800B36 +@2B03 81804026 +@2B04 818DC83A +@2B05 00000F06 +@2B06 30C5C83A +@2B07 182D883A +@2B08 8084D83A +@2B09 A8C6983A +@2B0A 9DA6983A +@2B0B 85A0983A +@2B0C 18AAB03A +@2B0D 003F1D06 +@2B0E D8C00017 +@2B0F 20C5C83A +@2B10 2089803A +@2B11 3587C83A +@2B12 1907C83A +@2B13 80CDC83A +@2B14 1009883A +@2B15 D9400117 +@2B16 2905C83A +@2B17 2887803A +@2B18 30C7C83A +@2B19 D9800317 +@2B1A 1484D83A +@2B1B 1988983A +@2B1C 1C86D83A +@2B1D 2088B03A +@2B1E 2011883A +@2B1F 1813883A +@2B20 D9000415 +@2B21 D8C00515 +@2B22 003ED406 +@2B23 01400604 +@2B24 2805883A +@2B25 003EA606 +@2B26 01400204 +@2B27 2805883A +@2B28 003EA306 +@2B29 01400204 +@2B2A 2805883A +@2B2B 003EDF06 +@2B2C 01400204 +@2B2D 2805883A +@2B2E 003EF206 +@2B2F 01400604 +@2B30 2805883A +@2B31 003EEF06 +@2B32 01400604 +@2B33 2805883A +@2B34 003ED606 +@2B35 153FA92E +@2B36 843FFFC4 +@2B37 1585883A +@2B38 003FA606 +@2B39 157F912E +@2B3A E73FFFC4 +@2B3B 1585883A +@2B3C 003F8E06 +@2B3D 157F542E +@2B3E 14C5883A +@2B3F 003F5206 +@2B40 14C5883A +@2B41 003EFC06 +@2B42 14C5883A +@2B43 003EA606 +@2B44 D8800117 +@2B45 113FC836 +@2B46 000D883A +@2B47 003FCD06 +@2B48 DEFFF804 +@2B49 DCC00315 +@2B4A 2027883A +@2B4B 21000017 +@2B4C 00C00044 +@2B4D DD400515 +@2B4E DD000415 +@2B4F DDC00715 +@2B50 DD800615 +@2B51 DC800215 +@2B52 DC400115 +@2B53 DC000015 +@2B54 282B883A +@2B55 3029883A +@2B56 1900632E +@2B57 28800017 +@2B58 1880812E +@2B59 00C00104 +@2B5A 20C0DC26 +@2B5B 10C07E26 +@2B5C 00C00084 +@2B5D 10C06726 +@2B5E 20C07B26 +@2B5F 9DC00217 +@2B60 28C00217 +@2B61 9C400317 +@2B62 2BC00317 +@2B63 B8CDC83A +@2B64 9C800417 +@2B65 2C000417 +@2B66 3009883A +@2B67 30009716 +@2B68 00800FC4 +@2B69 11806B16 +@2B6A 0100A40E +@2B6B 35BFF804 +@2B6C B000BC16 +@2B6D 8596D83A +@2B6E 0019883A +@2B6F 0013883A +@2B70 01000044 +@2B71 0015883A +@2B72 B000BE16 +@2B73 2590983A +@2B74 000F883A +@2B75 00BFFFC4 +@2B76 3889883A +@2B77 408B883A +@2B78 21CD803A +@2B79 314B883A +@2B7A 7904703A +@2B7B 8146703A +@2B7C 10C4B03A +@2B7D 10000226 +@2B7E 02400044 +@2B7F 0015883A +@2B80 5A5EB03A +@2B81 62A0B03A +@2B82 99400117 +@2B83 A8800117 +@2B84 28806E26 +@2B85 28006626 +@2B86 7C45C83A +@2B87 7889803A +@2B88 8487C83A +@2B89 1909C83A +@2B8A 100D883A +@2B8B 200F883A +@2B8C 38007716 +@2B8D A5C00215 +@2B8E A1C00415 +@2B8F A0000115 +@2B90 A1800315 +@2B91 A2000317 +@2B92 A2400417 +@2B93 00BFFFC4 +@2B94 408B883A +@2B95 2A09803A +@2B96 488D883A +@2B97 01C40034 +@2B98 39FFFFC4 +@2B99 218D883A +@2B9A 39801736 +@2B9B 31C06526 +@2B9C A3000217 +@2B9D 4209883A +@2B9E 00BFFFC4 +@2B9F 220F803A +@2BA0 4A4B883A +@2BA1 394F883A +@2BA2 2095883A +@2BA3 3897883A +@2BA4 510D803A +@2BA5 6099883A +@2BA6 32D7883A +@2BA7 00840034 +@2BA8 10BFFFC4 +@2BA9 2011883A +@2BAA 3813883A +@2BAB A1000315 +@2BAC A1C00415 +@2BAD A3000215 +@2BAE 12C00336 +@2BAF 58BFED1E +@2BB0 00BFFF84 +@2BB1 12BFEB2E +@2BB2 A2800417 +@2BB3 008000C4 +@2BB4 00C80034 +@2BB5 18FFFFC4 +@2BB6 A2400317 +@2BB7 A0800015 +@2BB8 1A802336 +@2BB9 A027883A +@2BBA 9805883A +@2BBB DDC00717 +@2BBC DD800617 +@2BBD DD400517 +@2BBE DD000417 +@2BBF DCC00317 +@2BC0 DC800217 +@2BC1 DC400117 +@2BC2 DC000017 +@2BC3 DEC00804 +@2BC4 F800283A +@2BC5 20FFF41E +@2BC6 31000015 +@2BC7 98800117 +@2BC8 30800115 +@2BC9 98C00217 +@2BCA 30C00215 +@2BCB 98800317 +@2BCC 30800315 +@2BCD 98C00417 +@2BCE 30C00415 +@2BCF 98800117 +@2BD0 28C00117 +@2BD1 3027883A +@2BD2 10C4703A +@2BD3 30800115 +@2BD4 003FE506 +@2BD5 1DC02616 +@2BD6 0023883A +@2BD7 182F883A +@2BD8 0025883A +@2BD9 003FA806 +@2BDA A827883A +@2BDB 003FDE06 +@2BDC 01800044 +@2BDD 500497FA +@2BDE 4808D07A +@2BDF 518AD83A +@2BE0 A2000217 +@2BE1 1108B03A +@2BE2 0007883A +@2BE3 4984703A +@2BE4 208CB03A +@2BE5 28CEB03A +@2BE6 42000044 +@2BE7 A027883A +@2BE8 A1C00415 +@2BE9 A2000215 +@2BEA A1800315 +@2BEB 003FCE06 +@2BEC 8BC5C83A +@2BED 8889803A +@2BEE 9407C83A +@2BEF 1909C83A +@2BF0 100D883A +@2BF1 200F883A +@2BF2 003F9906 +@2BF3 7C45883A +@2BF4 13C9803A +@2BF5 8487883A +@2BF6 20C9883A +@2BF7 A1400115 +@2BF8 A5C00215 +@2BF9 A0800315 +@2BFA A1000415 +@2BFB 003FB606 +@2BFC 001F883A +@2BFD 0021883A +@2BFE 003F8306 +@2BFF 018DC83A +@2C00 003F6706 +@2C01 00BFFF84 +@2C02 117FAF36 +@2C03 003F9806 +@2C04 0005883A +@2C05 1189C83A +@2C06 1105803A +@2C07 01CBC83A +@2C08 2885C83A +@2C09 01800044 +@2C0A A1800115 +@2C0B A5C00215 +@2C0C A1000315 +@2C0D A0800415 +@2C0E 003F8206 +@2C0F 203F7226 +@2C10 35BFF804 +@2C11 B9AF883A +@2C12 B0003116 +@2C13 959AD83A +@2C14 001D883A +@2C15 000F883A +@2C16 01000044 +@2C17 0011883A +@2C18 B0002516 +@2C19 2594983A +@2C1A 0013883A +@2C1B 00BFFFC4 +@2C1C 4889883A +@2C1D 508B883A +@2C1E 224D803A +@2C1F 314B883A +@2C20 8904703A +@2C21 9146703A +@2C22 10C4B03A +@2C23 10000226 +@2C24 01C00044 +@2C25 0011883A +@2C26 69E2B03A +@2C27 7224B03A +@2C28 003F5906 +@2C29 8407883A +@2C2A 008007C4 +@2C2B 1185C83A +@2C2C 1886983A +@2C2D 7996D83A +@2C2E 8198D83A +@2C2F 1AD6B03A +@2C30 003F3E06 +@2C31 2006D07A +@2C32 008007C4 +@2C33 1185C83A +@2C34 1890D83A +@2C35 218E983A +@2C36 003F3E06 +@2C37 113F821E +@2C38 28C00117 +@2C39 98800117 +@2C3A 10FF7F26 +@2C3B 04C00074 +@2C3C 9CC16004 +@2C3D 003F7C06 +@2C3E 2006D07A +@2C3F 008007C4 +@2C40 1185C83A +@2C41 1894D83A +@2C42 2192983A +@2C43 003FD706 +@2C44 9487883A +@2C45 008007C4 +@2C46 1185C83A +@2C47 1886983A +@2C48 899AD83A +@2C49 919CD83A +@2C4A 1B5AB03A +@2C4B 003FC906 +@2C4C DEFFEA04 +@2C4D DCC01415 +@2C4E DCC00404 +@2C4F 2011883A +@2C50 2813883A +@2C51 DC401315 +@2C52 D809883A +@2C53 980B883A +@2C54 DC400904 +@2C55 DFC01515 +@2C56 DA400115 +@2C57 D9C00315 +@2C58 DA000015 +@2C59 D9800215 +@2C5A 000C3040 +@2C5B D9000204 +@2C5C 880B883A +@2C5D 000C3040 +@2C5E D8800A17 +@2C5F 880B883A +@2C60 9809883A +@2C61 D9800E04 +@2C62 1080005C +@2C63 D8800A15 +@2C64 000AD200 +@2C65 1009883A +@2C66 000BFF00 +@2C67 DFC01517 +@2C68 DCC01417 +@2C69 DC401317 +@2C6A DEC01604 +@2C6B F800283A +@2C6C DEFFEA04 +@2C6D DCC01415 +@2C6E DCC00404 +@2C6F 2011883A +@2C70 2813883A +@2C71 DC401315 +@2C72 D809883A +@2C73 980B883A +@2C74 DC400904 +@2C75 DFC01515 +@2C76 DA400115 +@2C77 D9C00315 +@2C78 DA000015 +@2C79 D9800215 +@2C7A 000C3040 +@2C7B D9000204 +@2C7C 880B883A +@2C7D 000C3040 +@2C7E D9800E04 +@2C7F 9809883A +@2C80 880B883A +@2C81 000AD200 +@2C82 1009883A +@2C83 000BFF00 +@2C84 DFC01517 +@2C85 DCC01417 +@2C86 DC401317 +@2C87 DEC01604 +@2C88 F800283A +@2C89 DEFFE004 +@2C8A DC401815 +@2C8B DC400404 +@2C8C 2011883A +@2C8D 2813883A +@2C8E DC001715 +@2C8F D809883A +@2C90 880B883A +@2C91 DC000904 +@2C92 DFC01F15 +@2C93 DA400115 +@2C94 D9C00315 +@2C95 DA000015 +@2C96 D9800215 +@2C97 DDC01E15 +@2C98 DD801D15 +@2C99 DD401C15 +@2C9A DD001B15 +@2C9B DCC01A15 +@2C9C DC801915 +@2C9D 000C3040 +@2C9E D9000204 +@2C9F 800B883A +@2CA0 000C3040 +@2CA1 D9000417 +@2CA2 00800044 +@2CA3 1100102E +@2CA4 D8C00917 +@2CA5 10C0062E +@2CA6 00800104 +@2CA7 20800A26 +@2CA8 1880CC26 +@2CA9 00800084 +@2CAA 20800926 +@2CAB 1880191E +@2CAC D8C00A17 +@2CAD D8800517 +@2CAE 8009883A +@2CAF 10C4C03A +@2CB0 D8800A15 +@2CB1 00000706 +@2CB2 00800084 +@2CB3 1880C326 +@2CB4 D8800517 +@2CB5 D8C00A17 +@2CB6 8809883A +@2CB7 10C4C03A +@2CB8 D8800515 +@2CB9 000BFF00 +@2CBA DFC01F17 +@2CBB DDC01E17 +@2CBC DD801D17 +@2CBD DD401C17 +@2CBE DD001B17 +@2CBF DCC01A17 +@2CC0 DC801917 +@2CC1 DC401817 +@2CC2 DC001717 +@2CC3 DEC02004 +@2CC4 F800283A +@2CC5 DD800717 +@2CC6 DC800C17 +@2CC7 002B883A +@2CC8 0023883A +@2CC9 A80B883A +@2CCA B00D883A +@2CCB 880F883A +@2CCC DDC00817 +@2CCD DCC00D17 +@2CCE 9009883A +@2CCF 000BE4C0 +@2CD0 001B883A +@2CD1 680F883A +@2CD2 B009883A +@2CD3 000B883A +@2CD4 980D883A +@2CD5 B82D883A +@2CD6 002F883A +@2CD7 DB401615 +@2CD8 D8801315 +@2CD9 D8C01415 +@2CDA DCC01515 +@2CDB 000BE4C0 +@2CDC B00D883A +@2CDD 000B883A +@2CDE 9009883A +@2CDF B80F883A +@2CE0 1021883A +@2CE1 1823883A +@2CE2 000BE4C0 +@2CE3 8085883A +@2CE4 140D803A +@2CE5 88C7883A +@2CE6 30CD883A +@2CE7 1029883A +@2CE8 302B883A +@2CE9 DA801317 +@2CEA DAC01417 +@2CEB DB001517 +@2CEC DB401617 +@2CED 3440612E +@2CEE 0009883A +@2CEF 5105883A +@2CF0 128D803A +@2CF1 5D07883A +@2CF2 30CD883A +@2CF3 0021883A +@2CF4 04400044 +@2CF5 1025883A +@2CF6 3027883A +@2CF7 32C06236 +@2CF8 59807A26 +@2CF9 680B883A +@2CFA B80F883A +@2CFB 6009883A +@2CFC B00D883A +@2CFD 000BE4C0 +@2CFE 1009883A +@2CFF 000F883A +@2D00 1545883A +@2D01 1111803A +@2D02 19C7883A +@2D03 40C7883A +@2D04 88CB883A +@2D05 D8C00617 +@2D06 8089883A +@2D07 D8800B17 +@2D08 18C00104 +@2D09 240D803A +@2D0A 10C7883A +@2D0B 2013883A +@2D0C D8800A17 +@2D0D D9000517 +@2D0E 314D883A +@2D0F 3015883A +@2D10 2088C03A +@2D11 00880034 +@2D12 10BFFFC4 +@2D13 D9000F15 +@2D14 D8C01015 +@2D15 1180162E +@2D16 1811883A +@2D17 101F883A +@2D18 980497FA +@2D19 9016D07A +@2D1A 500697FA +@2D1B 480CD07A +@2D1C 500ED07A +@2D1D 12D6B03A +@2D1E 00800044 +@2D1F 198CB03A +@2D20 4888703A +@2D21 9818D07A +@2D22 001B883A +@2D23 03A00034 +@2D24 3013883A +@2D25 3815883A +@2D26 4091883A +@2D27 20000226 +@2D28 5B64B03A +@2D29 63A6B03A +@2D2A 7ABFED36 +@2D2B DA001015 +@2D2C 00840034 +@2D2D 10BFFFC4 +@2D2E 12801436 +@2D2F DA001017 +@2D30 101F883A +@2D31 4A45883A +@2D32 124D803A +@2D33 5287883A +@2D34 9497883A +@2D35 5C8F803A +@2D36 9CD9883A +@2D37 01000044 +@2D38 30CD883A +@2D39 3B0F883A +@2D3A 423FFFC4 +@2D3B 1013883A +@2D3C 3015883A +@2D3D 111AB03A +@2D3E 98003016 +@2D3F 5825883A +@2D40 3827883A +@2D41 7ABFEF2E +@2D42 DA001015 +@2D43 00803FC4 +@2D44 488E703A +@2D45 00802004 +@2D46 0007883A +@2D47 0011883A +@2D48 38801826 +@2D49 008000C4 +@2D4A D9000E04 +@2D4B DA801215 +@2D4C D8800E15 +@2D4D DA401115 +@2D4E 003F6A06 +@2D4F 89802126 +@2D50 0009883A +@2D51 5105883A +@2D52 128D803A +@2D53 5D07883A +@2D54 30CD883A +@2D55 0021883A +@2D56 0023883A +@2D57 1025883A +@2D58 3027883A +@2D59 32FF9E2E +@2D5A 00800044 +@2D5B 8089883A +@2D5C 240D803A +@2D5D 344D883A +@2D5E 2021883A +@2D5F 3023883A +@2D60 003F9806 +@2D61 403FE71E +@2D62 01004004 +@2D63 4904703A +@2D64 10C4B03A +@2D65 103FE31E +@2D66 94C4B03A +@2D67 103FE126 +@2D68 49C5883A +@2D69 1251803A +@2D6A 4291883A +@2D6B 013FC004 +@2D6C 1112703A +@2D6D 4015883A +@2D6E 003FDA06 +@2D6F 6813883A +@2D70 003FCE06 +@2D71 143F7C36 +@2D72 003FDD06 +@2D73 12BF852E +@2D74 003FE506 +@2D75 00800084 +@2D76 20BF351E +@2D77 01000074 +@2D78 21016004 +@2D79 003F3F06 +@2D7A DEFFED04 +@2D7B DCC01115 +@2D7C DCC00404 +@2D7D 2011883A +@2D7E 2813883A +@2D7F DC000E15 +@2D80 D809883A +@2D81 980B883A +@2D82 DC000904 +@2D83 DFC01215 +@2D84 DA400115 +@2D85 D9C00315 +@2D86 DA000015 +@2D87 D9800215 +@2D88 DC801015 +@2D89 DC400F15 +@2D8A 000C3040 +@2D8B D9000204 +@2D8C 800B883A +@2D8D 000C3040 +@2D8E D9000417 +@2D8F 00800044 +@2D90 11000B2E +@2D91 D9400917 +@2D92 1140762E +@2D93 D8800517 +@2D94 D8C00A17 +@2D95 01800104 +@2D96 10C4F03A +@2D97 D8800515 +@2D98 21800226 +@2D99 00800084 +@2D9A 2080141E +@2D9B 29000926 +@2D9C 9809883A +@2D9D 000BFF00 +@2D9E DFC01217 +@2D9F DCC01117 +@2DA0 DC801017 +@2DA1 DC400F17 +@2DA2 DC000E17 +@2DA3 DEC01304 +@2DA4 F800283A +@2DA5 01000074 +@2DA6 21016004 +@2DA7 000BFF00 +@2DA8 DFC01217 +@2DA9 DCC01117 +@2DAA DC801017 +@2DAB DC400F17 +@2DAC DC000E17 +@2DAD DEC01304 +@2DAE F800283A +@2DAF 29805B26 +@2DB0 28802D26 +@2DB1 D8C00617 +@2DB2 D8800B17 +@2DB3 D9C00817 +@2DB4 DC400D17 +@2DB5 188BC83A +@2DB6 D9800717 +@2DB7 DC000C17 +@2DB8 D9400615 +@2DB9 3C403836 +@2DBA 89C03626 +@2DBB 0015883A +@2DBC 001D883A +@2DBD 02C40034 +@2DBE 001F883A +@2DBF 003F883A +@2DC0 04800F44 +@2DC1 00000F06 +@2DC2 601D883A +@2DC3 681F883A +@2DC4 400D883A +@2DC5 100F883A +@2DC6 3191883A +@2DC7 5808D07A +@2DC8 4185803A +@2DC9 39D3883A +@2DCA 28C6B03A +@2DCB 1245883A +@2DCC 1815883A +@2DCD 2017883A +@2DCE 400D883A +@2DCF 100F883A +@2DD0 FC801726 +@2DD1 580A97FA +@2DD2 5006D07A +@2DD3 FFC00044 +@2DD4 3C7FF136 +@2DD5 3411C83A +@2DD6 3205803A +@2DD7 3C53C83A +@2DD8 7298B03A +@2DD9 7ADAB03A +@2DDA 4885C83A +@2DDB 89FFE61E +@2DDC 343FE936 +@2DDD 003FE406 +@2DDE 9809883A +@2DDF D9800415 +@2DE0 000BFF00 +@2DE1 DFC01217 +@2DE2 DCC01117 +@2DE3 DC801017 +@2DE4 DC400F17 +@2DE5 DC000E17 +@2DE6 DEC01304 +@2DE7 F800283A +@2DE8 00803FC4 +@2DE9 7090703A +@2DEA 00802004 +@2DEB 0007883A +@2DEC 0013883A +@2DED 40800D26 +@2DEE DBC00815 +@2DEF DB800715 +@2DF0 003FAB06 +@2DF1 343FC92E +@2DF2 3185883A +@2DF3 1189803A +@2DF4 39C7883A +@2DF5 20C9883A +@2DF6 297FFFC4 +@2DF7 100D883A +@2DF8 200F883A +@2DF9 D9400615 +@2DFA 003FC006 +@2DFB 483FF21E +@2DFC 01004004 +@2DFD 7104703A +@2DFE 10C4B03A +@2DFF 103FEE1E +@2E00 31C4B03A +@2E01 103FEC26 +@2E02 7205883A +@2E03 1391803A +@2E04 43D1883A +@2E05 013FC004 +@2E06 111C703A +@2E07 401F883A +@2E08 003FE506 +@2E09 8009883A +@2E0A 003F9206 +@2E0B 9809883A +@2E0C D8000715 +@2E0D D8000815 +@2E0E D8000615 +@2E0F 003F8D06 +@2E10 DEFFEF04 +@2E11 DC400F15 +@2E12 DC400404 +@2E13 2005883A +@2E14 2807883A +@2E15 DC000E15 +@2E16 D809883A +@2E17 880B883A +@2E18 DC000904 +@2E19 D8C00115 +@2E1A D8800015 +@2E1B D9800215 +@2E1C DFC01015 +@2E1D D9C00315 +@2E1E 000C3040 +@2E1F D9000204 +@2E20 800B883A +@2E21 000C3040 +@2E22 D8800417 +@2E23 00C00044 +@2E24 180D883A +@2E25 1880062E +@2E26 D8800917 +@2E27 8809883A +@2E28 800B883A +@2E29 1880022E +@2E2A 000C43C0 +@2E2B 100D883A +@2E2C 3005883A +@2E2D DFC01017 +@2E2E DC400F17 +@2E2F DC000E17 +@2E30 DEC01104 +@2E31 F800283A +@2E32 DEFFEF04 +@2E33 DC400F15 +@2E34 DC400404 +@2E35 2005883A +@2E36 2807883A +@2E37 DC000E15 +@2E38 D809883A +@2E39 880B883A +@2E3A DC000904 +@2E3B D8C00115 +@2E3C D8800015 +@2E3D D9800215 +@2E3E DFC01015 +@2E3F D9C00315 +@2E40 000C3040 +@2E41 D9000204 +@2E42 800B883A +@2E43 000C3040 +@2E44 D8800417 +@2E45 00C00044 +@2E46 180D883A +@2E47 1880062E +@2E48 D8800917 +@2E49 8809883A +@2E4A 800B883A +@2E4B 1880022E +@2E4C 000C43C0 +@2E4D 100D883A +@2E4E 3005883A +@2E4F DFC01017 +@2E50 DC400F17 +@2E51 DC000E17 +@2E52 DEC01104 +@2E53 F800283A +@2E54 DEFFEF04 +@2E55 DC400F15 +@2E56 DC400404 +@2E57 2005883A +@2E58 2807883A +@2E59 DC000E15 +@2E5A D809883A +@2E5B 880B883A +@2E5C DC000904 +@2E5D D8C00115 +@2E5E D8800015 +@2E5F D9800215 +@2E60 DFC01015 +@2E61 D9C00315 +@2E62 000C3040 +@2E63 D9000204 +@2E64 800B883A +@2E65 000C3040 +@2E66 D8800417 +@2E67 00C00044 +@2E68 01BFFFC4 +@2E69 1880062E +@2E6A D8800917 +@2E6B 8809883A +@2E6C 800B883A +@2E6D 1880022E +@2E6E 000C43C0 +@2E6F 100D883A +@2E70 3005883A +@2E71 DFC01017 +@2E72 DC400F17 +@2E73 DC000E17 +@2E74 DEC01104 +@2E75 F800283A +@2E76 DEFFEF04 +@2E77 DC400F15 +@2E78 DC400404 +@2E79 2005883A +@2E7A 2807883A +@2E7B DC000E15 +@2E7C D809883A +@2E7D 880B883A +@2E7E DC000904 +@2E7F D8C00115 +@2E80 D8800015 +@2E81 D9800215 +@2E82 DFC01015 +@2E83 D9C00315 +@2E84 000C3040 +@2E85 D9000204 +@2E86 800B883A +@2E87 000C3040 +@2E88 D8800417 +@2E89 00C00044 +@2E8A 01BFFFC4 +@2E8B 1880062E +@2E8C D8800917 +@2E8D 8809883A +@2E8E 800B883A +@2E8F 1880022E +@2E90 000C43C0 +@2E91 100D883A +@2E92 3005883A +@2E93 DFC01017 +@2E94 DC400F17 +@2E95 DC000E17 +@2E96 DEC01104 +@2E97 F800283A +@2E98 DEFFEF04 +@2E99 DC400F15 +@2E9A DC400404 +@2E9B 2005883A +@2E9C 2807883A +@2E9D DC000E15 +@2E9E D809883A +@2E9F 880B883A +@2EA0 DC000904 +@2EA1 D8C00115 +@2EA2 D8800015 +@2EA3 D9800215 +@2EA4 DFC01015 +@2EA5 D9C00315 +@2EA6 000C3040 +@2EA7 D9000204 +@2EA8 800B883A +@2EA9 000C3040 +@2EAA D8800417 +@2EAB 00C00044 +@2EAC 180D883A +@2EAD 1880062E +@2EAE D8800917 +@2EAF 8809883A +@2EB0 800B883A +@2EB1 1880022E +@2EB2 000C43C0 +@2EB3 100D883A +@2EB4 3005883A +@2EB5 DFC01017 +@2EB6 DC400F17 +@2EB7 DC000E17 +@2EB8 DEC01104 +@2EB9 F800283A +@2EBA 2006D7FA +@2EBB DEFFF604 +@2EBC 008000C4 +@2EBD DFC00915 +@2EBE DCC00815 +@2EBF DC800715 +@2EC0 DC400615 +@2EC1 DC000515 +@2EC2 D8800015 +@2EC3 D8C00115 +@2EC4 20000F1E +@2EC5 00800084 +@2EC6 D8800015 +@2EC7 D809883A +@2EC8 000BFF00 +@2EC9 1009883A +@2ECA 180B883A +@2ECB 2005883A +@2ECC 2807883A +@2ECD DFC00917 +@2ECE DCC00817 +@2ECF DC800717 +@2ED0 DC400617 +@2ED1 DC000517 +@2ED2 DEC00A04 +@2ED3 F800283A +@2ED4 00800F04 +@2ED5 1807003A +@2ED6 D8800215 +@2ED7 18001126 +@2ED8 0027883A +@2ED9 2025883A +@2EDA D9000315 +@2EDB DCC00415 +@2EDC 000BF700 +@2EDD 11000744 +@2EDE 013FE80E +@2EDF 10BFFF44 +@2EE0 10000C16 +@2EE1 90A2983A +@2EE2 0021883A +@2EE3 D8800217 +@2EE4 DC400415 +@2EE5 DC000315 +@2EE6 1105C83A +@2EE7 D8800215 +@2EE8 003FDE06 +@2EE9 00A00034 +@2EEA 20800A26 +@2EEB 0109C83A +@2EEC 003FEB06 +@2EED 9006D07A +@2EEE 008007C4 +@2EEF 1105C83A +@2EF0 1886D83A +@2EF1 9922983A +@2EF2 9120983A +@2EF3 1C62B03A +@2EF4 003FEE06 +@2EF5 0009883A +@2EF6 01707834 +@2EF7 003FD306 +@2EF8 DEFFF804 +@2EF9 2005883A +@2EFA 2807883A +@2EFB D809883A +@2EFC D9400204 +@2EFD D8C00115 +@2EFE D8800015 +@2EFF DFC00715 +@2F00 000C3040 +@2F01 D8C00217 +@2F02 00800084 +@2F03 1880051E +@2F04 0007883A +@2F05 1805883A +@2F06 DFC00717 +@2F07 DEC00804 +@2F08 F800283A +@2F09 00800044 +@2F0A 10FFF92E +@2F0B 00800104 +@2F0C 18800426 +@2F0D D8C00417 +@2F0E 183FF516 +@2F0F 00800784 +@2F10 10C0080E +@2F11 D8800317 +@2F12 1000121E +@2F13 00E00034 +@2F14 18FFFFC4 +@2F15 1805883A +@2F16 DFC00717 +@2F17 DEC00804 +@2F18 F800283A +@2F19 00800F04 +@2F1A 10D1C83A +@2F1B 40BFF804 +@2F1C D9800517 +@2F1D D9C00617 +@2F1E 10000816 +@2F1F 3888D83A +@2F20 D8800317 +@2F21 2007883A +@2F22 103FE226 +@2F23 0107C83A +@2F24 003FE006 +@2F25 00E00034 +@2F26 003FDE06 +@2F27 39C7883A +@2F28 008007C4 +@2F29 1205C83A +@2F2A 1886983A +@2F2B 3208D83A +@2F2C 1908B03A +@2F2D 003FF206 +@2F2E DEFFF204 +@2F2F DFC00D15 +@2F30 DDC00C15 +@2F31 DD800B15 +@2F32 DD400A15 +@2F33 DD000915 +@2F34 DCC00815 +@2F35 DC800715 +@2F36 DC400615 +@2F37 DC000515 +@2F38 D8000115 +@2F39 20000F1E +@2F3A 00800084 +@2F3B D8800015 +@2F3C D809883A +@2F3D 000BFF00 +@2F3E DFC00D17 +@2F3F DDC00C17 +@2F40 DD800B17 +@2F41 DD400A17 +@2F42 DD000917 +@2F43 DCC00817 +@2F44 DC800717 +@2F45 DC400617 +@2F46 DC000517 +@2F47 DEC00E04 +@2F48 F800283A +@2F49 008000C4 +@2F4A 00C00F04 +@2F4B 002F883A +@2F4C 202D883A +@2F4D D8800015 +@2F4E D8C00215 +@2F4F D9000315 +@2F50 DDC00415 +@2F51 000BF700 +@2F52 12400744 +@2F53 48000B16 +@2F54 483FE726 +@2F55 10BFFF44 +@2F56 10002E16 +@2F57 B0A2983A +@2F58 0021883A +@2F59 D8800217 +@2F5A DC400415 +@2F5B DC000315 +@2F5C 1245C83A +@2F5D D8800215 +@2F5E 003FDD06 +@2F5F 0255C83A +@2F60 51BFF804 +@2F61 30001B16 +@2F62 B9A8D83A +@2F63 002B883A +@2F64 000F883A +@2F65 01000044 +@2F66 0011883A +@2F67 30002516 +@2F68 21A6983A +@2F69 0025883A +@2F6A 00BFFFC4 +@2F6B 9089883A +@2F6C 988B883A +@2F6D 248D803A +@2F6E 314B883A +@2F6F B104703A +@2F70 B946703A +@2F71 10C4B03A +@2F72 10000226 +@2F73 01C00044 +@2F74 0011883A +@2F75 D9000217 +@2F76 A1C4B03A +@2F77 AA06B03A +@2F78 2249C83A +@2F79 D8C00415 +@2F7A D9000215 +@2F7B D8800315 +@2F7C 003FBF06 +@2F7D BDC7883A +@2F7E 008007C4 +@2F7F 1285C83A +@2F80 1886983A +@2F81 B2A8D83A +@2F82 BAAAD83A +@2F83 1D28B03A +@2F84 003FDF06 +@2F85 B006D07A +@2F86 008007C4 +@2F87 1245C83A +@2F88 1886D83A +@2F89 BA62983A +@2F8A B260983A +@2F8B 1C62B03A +@2F8C 003FCC06 +@2F8D 2006D07A +@2F8E 008007C4 +@2F8F 1285C83A +@2F90 18A6D83A +@2F91 22A4983A +@2F92 003FD706 +@2F93 DEFFF204 +@2F94 DF000C15 +@2F95 3038D43A +@2F96 DD000815 +@2F97 DC400515 +@2F98 2028D43A +@2F99 247FFFCC +@2F9A DC000415 +@2F9B 343FFFCC +@2F9C DCC00715 +@2F9D D9000015 +@2F9E 2827883A +@2F9F 8809883A +@2FA0 D9400115 +@2FA1 800B883A +@2FA2 D9800215 +@2FA3 DFC00D15 +@2FA4 D9C00315 +@2FA5 DD800A15 +@2FA6 DD400915 +@2FA7 302D883A +@2FA8 DDC00B15 +@2FA9 DC800615 +@2FAA 0002C3C0 +@2FAB 8809883A +@2FAC E00B883A +@2FAD 102B883A +@2FAE 0002C3C0 +@2FAF 800B883A +@2FB0 A009883A +@2FB1 1023883A +@2FB2 0002C3C0 +@2FB3 A009883A +@2FB4 E00B883A +@2FB5 1021883A +@2FB6 0002C3C0 +@2FB7 A8FFFFCC +@2FB8 A82AD43A +@2FB9 8C23883A +@2FBA 1011883A +@2FBB AC6B883A +@2FBC A804943A +@2FBD B009883A +@2FBE 980B883A +@2FBF 10C7883A +@2FC0 A812D43A +@2FC1 180D883A +@2FC2 AC00022E +@2FC3 00800074 +@2FC4 4091883A +@2FC5 4267883A +@2FC6 302D883A +@2FC7 0002C3C0 +@2FC8 D9400317 +@2FC9 D9000017 +@2FCA 1023883A +@2FCB 0002C3C0 +@2FCC 14CB883A +@2FCD 894B883A +@2FCE B005883A +@2FCF 2807883A +@2FD0 DFC00D17 +@2FD1 DF000C17 +@2FD2 DDC00B17 +@2FD3 DD800A17 +@2FD4 DD400917 +@2FD5 DD000817 +@2FD6 DCC00717 +@2FD7 DC800617 +@2FD8 DC400517 +@2FD9 DC000417 +@2FDA DEC00E04 +@2FDB F800283A +@2FDC 00BFFFD4 +@2FDD 11000E36 +@2FDE 00803FC4 +@2FDF 01400204 +@2FE0 0007883A +@2FE1 11001036 +@2FE2 000B883A +@2FE3 20C6D83A +@2FE4 00800074 +@2FE5 10816504 +@2FE6 1887883A +@2FE7 18800003 +@2FE8 00C00804 +@2FE9 2885883A +@2FEA 1885C83A +@2FEB F800283A +@2FEC 01400404 +@2FED 00804034 +@2FEE 10BFFFC4 +@2FEF 2807883A +@2FF0 113FF22E +@2FF1 01400604 +@2FF2 2807883A +@2FF3 20C6D83A +@2FF4 00800074 +@2FF5 10816504 +@2FF6 1887883A +@2FF7 18800003 +@2FF8 00C00804 +@2FF9 2885883A +@2FFA 1885C83A +@2FFB F800283A +@2FFC 20C00017 +@2FFD DEFFFD04 +@2FFE DC000015 +@2FFF DC800215 +@3000 DC400115 +@3001 00800044 +@3002 22000317 +@3003 001F883A +@3004 22400417 +@3005 24000117 +@3006 10C0552E +@3007 00800104 +@3008 18804F26 +@3009 00800084 +@300A 18800226 +@300B 4244B03A +@300C 10001A1E +@300D 000D883A +@300E 000F883A +@300F 0011883A +@3010 00800434 +@3011 10BFFFC4 +@3012 301D883A +@3013 3884703A +@3014 400A953A +@3015 79BFFC2C +@3016 308CB03A +@3017 00E00434 +@3018 18FFFFC4 +@3019 800497FA +@301A 30C6703A +@301B 1946B03A +@301C 01600034 +@301D 297FFFC4 +@301E 194A703A +@301F 288AB03A +@3020 2807883A +@3021 7005883A +@3022 DC800217 +@3023 DC400117 +@3024 DC000017 +@3025 DEC00304 +@3026 F800283A +@3027 21000217 +@3028 00BF0084 +@3029 20803F16 +@302A 0080FFC4 +@302B 11002C16 +@302C 00803FC4 +@302D 408C703A +@302E 00802004 +@302F 0007883A +@3030 000F883A +@3031 2280FFC4 +@3032 30801E26 +@3033 00801FC4 +@3034 4089883A +@3035 220D803A +@3036 324D883A +@3037 2011883A +@3038 3013883A +@3039 00880034 +@303A 10BFFFC4 +@303B 12400D36 +@303C 4804963A +@303D 400CD23A +@303E 480ED23A +@303F 013FFFC4 +@3040 118CB03A +@3041 01400434 +@3042 297FFFC4 +@3043 3104703A +@3044 3946703A +@3045 5201FFCC +@3046 100D883A +@3047 180F883A +@3048 003FC706 +@3049 480897FA +@304A 4004D07A +@304B 4806D07A +@304C 52800044 +@304D 2084B03A +@304E 1011883A +@304F 1813883A +@3050 003FEB06 +@3051 383FE11E +@3052 01004004 +@3053 4104703A +@3054 10C4B03A +@3055 103FE326 +@3056 3005883A +@3057 003FDC06 +@3058 000D883A +@3059 000F883A +@305A 0201FFC4 +@305B 003FB406 +@305C 0005883A +@305D 00C00234 +@305E 408CB03A +@305F 48CEB03A +@3060 013FFFC4 +@3061 01400434 +@3062 297FFFC4 +@3063 3104703A +@3064 3946703A +@3065 100D883A +@3066 180F883A +@3067 0201FFC4 +@3068 003FA706 +@3069 1109C83A +@306A 00800E04 +@306B 11004316 +@306C 21FFF804 +@306D 38004516 +@306E 49D8D83A +@306F 001B883A +@3070 0023883A +@3071 01400044 +@3072 0025883A +@3073 38004716 +@3074 29D6983A +@3075 0015883A +@3076 00BFFFC4 +@3077 5089883A +@3078 588B883A +@3079 228D803A +@307A 314B883A +@307B 4104703A +@307C 4946703A +@307D 10C4B03A +@307E 10000226 +@307F 04400044 +@3080 0025883A +@3081 00803FC4 +@3082 644EB03A +@3083 3892703A +@3084 00802004 +@3085 6C90B03A +@3086 0015883A +@3087 48801626 +@3088 01001FC4 +@3089 3905883A +@308A 11CD803A +@308B 320D883A +@308C 100F883A +@308D 00840034 +@308E 10BFFFC4 +@308F 3011883A +@3090 0007883A +@3091 11801B36 +@3092 4004963A +@3093 3808D23A +@3094 400AD23A +@3095 1813883A +@3096 1108B03A +@3097 00BFFFC4 +@3098 00C00434 +@3099 18FFFFC4 +@309A 208C703A +@309B 28CE703A +@309C 4A01FFCC +@309D 003F7206 +@309E 503FE91E +@309F 01004004 +@30A0 3904703A +@30A1 0007883A +@30A2 10C4B03A +@30A3 10000626 +@30A4 3A45883A +@30A5 11CD803A +@30A6 320D883A +@30A7 100F883A +@30A8 3011883A +@30A9 0007883A +@30AA 00840034 +@30AB 10BFFFC4 +@30AC 123FE52E +@30AD 00C00044 +@30AE 003FE306 +@30AF 0009883A +@30B0 0013883A +@30B1 000B883A +@30B2 003FE406 +@30B3 4A47883A +@30B4 008007C4 +@30B5 1105C83A +@30B6 1886983A +@30B7 4118D83A +@30B8 491AD83A +@30B9 1B18B03A +@30BA 003FB506 +@30BB 2806D07A +@30BC 008007C4 +@30BD 1105C83A +@30BE 1896D83A +@30BF 2914983A +@30C0 003FB506 +@30C1 20C00117 +@30C2 22400017 +@30C3 00800434 +@30C4 10BFFFC4 +@30C5 1808D53A +@30C6 180CD7FA +@30C7 1894703A +@30C8 2201FFCC +@30C9 281B883A +@30CA 4817883A +@30CB 29800115 +@30CC 5019883A +@30CD 40001E1E +@30CE 4A84B03A +@30CF 10001926 +@30D0 4804D63A +@30D1 500C923A +@30D2 013F0084 +@30D3 00C40034 +@30D4 18FFFFC4 +@30D5 118CB03A +@30D6 008000C4 +@30D7 480A923A +@30D8 68800015 +@30D9 69000215 +@30DA 19800B36 +@30DB 200F883A +@30DC 1811883A +@30DD 2945883A +@30DE 1149803A +@30DF 3187883A +@30E0 20C9883A +@30E1 100B883A +@30E2 200D883A +@30E3 39FFFFC4 +@30E4 413FF82E +@30E5 69C00215 +@30E6 69800415 +@30E7 69400315 +@30E8 F800283A +@30E9 00800084 +@30EA 28800015 +@30EB F800283A +@30EC 0081FFC4 +@30ED 40800F26 +@30EE 480CD63A +@30EF 5006923A +@30F0 4804923A +@30F1 0009883A +@30F2 30C6B03A +@30F3 01440034 +@30F4 110CB03A +@30F5 423F0044 +@30F6 194EB03A +@30F7 008000C4 +@30F8 69C00415 +@30F9 6A000215 +@30FA 68800015 +@30FB 69800315 +@30FC F800283A +@30FD 4A84B03A +@30FE 1000031E +@30FF 00800104 +@3100 28800015 +@3101 F800283A +@3102 0009883A +@3103 01400234 +@3104 4904703A +@3105 5146703A +@3106 10C4B03A +@3107 10000526 +@3108 00800044 +@3109 68800015 +@310A 6B000415 +@310B 6AC00315 +@310C F800283A +@310D 68000015 +@310E 003FFB06 +@310F 21800017 +@3110 00C00044 +@3111 19800A2E +@3112 28800017 +@3113 1880082E +@3114 00C00104 +@3115 30C02626 +@3116 10C02226 +@3117 00C00084 +@3118 30C00526 +@3119 10C0071E +@311A 20800117 +@311B 1000091E +@311C 00800044 +@311D F800283A +@311E 10C01A1E +@311F 0005883A +@3120 F800283A +@3121 22000117 +@3122 28800117 +@3123 40800326 +@3124 403FF726 +@3125 00BFFFC4 +@3126 F800283A +@3127 20C00217 +@3128 28800217 +@3129 10FFFA16 +@312A 18800916 +@312B 21C00417 +@312C 28C00417 +@312D 21800317 +@312E 28800317 +@312F 19FFF436 +@3130 38C00526 +@3131 38C00236 +@3132 19FFEC1E +@3133 30BFEB2E +@3134 403FE71E +@3135 003FEF06 +@3136 11BFFA2E +@3137 403FE426 +@3138 003FEC06 +@3139 28800117 +@313A 103FE11E +@313B 003FE906 +@313C 11BFDD1E +@313D 28C00117 +@313E 20800117 +@313F 1885C83A +@3140 F800283A +@3141 DEFFF804 +@3142 DFC00715 +@3143 DF000615 +@3144 DF000604 +@3145 E13FFC15 +@3146 E0BFFC17 +@3147 1004803A +@3148 1000091E +@3149 E13FFC17 +@314A 01400304 +@314B 0002C3C0 +@314C 1007883A +@314D 00800074 +@314E 1083C404 +@314F 1887883A +@3150 E0FFFF15 +@3151 00000106 +@3152 E03FFF15 +@3153 E0BFFF17 +@3154 E0BFFB15 +@3155 E0BFFB17 +@3156 1005003A +@3157 10001D1E +@3158 E0BFFB17 +@3159 10800017 +@315A 10800417 +@315B 1005003A +@315C 1000071E +@315D E0BFFB17 +@315E 10800017 +@315F 10800417 +@3160 E13FFB17 +@3161 103EE83A +@3162 E0BFFE15 +@3163 00000106 +@3164 E03FFE15 +@3165 E0BFFE17 +@3166 E0BFFA15 +@3167 E13FFC17 +@3168 000CD5C0 +@3169 E0BFFA17 +@316A 1004403A +@316B 1000071E +@316C 000C6040 +@316D E0FFFA17 +@316E 00C7C83A +@316F 10C00015 +@3170 00BFFFC4 +@3171 E0BFFD15 +@3172 00000806 +@3173 E03FFD15 +@3174 00000606 +@3175 000C6040 +@3176 1007883A +@3177 00801444 +@3178 18800015 +@3179 00BFFFC4 +@317A E0BFFD15 +@317B E0BFFD17 +@317C E037883A +@317D DFC00117 +@317E DF000017 +@317F DEC00204 +@3180 F800283A +@3181 DEFFFD04 +@3182 DFC00215 +@3183 DF000115 +@3184 DF000104 +@3185 00800074 +@3186 10889104 +@3187 10800017 +@3188 1005003A +@3189 1000061E +@318A 00800074 +@318B 10889104 +@318C 10800017 +@318D 103EE83A +@318E E0BFFF15 +@318F 00000306 +@3190 00800074 +@3191 108F8404 +@3192 E0BFFF15 +@3193 E0BFFF17 +@3194 E037883A +@3195 DFC00117 +@3196 DF000017 +@3197 DEC00204 +@3198 F800283A +@3199 DEFFFC04 +@319A DF000315 +@319B DF000304 +@319C E13FFD15 +@319D E17FFE15 +@319E E1BFFF15 +@319F E0BFFF17 +@31A0 E037883A +@31A1 DF000017 +@31A2 DEC00104 +@31A3 F800283A +@31A4 DEFFF904 +@31A5 DFC00615 +@31A6 DF000515 +@31A7 DF000504 +@31A8 E13FFC15 +@31A9 E17FFD15 +@31AA E0BFFC17 +@31AB 1004803A +@31AC 1000091E +@31AD E13FFC17 +@31AE 01400304 +@31AF 0002C3C0 +@31B0 1007883A +@31B1 00800074 +@31B2 1083C404 +@31B3 1887883A +@31B4 E0FFFF15 +@31B5 00000106 +@31B6 E03FFF15 +@31B7 E0BFFF17 +@31B8 E0BFFB15 +@31B9 E0BFFB17 +@31BA 1005003A +@31BB 1000121E +@31BC E0BFFB17 +@31BD 10800017 +@31BE 10800817 +@31BF 1005003A +@31C0 1000081E +@31C1 E0BFFB17 +@31C2 10800017 +@31C3 10800817 +@31C4 E13FFB17 +@31C5 E17FFD17 +@31C6 103EE83A +@31C7 E0BFFE15 +@31C8 00000B06 +@31C9 E0FFFD17 +@31CA 00880004 +@31CB 18800115 +@31CC E03FFE15 +@31CD 00000606 +@31CE 000C7680 +@31CF 1007883A +@31D0 00801444 +@31D1 18800015 +@31D2 00BFFFC4 +@31D3 E0BFFE15 +@31D4 E0BFFE17 +@31D5 E037883A +@31D6 DFC00117 +@31D7 DF000017 +@31D8 DEC00204 +@31D9 F800283A +@31DA DEFFFD04 +@31DB DFC00215 +@31DC DF000115 +@31DD DF000104 +@31DE 00800074 +@31DF 10889104 +@31E0 10800017 +@31E1 1005003A +@31E2 1000061E +@31E3 00800074 +@31E4 10889104 +@31E5 10800017 +@31E6 103EE83A +@31E7 E0BFFF15 +@31E8 00000306 +@31E9 00800074 +@31EA 108F8404 +@31EB E0BFFF15 +@31EC E0BFFF17 +@31ED E037883A +@31EE DFC00117 +@31EF DF000017 +@31F0 DEC00204 +@31F1 F800283A +@31F2 DEFFEB04 +@31F3 DFC01415 +@31F4 DF001315 +@31F5 DF001304 +@31F6 E13FFD15 +@31F7 E0BFFD17 +@31F8 1004803A +@31F9 1000091E +@31FA E13FFD17 +@31FB 01400304 +@31FC 0002C3C0 +@31FD 1007883A +@31FE 00800074 +@31FF 1083C404 +@3200 1887883A +@3201 E0FFFF15 +@3202 00000106 +@3203 E03FFF15 +@3204 E0BFFF17 +@3205 E0BFED15 +@3206 E0BFED17 +@3207 1005003A +@3208 10000F1E +@3209 E0BFED17 +@320A 10800017 +@320B 10800817 +@320C 1004C03A +@320D 1000031E +@320E 00800044 +@320F E0BFFE15 +@3210 00000C06 +@3211 E17FEE04 +@3212 E13FFD17 +@3213 000C6900 +@3214 E0BFEF17 +@3215 10880020 +@3216 E0BFFE15 +@3217 00000506 +@3218 000C88C0 +@3219 1007883A +@321A 00801444 +@321B 18800015 +@321C E03FFE15 +@321D E0BFFE17 +@321E E037883A +@321F DFC00117 +@3220 DF000017 +@3221 DEC00204 +@3222 F800283A +@3223 DEFFFD04 +@3224 DFC00215 +@3225 DF000115 +@3226 DF000104 +@3227 00800074 +@3228 10889104 +@3229 10800017 +@322A 1005003A +@322B 1000061E +@322C 00800074 +@322D 10889104 +@322E 10800017 +@322F 103EE83A +@3230 E0BFFF15 +@3231 00000306 +@3232 00800074 +@3233 108F8404 +@3234 E0BFFF15 +@3235 E0BFFF17 +@3236 E037883A +@3237 DFC00117 +@3238 DF000017 +@3239 DEC00204 +@323A F800283A +@323B DEFFFE04 +@323C DFC00115 +@323D DF000015 +@323E D839883A +@323F 01000074 +@3240 21089704 +@3241 01400074 +@3242 2941B504 +@3243 01800074 +@3244 31889704 +@3245 000C96C0 +@3246 01000034 +@3247 21000804 +@3248 01400034 +@3249 29400804 +@324A 01800034 +@324B 31806D04 +@324C 000C96C0 +@324D 01000074 +@324E 213FEA04 +@324F 01400074 +@3250 297FEA04 +@3251 01800074 +@3252 3181B504 +@3253 000C96C0 +@3254 000EE400 +@3255 000F0380 +@3256 E037883A +@3257 DFC00117 +@3258 DF000017 +@3259 DEC00204 +@325A F800283A +@325B DEFFFC04 +@325C DF000315 +@325D DF000304 +@325E E13FFD15 +@325F E17FFE15 +@3260 E1BFFF15 +@3261 E0FFFE17 +@3262 E0BFFD17 +@3263 18800E26 +@3264 00000A06 +@3265 E0BFFD17 +@3266 10C00017 +@3267 E0BFFE17 +@3268 10C00015 +@3269 E0BFFE17 +@326A 10800104 +@326B E0BFFE15 +@326C E0BFFD17 +@326D 10800104 +@326E E0BFFD15 +@326F E0FFFE17 +@3270 E0BFFF17 +@3271 18BFF31E +@3272 E037883A +@3273 DF000017 +@3274 DEC00104 +@3275 F800283A +@3276 DEFFF804 +@3277 DFC00715 +@3278 DF000615 +@3279 DF000604 +@327A E13FFC15 +@327B E17FFD15 +@327C E1BFFE15 +@327D E03FFA15 +@327E E0BFFC17 +@327F 1004803A +@3280 1000091E +@3281 E13FFC17 +@3282 01400304 +@3283 0002C3C0 +@3284 1007883A +@3285 00800074 +@3286 1083C404 +@3287 1887883A +@3288 E0FFFF15 +@3289 00000106 +@328A E03FFF15 +@328B E0BFFF17 +@328C E0BFFB15 +@328D E0BFFB17 +@328E 1005003A +@328F 1000111E +@3290 E0BFFB17 +@3291 10800017 +@3292 10800717 +@3293 1005003A +@3294 1000091E +@3295 E0BFFB17 +@3296 10800017 +@3297 10800717 +@3298 E13FFB17 +@3299 E17FFD17 +@329A E1BFFE17 +@329B 103EE83A +@329C E0BFFA15 +@329D 00000506 +@329E 00BFDE84 +@329F E0BFFA15 +@32A0 00000206 +@32A1 00BFEBC4 +@32A2 E0BFFA15 +@32A3 E0BFFA17 +@32A4 1004403A +@32A5 1000071E +@32A6 000CACC0 +@32A7 1007883A +@32A8 E0BFFA17 +@32A9 0085C83A +@32AA 18800015 +@32AB 00BFFFC4 +@32AC E0BFFA15 +@32AD E0BFFA17 +@32AE E037883A +@32AF DFC00117 +@32B0 DF000017 +@32B1 DEC00204 +@32B2 F800283A +@32B3 DEFFFD04 +@32B4 DFC00215 +@32B5 DF000115 +@32B6 DF000104 +@32B7 00800074 +@32B8 10889104 +@32B9 10800017 +@32BA 1005003A +@32BB 1000061E +@32BC 00800074 +@32BD 10889104 +@32BE 10800017 +@32BF 103EE83A +@32C0 E0BFFF15 +@32C1 00000306 +@32C2 00800074 +@32C3 108F8404 +@32C4 E0BFFF15 +@32C5 E0BFFF17 +@32C6 E037883A +@32C7 DFC00117 +@32C8 DF000017 +@32C9 DEC00204 +@32CA F800283A +@32CB DEFFFD04 +@32CC DFC00215 +@32CD DF000115 +@32CE DF000104 +@32CF 0009883A +@32D0 000D0440 +@32D1 000D0780 +@32D2 01000074 +@32D3 2101A804 +@32D4 01400074 +@32D5 2941A804 +@32D6 01800074 +@32D7 3181A804 +@32D8 000F3F80 +@32D9 000EF700 +@32DA 01000074 +@32DB 213BF504 +@32DC 000FB9C0 +@32DD D1270117 +@32DE D1670217 +@32DF D1A70317 +@32E0 00009200 +@32E1 E0BFFF15 +@32E2 01000044 +@32E3 000C5040 +@32E4 E13FFF17 +@32E5 000FBB00 +@32E6 DEFFFE04 +@32E7 DF000115 +@32E8 DF000104 +@32E9 E13FFF15 +@32EA E037883A +@32EB DF000017 +@32EC DEC00104 +@32ED F800283A +@32EE DEFFFE04 +@32EF DF000115 +@32F0 DF000104 +@32F1 E13FFF15 +@32F2 E037883A +@32F3 DF000017 +@32F4 DEC00104 +@32F5 F800283A +@32F6 DEFFF704 +@32F7 DFC00815 +@32F8 DF000715 +@32F9 DF000704 +@32FA E13FFB15 +@32FB E17FFC15 +@32FC E1BFFD15 +@32FD E0BFFB17 +@32FE 1004803A +@32FF 1000091E +@3300 E13FFB17 +@3301 01400304 +@3302 0002C3C0 +@3303 1007883A +@3304 00800074 +@3305 1083C404 +@3306 1887883A +@3307 E0FFFF15 +@3308 00000106 +@3309 E03FFF15 +@330A E0BFFF17 +@330B E0BFFA15 +@330C E0BFFA17 +@330D 1005003A +@330E 1000241E +@330F E0BFFA17 +@3310 10800217 +@3311 108000CC +@3312 10800060 +@3313 10001A1E +@3314 E0BFFA17 +@3315 10800017 +@3316 10800517 +@3317 1005003A +@3318 1000151E +@3319 E0BFFA17 +@331A 10800017 +@331B 10800517 +@331C E17FFC17 +@331D E1BFFD17 +@331E E13FFA17 +@331F 103EE83A +@3320 E0BFF915 +@3321 E0BFF917 +@3322 1004403A +@3323 1000071E +@3324 000CCFC0 +@3325 E0FFF917 +@3326 00C7C83A +@3327 10C00015 +@3328 00BFFFC4 +@3329 E0BFFE15 +@332A 00000E06 +@332B E0BFF917 +@332C E0BFFE15 +@332D 00000B06 +@332E 000CCFC0 +@332F 1007883A +@3330 00800344 +@3331 18800015 +@3332 00000406 +@3333 000CCFC0 +@3334 1007883A +@3335 00801444 +@3336 18800015 +@3337 00BFFFC4 +@3338 E0BFFE15 +@3339 E0BFFE17 +@333A E037883A +@333B DFC00117 +@333C DF000017 +@333D DEC00204 +@333E F800283A +@333F DEFFFD04 +@3340 DFC00215 +@3341 DF000115 +@3342 DF000104 +@3343 00800074 +@3344 10889104 +@3345 10800017 +@3346 1005003A +@3347 1000061E +@3348 00800074 +@3349 10889104 +@334A 10800017 +@334B 103EE83A +@334C E0BFFF15 +@334D 00000306 +@334E 00800074 +@334F 108F8404 +@3350 E0BFFF15 +@3351 E0BFFF17 +@3352 E037883A +@3353 DFC00117 +@3354 DF000017 +@3355 DEC00204 +@3356 F800283A +@3357 DEFFFC04 +@3358 DFC00315 +@3359 DF000215 +@335A DC000115 +@335B DF000104 +@335C E13FFF15 +@335D E0BFFF17 +@335E 108000D0 +@335F 10000F1E +@3360 E13FFF17 +@3361 04000074 +@3362 8403C404 +@3363 01400304 +@3364 0002C3C0 +@3365 1405883A +@3366 10800204 +@3367 10000015 +@3368 E13FFF17 +@3369 04000074 +@336A 8403C404 +@336B 01400304 +@336C 0002C3C0 +@336D 1405883A +@336E 10000015 +@336F E037883A +@3370 DFC00217 +@3371 DF000117 +@3372 DC000017 +@3373 DEC00304 +@3374 F800283A +@3375 DEFFF804 +@3376 DF000715 +@3377 DF000704 +@3378 E13FFE15 +@3379 0005303A +@337A E0BFFB15 +@337B E0FFFB17 +@337C 00BFFF84 +@337D 1884703A +@337E 1001703A +@337F E0BFFB17 +@3380 E0BFFD15 +@3381 D0A00E17 +@3382 10C000C4 +@3383 00BFFF04 +@3384 1884703A +@3385 D0A00E15 +@3386 D0E00E17 +@3387 E0BFFE17 +@3388 1887883A +@3389 008000F4 +@338A 10880004 +@338B 10C0072E +@338C E0BFFD17 +@338D E0BFFA15 +@338E E0BFFA17 +@338F 1001703A +@3390 00BFFFC4 +@3391 E0BFFF15 +@3392 00000C06 +@3393 D0A00E17 +@3394 E0BFFC15 +@3395 D0E00E17 +@3396 E0BFFE17 +@3397 1885883A +@3398 D0A00E15 +@3399 E0BFFD17 +@339A E0BFF915 +@339B E0BFF917 +@339C 1001703A +@339D E0BFFC17 +@339E E0BFFF15 +@339F E0BFFF17 +@33A0 E037883A +@33A1 DF000017 +@33A2 DEC00104 +@33A3 F800283A +@33A4 DEFFFD04 +@33A5 DFC00215 +@33A6 DF000115 +@33A7 DF000104 +@33A8 E13FFF15 +@33A9 E13FFF17 +@33AA 000ECE40 +@33AB E037883A +@33AC DFC00117 +@33AD DF000017 +@33AE DEC00204 +@33AF F800283A +@33B0 DEFFF704 +@33B1 DFC00815 +@33B2 DF000715 +@33B3 DF000704 +@33B4 E13FFB15 +@33B5 E17FFC15 +@33B6 E1BFFD15 +@33B7 E0BFFB17 +@33B8 1004803A +@33B9 1000091E +@33BA E13FFB17 +@33BB 01400304 +@33BC 0002C3C0 +@33BD 1007883A +@33BE 00800074 +@33BF 1083C404 +@33C0 1887883A +@33C1 E0FFFF15 +@33C2 00000106 +@33C3 E03FFF15 +@33C4 E0BFFF17 +@33C5 E0BFFA15 +@33C6 E0BFFA17 +@33C7 1005003A +@33C8 1000241E +@33C9 E0BFFA17 +@33CA 10800217 +@33CB 108000CC +@33CC 1005003A +@33CD 10001A1E +@33CE E0BFFA17 +@33CF 10800017 +@33D0 10800617 +@33D1 1005003A +@33D2 1000151E +@33D3 E0BFFA17 +@33D4 10800017 +@33D5 10800617 +@33D6 E17FFC17 +@33D7 E1BFFD17 +@33D8 E13FFA17 +@33D9 103EE83A +@33DA E0BFF915 +@33DB E0BFF917 +@33DC 1004403A +@33DD 1000071E +@33DE 000CFE40 +@33DF E0FFF917 +@33E0 00C7C83A +@33E1 10C00015 +@33E2 00BFFFC4 +@33E3 E0BFFE15 +@33E4 00000E06 +@33E5 E0BFF917 +@33E6 E0BFFE15 +@33E7 00000B06 +@33E8 000CFE40 +@33E9 1007883A +@33EA 00800344 +@33EB 18800015 +@33EC 00000406 +@33ED 000CFE40 +@33EE 1007883A +@33EF 00801444 +@33F0 18800015 +@33F1 00BFFFC4 +@33F2 E0BFFE15 +@33F3 E0BFFE17 +@33F4 E037883A +@33F5 DFC00117 +@33F6 DF000017 +@33F7 DEC00204 +@33F8 F800283A +@33F9 DEFFFD04 +@33FA DFC00215 +@33FB DF000115 +@33FC DF000104 +@33FD 00800074 +@33FE 10889104 +@33FF 10800017 +@3400 1005003A +@3401 1000061E +@3402 00800074 +@3403 10889104 +@3404 10800017 +@3405 103EE83A +@3406 E0BFFF15 +@3407 00000306 +@3408 00800074 +@3409 108F8404 +@340A E0BFFF15 +@340B E0BFFF17 +@340C E037883A +@340D DFC00117 +@340E DF000017 +@340F DEC00204 +@3410 F800283A +@3411 DEFFFD04 +@3412 DFC00215 +@3413 DF000115 +@3414 DF000104 +@3415 E13FFF15 +@3416 000F8F80 +@3417 00800044 +@3418 1001703A +@3419 E037883A +@341A DFC00117 +@341B DF000017 +@341C DEC00204 +@341D F800283A +@341E DEFFFE04 +@341F DFC00115 +@3420 DF000015 +@3421 D839883A +@3422 01000074 +@3423 21042E04 +@3424 000B883A +@3425 01800144 +@3426 000D2540 +@3427 01000074 +@3428 21042404 +@3429 000D0D40 +@342A 01000074 +@342B 21084604 +@342C 000E9FC0 +@342D 01000074 +@342E 21083C04 +@342F 000D0D40 +@3430 E037883A +@3431 DFC00117 +@3432 DF000017 +@3433 DEC00204 +@3434 F800283A +@3435 DEFFFD04 +@3436 DFC00215 +@3437 DF000115 +@3438 DF000104 +@3439 E13FFF15 +@343A E13FFF17 +@343B 01400074 +@343C 29488E04 +@343D 000EE5C0 +@343E E037883A +@343F DFC00117 +@3440 DF000017 +@3441 DEC00204 +@3442 F800283A +@3443 DEFFFA04 +@3444 DFC00515 +@3445 DF000415 +@3446 DF000404 +@3447 E13FFD15 +@3448 E17FFE15 +@3449 E1BFFF15 +@344A E0BFFD17 +@344B 10800017 +@344C E0BFFC15 +@344D E0BFFC17 +@344E 11000A04 +@344F E0BFFD17 +@3450 11C00217 +@3451 E17FFE17 +@3452 E1BFFF17 +@3453 000D7540 +@3454 E037883A +@3455 DFC00117 +@3456 DF000017 +@3457 DEC00204 +@3458 F800283A +@3459 DEFFFA04 +@345A DFC00515 +@345B DF000415 +@345C DF000404 +@345D E13FFD15 +@345E E17FFE15 +@345F E1BFFF15 +@3460 E0BFFD17 +@3461 10800017 +@3462 E0BFFC15 +@3463 E0BFFC17 +@3464 11000A04 +@3465 E0BFFD17 +@3466 11C00217 +@3467 E17FFE17 +@3468 E1BFFF17 +@3469 000D9780 +@346A E037883A +@346B DFC00117 +@346C DF000017 +@346D DEC00204 +@346E F800283A +@346F DEFFFC04 +@3470 DFC00315 +@3471 DF000215 +@3472 DF000204 +@3473 E13FFF15 +@3474 E0BFFF17 +@3475 10800017 +@3476 E0BFFE15 +@3477 E0BFFE17 +@3478 11000A04 +@3479 E0BFFF17 +@347A 11400217 +@347B 000D5EC0 +@347C E037883A +@347D DFC00117 +@347E DF000017 +@347F DEC00204 +@3480 F800283A +@3481 DEFFFA04 +@3482 DFC00515 +@3483 DF000415 +@3484 DF000404 +@3485 E13FFD15 +@3486 E17FFE15 +@3487 E1BFFF15 +@3488 E0BFFD17 +@3489 10800017 +@348A E0BFFC15 +@348B E0BFFC17 +@348C 11000A04 +@348D E17FFE17 +@348E E1BFFF17 +@348F 000D6600 +@3490 E037883A +@3491 DFC00117 +@3492 DF000017 +@3493 DEC00204 +@3494 F800283A +@3495 DEFFFA04 +@3496 DFC00515 +@3497 DF000415 +@3498 DF000404 +@3499 E13FFD15 +@349A E17FFE15 +@349B E1BFFF15 +@349C E0FFFD17 +@349D 00800044 +@349E 18800815 +@349F E0BFFD17 +@34A0 10800017 +@34A1 11000104 +@34A2 E0BFFD17 +@34A3 10800817 +@34A4 1007883A +@34A5 2005883A +@34A6 10C00035 +@34A7 E13FFE17 +@34A8 E17FFF17 +@34A9 D8000015 +@34AA 01800074 +@34AB 31B4C504 +@34AC E1FFFD17 +@34AD 000F0540 +@34AE E0BFFD17 +@34AF 10000915 +@34B0 E0BFFD17 +@34B1 11000204 +@34B2 00800074 +@34B3 108F8904 +@34B4 10800017 +@34B5 100B883A +@34B6 01800074 +@34B7 31B54F04 +@34B8 E1FFFD17 +@34B9 000EB900 +@34BA 1004403A +@34BB 1000041E +@34BC E0FFFD17 +@34BD 00A00034 +@34BE 10BFFFC4 +@34BF 18800115 +@34C0 E037883A +@34C1 DFC00117 +@34C2 DF000017 +@34C3 DEC00204 +@34C4 F800283A +@34C5 DEFFF804 +@34C6 DF000715 +@34C7 DF000704 +@34C8 E13FFF15 +@34C9 E0BFFF17 +@34CA E0BFFE15 +@34CB E0BFFE17 +@34CC 10800017 +@34CD E0BFFD15 +@34CE 00000006 +@34CF E0BFFD17 +@34D0 10800104 +@34D1 10800037 +@34D2 E0BFFC15 +@34D3 E0BFFC17 +@34D4 1080C00C +@34D5 1005003A +@34D6 1000741E +@34D7 E0BFFC17 +@34D8 1080400C +@34D9 1005003A +@34DA 1000351E +@34DB 00800074 +@34DC E0BFFB15 +@34DD E0BFFE17 +@34DE 10800A17 +@34DF 10800044 +@34E0 1081FFCC +@34E1 E0BFFA15 +@34E2 E0BFFE17 +@34E3 10C00B17 +@34E4 E0BFFA17 +@34E5 18801626 +@34E6 E0BFFD17 +@34E7 10800037 +@34E8 E0BFFB15 +@34E9 E0BFFB17 +@34EA 10A0000C +@34EB 1005003A +@34EC 10000F1E +@34ED E0BFFE17 +@34EE 10C00A17 +@34EF E0BFFB17 +@34F0 1009883A +@34F1 E0BFFE17 +@34F2 1885883A +@34F3 10800E04 +@34F4 11000005 +@34F5 E0BFFE17 +@34F6 10800A17 +@34F7 10800044 +@34F8 10C1FFCC +@34F9 E0BFFE17 +@34FA 10C00A15 +@34FB 003FE106 +@34FC E0BFFB17 +@34FD 10BFFFEC +@34FE 1005003A +@34FF 1000101E +@3500 E0BFFE17 +@3501 10C00817 +@3502 00BFFF84 +@3503 1886703A +@3504 E0BFFE17 +@3505 10C00815 +@3506 E0BFFD17 +@3507 11000104 +@3508 E0BFFE17 +@3509 10800817 +@350A 1007883A +@350B 2005883A +@350C 10C00035 +@350D E0BFFD17 +@350E 10800104 +@350F 10800037 +@3510 E0BFFC17 +@3511 1080800C +@3512 1005003A +@3513 103FBB1E +@3514 E0BFFC17 +@3515 10BFFFEC +@3516 1004D43A +@3517 E0BFF915 +@3518 00001506 +@3519 E13FFD17 +@351A E0BFFE17 +@351B 10C00D17 +@351C E0BFFE17 +@351D 1885883A +@351E 10820E04 +@351F 10800003 +@3520 10C03FCC +@3521 18C0201C +@3522 18FFE004 +@3523 2005883A +@3524 10C00035 +@3525 E0BFFE17 +@3526 10800D17 +@3527 10800044 +@3528 10C1FFCC +@3529 E0BFFE17 +@352A 10C00D15 +@352B E0BFF917 +@352C 10BFFFC4 +@352D E0BFF915 +@352E E0BFF917 +@352F 1005003A +@3530 1000051E +@3531 E0BFFE17 +@3532 10C00D17 +@3533 E0BFFE17 +@3534 10800C17 +@3535 18BFE31E +@3536 E0BFF917 +@3537 1005003A +@3538 103F961E +@3539 E0BFFE17 +@353A 10C00817 +@353B 00BFFF44 +@353C 1886703A +@353D E0BFFE17 +@353E 10C00815 +@353F E0BFFE17 +@3540 10800017 +@3541 11000104 +@3542 E0BFFE17 +@3543 10800817 +@3544 1007883A +@3545 2005883A +@3546 10C00035 +@3547 E0BFFD17 +@3548 10800104 +@3549 10800037 +@354A 003F8406 +@354B E037883A +@354C DF000017 +@354D DEC00104 +@354E F800283A +@354F DEFFFC04 +@3550 DF000315 +@3551 DF000304 +@3552 E13FFF15 +@3553 E0BFFF17 +@3554 E0BFFE15 +@3555 E0BFFE17 +@3556 10800017 +@3557 10800104 +@3558 10800037 +@3559 E0BFFD15 +@355A E0BFFD17 +@355B 1081000C +@355C 1005003A +@355D 10000C1E +@355E E0BFFE17 +@355F 10800017 +@3560 11000104 +@3561 E0BFFE17 +@3562 10800817 +@3563 10810014 +@3564 1007883A +@3565 2005883A +@3566 10C00035 +@3567 E0BFFE17 +@3568 10000915 +@3569 00000A06 +@356A E0BFFE17 +@356B 10C00917 +@356C 00A00034 +@356D 10BFFF04 +@356E 10C00536 +@356F E0BFFE17 +@3570 10800917 +@3571 10C00044 +@3572 E0BFFE17 +@3573 10C00915 +@3574 00800074 +@3575 108F8904 +@3576 10800017 +@3577 E037883A +@3578 DF000017 +@3579 DEC00104 +@357A F800283A +@357B DEFFFC04 +@357C DF000315 +@357D DF000304 +@357E E13FFD15 +@357F E17FFE15 +@3580 00000706 +@3581 E0BFFE17 +@3582 1090000C +@3583 1005003A +@3584 1000031E +@3585 00BFFD44 +@3586 E0BFFF15 +@3587 00000B06 +@3588 E0BFFD17 +@3589 10C00D17 +@358A E0BFFD17 +@358B 10800C17 +@358C 18800526 +@358D E0BFFD17 +@358E 10C00917 +@358F E0BFFD17 +@3590 10800117 +@3591 18BFEF36 +@3592 E03FFF15 +@3593 E0BFFF17 +@3594 E037883A +@3595 DF000017 +@3596 DEC00104 +@3597 F800283A +@3598 DEFFF804 +@3599 DF000715 +@359A DF000704 +@359B E13FFB15 +@359C E17FFC15 +@359D E1BFFD15 +@359E 00BFF9C4 +@359F E0BFFA15 +@35A0 E0BFFC17 +@35A1 E0BFFF15 +@35A2 E0FFFF17 +@35A3 189A8060 +@35A4 1000041E +@35A5 E0FFFF17 +@35A6 189A80A0 +@35A7 10001B1E +@35A8 00002706 +@35A9 E0BFFB17 +@35AA 10C00117 +@35AB 00A00034 +@35AC 10BFFFC4 +@35AD 18802226 +@35AE E0BFFD17 +@35AF 10800017 +@35B0 E0BFF915 +@35B1 E0BFF917 +@35B2 10800090 +@35B3 1000071E +@35B4 E0FFF917 +@35B5 00A00034 +@35B6 10BFFFC4 +@35B7 18800326 +@35B8 E0BFF917 +@35B9 E0BFFE15 +@35BA 00000306 +@35BB 00E00034 +@35BC 18FFFF84 +@35BD E0FFFE15 +@35BE E0BFFB17 +@35BF E0FFFE17 +@35C0 10C00115 +@35C1 E03FFA15 +@35C2 00000D06 +@35C3 E0BFFB17 +@35C4 10C00117 +@35C5 00A00034 +@35C6 10BFFFC4 +@35C7 18800826 +@35C8 E13FFD17 +@35C9 E0BFFB17 +@35CA 10C00917 +@35CB E0BFFB17 +@35CC 10800117 +@35CD 1885803A +@35CE 20800015 +@35CF E03FFA15 +@35D0 E0BFFA17 +@35D1 E037883A +@35D2 DF000017 +@35D3 DEC00104 +@35D4 F800283A +@35D5 DEFFF204 +@35D6 DFC00D15 +@35D7 DF000C15 +@35D8 DF000C04 +@35D9 E13FFB15 +@35DA E17FFC15 +@35DB E1BFFD15 +@35DC E1FFFE15 +@35DD E0BFFC17 +@35DE E0BFFA15 +@35DF 00004806 +@35E0 E0BFFB17 +@35E1 10800A17 +@35E2 E0BFF715 +@35E3 E0BFFB17 +@35E4 10800B17 +@35E5 E0BFF615 +@35E6 E0FFF717 +@35E7 E0BFF617 +@35E8 18800536 +@35E9 E0BFF717 +@35EA E0FFF617 +@35EB 10C5C83A +@35EC E0BFF815 +@35ED 00000406 +@35EE 00820004 +@35EF E0FFF617 +@35F0 10C5C83A +@35F1 E0BFF815 +@35F2 E0BFF817 +@35F3 1005003A +@35F4 10001F1E +@35F5 E0FFFD17 +@35F6 E0BFF817 +@35F7 1880022E +@35F8 E0BFFD17 +@35F9 E0BFF815 +@35FA E0BFFB17 +@35FB 10C00E04 +@35FC E0BFF617 +@35FD 1887883A +@35FE E0BFFA17 +@35FF 1009883A +@3600 180B883A +@3601 E1BFF817 +@3602 000802C0 +@3603 E0FFF817 +@3604 E0BFFA17 +@3605 10C5883A +@3606 E0BFFA15 +@3607 E0FFFD17 +@3608 E0BFF817 +@3609 1885C83A +@360A E0BFFD15 +@360B E0FFF617 +@360C E0BFF817 +@360D 1885883A +@360E 10C1FFCC +@360F E0BFFB17 +@3610 10C00B15 +@3611 E0BFFD17 +@3612 10800048 +@3613 103FCC1E +@3614 E0FFFA17 +@3615 E0BFFC17 +@3616 1880141E +@3617 E0BFFE17 +@3618 1090000C +@3619 1004C03A +@361A 1000101E +@361B E0BFFB17 +@361C 10C00A17 +@361D E0BFF717 +@361E 1880051E +@361F E0BFFB17 +@3620 10C00917 +@3621 E0BFFB17 +@3622 10800117 +@3623 18BFF736 +@3624 E0BFFB17 +@3625 10C00A17 +@3626 E0BFF717 +@3627 18800326 +@3628 E0BFFD17 +@3629 10800048 +@362A 103FB51E +@362B E0FFFA17 +@362C E0BFFC17 +@362D 18801926 +@362E 0005303A +@362F E0BFF515 +@3630 E0FFF517 +@3631 00BFFF84 +@3632 1884703A +@3633 1001703A +@3634 E0BFF517 +@3635 E0BFF915 +@3636 E0BFFB17 +@3637 10800817 +@3638 10C00054 +@3639 E0BFFB17 +@363A 10C00815 +@363B E0BFFB17 +@363C 10800017 +@363D 11000104 +@363E E0BFFB17 +@363F 10800817 +@3640 1007883A +@3641 2005883A +@3642 10C00035 +@3643 E0BFF917 +@3644 E0BFF415 +@3645 E0BFF417 +@3646 1001703A +@3647 E0FFFA17 +@3648 E0BFFC17 +@3649 18800526 +@364A E0FFFA17 +@364B E0BFFC17 +@364C 1887C83A +@364D E0FFFF15 +@364E 00000906 +@364F E0BFFE17 +@3650 1090000C +@3651 1005003A +@3652 1000031E +@3653 00BFFD44 +@3654 E0BFFF15 +@3655 00000206 +@3656 00BFFEC4 +@3657 E0BFFF15 +@3658 E0BFFF17 +@3659 E037883A +@365A DFC00117 +@365B DF000017 +@365C DEC00204 +@365D F800283A +@365E DEFFF204 +@365F DFC00D15 +@3660 DF000C15 +@3661 DF000C04 +@3662 E13FFB15 +@3663 E17FFC15 +@3664 E1BFFD15 +@3665 E1FFFE15 +@3666 E03FF915 +@3667 E0BFFC17 +@3668 E0BFF615 +@3669 00003A06 +@366A E0BFFB17 +@366B 10800C17 +@366C E0BFFA15 +@366D E0BFFB17 +@366E 10800D17 +@366F E0BFF915 +@3670 E0FFFA17 +@3671 E0BFF917 +@3672 1880062E +@3673 E0FFF917 +@3674 E0BFFA17 +@3675 1885C83A +@3676 10BFFFC4 +@3677 E0BFF815 +@3678 00000C06 +@3679 E0BFF917 +@367A 1005003A +@367B 1000051E +@367C 00820004 +@367D E0FFFA17 +@367E 10C5C83A +@367F E0BFF815 +@3680 00000406 +@3681 0081FFC4 +@3682 E0FFFA17 +@3683 10C5C83A +@3684 E0BFF815 +@3685 E0BFF817 +@3686 1005003A +@3687 10001F1E +@3688 E0FFFD17 +@3689 E0BFF817 +@368A 1880022E +@368B E0BFFD17 +@368C E0BFF815 +@368D E0BFFB17 +@368E 10C20E04 +@368F E0BFFA17 +@3690 1885883A +@3691 E0FFFC17 +@3692 1009883A +@3693 180B883A +@3694 E1BFF817 +@3695 000802C0 +@3696 E0FFF817 +@3697 E0BFFC17 +@3698 10C5883A +@3699 E0BFFC15 +@369A E0FFFD17 +@369B E0BFF817 +@369C 1885C83A +@369D E0BFFD15 +@369E E0FFFA17 +@369F E0BFF817 +@36A0 1885883A +@36A1 10C1FFCC +@36A2 E0BFFB17 +@36A3 10C00C15 +@36A4 E0BFFD17 +@36A5 10800048 +@36A6 103FC31E +@36A7 0005303A +@36A8 E0BFF515 +@36A9 E0FFF517 +@36AA 00BFFF84 +@36AB 1884703A +@36AC 1001703A +@36AD E0BFF517 +@36AE E0BFF715 +@36AF E0BFFB17 +@36B0 10800817 +@36B1 10C00094 +@36B2 E0BFFB17 +@36B3 10C00815 +@36B4 E0BFFB17 +@36B5 10800017 +@36B6 11000104 +@36B7 E0BFFB17 +@36B8 10800817 +@36B9 1007883A +@36BA 2005883A +@36BB 10C00035 +@36BC E0BFF717 +@36BD E0BFF415 +@36BE E0BFF417 +@36BF 1001703A +@36C0 E0BFFD17 +@36C1 10800050 +@36C2 1000111E +@36C3 E0BFFE17 +@36C4 1090000C +@36C5 1004C03A +@36C6 1000101E +@36C7 E0BFFB17 +@36C8 10C00D17 +@36C9 E0BFF917 +@36CA 1880051E +@36CB E0BFFB17 +@36CC 10C00917 +@36CD E0BFFB17 +@36CE 10800117 +@36CF 18BFF736 +@36D0 E0BFFB17 +@36D1 10C00D17 +@36D2 E0BFF917 +@36D3 18800326 +@36D4 E0BFFD17 +@36D5 10800048 +@36D6 103FCD1E +@36D7 E0FFFC17 +@36D8 E0BFF617 +@36D9 18800526 +@36DA E0FFFC17 +@36DB E0BFF617 +@36DC 1887C83A +@36DD E0FFFF15 +@36DE 00000906 +@36DF E0BFFE17 +@36E0 1090000C +@36E1 1005003A +@36E2 1000031E +@36E3 00BFFD44 +@36E4 E0BFFF15 +@36E5 00000206 +@36E6 00BFFEC4 +@36E7 E0BFFF15 +@36E8 E0BFFF17 +@36E9 E037883A +@36EA DFC00117 +@36EB DF000017 +@36EC DEC00204 +@36ED F800283A +@36EE DEFFFA04 +@36EF DFC00515 +@36F0 DF000415 +@36F1 DF000404 +@36F2 E13FFE15 +@36F3 E17FFF05 +@36F4 E0BFFE17 +@36F5 10800017 +@36F6 E0BFFD15 +@36F7 008003F4 +@36F8 10909004 +@36F9 E0BFFC15 +@36FA E0BFFE17 +@36FB 10800803 +@36FC 10803FCC +@36FD 1080201C +@36FE 10BFE004 +@36FF 1004C03A +@3700 1000161E +@3701 00000A06 +@3702 E0BFFC17 +@3703 10BFFFC4 +@3704 E0BFFC15 +@3705 E0BFFC17 +@3706 1004C03A +@3707 1000041E +@3708 E0FFFE17 +@3709 00800044 +@370A 18800805 +@370B 00000B06 +@370C E0BFFD17 +@370D 10800104 +@370E 10800037 +@370F 1080200C +@3710 1004C03A +@3711 103FF01E +@3712 01001904 +@3713 000CE900 +@3714 E0BFFD17 +@3715 E0FFFF03 +@3716 10C00035 +@3717 E037883A +@3718 DFC00117 +@3719 DF000017 +@371A DEC00204 +@371B F800283A +@371C DEFFFA04 +@371D DFC00515 +@371E DF000415 +@371F DF000404 +@3720 E13FFE15 +@3721 E17FFF05 +@3722 E0BFFE17 +@3723 10800017 +@3724 E0BFFD15 +@3725 008003F4 +@3726 10909004 +@3727 E0BFFC15 +@3728 E0BFFE17 +@3729 10800803 +@372A 10803FCC +@372B 1080201C +@372C 10BFE004 +@372D 1004C03A +@372E 10001D1E +@372F 00000A06 +@3730 E0BFFC17 +@3731 10BFFFC4 +@3732 E0BFFC15 +@3733 E0BFFC17 +@3734 1004C03A +@3735 1000041E +@3736 E0FFFE17 +@3737 00800044 +@3738 18800805 +@3739 00001206 +@373A E0BFFD17 +@373B 10800104 +@373C 10800037 +@373D 1080200C +@373E 1004C03A +@373F 103FF01E +@3740 01001904 +@3741 000CE900 +@3742 E0BFFD17 +@3743 10800204 +@3744 E0FFFF03 +@3745 10C00035 +@3746 E0BFFE17 +@3747 108008C3 +@3748 10800044 +@3749 1007883A +@374A E0BFFE17 +@374B 10C008C5 +@374C E037883A +@374D DFC00117 +@374E DF000017 +@374F DEC00204 +@3750 F800283A +@3751 DEFFFB04 +@3752 DFC00415 +@3753 DF000315 +@3754 DC000215 +@3755 DF000204 +@3756 E13FFF15 +@3757 E13FFF17 +@3758 01400044 +@3759 000DBB80 +@375A E0BFFF17 +@375B 10000845 +@375C E0BFFF17 +@375D 10000885 +@375E E0BFFF17 +@375F 100008C5 +@3760 E03FFE15 +@3761 00001C06 +@3762 E13FFE17 +@3763 014018C4 +@3764 0002C3C0 +@3765 10C01004 +@3766 E0BFFF17 +@3767 1889883A +@3768 01400804 +@3769 01801444 +@376A 00081AC0 +@376B E13FFE17 +@376C 014018C4 +@376D 0002C3C0 +@376E 10C00C04 +@376F E0BFFF17 +@3770 1889883A +@3771 01400804 +@3772 01800404 +@3773 00081AC0 +@3774 E13FFE17 +@3775 E43FFF17 +@3776 014018C4 +@3777 0002C3C0 +@3778 1405883A +@3779 10802404 +@377A 10000045 +@377B E0BFFE17 +@377C 10800044 +@377D E0BFFE15 +@377E E0BFFE17 +@377F 10800090 +@3780 103FE11E +@3781 E037883A +@3782 DFC00217 +@3783 DF000117 +@3784 DC000017 +@3785 DEC00304 +@3786 F800283A +@3787 DEFFF404 +@3788 DFC00B15 +@3789 DF000A15 +@378A DC800915 +@378B DC400815 +@378C DC000715 +@378D DF000704 +@378E E13FFF15 +@378F E0BFFF17 +@3790 10800943 +@3791 10803FCC +@3792 1080201C +@3793 10BFE004 +@3794 E0BFFC15 +@3795 E03FFE15 +@3796 00006A06 +@3797 E13FFE17 +@3798 E43FFF17 +@3799 014018C4 +@379A 0002C3C0 +@379B 1405883A +@379C 10802404 +@379D 10800043 +@379E 10803FCC +@379F 1080201C +@37A0 10BFE004 +@37A1 E0BFFB15 +@37A2 E13FFE17 +@37A3 E43FFF17 +@37A4 014018C4 +@37A5 0002C3C0 +@37A6 1405883A +@37A7 10802404 +@37A8 10800083 +@37A9 11003FCC +@37AA E17FFC17 +@37AB 0002C3C0 +@37AC 1005D23A +@37AD E0BFFA15 +@37AE E0FFFA17 +@37AF E0BFFB17 +@37B0 18800116 +@37B1 E03FFA15 +@37B2 E03FFD15 +@37B3 00004706 +@37B4 E47FFE17 +@37B5 E0FFFD17 +@37B6 E0BFFA17 +@37B7 1889883A +@37B8 E17FFB17 +@37B9 0002BCC0 +@37BA 1025883A +@37BB E43FFF17 +@37BC 8809883A +@37BD 014018C4 +@37BE 0002C3C0 +@37BF 1405883A +@37C0 1485883A +@37C1 10801004 +@37C2 10800003 +@37C3 E0BFF945 +@37C4 E13FFE17 +@37C5 E47FFD17 +@37C6 E43FFF17 +@37C7 014018C4 +@37C8 0002C3C0 +@37C9 1405883A +@37CA 1445883A +@37CB 10800C04 +@37CC 10800003 +@37CD 10C03FCC +@37CE 18C0201C +@37CF 18FFE004 +@37D0 E0BFF947 +@37D1 18802626 +@37D2 E0FFFE17 +@37D3 D0A00F04 +@37D4 1885883A +@37D5 10800003 +@37D6 1007883A +@37D7 E0BFFD17 +@37D8 1885883A +@37D9 E0BFF905 +@37DA E0FFF903 +@37DB E0BFFF17 +@37DC 108008C3 +@37DD 10803FCC +@37DE 1080201C +@37DF 10BFE004 +@37E0 18800926 +@37E1 E0FFF903 +@37E2 00BFE004 +@37E3 1884B03A +@37E4 11403FCC +@37E5 E13FFF17 +@37E6 000DBB80 +@37E7 E0FFF903 +@37E8 E0BFFF17 +@37E9 10C008C5 +@37EA E0BFF943 +@37EB 11403FCC +@37EC E13FFF17 +@37ED 000DC700 +@37EE E13FFE17 +@37EF E47FFD17 +@37F0 E43FFF17 +@37F1 014018C4 +@37F2 0002C3C0 +@37F3 1405883A +@37F4 1445883A +@37F5 10C00C04 +@37F6 E0BFF943 +@37F7 18800005 +@37F8 E0BFFD17 +@37F9 10800044 +@37FA E0BFFD15 +@37FB E0BFFD17 +@37FC 10800410 +@37FD 103FB61E +@37FE E0BFFE17 +@37FF 10800044 +@3800 E0BFFE15 +@3801 E0BFFE17 +@3802 10800090 +@3803 103F931E +@3804 E037883A +@3805 DFC00417 +@3806 DF000317 +@3807 DC800217 +@3808 DC400117 +@3809 DC000017 +@380A DEC00504 +@380B F800283A +@380C DEFFFB04 +@380D DFC00415 +@380E DF000315 +@380F DC000215 +@3810 DF000204 +@3811 E13FFF15 +@3812 E03FFE15 +@3813 00002106 +@3814 E0BFFE17 +@3815 10800048 +@3816 1000121E +@3817 E13FFE17 +@3818 014018C4 +@3819 0002C3C0 +@381A 10C01004 +@381B E0BFFF17 +@381C 18A1883A +@381D E0BFFE17 +@381E 11000044 +@381F 014018C4 +@3820 0002C3C0 +@3821 10C01004 +@3822 E0BFFF17 +@3823 1885883A +@3824 8009883A +@3825 100B883A +@3826 01801404 +@3827 000802C0 +@3828 00000906 +@3829 E13FFE17 +@382A 014018C4 +@382B 0002C3C0 +@382C 10C01004 +@382D E0BFFF17 +@382E 1889883A +@382F 01400804 +@3830 01801404 +@3831 00081AC0 +@3832 E0BFFE17 +@3833 10800044 +@3834 E0BFFE15 +@3835 E0BFFE17 +@3836 10800090 +@3837 103FDC1E +@3838 E0BFFF17 +@3839 10800883 +@383A 10BFFFC4 +@383B 1007883A +@383C E0BFFF17 +@383D 10C00885 +@383E E037883A +@383F DFC00217 +@3840 DF000117 +@3841 DC000017 +@3842 DEC00304 +@3843 F800283A +@3844 DEFFF804 +@3845 DFC00715 +@3846 DF000615 +@3847 DF000604 +@3848 E13FFD15 +@3849 E17FFE05 +@384A E03FFC15 +@384B E03FFB15 +@384C E0BFFD17 +@384D 10800A03 +@384E 10803FCC +@384F 1080201C +@3850 10BFE004 +@3851 108016D8 +@3852 10004D1E +@3853 E0BFFD17 +@3854 10800A04 +@3855 10800044 +@3856 E0BFFA15 +@3857 00000F06 +@3858 E13FFC17 +@3859 01400284 +@385A 0002C3C0 +@385B 1007883A +@385C E0BFFA17 +@385D 10800003 +@385E 10803FCC +@385F 1080201C +@3860 10BFE004 +@3861 1885883A +@3862 10BFF404 +@3863 E0BFFC15 +@3864 E0BFFA17 +@3865 10800044 +@3866 E0BFFA15 +@3867 E0BFFA17 +@3868 10800003 +@3869 10803FCC +@386A 1080201C +@386B 10BFE004 +@386C 1007883A +@386D 00800074 +@386E 10888504 +@386F 10800017 +@3870 1885883A +@3871 10800003 +@3872 10803FCC +@3873 1080010C +@3874 1004C03A +@3875 103FE21E +@3876 E0BFFA17 +@3877 10800003 +@3878 10803FCC +@3879 1080201C +@387A 10BFE004 +@387B 10800ED8 +@387C 1000251E +@387D E0BFFA17 +@387E 10800044 +@387F E0BFFA15 +@3880 00000F06 +@3881 E13FFB17 +@3882 01400284 +@3883 0002C3C0 +@3884 1007883A +@3885 E0BFFA17 +@3886 10800003 +@3887 10803FCC +@3888 1080201C +@3889 10BFE004 +@388A 1885883A +@388B 10BFF404 +@388C E0BFFB15 +@388D E0BFFA17 +@388E 10800044 +@388F E0BFFA15 +@3890 E0BFFA17 +@3891 10800003 +@3892 10803FCC +@3893 1080201C +@3894 10BFE004 +@3895 1007883A +@3896 00800074 +@3897 10888504 +@3898 10800017 +@3899 1885883A +@389A 10800003 +@389B 10803FCC +@389C 1080010C +@389D 1004C03A +@389E 103FE21E +@389F 00000206 +@38A0 00BFFFC4 +@38A1 E0BFFC15 +@38A2 E0BFFE07 +@38A3 E0BFFF15 +@38A4 E0FFFF17 +@38A5 188012A0 +@38A6 10002F1E +@38A7 E0FFFF17 +@38A8 188012C8 +@38A9 1000041E +@38AA E0FFFF17 +@38AB 18801220 +@38AC 1000081E +@38AD 00004A06 +@38AE E0FFFF17 +@38AF 188012E0 +@38B0 10002B1E +@38B1 E0FFFF17 +@38B2 188019A0 +@38B3 1000011E +@38B4 00004306 +@38B5 E0BFFB17 +@38B6 10800050 +@38B7 1000051E +@38B8 E0BFFB17 +@38B9 10BFFFC4 +@38BA 1007883A +@38BB E0BFFD17 +@38BC 10C00845 +@38BD E0BFFC17 +@38BE 10800050 +@38BF 1000381E +@38C0 E0BFFC17 +@38C1 10BFFFC4 +@38C2 1007883A +@38C3 E0BFFD17 +@38C4 10C00885 +@38C5 E0BFFD17 +@38C6 10800883 +@38C7 10803FCC +@38C8 10800170 +@38C9 1000061E +@38CA E0FFFD17 +@38CB 00800104 +@38CC 18800885 +@38CD 00000206 +@38CE E13FFD17 +@38CF 000E0300 +@38D0 E0BFFD17 +@38D1 10800883 +@38D2 10803FCC +@38D3 108000E8 +@38D4 103FF91E +@38D5 00002206 +@38D6 E0BFFC17 +@38D7 10800098 +@38D8 10001F1E +@38D9 E13FFD17 +@38DA 000DD440 +@38DB 00001C06 +@38DC E0BFFC17 +@38DD 10800048 +@38DE 1000191E +@38DF E0BFFD17 +@38E0 10800843 +@38E1 10803FCC +@38E2 10801428 +@38E3 1000141E +@38E4 E0BFFD17 +@38E5 10800883 +@38E6 11003FCC +@38E7 014018C4 +@38E8 0002C3C0 +@38E9 10C01004 +@38EA E0BFFD17 +@38EB 1887883A +@38EC E0BFFD17 +@38ED 10800843 +@38EE 10803FCC +@38EF 1889883A +@38F0 E0BFFD17 +@38F1 10800843 +@38F2 10C03FCC +@38F3 00801404 +@38F4 10C5C83A +@38F5 100D883A +@38F6 01400804 +@38F7 00081AC0 +@38F8 E037883A +@38F9 DFC00117 +@38FA DF000017 +@38FB DEC00204 +@38FC F800283A +@38FD DEFFF004 +@38FE DFC00F15 +@38FF DF000E15 +@3900 DC800D15 +@3901 DC400C15 +@3902 DC000B15 +@3903 DF000B04 +@3904 E13FFC15 +@3905 E17FFD15 +@3906 E1BFFE15 +@3907 E1FFFF15 +@3908 E0BFFE17 +@3909 1007883A +@390A E0BFFD17 +@390B 10C5883A +@390C E0BFFB15 +@390D E0FFFC17 +@390E 00800044 +@390F 188009C5 +@3910 0000A306 +@3911 E0BFFD17 +@3912 10800003 +@3913 E0BFF805 +@3914 E0BFFC17 +@3915 10800903 +@3916 10803FCC +@3917 1080201C +@3918 10BFE004 +@3919 1004803A +@391A 10003B1E +@391B E0BFFC17 +@391C 10800903 +@391D 10803FCC +@391E 1080201C +@391F 10BFE004 +@3920 E0BFF715 +@3921 E0BFF717 +@3922 1004C03A +@3923 1000031E +@3924 E0BFF807 +@3925 108016D8 +@3926 1000111E +@3927 E0BFF717 +@3928 1005003A +@3929 10001A1E +@392A E0BFF807 +@392B 1007883A +@392C 00800074 +@392D 10888504 +@392E 10800017 +@392F 1885883A +@3930 10800003 +@3931 10803FCC +@3932 1080010C +@3933 1004C03A +@3934 10000F1E +@3935 E0BFF807 +@3936 10800EE0 +@3937 10000C1E +@3938 E0FFF717 +@3939 E0BFFC17 +@393A 1885883A +@393B 10800A04 +@393C 10000005 +@393D E17FF807 +@393E E13FFC17 +@393F 000E1100 +@3940 E0FFFC17 +@3941 00BFFFC4 +@3942 18800905 +@3943 00006D06 +@3944 E0BFFC17 +@3945 10800903 +@3946 10803FCC +@3947 108001E8 +@3948 1000681E +@3949 E0FFF717 +@394A E0BFFC17 +@394B 1885883A +@394C 10C00A04 +@394D E0BFF803 +@394E 18800005 +@394F E0BFFC17 +@3950 10800903 +@3951 10800044 +@3952 1007883A +@3953 E0BFFC17 +@3954 10C00905 +@3955 00005B06 +@3956 E0BFF807 +@3957 108006D8 +@3958 1000031E +@3959 E0BFFC17 +@395A 10000905 +@395B 00005506 +@395C E0BFF807 +@395D 10800358 +@395E 1000031E +@395F E0BFFC17 +@3960 10000845 +@3961 00004F06 +@3962 E0BFF807 +@3963 10800298 +@3964 1000101E +@3965 E0BFFC17 +@3966 10000845 +@3967 E0BFFC17 +@3968 10800883 +@3969 10800044 +@396A 1007883A +@396B E0BFFC17 +@396C 10C00885 +@396D E0BFFC17 +@396E 10800883 +@396F 10803FCC +@3970 108000F0 +@3971 10003F1E +@3972 E13FFC17 +@3973 000E0300 +@3974 00003C06 +@3975 E0BFF807 +@3976 10800218 +@3977 10000C1E +@3978 E0BFFC17 +@3979 10800843 +@397A 10803FCC +@397B 1005003A +@397C 1000341E +@397D E0BFFC17 +@397E 10800843 +@397F 10BFFFC4 +@3980 1007883A +@3981 E0BFFC17 +@3982 10C00845 +@3983 00002D06 +@3984 E0BFF807 +@3985 1007883A +@3986 00800074 +@3987 10888504 +@3988 10800017 +@3989 1885883A +@398A 10800003 +@398B 10803FCC +@398C 1080201C +@398D 10BFE004 +@398E 108025CC +@398F 1005003A +@3990 1000201E +@3991 E0BFFC17 +@3992 10800883 +@3993 10803FCC +@3994 108000B0 +@3995 1000021E +@3996 E13FFC17 +@3997 000E0300 +@3998 E0BFFC17 +@3999 10800843 +@399A 10803FCC +@399B 10801428 +@399C 10000E1E +@399D E0BFFC17 +@399E 10800883 +@399F 11003FCC +@39A0 E0BFFC17 +@39A1 10800843 +@39A2 14403FCC +@39A3 E43FFC17 +@39A4 014018C4 +@39A5 0002C3C0 +@39A6 1405883A +@39A7 1445883A +@39A8 10C01004 +@39A9 E0BFF803 +@39AA 18800005 +@39AB E0BFFC17 +@39AC 10800843 +@39AD 10800044 +@39AE 1007883A +@39AF E0BFFC17 +@39B0 10C00845 +@39B1 E0BFFD17 +@39B2 10800044 +@39B3 E0BFFD15 +@39B4 E0FFFD17 +@39B5 E0BFFB17 +@39B6 18BF5A36 +@39B7 00800404 +@39B8 E0BFF915 +@39B9 E03FFA15 +@39BA 00003906 +@39BB 00801404 +@39BC E0BFF615 +@39BD 00001206 +@39BE E13FFA17 +@39BF E0BFF617 +@39C0 147FFFC4 +@39C1 E43FFC17 +@39C2 014018C4 +@39C3 0002C3C0 +@39C4 1405883A +@39C5 1445883A +@39C6 10801004 +@39C7 10800003 +@39C8 10803FCC +@39C9 1080201C +@39CA 10BFE004 +@39CB 10800818 +@39CC 1000061E +@39CD E0BFF617 +@39CE 10BFFFC4 +@39CF E0BFF615 +@39D0 E0BFF617 +@39D1 10800048 +@39D2 103FEB1E +@39D3 E0BFF617 +@39D4 10800448 +@39D5 1000031E +@39D6 00800404 +@39D7 E0BFF615 +@39D8 00000306 +@39D9 E0BFF617 +@39DA 10800044 +@39DB E0BFF615 +@39DC E13FFA17 +@39DD E0BFF617 +@39DE 1023883A +@39DF E43FFC17 +@39E0 014018C4 +@39E1 0002C3C0 +@39E2 1405883A +@39E3 10802404 +@39E4 14400045 +@39E5 E0FFF917 +@39E6 E0BFF617 +@39E7 1880020E +@39E8 E0BFF617 +@39E9 E0BFF915 +@39EA E13FFA17 +@39EB E43FFC17 +@39EC 014018C4 +@39ED 0002C3C0 +@39EE 1405883A +@39EF 10802404 +@39F0 10000085 +@39F1 E0BFFA17 +@39F2 10800044 +@39F3 E0BFFA15 +@39F4 E0BFFA17 +@39F5 10800090 +@39F6 103FC41E +@39F7 E0BFF917 +@39F8 10800448 +@39F9 1000031E +@39FA E0BFFC17 +@39FB 10000985 +@39FC 00003106 +@39FD E0BFF917 +@39FE 1085883A +@39FF E0BFF915 +@3A00 E0BFF917 +@3A01 1007883A +@3A02 E0BFFC17 +@3A03 10C00985 +@3A04 E03FFA15 +@3A05 00002506 +@3A06 E13FFA17 +@3A07 E43FFC17 +@3A08 014018C4 +@3A09 0002C3C0 +@3A0A 1405883A +@3A0B 10802404 +@3A0C 10800043 +@3A0D 10803FCC +@3A0E 1080201C +@3A0F 10BFE004 +@3A10 10800450 +@3A11 1000161E +@3A12 E4BFFA17 +@3A13 E13FFA17 +@3A14 E43FFC17 +@3A15 014018C4 +@3A16 0002C3C0 +@3A17 1405883A +@3A18 10802404 +@3A19 10800043 +@3A1A 10803FCC +@3A1B 1080201C +@3A1C 10BFE004 +@3A1D 1008923A +@3A1E E17FF917 +@3A1F 0002B6C0 +@3A20 1023883A +@3A21 E43FFC17 +@3A22 9009883A +@3A23 014018C4 +@3A24 0002C3C0 +@3A25 1405883A +@3A26 10802404 +@3A27 14400085 +@3A28 E0BFFA17 +@3A29 10800044 +@3A2A E0BFFA15 +@3A2B E0BFFA17 +@3A2C 10800090 +@3A2D 103FD81E +@3A2E E0BFFC17 +@3A2F 10800943 +@3A30 10803FCC +@3A31 1080201C +@3A32 10BFE004 +@3A33 E0BFF515 +@3A34 E13FFC17 +@3A35 000DE1C0 +@3A36 E0BFFC17 +@3A37 100009C5 +@3A38 E0BFFC17 +@3A39 10800943 +@3A3A 10C03FCC +@3A3B 18C0201C +@3A3C 18FFE004 +@3A3D E0BFF517 +@3A3E 18800426 +@3A3F E0FFFC17 +@3A40 00800044 +@3A41 188009C5 +@3A42 003FEB06 +@3A43 E0BFFE17 +@3A44 E037883A +@3A45 DFC00417 +@3A46 DF000317 +@3A47 DC800217 +@3A48 DC400117 +@3A49 DC000017 +@3A4A DEC00504 +@3A4B F800283A +@3A4C DEFFFC04 +@3A4D DFC00315 +@3A4E DF000215 +@3A4F DF000204 +@3A50 E13FFF15 +@3A51 E0BFFF17 +@3A52 E0BFFE15 +@3A53 E0BFFE17 +@3A54 10800943 +@3A55 10803FCC +@3A56 1080201C +@3A57 10BFE004 +@3A58 10C00044 +@3A59 E0BFFE17 +@3A5A 10800983 +@3A5B 10803FCC +@3A5C 1080201C +@3A5D 10BFE004 +@3A5E 18800316 +@3A5F E0BFFE17 +@3A60 10000945 +@3A61 00000606 +@3A62 E0BFFE17 +@3A63 10800943 +@3A64 10800044 +@3A65 1007883A +@3A66 E0BFFE17 +@3A67 10C00945 +@3A68 E0BFFE17 +@3A69 10800983 +@3A6A 10803FCC +@3A6B 1080201C +@3A6C 10BFE004 +@3A6D 10800050 +@3A6E 1000091E +@3A6F E0BFFE17 +@3A70 108009C3 +@3A71 10803FCC +@3A72 1080201C +@3A73 10BFE004 +@3A74 1004C03A +@3A75 1000021E +@3A76 E13FFE17 +@3A77 000DE1C0 +@3A78 E0BFFE17 +@3A79 10800717 +@3A7A E037883A +@3A7B DFC00117 +@3A7C DF000017 +@3A7D DEC00204 +@3A7E F800283A +@3A7F DEFFFC04 +@3A80 DFC00315 +@3A81 DF000215 +@3A82 DF000204 +@3A83 E13FFF15 +@3A84 E0BFFF17 +@3A85 10800017 +@3A86 E0BFFE15 +@3A87 E0BFFF17 +@3A88 10000805 +@3A89 010EA604 +@3A8A 000CE900 +@3A8B E0BFFE17 +@3A8C 1007883A +@3A8D 00800C04 +@3A8E 18800035 +@3A8F 01040104 +@3A90 000CE900 +@3A91 E0BFFE17 +@3A92 1007883A +@3A93 00800C04 +@3A94 18800035 +@3A95 0100FA04 +@3A96 000CE900 +@3A97 E0BFFE17 +@3A98 1007883A +@3A99 00800C04 +@3A9A 18800035 +@3A9B E13FFF17 +@3A9C 01400E04 +@3A9D 000DBB80 +@3A9E E13FFF17 +@3A9F 01400204 +@3AA0 000DBB80 +@3AA1 E13FFF17 +@3AA2 000DD440 +@3AA3 E13FFF17 +@3AA4 01400184 +@3AA5 000DBB80 +@3AA6 E13FFF17 +@3AA7 01400304 +@3AA8 000DBB80 +@3AA9 E0FFFF17 +@3AAA 00BFFFC4 +@3AAB 18800905 +@3AAC E0BFFF17 +@3AAD 11000A04 +@3AAE 000B883A +@3AAF 01800204 +@3AB0 00081AC0 +@3AB1 E0BFFF17 +@3AB2 10000945 +@3AB3 E0BFFF17 +@3AB4 10000985 +@3AB5 E0BFFF17 +@3AB6 100009C5 +@3AB7 00800074 +@3AB8 108F8904 +@3AB9 10800017 +@3ABA 1009883A +@3ABB 01400284 +@3ABC 0002C2C0 +@3ABD 1007883A +@3ABE E0BFFF17 +@3ABF 10C00715 +@3AC0 E0BFFF17 +@3AC1 11000104 +@3AC2 E0BFFF17 +@3AC3 10800717 +@3AC4 100B883A +@3AC5 01800074 +@3AC6 31BA4C04 +@3AC7 E1FFFF17 +@3AC8 000EB900 +@3AC9 E037883A +@3ACA DFC00117 +@3ACB DF000017 +@3ACC DEC00204 +@3ACD F800283A +@3ACE DEFFFA04 +@3ACF DFC00515 +@3AD0 DF000415 +@3AD1 DF000404 +@3AD2 E13FFD15 +@3AD3 E17FFE15 +@3AD4 E1BFFF15 +@3AD5 E0BFFD17 +@3AD6 10800017 +@3AD7 E0BFFC15 +@3AD8 E0BFFC17 +@3AD9 11000A04 +@3ADA E0BFFD17 +@3ADB 11C00217 +@3ADC E17FFE17 +@3ADD E1BFFF17 +@3ADE 000E3F40 +@3ADF E037883A +@3AE0 DFC00117 +@3AE1 DF000017 +@3AE2 DEC00204 +@3AE3 F800283A +@3AE4 DEFFF404 +@3AE5 DF000B15 +@3AE6 DF000B04 +@3AE7 E13FFB15 +@3AE8 E17FFC15 +@3AE9 E1BFFD15 +@3AEA E1FFFE15 +@3AEB E03FF915 +@3AEC 00800074 +@3AED 108F8904 +@3AEE 10800017 +@3AEF 1005003A +@3AF0 1000411E +@3AF1 E0BFFB17 +@3AF2 1005003A +@3AF3 10003B1E +@3AF4 E0FFFB17 +@3AF5 E0BFFD17 +@3AF6 18800315 +@3AF7 E0FFFB17 +@3AF8 E0BFFE17 +@3AF9 18800515 +@3AFA 0005303A +@3AFB E0BFF815 +@3AFC E0FFF817 +@3AFD 00BFFF84 +@3AFE 1884703A +@3AFF 1001703A +@3B00 E0BFF817 +@3B01 E0BFFA15 +@3B02 00800074 +@3B03 108F8A04 +@3B04 10800017 +@3B05 E0BFF915 +@3B06 E0FFFC17 +@3B07 E0BFF917 +@3B08 1885883A +@3B09 10C00044 +@3B0A E0BFFB17 +@3B0B 10C00215 +@3B0C E0BFFB17 +@3B0D 10C00217 +@3B0E E0BFF917 +@3B0F 1880042E +@3B10 E0FFFB17 +@3B11 00800044 +@3B12 18800405 +@3B13 00000206 +@3B14 E0BFFB17 +@3B15 10000405 +@3B16 E0FFFB17 +@3B17 00800074 +@3B18 10889504 +@3B19 E0BFF615 +@3B1A E0FFF715 +@3B1B E0FFF717 +@3B1C E0BFF617 +@3B1D 18800115 +@3B1E E0BFF617 +@3B1F 10C00017 +@3B20 E0BFF717 +@3B21 10C00015 +@3B22 E0BFF617 +@3B23 10C00017 +@3B24 E0BFF717 +@3B25 18800115 +@3B26 E0FFF617 +@3B27 E0BFF717 +@3B28 18800015 +@3B29 E0BFFA17 +@3B2A E0BFF515 +@3B2B E0BFF517 +@3B2C 1001703A +@3B2D E03FFF15 +@3B2E 00000506 +@3B2F 00BFFA84 +@3B30 E0BFFF15 +@3B31 00000206 +@3B32 00BFDE84 +@3B33 E0BFFF15 +@3B34 E0BFFF17 +@3B35 E037883A +@3B36 DF000017 +@3B37 DEC00104 +@3B38 F800283A +@3B39 DEFFFA04 +@3B3A DFC00515 +@3B3B DF000415 +@3B3C DF000404 +@3B3D E13FFF15 +@3B3E 00800244 +@3B3F E0BFFC15 +@3B40 E13FFC17 +@3B41 014003F4 +@3B42 29509004 +@3B43 0002C3C0 +@3B44 100B883A +@3B45 0100BEF4 +@3B46 213C2004 +@3B47 0002C2C0 +@3B48 100B883A +@3B49 01200034 +@3B4A 213FFFC4 +@3B4B 0002C2C0 +@3B4C 100B883A +@3B4D E13FFF17 +@3B4E 0002C2C0 +@3B4F E0BFFD15 +@3B50 E0BFFD17 +@3B51 1005003A +@3B52 10002A1E +@3B53 E03FFE15 +@3B54 00001706 +@3B55 00A00034 +@3B56 10BFFFC4 +@3B57 10BFFFC4 +@3B58 103FFE1E +@3B59 E13FFC17 +@3B5A 014003F4 +@3B5B 29509004 +@3B5C 0002C3C0 +@3B5D 100B883A +@3B5E 0100BEF4 +@3B5F 213C2004 +@3B60 0002C2C0 +@3B61 100B883A +@3B62 01200034 +@3B63 213FFFC4 +@3B64 0002C2C0 +@3B65 1007883A +@3B66 E0BFFF17 +@3B67 10C5C83A +@3B68 E0BFFF15 +@3B69 E0BFFE17 +@3B6A 10800044 +@3B6B E0BFFE15 +@3B6C E0FFFE17 +@3B6D E0BFFD17 +@3B6E 18BFE616 +@3B6F E13FFC17 +@3B70 014003F4 +@3B71 29509004 +@3B72 0002C3C0 +@3B73 100B883A +@3B74 0100BEF4 +@3B75 213C2004 +@3B76 0002C2C0 +@3B77 1009883A +@3B78 E17FFF17 +@3B79 0002C3C0 +@3B7A 10BFFFC4 +@3B7B 103FFE1E +@3B7C 00000D06 +@3B7D E13FFC17 +@3B7E 014003F4 +@3B7F 29509004 +@3B80 0002C3C0 +@3B81 100B883A +@3B82 0100BEF4 +@3B83 213C2004 +@3B84 0002C2C0 +@3B85 1009883A +@3B86 E17FFF17 +@3B87 0002C3C0 +@3B88 10BFFFC4 +@3B89 00BFFE16 +@3B8A 0005883A +@3B8B E037883A +@3B8C DFC00117 +@3B8D DF000017 +@3B8E DEC00204 +@3B8F F800283A +@3B90 DEFFFF04 +@3B91 DF000015 +@3B92 D839883A +@3B93 E037883A +@3B94 DF000017 +@3B95 DEC00104 +@3B96 F800283A +@3B97 DEFFF904 +@3B98 DFC00615 +@3B99 DF000515 +@3B9A DF000504 +@3B9B E13FFD15 +@3B9C E17FFE15 +@3B9D E0BFFD17 +@3B9E 1005003A +@3B9F 1000041E +@3BA0 E0BFFD17 +@3BA1 10800217 +@3BA2 1004C03A +@3BA3 1000071E +@3BA4 000EF100 +@3BA5 1007883A +@3BA6 00800584 +@3BA7 18800015 +@3BA8 00BFFA84 +@3BA9 E0BFFF15 +@3BAA 00001306 +@3BAB E0FFFD17 +@3BAC E0BFFE17 +@3BAD E0BFFB15 +@3BAE E0FFFC15 +@3BAF E0FFFC17 +@3BB0 E0BFFB17 +@3BB1 18800115 +@3BB2 E0BFFB17 +@3BB3 10C00017 +@3BB4 E0BFFC17 +@3BB5 10C00015 +@3BB6 E0BFFB17 +@3BB7 10C00017 +@3BB8 E0BFFC17 +@3BB9 18800115 +@3BBA E0FFFB17 +@3BBB E0BFFC17 +@3BBC 18800015 +@3BBD E03FFF15 +@3BBE E0BFFF17 +@3BBF E037883A +@3BC0 DFC00117 +@3BC1 DF000017 +@3BC2 DEC00204 +@3BC3 F800283A +@3BC4 DEFFFD04 +@3BC5 DFC00215 +@3BC6 DF000115 +@3BC7 DF000104 +@3BC8 00800074 +@3BC9 10889104 +@3BCA 10800017 +@3BCB 1005003A +@3BCC 1000061E +@3BCD 00800074 +@3BCE 10889104 +@3BCF 10800017 +@3BD0 103EE83A +@3BD1 E0BFFF15 +@3BD2 00000306 +@3BD3 00800074 +@3BD4 108F8404 +@3BD5 E0BFFF15 +@3BD6 E0BFFF17 +@3BD7 E037883A +@3BD8 DFC00117 +@3BD9 DF000017 +@3BDA DEC00204 +@3BDB F800283A +@3BDC DEFFFD04 +@3BDD DFC00215 +@3BDE DF000115 +@3BDF DF000104 +@3BE0 00BFFF04 +@3BE1 00C00074 +@3BE2 18FFEA04 +@3BE3 1885883A +@3BE4 E0BFFF15 +@3BE5 00000606 +@3BE6 E0BFFF17 +@3BE7 10800017 +@3BE8 103EE83A +@3BE9 E0BFFF17 +@3BEA 10BFFF04 +@3BEB E0BFFF15 +@3BEC E0FFFF17 +@3BED 00800074 +@3BEE 10BFE904 +@3BEF 18BFF62E +@3BF0 E037883A +@3BF1 DFC00117 +@3BF2 DF000017 +@3BF3 DEC00204 +@3BF4 F800283A +@3BF5 DEFFFD04 +@3BF6 DFC00215 +@3BF7 DF000115 +@3BF8 DF000104 +@3BF9 00BFFF04 +@3BFA 00C00074 +@3BFB 18FFEA04 +@3BFC 1885883A +@3BFD E0BFFF15 +@3BFE 00000606 +@3BFF E0BFFF17 +@3C00 10800017 +@3C01 103EE83A +@3C02 E0BFFF17 +@3C03 10BFFF04 +@3C04 E0BFFF15 +@3C05 E0FFFF17 +@3C06 00800074 +@3C07 10BFEA04 +@3C08 18BFF62E +@3C09 E037883A +@3C0A DFC00117 +@3C0B DF000017 +@3C0C DEC00204 +@3C0D F800283A +@3C0E DEFFFF04 +@3C0F DF000015 +@3C10 D839883A +@3C11 E037883A +@3C12 DF000017 +@3C13 DEC00104 +@3C14 F800283A +@3C15 DEFFF904 +@3C16 DFC00615 +@3C17 DF000515 +@3C18 DF000504 +@3C19 E13FFC15 +@3C1A E17FFD15 +@3C1B E1BFFE15 +@3C1C E1FFFF15 +@3C1D E0800217 +@3C1E D8800015 +@3C1F E13FFC17 +@3C20 E17FFD17 +@3C21 E1BFFE17 +@3C22 E1FFFF17 +@3C23 000F2280 +@3C24 E037883A +@3C25 DFC00117 +@3C26 DF000017 +@3C27 DEC00204 +@3C28 F800283A +@3C29 DEFFF904 +@3C2A DF000615 +@3C2B DF000604 +@3C2C E13FFE15 +@3C2D E17FFF15 +@3C2E E0BFFF17 +@3C2F E0BFFC15 +@3C30 0005303A +@3C31 E0BFFB15 +@3C32 E0FFFB17 +@3C33 00BFFF84 +@3C34 1884703A +@3C35 1001703A +@3C36 E0BFFB17 +@3C37 E0BFFD15 +@3C38 E0FFFC17 +@3C39 00800044 +@3C3A 10C4983A +@3C3B 1007883A +@3C3C 00800074 +@3C3D 108F8804 +@3C3E 10800017 +@3C3F 1886B03A +@3C40 00800074 +@3C41 108F8804 +@3C42 10C00015 +@3C43 00800074 +@3C44 108F8804 +@3C45 10800017 +@3C46 100170FA +@3C47 E0BFFD17 +@3C48 E0BFFA15 +@3C49 E0BFFA17 +@3C4A 1001703A +@3C4B 0005883A +@3C4C E037883A +@3C4D DF000017 +@3C4E DEC00104 +@3C4F F800283A +@3C50 DEFFF904 +@3C51 DF000615 +@3C52 DF000604 +@3C53 E13FFE15 +@3C54 E17FFF15 +@3C55 E0BFFF17 +@3C56 E0BFFC15 +@3C57 0005303A +@3C58 E0BFFB15 +@3C59 E0FFFB17 +@3C5A 00BFFF84 +@3C5B 1884703A +@3C5C 1001703A +@3C5D E0BFFB17 +@3C5E E0BFFD15 +@3C5F E0FFFC17 +@3C60 00800044 +@3C61 10C4983A +@3C62 0084303A +@3C63 1007883A +@3C64 00800074 +@3C65 108F8804 +@3C66 10800017 +@3C67 1886703A +@3C68 00800074 +@3C69 108F8804 +@3C6A 10C00015 +@3C6B 00800074 +@3C6C 108F8804 +@3C6D 10800017 +@3C6E 100170FA +@3C6F E0BFFD17 +@3C70 E0BFFA15 +@3C71 E0BFFA17 +@3C72 1001703A +@3C73 0005883A +@3C74 E037883A +@3C75 DF000017 +@3C76 DEC00104 +@3C77 F800283A +@3C78 DEFFFC04 +@3C79 DF000315 +@3C7A DF000304 +@3C7B E13FFE15 +@3C7C E17FFF15 +@3C7D 000530FA +@3C7E E0BFFD15 +@3C7F E0FFFF17 +@3C80 00800044 +@3C81 10C4983A +@3C82 1007883A +@3C83 E0BFFD17 +@3C84 1884703A +@3C85 1004C03A +@3C86 E037883A +@3C87 DF000017 +@3C88 DEC00104 +@3C89 F800283A +@3C8A DEFFF404 +@3C8B DFC00B15 +@3C8C DF000A15 +@3C8D DF000A04 +@3C8E E13FFB15 +@3C8F E17FFC15 +@3C90 E1BFFD15 +@3C91 E1FFFE15 +@3C92 00BFFA84 +@3C93 E0BFFA15 +@3C94 E0BFFC17 +@3C95 E0BFF915 +@3C96 E0BFF917 +@3C97 10800808 +@3C98 1000291E +@3C99 0005303A +@3C9A E0BFF715 +@3C9B E0FFF717 +@3C9C 00BFFF84 +@3C9D 1884703A +@3C9E 1001703A +@3C9F E0BFF717 +@3CA0 E0BFF815 +@3CA1 E0BFF917 +@3CA2 00C00074 +@3CA3 18D0D904 +@3CA4 100490FA +@3CA5 10C7883A +@3CA6 E0BFFD17 +@3CA7 18800015 +@3CA8 E0BFF917 +@3CA9 00C00074 +@3CAA 18D0D904 +@3CAB 100490FA +@3CAC 10C5883A +@3CAD 10C00104 +@3CAE E0BFFE17 +@3CAF 18800015 +@3CB0 E0BFFD17 +@3CB1 1005003A +@3CB2 1000051E +@3CB3 E17FF917 +@3CB4 E13FFB17 +@3CB5 000F0A40 +@3CB6 E0BFFF15 +@3CB7 00000406 +@3CB8 E17FF917 +@3CB9 E13FFB17 +@3CBA 000F1400 +@3CBB E0BFFF15 +@3CBC E0BFFF17 +@3CBD E0BFFA15 +@3CBE E0BFF817 +@3CBF E0BFF615 +@3CC0 E0BFF617 +@3CC1 1001703A +@3CC2 E0BFFA17 +@3CC3 E037883A +@3CC4 DFC00117 +@3CC5 DF000017 +@3CC6 DEC00204 +@3CC7 F800283A +@3CC8 DEFFF804 +@3CC9 DFC00715 +@3CCA DF000615 +@3CCB DC000515 +@3CCC DF000504 +@3CCD E13FFC15 +@3CCE E17FFD15 +@3CCF E1BFFE15 +@3CD0 E1FFFF15 +@3CD1 E13FFD17 +@3CD2 E17FFE17 +@3CD3 E1BFFF17 +@3CD4 000F5680 +@3CD5 E0BFFB15 +@3CD6 E0BFFB17 +@3CD7 1004803A +@3CD8 10001F1E +@3CD9 E13FFB17 +@3CDA 04000074 +@3CDB 8403C404 +@3CDC 01400304 +@3CDD 0002C3C0 +@3CDE 1405883A +@3CDF 10C00017 +@3CE0 E0BFFC17 +@3CE1 10C00015 +@3CE2 E13FFB17 +@3CE3 04000074 +@3CE4 8403C404 +@3CE5 01400304 +@3CE6 0002C3C0 +@3CE7 1405883A +@3CE8 10800104 +@3CE9 10C00017 +@3CEA E0BFFC17 +@3CEB 10C00115 +@3CEC E13FFB17 +@3CED 04000074 +@3CEE 8403C404 +@3CEF 01400304 +@3CF0 0002C3C0 +@3CF1 1405883A +@3CF2 10800204 +@3CF3 10C00017 +@3CF4 E0BFFC17 +@3CF5 10C00215 +@3CF6 E13FFB17 +@3CF7 000CD5C0 +@3CF8 E037883A +@3CF9 DFC00217 +@3CFA DF000117 +@3CFB DC000017 +@3CFC DEC00304 +@3CFD F800283A +@3CFE DEFFFB04 +@3CFF DFC00415 +@3D00 DF000315 +@3D01 DF000304 +@3D02 E13FFD15 +@3D03 E17FFE15 +@3D04 E1BFFF15 +@3D05 01000074 +@3D06 2103C704 +@3D07 E17FFD17 +@3D08 01800044 +@3D09 01C07FC4 +@3D0A 000F3200 +@3D0B 01000074 +@3D0C 2103C404 +@3D0D E17FFE17 +@3D0E 000D883A +@3D0F 01C07FC4 +@3D10 000F3200 +@3D11 01000074 +@3D12 2103CA04 +@3D13 E17FFF17 +@3D14 01800044 +@3D15 01C07FC4 +@3D16 000F3200 +@3D17 E037883A +@3D18 DFC00117 +@3D19 DF000017 +@3D1A DEC00204 +@3D1B F800283A +@3D1C DEFFFA04 +@3D1D DFC00515 +@3D1E DF000415 +@3D1F DC000315 +@3D20 DF000304 +@3D21 E13FFE15 +@3D22 E0BFFE17 +@3D23 10800217 +@3D24 10D00034 +@3D25 E0BFFE17 +@3D26 10C00215 +@3D27 E03FFD15 +@3D28 00002306 +@3D29 E13FFD17 +@3D2A 04000074 +@3D2B 8403C404 +@3D2C 01400304 +@3D2D 0002C3C0 +@3D2E 1405883A +@3D2F 10C00017 +@3D30 E0BFFE17 +@3D31 10800017 +@3D32 1880161E +@3D33 E13FFD17 +@3D34 04000074 +@3D35 8403C404 +@3D36 01400304 +@3D37 0002C3C0 +@3D38 1405883A +@3D39 10800204 +@3D3A 10800017 +@3D3B 1004403A +@3D3C 10000C1E +@3D3D E13FFD17 +@3D3E 01400304 +@3D3F 0002C3C0 +@3D40 1007883A +@3D41 00800074 +@3D42 1083C404 +@3D43 1887883A +@3D44 E0BFFE17 +@3D45 18800326 +@3D46 00BFFCC4 +@3D47 E0BFFF15 +@3D48 00000A06 +@3D49 E0BFFD17 +@3D4A 10800044 +@3D4B E0BFFD15 +@3D4C 00800074 +@3D4D 10889004 +@3D4E 10800017 +@3D4F 1007883A +@3D50 E0BFFD17 +@3D51 18BFD72E +@3D52 E03FFF15 +@3D53 E0BFFF17 +@3D54 E037883A +@3D55 DFC00217 +@3D56 DF000117 +@3D57 DC000017 +@3D58 DEC00304 +@3D59 F800283A +@3D5A DEFFF404 +@3D5B DFC00B15 +@3D5C DF000A15 +@3D5D DF000A04 +@3D5E E13FFB15 +@3D5F E17FFC15 +@3D60 E1BFFD15 +@3D61 00BFFFC4 +@3D62 E0BFF815 +@3D63 00BFFB44 +@3D64 E0BFF715 +@3D65 E03FF615 +@3D66 E13FFB17 +@3D67 01400074 +@3D68 29488E04 +@3D69 000F9180 +@3D6A E0BFFA15 +@3D6B E0BFFA17 +@3D6C 1004C03A +@3D6D 1000051E +@3D6E E13FFB17 +@3D6F 000F9AC0 +@3D70 E0BFFA15 +@3D71 00800044 +@3D72 E0BFF615 +@3D73 E0BFFA17 +@3D74 1005003A +@3D75 1000311E +@3D76 E13FFA17 +@3D77 000FACC0 +@3D78 E0BFF815 +@3D79 E0BFF817 +@3D7A 1004403A +@3D7B 1000031E +@3D7C E0BFF817 +@3D7D E0BFF715 +@3D7E 00002A06 +@3D7F E13FF817 +@3D80 01400304 +@3D81 0002C3C0 +@3D82 1007883A +@3D83 00800074 +@3D84 1083C404 +@3D85 1885883A +@3D86 E0BFF915 +@3D87 E0FFFC17 +@3D88 00900034 +@3D89 10BFFFC4 +@3D8A 1886703A +@3D8B E0BFF917 +@3D8C 10C00215 +@3D8D E0BFF617 +@3D8E 1004C03A +@3D8F 1000061E +@3D90 E13FF917 +@3D91 000F4700 +@3D92 E0BFF715 +@3D93 E0BFF717 +@3D94 1004803A +@3D95 1000131E +@3D96 E0BFFA17 +@3D97 10800317 +@3D98 1005003A +@3D99 1000091E +@3D9A E0BFFA17 +@3D9B 10800317 +@3D9C E13FF917 +@3D9D E17FFB17 +@3D9E E1BFFC17 +@3D9F E1FFFD17 +@3DA0 103EE83A +@3DA1 E0BFFF15 +@3DA2 00000106 +@3DA3 E03FFF15 +@3DA4 E0BFFF17 +@3DA5 E0BFF715 +@3DA6 00000206 +@3DA7 00BFFB44 +@3DA8 E0BFF715 +@3DA9 E0BFF717 +@3DAA 1004403A +@3DAB 1000091E +@3DAC E13FF817 +@3DAD 000CD5C0 +@3DAE 000F6F40 +@3DAF E0FFF717 +@3DB0 00C7C83A +@3DB1 10C00015 +@3DB2 00BFFFC4 +@3DB3 E0BFFE15 +@3DB4 00000206 +@3DB5 E0BFF817 +@3DB6 E0BFFE15 +@3DB7 E0BFFE17 +@3DB8 E037883A +@3DB9 DFC00117 +@3DBA DF000017 +@3DBB DEC00204 +@3DBC F800283A +@3DBD DEFFFD04 +@3DBE DFC00215 +@3DBF DF000115 +@3DC0 DF000104 +@3DC1 00800074 +@3DC2 10889104 +@3DC3 10800017 +@3DC4 1005003A +@3DC5 1000061E +@3DC6 00800074 +@3DC7 10889104 +@3DC8 10800017 +@3DC9 103EE83A +@3DCA E0BFFF15 +@3DCB 00000306 +@3DCC 00800074 +@3DCD 108F8404 +@3DCE E0BFFF15 +@3DCF E0BFFF17 +@3DD0 E037883A +@3DD1 DFC00117 +@3DD2 DF000017 +@3DD3 DEC00204 +@3DD4 F800283A +@3DD5 DEFFFA04 +@3DD6 DF000515 +@3DD7 DF000504 +@3DD8 E13FFF15 +@3DD9 0005303A +@3DDA E0BFFD15 +@3DDB E0FFFD17 +@3DDC 00BFFF84 +@3DDD 1884703A +@3DDE 1001703A +@3DDF E0BFFD17 +@3DE0 E0BFFE15 +@3DE1 E0BFFF17 +@3DE2 E0BFFC15 +@3DE3 E0BFFC17 +@3DE4 10C00017 +@3DE5 E0BFFC17 +@3DE6 10800117 +@3DE7 18800115 +@3DE8 E0BFFC17 +@3DE9 10C00117 +@3DEA E0BFFC17 +@3DEB 10800017 +@3DEC 18800015 +@3DED E0FFFC17 +@3DEE E0BFFC17 +@3DEF 18800115 +@3DF0 E0FFFC17 +@3DF1 E0BFFC17 +@3DF2 18800015 +@3DF3 E0BFFE17 +@3DF4 E0BFFB15 +@3DF5 E0BFFB17 +@3DF6 1001703A +@3DF7 E037883A +@3DF8 DF000017 +@3DF9 DEC00104 +@3DFA F800283A +@3DFB DEFFFB04 +@3DFC DFC00415 +@3DFD DF000315 +@3DFE DF000304 +@3DFF D0A01117 +@3E00 E0BFFE15 +@3E01 D0A70617 +@3E02 10800044 +@3E03 D0A70615 +@3E04 00003106 +@3E05 E0BFFE17 +@3E06 10800017 +@3E07 E0BFFF15 +@3E08 E0BFFE17 +@3E09 10800403 +@3E0A 10803FCC +@3E0B 1005003A +@3E0C 1000051E +@3E0D D0A70617 +@3E0E 1004C03A +@3E0F 1000021E +@3E10 E0BFFE17 +@3E11 10000405 +@3E12 E0BFFE17 +@3E13 10C00217 +@3E14 D0A70617 +@3E15 10C01E36 +@3E16 E0BFFE17 +@3E17 10800403 +@3E18 10803FCC +@3E19 1004C03A +@3E1A 1000191E +@3E1B E0BFFE17 +@3E1C 10C00317 +@3E1D E0BFFE17 +@3E1E 11000517 +@3E1F 183EE83A +@3E20 E0BFFD15 +@3E21 E0BFFD17 +@3E22 1004C03A +@3E23 1000031E +@3E24 E13FFE17 +@3E25 000F7540 +@3E26 00000D06 +@3E27 E0BFFE17 +@3E28 10C00217 +@3E29 E0BFFD17 +@3E2A 1887883A +@3E2B E0BFFE17 +@3E2C 10C00215 +@3E2D E0BFFE17 +@3E2E 10C00217 +@3E2F D0A70617 +@3E30 1880032E +@3E31 E0FFFE17 +@3E32 00800044 +@3E33 18800405 +@3E34 E0BFFF17 +@3E35 E0BFFE15 +@3E36 D0E01104 +@3E37 E0BFFE17 +@3E38 10FFCC1E +@3E39 E037883A +@3E3A DFC00117 +@3E3B DF000017 +@3E3C DEC00204 +@3E3D F800283A +@3E3E DEFFFF04 +@3E3F DF000015 +@3E40 D839883A +@3E41 000170FA +@3E42 E037883A +@3E43 DF000017 +@3E44 DEC00104 +@3E45 F800283A +@3E46 DEFFF904 +@3E47 DFC00615 +@3E48 DF000515 +@3E49 DF000504 +@3E4A E13FFD15 +@3E4B E17FFE15 +@3E4C E0BFFE17 +@3E4D 10800017 +@3E4E E0BFFC15 +@3E4F E13FFD17 +@3E50 0002D480 +@3E51 10800044 +@3E52 E0BFFB15 +@3E53 00000D06 +@3E54 E0BFFC17 +@3E55 11000217 +@3E56 E1BFFB17 +@3E57 E17FFD17 +@3E58 000FBE80 +@3E59 1004C03A +@3E5A 1000031E +@3E5B E0BFFC17 +@3E5C E0BFFF15 +@3E5D 00000706 +@3E5E E0BFFC17 +@3E5F 10800017 +@3E60 E0BFFC15 +@3E61 E0FFFE17 +@3E62 E0BFFC17 +@3E63 10FFF01E +@3E64 E03FFF15 +@3E65 E0BFFF17 +@3E66 E037883A +@3E67 DFC00117 +@3E68 DF000017 +@3E69 DEC00204 +@3E6A F800283A +@3E6B DEFFFA04 +@3E6C DFC00515 +@3E6D DF000415 +@3E6E DF000404 +@3E6F E13FFE15 +@3E70 00800074 +@3E71 10888C04 +@3E72 10800017 +@3E73 E0BFFD15 +@3E74 00003306 +@3E75 E0BFFD17 +@3E76 11000217 +@3E77 0002D480 +@3E78 E0BFFC15 +@3E79 E0BFFD17 +@3E7A 10C00217 +@3E7B E0BFFC17 +@3E7C 1885883A +@3E7D 10BFFFC4 +@3E7E 10800003 +@3E7F 10803FCC +@3E80 1080201C +@3E81 10BFE004 +@3E82 10800BD8 +@3E83 1000031E +@3E84 E0BFFC17 +@3E85 10BFFFC4 +@3E86 E0BFFC15 +@3E87 E0BFFC17 +@3E88 1007883A +@3E89 E0BFFE17 +@3E8A 1885883A +@3E8B 10800003 +@3E8C 10803FCC +@3E8D 1080201C +@3E8E 10BFE004 +@3E8F 10800BE0 +@3E90 10000A1E +@3E91 E0BFFC17 +@3E92 1007883A +@3E93 E0BFFE17 +@3E94 1885883A +@3E95 10800003 +@3E96 10803FCC +@3E97 1080201C +@3E98 10BFE004 +@3E99 1004C03A +@3E9A 10000A1E +@3E9B E0BFFD17 +@3E9C 11000217 +@3E9D E1BFFC17 +@3E9E E17FFE17 +@3E9F 000FBE80 +@3EA0 1004C03A +@3EA1 1000031E +@3EA2 E0BFFD17 +@3EA3 E0BFFF15 +@3EA4 00000806 +@3EA5 E0BFFD17 +@3EA6 10800017 +@3EA7 E0BFFD15 +@3EA8 00C00074 +@3EA9 18C88C04 +@3EAA E0BFFD17 +@3EAB 10FFC91E +@3EAC E03FFF15 +@3EAD E0BFFF17 +@3EAE E037883A +@3EAF DFC00117 +@3EB0 DF000017 +@3EB1 DEC00204 +@3EB2 F800283A +@3EB3 DEFFFA04 +@3EB4 DFC00515 +@3EB5 DF000415 +@3EB6 DC000315 +@3EB7 DF000304 +@3EB8 E13FFF15 +@3EB9 00BFFA04 +@3EBA E0BFFD15 +@3EBB E03FFE15 +@3EBC 00002006 +@3EBD E13FFE17 +@3EBE 04000074 +@3EBF 8403C404 +@3EC0 01400304 +@3EC1 0002C3C0 +@3EC2 1405883A +@3EC3 10800017 +@3EC4 1004C03A +@3EC5 1000141E +@3EC6 E13FFE17 +@3EC7 04000074 +@3EC8 8403C404 +@3EC9 01400304 +@3ECA 0002C3C0 +@3ECB 1407883A +@3ECC E0BFFF17 +@3ECD 18800015 +@3ECE 00800074 +@3ECF 10889004 +@3ED0 10C00017 +@3ED1 E0BFFE17 +@3ED2 1880040E +@3ED3 00C00074 +@3ED4 18C89004 +@3ED5 E0BFFE17 +@3ED6 18800015 +@3ED7 E0BFFE17 +@3ED8 E0BFFD15 +@3ED9 00000606 +@3EDA E0BFFE17 +@3EDB 10800044 +@3EDC E0BFFE15 +@3EDD E0BFFE17 +@3EDE 10800810 +@3EDF 103FDD1E +@3EE0 E0BFFD17 +@3EE1 E037883A +@3EE2 DFC00217 +@3EE3 DF000117 +@3EE4 DC000017 +@3EE5 DEC00304 +@3EE6 F800283A +@3EE7 200B883A +@3EE8 000D883A +@3EE9 0009883A +@3EEA 000F883A +@3EEB 000FC5C1 +@3EEC DEFFFE04 +@3EED 000B883A +@3EEE DC000015 +@3EEF DFC00115 +@3EF0 2021883A +@3EF1 000FD940 +@3EF2 00800074 +@3EF3 10888704 +@3EF4 11000017 +@3EF5 20800F17 +@3EF6 10000126 +@3EF7 103EE83A +@3EF8 8009883A +@3EF9 000FF840 +@3EFA 00C000C4 +@3EFB 1980032E +@3EFC 2144B03A +@3EFD 10C4703A +@3EFE 10000F26 +@3EFF 31FFFFC4 +@3F00 3000061E +@3F01 00000A06 +@3F02 39FFFFC4 +@3F03 00BFFFC4 +@3F04 21000044 +@3F05 29400044 +@3F06 38800526 +@3F07 20C00003 +@3F08 28800003 +@3F09 18BFF826 +@3F0A 1885C83A +@3F0B F800283A +@3F0C 0005883A +@3F0D F800283A +@3F0E 180F883A +@3F0F 20C00017 +@3F10 28800017 +@3F11 18BFED1E +@3F12 31BFFF04 +@3F13 21000104 +@3F14 29400104 +@3F15 39BFF936 +@3F16 003FE806 +@3F17 DEFFFA04 +@3F18 00800074 +@3F19 10888704 +@3F1A DC000015 +@3F1B 14000017 +@3F1C DD000415 +@3F1D 2829883A +@3F1E 81405217 +@3F1F DCC00315 +@3F20 DC800215 +@3F21 DC400115 +@3F22 DFC00515 +@3F23 2023883A +@3F24 3027883A +@3F25 3825883A +@3F26 28002526 +@3F27 29000117 +@3F28 008007C4 +@3F29 11002716 +@3F2A 8800101E +@3F2B 2105883A +@3F2C 1085883A +@3F2D 20C00044 +@3F2E 1145883A +@3F2F 0009883A +@3F30 15000215 +@3F31 28C00115 +@3F32 2005883A +@3F33 DFC00517 +@3F34 DD000417 +@3F35 DCC00317 +@3F36 DC800217 +@3F37 DC400117 +@3F38 DC000017 +@3F39 DEC00604 +@3F3A F800283A +@3F3B 29802204 +@3F3C 00800044 +@3F3D 110E983A +@3F3E 30C04017 +@3F3F 2105883A +@3F40 1085883A +@3F41 1185883A +@3F42 19C6B03A +@3F43 14802015 +@3F44 14C00015 +@3F45 00800084 +@3F46 30C04015 +@3F47 88BFE31E +@3F48 30804117 +@3F49 11C4B03A +@3F4A 30804115 +@3F4B 003FDF06 +@3F4C 00800074 +@3F4D 10911904 +@3F4E 100B883A +@3F4F 80805215 +@3F50 003FD606 +@3F51 00800034 +@3F52 10800004 +@3F53 1000021E +@3F54 013FFFC4 +@3F55 003FDC06 +@3F56 01006404 +@3F57 103EE83A +@3F58 1007883A +@3F59 103FFA26 +@3F5A 80805217 +@3F5B 180B883A +@3F5C 18000115 +@3F5D 18800015 +@3F5E 80C05215 +@3F5F 18006215 +@3F60 18006315 +@3F61 0009883A +@3F62 883FC826 +@3F63 003FD706 +@3F64 F800283A +@3F65 00800074 +@3F66 10888704 +@3F67 10800017 +@3F68 DEFFF304 +@3F69 DF000B15 +@3F6A D8800115 +@3F6B 00800034 +@3F6C 10800004 +@3F6D 1005003A +@3F6E D8800215 +@3F6F D8800117 +@3F70 DD400815 +@3F71 DD000715 +@3F72 10805204 +@3F73 DFC00C15 +@3F74 DDC00A15 +@3F75 DD800915 +@3F76 DCC00615 +@3F77 DC800515 +@3F78 DC400415 +@3F79 DC000315 +@3F7A 282B883A +@3F7B 2039883A +@3F7C D8800015 +@3F7D 2829003A +@3F7E D8800117 +@3F7F 14405217 +@3F80 88001026 +@3F81 DDC00017 +@3F82 88800117 +@3F83 8C802204 +@3F84 143FFFC4 +@3F85 80000916 +@3F86 05BFFFC4 +@3F87 A000151E +@3F88 8409883A +@3F89 2105883A +@3F8A 1485883A +@3F8B 10C02017 +@3F8C A8C01126 +@3F8D 843FFFC4 +@3F8E 85BFF81E +@3F8F D8800217 +@3F90 10003126 +@3F91 DFC00C17 +@3F92 DF000B17 +@3F93 DDC00A17 +@3F94 DD800917 +@3F95 DD400817 +@3F96 DD000717 +@3F97 DCC00617 +@3F98 DC800517 +@3F99 DC400417 +@3F9A DC000317 +@3F9B DEC00D04 +@3F9C F800283A +@3F9D 8409883A +@3F9E 88C00117 +@3F9F 2105883A +@3FA0 1445883A +@3FA1 18FFFFC4 +@3FA2 11800217 +@3FA3 1C001526 +@3FA4 10000215 +@3FA5 303FE726 +@3FA6 00C00044 +@3FA7 1C06983A +@3FA8 90804017 +@3FA9 8CC00117 +@3FAA 1884703A +@3FAB 10001426 +@3FAC 90804117 +@3FAD 1884703A +@3FAE 10000C1E +@3FAF 2105883A +@3FB0 1485883A +@3FB1 11400017 +@3FB2 E009883A +@3FB3 303EE83A +@3FB4 88800117 +@3FB5 98BFC81E +@3FB6 B8800017 +@3FB7 147FD526 +@3FB8 003FC506 +@3FB9 8C000115 +@3FBA 003FEA06 +@3FBB 2105883A +@3FBC 1485883A +@3FBD 11000017 +@3FBE 303EE83A +@3FBF 003FF406 +@3FC0 303EE83A +@3FC1 003FF206 +@3FC2 88800117 +@3FC3 1000081E +@3FC4 89000017 +@3FC5 20000726 +@3FC6 B9000015 +@3FC7 8809883A +@3FC8 00000000 +@3FC9 BC400017 +@3FCA 883FB71E +@3FCB 003FC506 +@3FCC 89000017 +@3FCD 882F883A +@3FCE 2023883A +@3FCF 883FB21E +@3FD0 003FC006 +@3FD1 DEFFFD04 +@3FD2 DF000215 +@3FD3 DF000204 +@3FD4 E13FFF15 +@3FD5 E0BFFF17 +@3FD6 E0BFFE15 +@3FD7 E0BFFE17 +@3FD8 1005003A +@3FD9 1000021E +@3FDA 002AF070 +@3FDB 00000106 +@3FDC 002AF0B0 +@3FDD E037883A +@3FDE DF000017 +@3FDF DEC00104 +@3FE0 F800283A +@3FE1 DEFFFD04 +@3FE2 DFC00215 +@3FE3 DF000115 +@3FE4 DF000104 +@3FE5 E13FFF15 +@3FE6 E13FFF17 +@3FE7 000FF440 +@3FE8 003FFF06 +@3FE9 0000FD90 +@3FEA 4F494E3C +@3FEB 49492053 +@3FEC 206E6F20 +@3FED 3E345055 +@3FEE 00000000 +@3FEF 6563694E +@3FF0 206F7420 +@3FF1 20656553 +@3FF2 21756F59 +@3FF3 00000000 +@3FF4 72617453 +@3FF5 676E6974 +@3FF6 776F6E20 +@3FF7 002E2E2E +@3FF8 00006576 +@3FF9 00002D72 +@3FFA 33303030 +@3FFB 00000000 +@3FFC 00216B4F +@3FFD 78323025 +@3FFE 00000000 +@3FFF 00002D2D +@4000 64343025 +@4001 00000000 +@4002 30257830 +@4003 00007832 +@4004 72727543 +@4005 20746E65 +@4006 65676170 +@4007 6432253A +@4008 00000000 +@4009 6E616843 +@400A 70206567 +@400B 72676F72 +@400C 00006D61 +@400D 72776572 +@400E 20657469 +@400F 206C6C61 +@4010 00003F30 +@4011 68737570 +@4012 61676120 +@4013 2D206E69 +@4014 474E203E +@4015 00000000 +@4016 68737570 +@4017 61676120 +@4018 00006E69 +@4019 68737570 +@401A 61676120 +@401B 2D206E69 +@401C 4B4F203E +@401D 00000000 +@401E 65736572 +@401F 63702074 +@4020 0000003F +@4021 20202020 +@4022 00000000 +@4023 00002020 +@4024 64343025 +@4025 00000000 +@4026 303A4350 +@4027 32302578 +@4028 3E2D2078 +@4029 73342520 +@402A 00000000 +@402B 3A474552 +@402C 2C733325 +@402D 3A4D454D +@402E 31257830 +@402F 00000078 +@4030 3A4D454D +@4031 31257830 +@4032 00000078 +@4033 756C6176 +@4034 64253A65 +@4035 00000000 +@4036 20727265 +@4037 00000000 +@4038 2E6E7552 +@4039 6F6E2E2E +@403A 00000077 +@403B 78323025 +@403C 00000000 +@403D 00006370 +@403E 2E6E7552 +@403F 78452E2E +@4040 00007469 +@4041 20202000 +@4042 20202020 +@4043 28282020 +@4044 20282828 +@4045 20202020 +@4046 20202020 +@4047 20202020 +@4048 20202020 +@4049 10108820 +@404A 10101010 +@404B 10101010 +@404C 10101010 +@404D 04040410 +@404E 04040404 +@404F 10040404 +@4050 10101010 +@4051 41411010 +@4052 41414141 +@4053 01010101 +@4054 01010101 +@4055 01010101 +@4056 01010101 +@4057 01010101 +@4058 10101010 +@4059 42421010 +@405A 42424242 +@405B 02020202 +@405C 02020202 +@405D 02020202 +@405E 02020202 +@405F 02020202 +@4060 10101010 +@4061 00000020 +@4062 00000000 +@4063 00000000 +@4064 00000000 +@4065 00000000 +@4066 00000000 +@4067 00000000 +@4068 00000000 +@4069 00000000 +@406A 00000000 +@406B 00000000 +@406C 00000000 +@406D 00000000 +@406E 00000000 +@406F 00000000 +@4070 00000000 +@4071 00000000 +@4072 00000000 +@4073 00000000 +@4074 00000000 +@4075 00000000 +@4076 00000000 +@4077 00000000 +@4078 00000000 +@4079 00000000 +@407A 00000000 +@407B 00000000 +@407C 00000000 +@407D 00000000 +@407E 00000000 +@407F 00000000 +@4080 00000000 +@4081 00000000 +@4082 00000000 +@4083 00000000 +@4084 00000000 +@4085 00000000 +@4086 00000000 +@4087 00000000 +@4088 00000000 +@4089 00000000 +@408A 00000000 +@408B 00000000 +@408C 00000000 +@408D 00000000 +@408E 00000000 +@408F 00000000 +@4090 00000000 +@4091 00000000 +@4092 00000000 +@4093 00000000 +@4094 00000000 +@4095 00000000 +@4096 00000000 +@4097 00000000 +@4098 00000000 +@4099 00000000 +@409A 00000000 +@409B 00000000 +@409C 00000000 +@409D 00000000 +@409E 00000000 +@409F 00000000 +@40A0 00000000 +@40A1 20202000 +@40A2 20202020 +@40A3 28282020 +@40A4 20282828 +@40A5 20202020 +@40A6 20202020 +@40A7 20202020 +@40A8 20202020 +@40A9 10108820 +@40AA 10101010 +@40AB 10101010 +@40AC 10101010 +@40AD 04040410 +@40AE 04040404 +@40AF 10040404 +@40B0 10101010 +@40B1 41411010 +@40B2 41414141 +@40B3 01010101 +@40B4 01010101 +@40B5 01010101 +@40B6 01010101 +@40B7 01010101 +@40B8 10101010 +@40B9 42421010 +@40BA 42424242 +@40BB 02020202 +@40BC 02020202 +@40BD 02020202 +@40BE 02020202 +@40BF 02020202 +@40C0 10101010 +@40C1 00000020 +@40C2 00000000 +@40C3 00000000 +@40C4 00000000 +@40C5 00000000 +@40C6 00000000 +@40C7 00000000 +@40C8 00000000 +@40C9 00000000 +@40CA 00000000 +@40CB 00000000 +@40CC 00000000 +@40CD 00000000 +@40CE 00000000 +@40CF 00000000 +@40D0 00000000 +@40D1 00000000 +@40D2 00000000 +@40D3 00000000 +@40D4 00000000 +@40D5 00000000 +@40D6 00000000 +@40D7 00000000 +@40D8 00000000 +@40D9 00000000 +@40DA 00000000 +@40DB 00000000 +@40DC 00000000 +@40DD 00000000 +@40DE 00000000 +@40DF 00000000 +@40E0 00000000 +@40E1 00000000 +@40E2 33323130 +@40E3 37363534 +@40E4 62613938 +@40E5 66656463 +@40E6 00000000 +@40E7 00464E49 +@40E8 00666E69 +@40E9 004E414E +@40EA 006E616E +@40EB 6C756E28 +@40EC 0000296C +@40ED 33323130 +@40EE 37363534 +@40EF 42413938 +@40F0 46454443 +@40F1 00000000 +@40F2 20677562 +@40F3 76206E69 +@40F4 69727066 +@40F5 3A66746E +@40F6 64616220 +@40F7 73616220 +@40F8 00000065 +@40F9 30300030 +@40FA 30303030 +@40FB 30303030 +@40FC 30303030 +@40FD 20203030 +@40FE 20202020 +@40FF 20202020 +@4100 20202020 +@4101 00002020 +@4102 69666E49 +@4103 7974696E +@4104 00000000 +@4105 004E614E +@4106 00000043 +@4107 0000002E +@4108 2D4F5349 +@4109 39353838 +@410A 0000312D +@410B 0001041C +@410C 000103C4 +@410D 000103C4 +@410E 000103C4 +@410F 000103C4 +@4110 000103C4 +@4111 000103C4 +@4112 000103C4 +@4113 000103C4 +@4114 000103C4 +@4115 7F7F7F7F +@4116 7F7F7F7F +@4117 00000000 +@4118 3FF00000 +@4119 00000000 +@411A 40240000 +@411B 00000000 +@411C 40590000 +@411D 00000000 +@411E 408F4000 +@411F 00000000 +@4120 40C38800 +@4121 00000000 +@4122 40F86A00 +@4123 00000000 +@4124 412E8480 +@4125 00000000 +@4126 416312D0 +@4127 00000000 +@4128 4197D784 +@4129 00000000 +@412A 41CDCD65 +@412B 20000000 +@412C 4202A05F +@412D E8000000 +@412E 42374876 +@412F A2000000 +@4130 426D1A94 +@4131 E5400000 +@4132 42A2309C +@4133 1E900000 +@4134 42D6BCC4 +@4135 26340000 +@4136 430C6BF5 +@4137 37E08000 +@4138 4341C379 +@4139 85D8A000 +@413A 43763457 +@413B 674EC800 +@413C 43ABC16D +@413D 60913D00 +@413E 43E158E4 +@413F 78B58C40 +@4140 4415AF1D +@4141 D6E2EF50 +@4142 444B1AE4 +@4143 064DD592 +@4144 4480F0CF +@4145 C7E14AF6 +@4146 44B52D02 +@4147 79D99DB4 +@4148 44EA7843 +@4149 37E08000 +@414A 4341C379 +@414B B5056E17 +@414C 4693B8B5 +@414D E93FF9F5 +@414E 4D384F03 +@414F F9301D32 +@4150 5A827748 +@4151 7F73BF3C +@4152 75154FDD +@4153 97D889BC +@4154 3C9CD2B2 +@4155 D5A8A733 +@4156 3949F623 +@4157 44F4A73D +@4158 32A50FFD +@4159 CF8C979D +@415A 255BBA08 +@415B 64AC6F43 +@415C 0AC80628 +@415D 00000005 +@415E 00000019 +@415F 0000007D +@4160 00000000 +@4161 00000000 +@4162 00000000 +@4163 00000000 +@4164 00000000 +@4165 02020100 +@4166 03030303 +@4167 04040404 +@4168 04040404 +@4169 05050505 +@416A 05050505 +@416B 05050505 +@416C 05050505 +@416D 06060606 +@416E 06060606 +@416F 06060606 +@4170 06060606 +@4171 06060606 +@4172 06060606 +@4173 06060606 +@4174 06060606 +@4175 07070707 +@4176 07070707 +@4177 07070707 +@4178 07070707 +@4179 07070707 +@417A 07070707 +@417B 07070707 +@417C 07070707 +@417D 07070707 +@417E 07070707 +@417F 07070707 +@4180 07070707 +@4181 07070707 +@4182 07070707 +@4183 07070707 +@4184 07070707 +@4185 08080808 +@4186 08080808 +@4187 08080808 +@4188 08080808 +@4189 08080808 +@418A 08080808 +@418B 08080808 +@418C 08080808 +@418D 08080808 +@418E 08080808 +@418F 08080808 +@4190 08080808 +@4191 08080808 +@4192 08080808 +@4193 08080808 +@4194 08080808 +@4195 08080808 +@4196 08080808 +@4197 08080808 +@4198 08080808 +@4199 08080808 +@419A 08080808 +@419B 08080808 +@419C 08080808 +@419D 08080808 +@419E 08080808 +@419F 08080808 +@41A0 08080808 +@41A1 08080808 +@41A2 08080808 +@41A3 08080808 +@41A4 08080808 +@41A5 7665642F +@41A6 6C756E2F +@41A7 0000006C +@41A8 7665642F +@41A9 61746A2F +@41AA 61755F67 +@41AB 00007472 +@41AC 7665642F +@41AD 61746A2F +@41AE 61755F67 +@41AF 00007472 +@41B0 7665642F +@41B1 64636C2F +@41B2 3236315F +@41B3 305F3730 +@41B4 00000000 +@4897 00000000 +@4898 000109C0 +@4899 00010A1C +@489A 00010A78 +@489B 00000000 +@489C 00000000 +@489D 00000000 +@489E 00000000 +@489F 00000000 +@48A0 00000000 +@48A1 00000000 +@48A2 00000000 +@48A3 00000000 +@48A4 00010418 +@48A5 00000000 +@48A6 00000000 +@48A7 00000000 +@48A8 00000000 +@48A9 00000000 +@48AA 00000000 +@48AB 00000000 +@48AC 00000000 +@48AD 00000000 +@48AE 00000000 +@48AF 00000000 +@48B0 00000000 +@48B1 00000000 +@48B2 00000000 +@48B3 00000000 +@48B4 00000000 +@48B5 00000000 +@48B6 00000000 +@48B7 00000000 +@48B8 00000000 +@48B9 00000000 +@48BA 00000000 +@48BB 00000000 +@48BC 00000000 +@48BD 00000000 +@48BE 00000000 +@48BF 00000000 +@48C0 00000001 +@48C1 00000000 +@48C2 ABCD330E +@48C3 E66D1234 +@48C4 0005DEEC +@48C5 0000000B +@48C6 00000000 +@48C7 00000000 +@48C8 00000000 +@48C9 00000000 +@48CA 00000000 +@48CB 00000000 +@48CC 00000000 +@48CD 00000000 +@48CE 00000000 +@48CF 00000000 +@48D0 00000000 +@48D1 00000000 +@48D2 00000000 +@48D3 00000000 +@48D4 00000000 +@48D5 00000000 +@48D6 00000000 +@48D7 00000000 +@48D8 00000000 +@48D9 00000000 +@48DA 00000000 +@48DB 00000000 +@48DC 00000000 +@48DD 00000000 +@48DE 00000000 +@48DF 00000000 +@48E0 00000000 +@48E1 00000000 +@48E2 00000000 +@48E3 00000000 +@48E4 00000000 +@48E5 00000000 +@48E6 00000000 +@48E7 00000000 +@48E8 00000000 +@48E9 00000000 +@48EA 00000000 +@48EB 00000000 +@48EC 00000000 +@48ED 00000000 +@48EE 00000000 +@48EF 00000000 +@48F0 00000000 +@48F1 00000000 +@48F2 00000000 +@48F3 00000000 +@48F4 00000000 +@48F5 00000000 +@48F6 00000000 +@48F7 00000000 +@48F8 00000000 +@48F9 00000000 +@48FA 00000000 +@48FB 00000000 +@48FC 00000000 +@48FD 00000000 +@48FE 00000000 +@48FF 00000000 +@4900 00000000 +@4901 00000000 +@4902 00000000 +@4903 00000000 +@4904 00000000 +@4905 00000000 +@4906 00000000 +@4907 00000000 +@4908 00000000 +@4909 00000000 +@490A 00000000 +@490B 00000000 +@490C 00000000 +@490D 00000000 +@490E 00000000 +@490F 00000000 +@4910 00000000 +@4911 00000000 +@4912 00000000 +@4913 00000000 +@4914 00000000 +@4915 00000000 +@4916 00000000 +@4917 00000000 +@4918 00000000 +@4919 00000000 +@491A 00000000 +@491B 00000000 +@491C 00000000 +@491D 00000000 +@491E 00000000 +@491F 00000000 +@4920 00000000 +@4921 00000000 +@4922 00000000 +@4923 00000000 +@4924 00000000 +@4925 00000000 +@4926 00000000 +@4927 00000000 +@4928 00000000 +@4929 00000000 +@492A 00000000 +@492B 00000000 +@492C 00000000 +@492D 00000000 +@492E 00000000 +@492F 00000000 +@4930 00000000 +@4931 00000000 +@4932 00000000 +@4933 00000000 +@4934 00000000 +@4935 00000000 +@4936 00000000 +@4937 00000000 +@4938 00000000 +@4939 00000000 +@493A 00000000 +@493B 00000000 +@493C 00000000 +@493D 00000000 +@493E 00000000 +@493F 00000000 +@4940 00000000 +@4941 00000000 +@4942 00000000 +@4943 00000000 +@4944 00000000 +@4945 00000000 +@4946 00000000 +@4947 00000000 +@4948 00000000 +@4949 00000000 +@494A 00000000 +@494B 00000000 +@494C 00000000 +@494D 00000000 +@494E 00000000 +@494F 00000000 +@4950 00000000 +@4951 00000000 +@4952 00000000 +@4953 00000000 +@4954 00000000 +@4955 00000000 +@4956 00000000 +@4957 00000000 +@4958 00000000 +@4959 00000000 +@495A 00000000 +@495B 00000000 +@495C 00000000 +@495D 00000000 +@495E 00000000 +@495F 00000000 +@4960 00000000 +@4961 00000000 +@4962 00000000 +@4963 00000000 +@4964 00000000 +@4965 00000000 +@4966 00000000 +@4967 00000000 +@4968 00000000 +@4969 00000000 +@496A 00000000 +@496B 00000000 +@496C 00000000 +@496D 00000000 +@496E 00000000 +@496F 00000000 +@4970 00000000 +@4971 00000000 +@4972 00000000 +@4973 00000000 +@4974 00000000 +@4975 00000000 +@4976 00000000 +@4977 00000000 +@4978 00000000 +@4979 00000000 +@497A 00000000 +@497B 00000000 +@497C 00000000 +@497D 00000000 +@497E 00000000 +@497F 00000000 +@4980 00000000 +@4981 00000000 +@4982 00000000 +@4983 00000000 +@4984 00000000 +@4985 00000000 +@4986 00000000 +@4987 00000000 +@4988 00000000 +@4989 00000000 +@498A 00000000 +@498B 00000000 +@498C 00000000 +@498D 00000000 +@498E 00000000 +@498F 00000000 +@4990 00000000 +@4991 00000000 +@4992 00000000 +@4993 00000000 +@4994 00000000 +@4995 00000000 +@4996 00000000 +@4997 00000043 +@4998 00000000 +@4999 00000000 +@499A 00000000 +@499B 00000000 +@499C 00010AE0 +@499D 00010AE0 +@499E 00010AE8 +@499F 00010AE8 +@49A0 00010AF0 +@49A1 00010AF0 +@49A2 00010AF8 +@49A3 00010AF8 +@49A4 00010B00 +@49A5 00010B00 +@49A6 00010B08 +@49A7 00010B08 +@49A8 00010B10 +@49A9 00010B10 +@49AA 00010B18 +@49AB 00010B18 +@49AC 00010B20 +@49AD 00010B20 +@49AE 00010B28 +@49AF 00010B28 +@49B0 00010B30 +@49B1 00010B30 +@49B2 00010B38 +@49B3 00010B38 +@49B4 00010B40 +@49B5 00010B40 +@49B6 00010B48 +@49B7 00010B48 +@49B8 00010B50 +@49B9 00010B50 +@49BA 00010B58 +@49BB 00010B58 +@49BC 00010B60 +@49BD 00010B60 +@49BE 00010B68 +@49BF 00010B68 +@49C0 00010B70 +@49C1 00010B70 +@49C2 00010B78 +@49C3 00010B78 +@49C4 00010B80 +@49C5 00010B80 +@49C6 00010B88 +@49C7 00010B88 +@49C8 00010B90 +@49C9 00010B90 +@49CA 00010B98 +@49CB 00010B98 +@49CC 00010BA0 +@49CD 00010BA0 +@49CE 00010BA8 +@49CF 00010BA8 +@49D0 00010BB0 +@49D1 00010BB0 +@49D2 00010BB8 +@49D3 00010BB8 +@49D4 00010BC0 +@49D5 00010BC0 +@49D6 00010BC8 +@49D7 00010BC8 +@49D8 00010BD0 +@49D9 00010BD0 +@49DA 00010BD8 +@49DB 00010BD8 +@49DC 00010BE0 +@49DD 00010BE0 +@49DE 00010BE8 +@49DF 00010BE8 +@49E0 00010BF0 +@49E1 00010BF0 +@49E2 00010BF8 +@49E3 00010BF8 +@49E4 00010C00 +@49E5 00010C00 +@49E6 00010C08 +@49E7 00010C08 +@49E8 00010C10 +@49E9 00010C10 +@49EA 00010C18 +@49EB 00010C18 +@49EC 00010C20 +@49ED 00010C20 +@49EE 00010C28 +@49EF 00010C28 +@49F0 00010C30 +@49F1 00010C30 +@49F2 00010C38 +@49F3 00010C38 +@49F4 00010C40 +@49F5 00010C40 +@49F6 00010C48 +@49F7 00010C48 +@49F8 00010C50 +@49F9 00010C50 +@49FA 00010C58 +@49FB 00010C58 +@49FC 00010C60 +@49FD 00010C60 +@49FE 00010C68 +@49FF 00010C68 +@4A00 00010C70 +@4A01 00010C70 +@4A02 00010C78 +@4A03 00010C78 +@4A04 00010C80 +@4A05 00010C80 +@4A06 00010C88 +@4A07 00010C88 +@4A08 00010C90 +@4A09 00010C90 +@4A0A 00010C98 +@4A0B 00010C98 +@4A0C 00010CA0 +@4A0D 00010CA0 +@4A0E 00010CA8 +@4A0F 00010CA8 +@4A10 00010CB0 +@4A11 00010CB0 +@4A12 00010CB8 +@4A13 00010CB8 +@4A14 00010CC0 +@4A15 00010CC0 +@4A16 00010CC8 +@4A17 00010CC8 +@4A18 00010CD0 +@4A19 00010CD0 +@4A1A 00010CD8 +@4A1B 00010CD8 +@4A1C 00010CE0 +@4A1D 00010CE0 +@4A1E 00010CE8 +@4A1F 00010CE8 +@4A20 00010CF0 +@4A21 00010CF0 +@4A22 00010CF8 +@4A23 00010CF8 +@4A24 00010D00 +@4A25 00010D00 +@4A26 00010D08 +@4A27 00010D08 +@4A28 00010D10 +@4A29 00010D10 +@4A2A 00010D18 +@4A2B 00010D18 +@4A2C 00010D20 +@4A2D 00010D20 +@4A2E 00010D28 +@4A2F 00010D28 +@4A30 00010D30 +@4A31 00010D30 +@4A32 00010D38 +@4A33 00010D38 +@4A34 00010D40 +@4A35 00010D40 +@4A36 00010D48 +@4A37 00010D48 +@4A38 00010D50 +@4A39 00010D50 +@4A3A 00010D58 +@4A3B 00010D58 +@4A3C 00010D60 +@4A3D 00010D60 +@4A3E 00010D68 +@4A3F 00010D68 +@4A40 00010D70 +@4A41 00010D70 +@4A42 00010D78 +@4A43 00010D78 +@4A44 00010D80 +@4A45 00010D80 +@4A46 00010D88 +@4A47 00010D88 +@4A48 00010D90 +@4A49 00010D90 +@4A4A 00010D98 +@4A4B 00010D98 +@4A4C 00010DA0 +@4A4D 00010DA0 +@4A4E 00010DA8 +@4A4F 00010DA8 +@4A50 00010DB0 +@4A51 00010DB0 +@4A52 00010DB8 +@4A53 00010DB8 +@4A54 00010DC0 +@4A55 00010DC0 +@4A56 00010DC8 +@4A57 00010DC8 +@4A58 00010DD0 +@4A59 00010DD0 +@4A5A 00010DD8 +@4A5B 00010DD8 +@4A5C 00010DE0 +@4A5D 00010DE0 +@4A5E 00010DE8 +@4A5F 00010DE8 +@4A60 00010DF0 +@4A61 00010DF0 +@4A62 00010DF8 +@4A63 00010DF8 +@4A64 00010E00 +@4A65 00010E00 +@4A66 00010E08 +@4A67 00010E08 +@4A68 00010E10 +@4A69 00010E10 +@4A6A 00010E18 +@4A6B 00010E18 +@4A6C 00010E20 +@4A6D 00010E20 +@4A6E 00010E28 +@4A6F 00010E28 +@4A70 00010E30 +@4A71 00010E30 +@4A72 00010E38 +@4A73 00010E38 +@4A74 00010E40 +@4A75 00010E40 +@4A76 00010E48 +@4A77 00010E48 +@4A78 00010E50 +@4A79 00010E50 +@4A7A 00010E58 +@4A7B 00010E58 +@4A7C 00010E60 +@4A7D 00010E60 +@4A7E 00010E68 +@4A7F 00010E68 +@4A80 00010E70 +@4A81 00010E70 +@4A82 00010E78 +@4A83 00010E78 +@4A84 00010E80 +@4A85 00010E80 +@4A86 00010E88 +@4A87 00010E88 +@4A88 00010E90 +@4A89 00010E90 +@4A8A 00010E98 +@4A8B 00010E98 +@4A8C 00010EA0 +@4A8D 00010EA0 +@4A8E 00010EA8 +@4A8F 00010EA8 +@4A90 00010EB0 +@4A91 00010EB0 +@4A92 00010EB8 +@4A93 00010EB8 +@4A94 00010EC0 +@4A95 00010EC0 +@4A96 00010EC8 +@4A97 00010EC8 +@4A98 00010ED0 +@4A99 00010ED0 +@4A9A 00010ED8 +@4A9B 00010ED8 +@4A9C 00012238 +@4A9D 00012238 +@4A9E 00010694 +@4A9F 00000000 +@4AA0 00000000 +@4AA1 00000000 +@4AA2 0000C664 +@4AA3 00000000 +@4AA4 00000000 +@4AA5 00000000 +@4AA6 00010EE8 +@4AA7 00000000 +@4AA8 00000000 +@4AA9 00010EE8 +@4AAA 00000000 +@4AAB 00000000 +@4AAC 00010EE8 +@4AAD 00000000 +@4AAE 00000000 +@4AAF 00000000 +@4AB0 00000000 +@4AB1 00000000 +@4AB2 00000000 +@4AB3 00000000 +@4AB4 00000000 +@4AB5 00000000 +@4AB6 00000000 +@4AB7 00000000 +@4AB8 00000000 +@4AB9 00000000 +@4ABA 00000000 +@4ABB 00000000 +@4ABC 00000000 +@4ABD 00000000 +@4ABE 00000000 +@4ABF 00000000 +@4AC0 00000000 +@4AC1 00000000 +@4AC2 00000000 +@4AC3 00000000 +@4AC4 00000000 +@4AC5 00000000 +@4AC6 00000000 +@4AC7 00000000 +@4AC8 00000000 +@4AC9 00000000 +@4ACA 00000000 +@4ACB 00000000 +@4ACC 00000000 +@4ACD 00000000 +@4ACE 00000000 +@4ACF 00000000 +@4AD0 00000000 +@4AD1 00000000 +@4AD2 00000000 +@4AD3 00000000 +@4AD4 00000000 +@4AD5 00000000 +@4AD6 00000000 +@4AD7 00000000 +@4AD8 00000000 +@4AD9 00000000 +@4ADA 00000000 +@4ADB 00000000 +@4ADC 00000000 +@4ADD 00000000 +@4ADE 00000000 +@4ADF 00000000 +@4AE0 00000000 +@4AE1 00000000 +@4AE2 00000000 +@4AE3 00000000 +@4AE4 00000000 +@4AE5 00000000 +@4AE6 00000000 +@4AE7 00000000 +@4AE8 00000000 +@4AE9 00000000 +@4AEA 00000000 +@4AEB 00000000 +@4AEC 00000000 +@4AED 00000000 +@4AEE 00000000 +@4AEF 00000000 +@4AF0 00000000 +@4AF1 00000000 +@4AF2 00000000 +@4AF3 00000000 +@4AF4 00000000 +@4AF5 00000000 +@4AF6 00000000 +@4AF7 00000000 +@4AF8 00000000 +@4AF9 00000000 +@4AFA 00000000 +@4AFB 00000000 +@4AFC 00000000 +@4AFD 00000000 +@4AFE 00000000 +@4AFF 00000000 +@4B00 00000000 +@4B01 00000000 +@4B02 00000000 +@4B03 00000000 +@4B04 00000000 +@4B05 00000000 +@4B06 00000000 +@4B07 00000000 +@4B08 000106B0 +@4B09 00000000 +@4B0A 0000D1BC +@4B0B 0000D10C +@4B0C 0000D164 +@4B0D 00000000 +@4B0E 00000000 +@4B0F 0000D204 +@4B10 00041100 +@4B11 0000000A +@4B12 00000000 +@4B13 00000000 +@4B14 00000000 +@4B15 00000000 +@4B16 00000000 +@4B17 00000000 +@4B18 00000000 +@4B19 00000000 +@4B1A 00000000 +@4B1B 00000000 +@4B1C 00000000 +@4B1D 00000000 +@4B1E 00000000 +@4B1F 00000000 +@4B20 00000000 +@4B21 00000000 +@4B22 00000000 +@4B23 00000000 +@4B24 00000000 +@4B25 00000000 +@4B26 00000000 +@4B27 00000000 +@4B28 00000000 +@4B29 00000000 +@4B2A 00000000 +@4B2B 00000000 +@4B2C 00000000 +@4B2D 00000000 +@4B2E 00000000 +@4B2F 00000000 +@4B30 00000000 +@4B31 00000000 +@4B32 00000000 +@4B33 00000000 +@4B34 00000000 +@4B35 00000000 +@4B36 00000000 +@4B37 00000000 +@4B38 00000000 +@4B39 00000000 +@4B3A 00000000 +@4B3B 00000000 +@4B3C 00000000 +@4B3D 00000000 +@4B3E 00000000 +@4B3F 00000000 +@4B40 00000000 +@4B41 00000000 +@4B42 00000000 +@4B43 00000000 +@4B44 00000000 +@4B45 00000000 +@4B46 00000000 +@4B47 00000000 +@4B48 00000000 +@4B49 00000000 +@4B4A 00000000 +@4B4B 00000000 +@4B4C 00000000 +@4B4D 00000000 +@4B4E 00000000 +@4B4F 00000000 +@4B50 00000000 +@4B51 00000000 +@4B52 00000000 +@4B53 00000000 +@4B54 00000000 +@4B55 00000000 +@4B56 00000000 +@4B57 00000000 +@4B58 00000000 +@4B59 00000000 +@4B5A 00000000 +@4B5B 00000000 +@4B5C 00000000 +@4B5D 00000000 +@4B5E 00000000 +@4B5F 00000000 +@4B60 00000000 +@4B61 00000000 +@4B62 00000000 +@4B63 00000000 +@4B64 00000000 +@4B65 00000000 +@4B66 00000000 +@4B67 00000000 +@4B68 00000000 +@4B69 00000000 +@4B6A 00000000 +@4B6B 00000000 +@4B6C 00000000 +@4B6D 00000000 +@4B6E 00000000 +@4B6F 00000000 +@4B70 00000000 +@4B71 00000000 +@4B72 00000000 +@4B73 00000000 +@4B74 00000000 +@4B75 00000000 +@4B76 00000000 +@4B77 00000000 +@4B78 00000000 +@4B79 00000000 +@4B7A 00000000 +@4B7B 00000000 +@4B7C 00000000 +@4B7D 00000000 +@4B7E 00000000 +@4B7F 00000000 +@4B80 00000000 +@4B81 00000000 +@4B82 00000000 +@4B83 00000000 +@4B84 00000000 +@4B85 00000000 +@4B86 00000000 +@4B87 00000000 +@4B88 00000000 +@4B89 00000000 +@4B8A 00000000 +@4B8B 00000000 +@4B8C 00000000 +@4B8D 00000000 +@4B8E 00000000 +@4B8F 00000000 +@4B90 00000000 +@4B91 00000000 +@4B92 00000000 +@4B93 00000000 +@4B94 00000000 +@4B95 00000000 +@4B96 00000000 +@4B97 00000000 +@4B98 00000000 +@4B99 00000000 +@4B9A 00000000 +@4B9B 00000000 +@4B9C 00000000 +@4B9D 00000000 +@4B9E 00000000 +@4B9F 00000000 +@4BA0 00000000 +@4BA1 00000000 +@4BA2 00000000 +@4BA3 00000000 +@4BA4 00000000 +@4BA5 00000000 +@4BA6 00000000 +@4BA7 00000000 +@4BA8 00000000 +@4BA9 00000000 +@4BAA 00000000 +@4BAB 00000000 +@4BAC 00000000 +@4BAD 00000000 +@4BAE 00000000 +@4BAF 00000000 +@4BB0 00000000 +@4BB1 00000000 +@4BB2 00000000 +@4BB3 00000000 +@4BB4 00000000 +@4BB5 00000000 +@4BB6 00000000 +@4BB7 00000000 +@4BB8 00000000 +@4BB9 00000000 +@4BBA 00000000 +@4BBB 00000000 +@4BBC 00000000 +@4BBD 00000000 +@4BBE 00000000 +@4BBF 00000000 +@4BC0 00000000 +@4BC1 00000000 +@4BC2 00000000 +@4BC3 00000000 +@4BC4 00000000 +@4BC5 00000000 +@4BC6 00000000 +@4BC7 00000000 +@4BC8 00000000 +@4BC9 00000000 +@4BCA 00000000 +@4BCB 00000000 +@4BCC 00000000 +@4BCD 00000000 +@4BCE 00000000 +@4BCF 00000000 +@4BD0 00000000 +@4BD1 00000000 +@4BD2 00000000 +@4BD3 00000000 +@4BD4 00000000 +@4BD5 00000000 +@4BD6 00000000 +@4BD7 00000000 +@4BD8 00000000 +@4BD9 00000000 +@4BDA 00000000 +@4BDB 00000000 +@4BDC 00000000 +@4BDD 00000000 +@4BDE 00000000 +@4BDF 00000000 +@4BE0 00000000 +@4BE1 00000000 +@4BE2 00000000 +@4BE3 00000000 +@4BE4 00000000 +@4BE5 00000000 +@4BE6 00000000 +@4BE7 00000000 +@4BE8 00000000 +@4BE9 00000000 +@4BEA 00000000 +@4BEB 00000000 +@4BEC 00000000 +@4BED 00000000 +@4BEE 00000000 +@4BEF 00000000 +@4BF0 00000000 +@4BF1 00000000 +@4BF2 00000000 +@4BF3 00000000 +@4BF4 00000000 +@4BF5 00000000 +@4BF6 00000000 +@4BF7 00000000 +@4BF8 00000000 +@4BF9 00000000 +@4BFA 00000000 +@4BFB 00000000 +@4BFC 00000000 +@4BFD 00000000 +@4BFE 00000000 +@4BFF 00000000 +@4C00 00000000 +@4C01 00000000 +@4C02 00000000 +@4C03 00000000 +@4C04 00000000 +@4C05 00000000 +@4C06 00000000 +@4C07 00000000 +@4C08 00000000 +@4C09 00000000 +@4C0A 00000000 +@4C0B 00000000 +@4C0C 00000000 +@4C0D 00000000 +@4C0E 00000000 +@4C0F 00000000 +@4C10 00000000 +@4C11 00000000 +@4C12 00000000 +@4C13 00000000 +@4C14 00000000 +@4C15 00000000 +@4C16 00000000 +@4C17 00000000 +@4C18 00000000 +@4C19 00000000 +@4C1A 00000000 +@4C1B 00000000 +@4C1C 00000000 +@4C1D 00000000 +@4C1E 00000000 +@4C1F 00000000 +@4C20 00000000 +@4C21 00000000 +@4C22 00000000 +@4C23 00000000 +@4C24 00000000 +@4C25 00000000 +@4C26 00000000 +@4C27 00000000 +@4C28 00000000 +@4C29 00000000 +@4C2A 00000000 +@4C2B 00000000 +@4C2C 00000000 +@4C2D 00000000 +@4C2E 00000000 +@4C2F 00000000 +@4C30 00000000 +@4C31 00000000 +@4C32 00000000 +@4C33 00000000 +@4C34 00000000 +@4C35 00000000 +@4C36 00000000 +@4C37 00000000 +@4C38 00000000 +@4C39 00000000 +@4C3A 00000000 +@4C3B 00000000 +@4C3C 00000000 +@4C3D 00000000 +@4C3E 00000000 +@4C3F 00000000 +@4C40 00000000 +@4C41 00000000 +@4C42 00000000 +@4C43 00000000 +@4C44 00000000 +@4C45 00000000 +@4C46 00000000 +@4C47 00000000 +@4C48 00000000 +@4C49 00000000 +@4C4A 00000000 +@4C4B 00000000 +@4C4C 00000000 +@4C4D 00000000 +@4C4E 00000000 +@4C4F 00000000 +@4C50 00000000 +@4C51 00000000 +@4C52 00000000 +@4C53 00000000 +@4C54 00000000 +@4C55 00000000 +@4C56 00000000 +@4C57 00000000 +@4C58 00000000 +@4C59 00000000 +@4C5A 00000000 +@4C5B 00000000 +@4C5C 00000000 +@4C5D 00000000 +@4C5E 00000000 +@4C5F 00000000 +@4C60 00000000 +@4C61 00000000 +@4C62 00000000 +@4C63 00000000 +@4C64 00000000 +@4C65 00000000 +@4C66 00000000 +@4C67 00000000 +@4C68 00000000 +@4C69 00000000 +@4C6A 00000000 +@4C6B 00000000 +@4C6C 00000000 +@4C6D 00000000 +@4C6E 00000000 +@4C6F 00000000 +@4C70 00000000 +@4C71 00000000 +@4C72 00000000 +@4C73 00000000 +@4C74 00000000 +@4C75 00000000 +@4C76 00000000 +@4C77 00000000 +@4C78 00000000 +@4C79 00000000 +@4C7A 00000000 +@4C7B 00000000 +@4C7C 00000000 +@4C7D 00000000 +@4C7E 00000000 +@4C7F 00000000 +@4C80 00000000 +@4C81 00000000 +@4C82 00000000 +@4C83 00000000 +@4C84 00000000 +@4C85 00000000 +@4C86 00000000 +@4C87 00000000 +@4C88 00000000 +@4C89 00000000 +@4C8A 00000000 +@4C8B 00000000 +@4C8C 00000000 +@4C8D 00000000 +@4C8E 00000000 +@4C8F 00000000 +@4C90 00000000 +@4C91 00000000 +@4C92 00000000 +@4C93 00000000 +@4C94 00000000 +@4C95 00000000 +@4C96 00000000 +@4C97 00000000 +@4C98 00000000 +@4C99 00000000 +@4C9A 00000000 +@4C9B 00000000 +@4C9C 00000000 +@4C9D 00000000 +@4C9E 00000000 +@4C9F 00000000 +@4CA0 00000000 +@4CA1 00000000 +@4CA2 00000000 +@4CA3 00000000 +@4CA4 00000000 +@4CA5 00000000 +@4CA6 00000000 +@4CA7 00000000 +@4CA8 00000000 +@4CA9 00000000 +@4CAA 00000000 +@4CAB 00000000 +@4CAC 00000000 +@4CAD 00000000 +@4CAE 00000000 +@4CAF 00000000 +@4CB0 00000000 +@4CB1 00000000 +@4CB2 00000000 +@4CB3 00000000 +@4CB4 00000000 +@4CB5 00000000 +@4CB6 00000000 +@4CB7 00000000 +@4CB8 00000000 +@4CB9 00000000 +@4CBA 00000000 +@4CBB 00000000 +@4CBC 00000000 +@4CBD 00000000 +@4CBE 00000000 +@4CBF 00000000 +@4CC0 00000000 +@4CC1 00000000 +@4CC2 00000000 +@4CC3 00000000 +@4CC4 00000000 +@4CC5 00000000 +@4CC6 00000000 +@4CC7 00000000 +@4CC8 00000000 +@4CC9 00000000 +@4CCA 00000000 +@4CCB 00000000 +@4CCC 00000000 +@4CCD 00000000 +@4CCE 00000000 +@4CCF 00000000 +@4CD0 00000000 +@4CD1 00000000 +@4CD2 00000000 +@4CD3 00000000 +@4CD4 00000000 +@4CD5 00000000 +@4CD6 00000000 +@4CD7 00000000 +@4CD8 00000000 +@4CD9 00000000 +@4CDA 00000000 +@4CDB 00000000 +@4CDC 00000000 +@4CDD 00000000 +@4CDE 00000000 +@4CDF 00000000 +@4CE0 00000000 +@4CE1 00000000 +@4CE2 00000000 +@4CE3 00000000 +@4CE4 00000000 +@4CE5 00000000 +@4CE6 00000000 +@4CE7 00000000 +@4CE8 00000000 +@4CE9 00000000 +@4CEA 00000000 +@4CEB 00000000 +@4CEC 00000000 +@4CED 00000000 +@4CEE 00000000 +@4CEF 00000000 +@4CF0 00000000 +@4CF1 00000000 +@4CF2 00000000 +@4CF3 00000000 +@4CF4 00000000 +@4CF5 00000000 +@4CF6 00000000 +@4CF7 00000000 +@4CF8 00000000 +@4CF9 00000000 +@4CFA 00000000 +@4CFB 00000000 +@4CFC 00000000 +@4CFD 00000000 +@4CFE 00000000 +@4CFF 00000000 +@4D00 00000000 +@4D01 00000000 +@4D02 00000000 +@4D03 00000000 +@4D04 00000000 +@4D05 00000000 +@4D06 00000000 +@4D07 00000000 +@4D08 00000000 +@4D09 00000000 +@4D0A 00000000 +@4D0B 00000000 +@4D0C 00000000 +@4D0D 00000000 +@4D0E 00000000 +@4D0F 00000000 +@4D10 00000000 +@4D11 00000000 +@4D12 00000000 +@4D13 00000000 +@4D14 00000000 +@4D15 00000000 +@4D16 00000000 +@4D17 00000000 +@4D18 00000000 +@4D19 00000000 +@4D1A 00000000 +@4D1B 00000000 +@4D1C 00000000 +@4D1D 00000000 +@4D1E 00000000 +@4D1F 00000000 +@4D20 00000000 +@4D21 00000000 +@4D22 00000000 +@4D23 00000000 +@4D24 00000000 +@4D25 00000000 +@4D26 00000000 +@4D27 00000000 +@4D28 00000000 +@4D29 00000000 +@4D2A 00000000 +@4D2B 00000000 +@4D2C 00000000 +@4D2D 00000000 +@4D2E 00000000 +@4D2F 00000000 +@4D30 00000000 +@4D31 00000000 +@4D32 00000000 +@4D33 00000000 +@4D34 00000000 +@4D35 00000000 +@4D36 00000000 +@4D37 00000000 +@4D38 00000000 +@4D39 00000000 +@4D3A 00000000 +@4D3B 00000000 +@4D3C 00000000 +@4D3D 00000000 +@4D3E 00000000 +@4D3F 00000000 +@4D40 00000000 +@4D41 00000000 +@4D42 00000000 +@4D43 00000000 +@4D44 00000000 +@4D45 00000000 +@4D46 00000000 +@4D47 00000000 +@4D48 00000000 +@4D49 00000000 +@4D4A 00000000 +@4D4B 00000000 +@4D4C 00000000 +@4D4D 00000000 +@4D4E 00000000 +@4D4F 00000000 +@4D50 00000000 +@4D51 00000000 +@4D52 00000000 +@4D53 00000000 +@4D54 00000000 +@4D55 00000000 +@4D56 00000000 +@4D57 00000000 +@4D58 00000000 +@4D59 00000000 +@4D5A 00000000 +@4D5B 00000000 +@4D5C 00000000 +@4D5D 00000000 +@4D5E 00000000 +@4D5F 00000000 +@4D60 00000000 +@4D61 00000000 +@4D62 00000000 +@4D63 00000000 +@4D64 00000000 +@4D65 00000000 +@4D66 00000000 +@4D67 00000000 +@4D68 00000000 +@4D69 00000000 +@4D6A 00000000 +@4D6B 00000000 +@4D6C 00000000 +@4D6D 00000000 +@4D6E 00000000 +@4D6F 00000000 +@4D70 00000000 +@4D71 00000000 +@4D72 00000000 +@4D73 00000000 +@4D74 00000000 +@4D75 00000000 +@4D76 00000000 +@4D77 00000000 +@4D78 00000000 +@4D79 00000000 +@4D7A 00000000 +@4D7B 00000000 +@4D7C 00000000 +@4D7D 00000000 +@4D7E 00000000 +@4D7F 00000000 +@4D80 00000000 +@4D81 00000000 +@4D82 00000000 +@4D83 00000000 +@4D84 00000000 +@4D85 00000000 +@4D86 00000000 +@4D87 00000000 +@4D88 00000000 +@4D89 00000000 +@4D8A 00000000 +@4D8B 00000000 +@4D8C 00000000 +@4D8D 00000000 +@4D8E 00000000 +@4D8F 00000000 +@4D90 00000000 +@4D91 00000000 +@4D92 00000000 +@4D93 00000000 +@4D94 00000000 +@4D95 00000000 +@4D96 00000000 +@4D97 00000000 +@4D98 00000000 +@4D99 00000000 +@4D9A 00000000 +@4D9B 00000000 +@4D9C 00000000 +@4D9D 00000000 +@4D9E 00000000 +@4D9F 00000000 +@4DA0 00000000 +@4DA1 00000000 +@4DA2 00000000 +@4DA3 00000000 +@4DA4 00000000 +@4DA5 00000000 +@4DA6 00000000 +@4DA7 00000000 +@4DA8 00000000 +@4DA9 00000000 +@4DAA 00000000 +@4DAB 00000000 +@4DAC 00000000 +@4DAD 00000000 +@4DAE 00000000 +@4DAF 00000000 +@4DB0 00000000 +@4DB1 00000000 +@4DB2 00000000 +@4DB3 00000000 +@4DB4 00000000 +@4DB5 00000000 +@4DB6 00000000 +@4DB7 00000000 +@4DB8 00000000 +@4DB9 00000000 +@4DBA 00000000 +@4DBB 00000000 +@4DBC 00000000 +@4DBD 00000000 +@4DBE 00000000 +@4DBF 00000000 +@4DC0 00000000 +@4DC1 00000000 +@4DC2 00000000 +@4DC3 00000000 +@4DC4 00000000 +@4DC5 00000000 +@4DC6 00000000 +@4DC7 00000000 +@4DC8 00000000 +@4DC9 00000000 +@4DCA 00000000 +@4DCB 00000000 +@4DCC 00000000 +@4DCD 00000000 +@4DCE 00000000 +@4DCF 00000000 +@4DD0 00000000 +@4DD1 00000000 +@4DD2 00000000 +@4DD3 00000000 +@4DD4 00000000 +@4DD5 00000000 +@4DD6 00000000 +@4DD7 00000000 +@4DD8 00000000 +@4DD9 00000000 +@4DDA 00000000 +@4DDB 00000000 +@4DDC 00000000 +@4DDD 00000000 +@4DDE 00000000 +@4DDF 00000000 +@4DE0 00000000 +@4DE1 00000000 +@4DE2 00000000 +@4DE3 00000000 +@4DE4 00000000 +@4DE5 00000000 +@4DE6 00000000 +@4DE7 00000000 +@4DE8 00000000 +@4DE9 00000000 +@4DEA 00000000 +@4DEB 00000000 +@4DEC 00000000 +@4DED 00000000 +@4DEE 00000000 +@4DEF 00000000 +@4DF0 00000000 +@4DF1 00000000 +@4DF2 00000000 +@4DF3 00000000 +@4DF4 00000000 +@4DF5 00000000 +@4DF6 00000000 +@4DF7 00000000 +@4DF8 00000000 +@4DF9 00000000 +@4DFA 00000000 +@4DFB 00000000 +@4DFC 00000000 +@4DFD 00000000 +@4DFE 00000000 +@4DFF 00000000 +@4E00 00000000 +@4E01 00000000 +@4E02 00000000 +@4E03 00000000 +@4E04 00000000 +@4E05 00000000 +@4E06 00000000 +@4E07 00000000 +@4E08 00000000 +@4E09 00000000 +@4E0A 00000000 +@4E0B 00000000 +@4E0C 00000000 +@4E0D 00000000 +@4E0E 00000000 +@4E0F 00000000 +@4E10 00000000 +@4E11 00000000 +@4E12 00000000 +@4E13 00000000 +@4E14 00000000 +@4E15 00000000 +@4E16 00000000 +@4E17 00000000 +@4E18 00000000 +@4E19 00000000 +@4E1A 00000000 +@4E1B 00000000 +@4E1C 00000000 +@4E1D 00000000 +@4E1E 00000000 +@4E1F 00000000 +@4E20 00000000 +@4E21 00000000 +@4E22 00000000 +@4E23 00000000 +@4E24 00000000 +@4E25 00000000 +@4E26 00000000 +@4E27 00000000 +@4E28 00000000 +@4E29 00000000 +@4E2A 00000000 +@4E2B 00000000 +@4E2C 00000000 +@4E2D 00000000 +@4E2E 00000000 +@4E2F 00000000 +@4E30 00000000 +@4E31 00000000 +@4E32 00000000 +@4E33 00000000 +@4E34 00000000 +@4E35 00000000 +@4E36 00000000 +@4E37 00000000 +@4E38 00000000 +@4E39 00000000 +@4E3A 00000000 +@4E3B 00000000 +@4E3C 00000000 +@4E3D 00000000 +@4E3E 00000000 +@4E3F 00000000 +@4E40 00000000 +@4E41 00000000 +@4E42 00000000 +@4E43 00000000 +@4E44 00000000 +@4E45 00000000 +@4E46 00000000 +@4E47 00000000 +@4E48 00000000 +@4E49 00000000 +@4E4A 00000000 +@4E4B 00000000 +@4E4C 00000000 +@4E4D 00000000 +@4E4E 00000000 +@4E4F 00000000 +@4E50 00000000 +@4E51 00000000 +@4E52 00000000 +@4E53 00000000 +@4E54 00000000 +@4E55 00000000 +@4E56 00000000 +@4E57 00000000 +@4E58 00000000 +@4E59 00000000 +@4E5A 00000000 +@4E5B 00000000 +@4E5C 00000000 +@4E5D 00000000 +@4E5E 00000000 +@4E5F 00000000 +@4E60 00000000 +@4E61 00000000 +@4E62 00000000 +@4E63 00000000 +@4E64 00000000 +@4E65 00000000 +@4E66 00000000 +@4E67 00000000 +@4E68 00000000 +@4E69 00000000 +@4E6A 00000000 +@4E6B 00000000 +@4E6C 00000000 +@4E6D 00000000 +@4E6E 00000000 +@4E6F 00000000 +@4E70 00000000 +@4E71 00000000 +@4E72 00000000 +@4E73 00000000 +@4E74 00000000 +@4E75 00000000 +@4E76 00000000 +@4E77 00000000 +@4E78 00000000 +@4E79 00000000 +@4E7A 00000000 +@4E7B 00000000 +@4E7C 00000000 +@4E7D 00000000 +@4E7E 00000000 +@4E7F 00000000 +@4E80 00000000 +@4E81 00000000 +@4E82 00000000 +@4E83 00000000 +@4E84 00000000 +@4E85 00000000 +@4E86 00000000 +@4E87 00000000 +@4E88 00000000 +@4E89 00000000 +@4E8A 00000000 +@4E8B 00000000 +@4E8C 00000000 +@4E8D 00000000 +@4E8E 00000000 +@4E8F 00000000 +@4E90 00000000 +@4E91 00000000 +@4E92 00000000 +@4E93 00000000 +@4E94 00000000 +@4E95 00000000 +@4E96 00000000 +@4E97 00000000 +@4E98 00000000 +@4E99 00000000 +@4E9A 00000000 +@4E9B 00000000 +@4E9C 00000000 +@4E9D 00000000 +@4E9E 00000000 +@4E9F 00000000 +@4EA0 00000000 +@4EA1 00000000 +@4EA2 00000000 +@4EA3 00000000 +@4EA4 00000000 +@4EA5 00000000 +@4EA6 00000000 +@4EA7 00000000 +@4EA8 00000000 +@4EA9 00000000 +@4EAA 00000000 +@4EAB 00000000 +@4EAC 00000000 +@4EAD 00000000 +@4EAE 00000000 +@4EAF 00000000 +@4EB0 00000000 +@4EB1 00000000 +@4EB2 00000000 +@4EB3 00000000 +@4EB4 00000000 +@4EB5 00000000 +@4EB6 00000000 +@4EB7 00000000 +@4EB8 00000000 +@4EB9 00000000 +@4EBA 00000000 +@4EBB 00000000 +@4EBC 00000000 +@4EBD 00000000 +@4EBE 00000000 +@4EBF 00000000 +@4EC0 00000000 +@4EC1 00000000 +@4EC2 00000000 +@4EC3 00000000 +@4EC4 00000000 +@4EC5 00000000 +@4EC6 00000000 +@4EC7 00000000 +@4EC8 00000000 +@4EC9 00000000 +@4ECA 00000000 +@4ECB 00000000 +@4ECC 00000000 +@4ECD 00000000 +@4ECE 00000000 +@4ECF 00000000 +@4ED0 00000000 +@4ED1 00000000 +@4ED2 00000000 +@4ED3 00000000 +@4ED4 00000000 +@4ED5 00000000 +@4ED6 00000000 +@4ED7 00000000 +@4ED8 00000000 +@4ED9 00000000 +@4EDA 00000000 +@4EDB 00000000 +@4EDC 00000000 +@4EDD 00000000 +@4EDE 00000000 +@4EDF 00000000 +@4EE0 00000000 +@4EE1 00000000 +@4EE2 00000000 +@4EE3 00000000 +@4EE4 00000000 +@4EE5 00000000 +@4EE6 00000000 +@4EE7 00000000 +@4EE8 00000000 +@4EE9 00000000 +@4EEA 00000000 +@4EEB 00000000 +@4EEC 00000000 +@4EED 00000000 +@4EEE 00000000 +@4EEF 00000000 +@4EF0 00000000 +@4EF1 00000000 +@4EF2 00000000 +@4EF3 00000000 +@4EF4 00000000 +@4EF5 00000000 +@4EF6 00000000 +@4EF7 00000000 +@4EF8 00000000 +@4EF9 00000000 +@4EFA 00000000 +@4EFB 00000000 +@4EFC 00000000 +@4EFD 00000000 +@4EFE 00000000 +@4EFF 00000000 +@4F00 00000000 +@4F01 00000000 +@4F02 00000000 +@4F03 00000000 +@4F04 00000000 +@4F05 00000000 +@4F06 00000000 +@4F07 00000000 +@4F08 00000000 +@4F09 00000000 +@4F0A 00000000 +@4F0B 00000000 +@4F0C 00000000 +@4F0D 00000000 +@4F0E 00000000 +@4F0F 00000000 +@4F10 00000000 +@4F11 00000000 +@4F12 00000000 +@4F13 00000000 +@4F14 00000000 +@4F15 00000000 +@4F16 00000000 +@4F17 00000000 +@4F18 00000000 +@4F19 00000000 +@4F1A 00000000 +@4F1B 00000000 +@4F1C 00000000 +@4F1D 00000000 +@4F1E 00000000 +@4F1F 00000000 +@4F20 000106C0 +@4F21 00000000 +@4F22 00000000 +@4F23 00000000 +@4F24 0000EB38 +@4F25 00000000 +@4F26 00000000 +@4F27 00000000 +@4F28 00041030 +@4F29 00000000 +@4F2A 00000000 +@4F2B 00000000 +@4F2C 00000000 +@4F2D 00000000 +@4F2E 00000000 +@4F2F 00000000 +@4F30 00000000 +@4F31 00000000 +@4F32 00000000 +@4F33 00000000 +@4F34 00000000 +@4F35 00000000 +@4F36 00000000 +@4F37 00000000 +@4F38 00000000 +@4F39 00000000 +@4F3A 00000000 +@4F3B 00000000 +@4F3C 00000000 +@4F3D 00000000 +@4F3E 00000000 +@4F3F 00000000 +@4F40 00000000 +@4F41 00000000 +@4F42 00000000 +@4F43 00000000 +@4F44 00000000 +@4F45 00000000 +@4F46 00000000 +@4F47 00000000 +@4F48 00000000 +@4F49 00000000 +@4F4A 00000000 +@4F4B 00000000 +@4F4C 00000000 +@4F4D 00000000 +@4F4E 00000000 +@4F4F 00000000 +@4F50 00000000 +@4F51 00000000 +@4F52 00000000 +@4F53 00000000 +@4F54 00000000 +@4F55 00000000 +@4F56 00000000 +@4F57 00000000 +@4F58 00000000 +@4F59 00000000 +@4F5A 00000000 +@4F5B 00000000 +@4F5C 00000000 +@4F5D 00000000 +@4F5E 00000000 +@4F5F 00000000 +@4F60 00000000 +@4F61 00000000 +@4F62 00000000 +@4F63 00000000 +@4F64 00000000 +@4F65 00000000 +@4F66 00000001 +@4F67 00010285 +@4F68 000106D4 +@4F69 000106D4 +@4F6A 00000001 +@4F6B 00010420 +@4F6C 00020000 +@4F6D FFFFFFFF +@4F6E 00012230 +@4F6F 00012230 +@4F70 00010EE8 +@4F71 00010EE8 +@4F72 FFFFFFFF +@4F73 00000000 +@4F74 000145F4 +@4F75 60204000 +@4F76 FFFFFFFF +@4F77 00012254 +@4F78 00012254 diff --git a/software/DE2_115_ASM3_release/mem_init/hdl_sim/nios_system_onchip_memory.sym b/software/DE2_115_ASM3_release/mem_init/hdl_sim/nios_system_onchip_memory.sym new file mode 100644 index 0000000..24e97ba --- /dev/null +++ b/software/DE2_115_ASM3_release/mem_init/hdl_sim/nios_system_onchip_memory.sym @@ -0,0 +1,329 @@ + w __errno + w free + w malloc +00000000 A __alt_mem_onchip_memory +00000000 T __reset +00000020 A __flash_exceptions_start +00000020 A __ram_exceptions_start +00000020 T alt_exception +00000020 T alt_irq_entry +000000ec T alt_irq_handler +000001b4 A __ram_exceptions_end +000001b4 T _start +000001ec t alt_after_alt_main +000001f0 T LCD_Init +0000028c T LCD_Show_Text +00000314 T LCD_Line2 +00000350 T LCD_Test +000003dc t init +0000049c T store_value +00000580 T store_inst +000006e4 T print_change_memory +00000754 t reset_mem_cancel +00000798 t reset_mem +0000084c t reset_pc_cancel +00000890 t reset_pc +00000920 T main +00000ba8 T encodeNumHex +00000d84 T encodeLatHex +000011d8 T print_block +00001368 T clear_block +000013f8 T print_number +000014f0 T in_int +00001518 t update_sw_reg +00001600 T push_decode +000016ac T push_int +000017b0 T inst_fetch +000017fc T inst_decode +00001a74 T inst_jump +00001ad0 T inst_output +00001b40 T inst_load +00001b78 T inst_store +00001bb0 T inst_delay +00001c0c T inst_add +00001c68 T inst_sub +00001cc4 T inst_comp +00001d94 T inst_jeq +00001e00 T inst_jne +00001e6c T inst_jieq +00001ebc T inst_jine +00001f0c T lcd_init +00001f54 T lcd_caret_reset +00001f7c T lcd_caret_reset2 +00001fa4 T lcd_print +00001fd4 T display_inst +00002080 T display_mem +000020ec T convertRegName +0000225c T convertInstName +00002520 T delay10ms +0000255c T panic +0000259c T memory_init +00002618 T inst_memory_store +00002668 T inst_memory_load +000026b0 T memory_store +0000274c T memory_load +000027dc T inc_pc +00002860 T add_pc +000028b0 T set_pc +000028e8 T get_pc +00002950 T run_proc +00002aa0 T registers_init +00002af0 t udivmodsi4 +00002b6c T __divsi3 +00002bcc T __modsi3 +00002c2c T __udivsi3 +00002c34 T __umodsi3 +00002c3c T __mulsi3 +00002c74 T sprintf +00002ce8 T _sprintf_r +00002d48 T strlen +00002dbc t __sprint_r +00002e14 T ___vfprintf_internal_r +00004cd8 T __vfprintf_internal +00004cfc T __swsetup_r +00004e38 t quorem +0000507c T _dtoa_r +00006630 T _fflush_r +0000682c T fflush +00006860 t std +000068b8 T __sfp_lock_acquire +000068bc T __sfp_lock_release +000068c0 T __sinit_lock_acquire +000068c4 T __sinit_lock_release +000068c8 T __sinit +0000696c t __fp_lock +00006974 t __fp_unlock +0000697c T __fp_unlock_all +00006994 T __fp_lock_all +000069ac T _cleanup_r +000069b8 T _cleanup +000069c8 T __sfmoreglue +00006a64 T __sfp +00006b54 T _malloc_trim_r +00006c80 T _free_r +00006f94 T __sfvwrite_r +00007430 T _fwalk_reent +000074f8 T _fwalk +000075b0 T __locale_charset +000075b8 T _localeconv_r +000075c4 T localeconv +000075d4 T _setlocale_r +00007658 T setlocale +00007674 T __smakebuf_r +00007808 T _malloc_r +00007f48 T memchr +0000802c T memcpy +000080cc T memmove +000081ac T memset +00008244 T _Bfree +0000826c T __hi0bits +000082dc T __lo0bits +000083a0 T __mcmp +00008400 T __ulp +00008480 T __b2d +000085a0 T __ratio +00008650 T _mprec_log10 +000086e4 T __copybits +0000873c T __any_on +000087c4 T _Balloc +00008880 T __d2b +000089fc T __mdiff +00008b88 T __lshift +00008cd4 T __multiply +00008f28 T __i2b +00008f64 T __multadd +00009090 T __pow5mult +000091b0 T __s2b +000092d0 T _realloc_r +000098c4 T __isinfd +00009904 T __isnand +00009934 T _sbrk_r +000099a4 T __sclose +000099ac T __sseek +00009a14 T __swrite +00009a90 T __sread +00009af0 T strcmp +00009bac T _write_r +00009c24 T _calloc_r +00009cec T _close_r +00009d5c T _fclose_r +00009e6c T fclose +00009e80 T _fstat_r +00009ef4 T _isatty_r +00009f64 T _lseek_r +00009fdc T _read_r +0000a054 T __udivdi3 +0000a6c0 T __umoddi3 +0000ad20 t _fpadd_parts +0000b130 T __subdf3 +0000b1b0 T __adddf3 +0000b224 T __muldf3 +0000b5e8 T __divdf3 +0000b840 T __eqdf2 +0000b8c8 T __nedf2 +0000b950 T __gtdf2 +0000b9d8 T __gedf2 +0000ba60 T __ltdf2 +0000bae8 T __floatsidf +0000bbe0 T __fixdfsi +0000bcb8 T __floatunsidf +0000be4c T __muldi3 +0000bf70 T __clzsi2 +0000bff0 T __pack_d +0000c304 T __unpack_d +0000c43c T __fpcmp_parts_d +0000c504 T close +0000c604 t alt_get_errno +0000c664 t alt_dev_null_write +0000c690 T fstat +0000c768 t alt_get_errno +0000c7c8 T isatty +0000c88c t alt_get_errno +0000c8ec T alt_load +0000c96c t alt_load_section +0000c9d8 T lseek +0000cacc t alt_get_errno +0000cb2c T alt_main +0000cb98 T __malloc_lock +0000cbb8 T __malloc_unlock +0000cbd8 T read +0000ccfc t alt_get_errno +0000cd5c T alt_release_fd +0000cdd4 T sbrk +0000ce90 T usleep +0000cec0 T write +0000cfe4 t alt_get_errno +0000d044 T alt_irq_init +0000d078 T alt_sys_init +0000d0d4 t alt_dev_reg +0000d10c T altera_avalon_jtag_uart_read_fd +0000d164 T altera_avalon_jtag_uart_write_fd +0000d1bc T altera_avalon_jtag_uart_close_fd +0000d204 T altera_avalon_jtag_uart_ioctl_fd +0000d254 T altera_avalon_jtag_uart_init +0000d314 t altera_avalon_jtag_uart_irq +0000d53c t altera_avalon_jtag_uart_timeout +0000d5ec T altera_avalon_jtag_uart_close +0000d660 T altera_avalon_jtag_uart_ioctl +0000d754 T altera_avalon_jtag_uart_read +0000d978 T altera_avalon_jtag_uart_write +0000dbb8 t lcd_write_command +0000dc70 t lcd_write_data +0000dd44 t lcd_clear_screen +0000de1c t lcd_repaint_screen +0000e030 t lcd_scroll_up +0000e110 t lcd_handle_escape +0000e3f4 T altera_avalon_lcd_16207_write +0000e930 t alt_lcd_16207_timeout +0000e9fc T altera_avalon_lcd_16207_init +0000eb38 T altera_avalon_lcd_16207_write_fd +0000eb90 T alt_alarm_start +0000ece4 T alt_busy_sleep +0000ee40 T alt_dcache_flush_all +0000ee5c T alt_dev_llist_insert +0000ef10 t alt_get_errno +0000ef70 T _do_ctors +0000efd4 T _do_dtors +0000f038 T alt_icache_flush_all +0000f054 T alt_ic_isr_register +0000f0a4 T alt_ic_irq_enable +0000f140 T alt_ic_irq_disable +0000f1e0 T alt_ic_irq_enabled +0000f228 T alt_iic_isr_register +0000f320 t alt_open_fd +0000f3f8 T alt_io_redirect +0000f470 t alt_file_locked +0000f568 T open +0000f6f4 t alt_get_errno +0000f754 T alt_alarm_stop +0000f7ec T alt_tick +0000f8f8 T altera_nios2_qsys_irq_init +0000f918 T alt_find_dev +0000f9ac T alt_find_file +0000facc T alt_get_fd +0000fb9c T atexit +0000fbb0 T exit +0000fbe8 T memcmp +0000fc5c T __register_exitproc +0000fd90 t register_fini +0000fd94 T __call_exitprocs +0000ff44 t alt_sim_halt +0000ff84 T _exit +0000ffa4 A __CTOR_LIST__ +0000ffa8 A __CTOR_END__ +0000ffa8 A __DTOR_END__ +0000ffa8 A __DTOR_LIST__ +0000ffa8 A __flash_rodata_start +0000ffa8 A __ram_rodata_start +00010104 R _ctype_ +00010205 r _ctype_b +000103e6 r zeroes.3453 +000103f6 r blanks.3452 +0001042c r lconv +0001045c R __mprec_tens +00010524 R __mprec_bigtens +0001054c R __mprec_tinytens +00010574 r p05.2458 +00010580 R __thenan_df +00010594 R __clz_tab +000106d4 A __ram_rodata_end +000106d4 A __ram_rwdata_start +000106d4 g impure_data +00010ad4 G __lc_ctype +00010ae0 G __malloc_av_ +00010ee8 G alt_dev_null +00010f10 G alt_fd_list +00011090 g jtag_uart +000120f0 g lcd_16207_0 +00012210 G PUSH_EVENT +00012214 G __ctype_ptr +00012218 G _impure_ptr +0001221c G _global_impure_ptr +00012220 G __mb_cur_max +00012224 g charset +00012228 G __malloc_trim_threshold +0001222c G __malloc_sbrk_base +00012230 G alt_fs_list +00012238 G alt_dev_list +00012240 G alt_max_fd +00012244 G alt_errno +00012248 g heap_end +0001224c g colstart +00012250 G alt_priority_mask +00012254 G alt_alarm_list +0001225c A __flash_rwdata_start +0001225c A __ram_rwdata_end +0001225c A _edata +00013de4 A __bss_start +00013de4 B stack +00013dec b event_code.1400 +00013df0 b status.1399 +00013df4 B global_current_memory +00013df8 B __nlocale_changed +00013dfc B __mlocale_changed +00013e00 B _PathLocale +00013e04 B __malloc_top_pad +00013e08 B __malloc_max_sbrked_mem +00013e0c B __malloc_max_total_mem +00013e10 B errno +00013e14 B alt_argc +00013e18 B alt_argv +00013e1c B alt_envp +00013e20 B alt_irq_active +00013e24 B _alt_tick_rate +00013e28 B _alt_nticks +00013e2c b memory +00013f2c b inst_memory +0001432c B __malloc_current_mallinfo +00014354 B global_registers +00014364 B alt_irq +00014464 B _atexit0 +000145f4 A __alt_heap_start +000145f4 A __alt_stack_base +000145f4 A __bss_end +000145f4 A _end +000145f4 A end +0001a210 A _gp +00032000 A __alt_data_end +00032000 A __alt_heap_limit +00032000 A __alt_stack_pointer diff --git a/software/DE2_115_ASM3_release/mem_init/meminit.qip b/software/DE2_115_ASM3_release/mem_init/meminit.qip new file mode 100644 index 0000000..7589c13 --- /dev/null +++ b/software/DE2_115_ASM3_release/mem_init/meminit.qip @@ -0,0 +1 @@ +set_global_assignment -name SEARCH_PATH $::quartus(qip_path) diff --git a/software/DE2_115_ASM3_release/mem_init/meminit.spd b/software/DE2_115_ASM3_release/mem_init/meminit.spd new file mode 100644 index 0000000..039d2b2 --- /dev/null +++ b/software/DE2_115_ASM3_release/mem_init/meminit.spd @@ -0,0 +1,5 @@ + + + + + diff --git a/software/DE2_115_ASM3_release/mem_init/nios_system_onchip_memory.hex b/software/DE2_115_ASM3_release/mem_init/nios_system_onchip_memory.hex new file mode 100644 index 0000000..d56583d --- /dev/null +++ b/software/DE2_115_ASM3_release/mem_init/nios_system_onchip_memory.hex @@ -0,0 +1,6402 @@ +:020000020000FC +:200000000040003408406D140800683A0000000000000000000000000000000000000000F9 +:20000800DEFFED04DFC00015D8400215D8800315D8C00415D9000515D9400615D98007156A +:20001000D9C00815000B307ADA000915DA400A15DA800B15DAC00C15DB000D15DB400E15C4 +:20001800DB800F15DBC01015D9401115EBFFFF04DBC012150009313A2880004C10000326FA +:200020002000022600000EC000000306DF401215E8BFFF17003DA03AD9401117DF401217FE +:20002800DFC000172801707AD8400217D8800317D8C00417D9000517D9400617D9800717F7 +:20003000D9C00817DA000917DA400A17DA800B17DAC00C17DB000D17DB400E17DB800F17CA +:20003800DBC01017DEC01304EF80083ADEFFF904DFC00615DF000515DF0005040005313A9B +:20004000E0BFFC15E0BFFC17E0BFFF15E03FFD1500800044E0BFFE15E0FFFF17E0BFFE173B +:200048001884703A1005003A1000161EE0BFFD1700C0007418D0D904100490FA10C5883ADE +:2000500011400017E0BFFD1700C0007418D0D904100490FA10C5883A10800104110000178A +:20005800283EE83A0005313AE0BFFB15E0BFFB17E0BFFF15E0BFFF171004C03A103FE31E6A +:2000600000000706E0BFFE171085883AE0BFFE15E0BFFD1710800044E0BFFD15003FDE065B +:20006800E037883ADFC00117DF000017DEC00204F800283A06C000F4DEC800140680007486 +:20007000D6A8841400800074108F791400C0007418D17D1410C003261000001510800104D9 +:2000780010FFFD36000C8EC0000CB2C0003FFF06DEFFFE04DFC00115DF000015D839883AAF +:2000800000C0013418C40C0400800E04188000350101F404000CE90000C0013418C40C0450 +:2000880000800304188000350101F404000CE90000C0013418C40C040080004418800035A3 +:200090000101F404000CE90000C0013418C40C0400800184188000350101F404000CE900BF +:2000980000C0013418C40C0400802004188000350101F404000CE900E037883ADFC0011777 +:2000A000DF000017DEC00204F800283ADEFFFB04DFC00415DF000315DC000215DF000204E9 +:2000A800E13FFF15E03FFE1500001006E0BFFE171007883AE0BFFF171885883A1080000388 +:2000B00010C03FCC18C0201C18FFE0040080013410840E0410C000350101F404000CE900F7 +:2000B800E0BFFE1710800044E0BFFE15E43FFE17E13FFF170002D48080BFEC36E037883AF0 +:2000C000DFC00217DF000117DC000017DEC00304F800283ADEFFFE04DFC00115DF000015F7 +:2000C800D839883A00C0013418C40C0400803004188000350101F404000CE900E037883A1B +:2000D000DFC00117DF000017DEC00204F800283ADEFFF604DFC00915DF000815DF000804EA +:2000D80000C0007418FFEA0418800017E0BFF81518800117E0BFF91518800217E0BFFA15B8 +:2000E00018800317E0BFFB1500C0007418FFEF0418800017E0BFFC1518800117E0BFFD15A1 +:2000E80018800217E0BFFE1518800317E0BFFF1500001F00E13FF804000028C0000031409C +:2000F000E13FFC04000028C0E037883ADFC00117DF000017DEC00204F800283ADEFFFE0485 +:2000F800DFC00115DF000015D839883A0001F0C001000074213FF4040001FA400002AA0007 +:20010000000259C00009883A00013680010000440001368001000084000136800100007495 +:20010800213FF804014000840180008400011D8001000074213FF9040140008401800044B7 +:2001100000011D8001000074213FFA0401400104000D883A00011D80010032040002520020 +:200118000009883A00013680010000440001368001000084000136800001F7C001000074E0 +:20012000213FFC040001FA40E037883ADFC00117DF000017DEC00204F800283ADEFFFB04C4 +:20012800DFC00415DF000315DF000304008000741090D5041080028310803FCC1080201C39 +:2001300010BFE004E0BFFD15E13FFD17014001C400026B00E0BFFD1711803FCCE13FFE0433 +:2001380001400074297FFD040002C740E13FFE04014000840180008400011D800100007441 +:20014000213FFF04014000840180004400011D80008000741090D504108001C311803FCCB7 +:200148003180201C31BFE004E13FFE0401400074294000040002C740E13FFE040140010421 +:20015000000D883A00011D80E0BFFD1711003FCC008000741090D504108001C311403FCC36 +:200158002940201C297FE00400020800E037883ADFC00117DF000017DEC00204F800283AC8 +:20016000DEFFF904DFC00615DF000515DF000504008000741090D50410800203E0BFFC85E8 +:20016800008000741090D50410800283E0BFFC45008000741090D50410800243E0BFFC0533 +:20017000E0BFFC83108003CC10803FCC110003CCE0FFFD1700BFFC041884703A1104B03A80 +:20017800E0BFFD15E0BFFC43108003CC10803FCC108003CC1008913AE0FFFD1700BFC3C463 +:200180001884703A1104B03AE0BFFD15E0BFFC03108003CC10803FCC108003CC1008923A8E +:20018800E0FFFD1700BC3FC41884703A1104B03AE0BFFD1500028E80E0BFFB1500028E80E0 +:200190001009883AE17FFD1700026180E0BFFD17108003CC11803FCCE13FFE040140007498 +:20019800294002040002C740E13FFE0401400104000D883A00011D80E0FFFE04008B4B44FF +:2001A0001880000D18000085E13FFE04014000840180004400011D8000028E80100D883AC4 +:2001A800E13FFE0401400074297FFD040002C740E13FFE04014000840180008400011D8024 +:2001B000E13FFD17E17FFB170001FD4000027DC0E037883ADFC00117DF000017DEC00204E2 +:2001B800F800283ADEFFF804DFC00715DF000615DF000604E13FFF15E13FFA04014000744F +:2001C00029400404E1BFFF170002C7400001F54001000074210009040001FA400001F7C023 +:2001C800E13FFA040001FA400009883A000136800100004400013680010000840001368004 +:2001D000E037883ADFC00117DF000017DEC00204F800283ADEFFFE04DFC00115DF00001503 +:2001D800D839883A0001F5400100007421000D040001FA400001F7C00100007421001104B9 +:2001E0000001FA40E037883ADFC00117DF000017DEC00204F800283ADEFFFB04DFC00415AC +:2001E800DF000315DF000304E13FFE05E0BFFE071004C03A10000B1E0001F5400100007461 +:2001F00021000D040001FA400001F7C001000074210016040001FA4000800044E0BFFF1568 +:2001F80000001406E03FFD1500000606E13FFD17000B883A00026B00E0BFFD17108000449B +:20020000E0BFFD15E0BFFD1710800410103FF71E0001F5400100007421000D040001FA405A +:200208000001F7C001000074210019040001FA40E03FFF15E0BFFF17E037883ADFC00117B8 +:20021000DF000017DEC00204F800283ADEFFFE04DFC00115DF000015D839883A0001F54049 +:200218000100007421001E040001FA400001F7C001000074210011040001FA40E037883A5C +:20022000DFC00117DF000017DEC00204F800283ADEFFFC04DFC00315DF000215DF000204A4 +:20022800E13FFE05E0BFFE071004C03A10000B1E0001F5400100007421001E040001FA407F +:200230000001F7C001000074210016040001FA4000800044E0BFFF1500000B060009883AB8 +:2002380000028B000001F5400100007421001E040001FA400001F7C0010000742100190485 +:200240000001FA40E03FFF15E0BFFF17E037883ADFC00117DF000017DEC00204F800283AF7 +:20024800DEFFFC04DFC00315DF000215DF00020400003DC0E03FFF15E03FFEC5E03FFE8573 +:200250000000000600014F00008000741090D5041080030310803FCC1080201C10BFE0041B +:200258001005003A10000E1E00800074108884041080000310803FCC1080008C1005003A4E +:2002600010000C1E00800074108884041080000310803FCC1080010C1004C03A1000051E24 +:20026800E0BFFE87108000581000021EE03FFE8500007540008000741090D50410800303E0 +:2002700010803FCC1080201C10BFE0041005003A10000E1E00800074108884041080000322 +:2002780010803FCC1080008C1005003A10000C1E00800074108884041080000310803FCCE4 +:200280001080020C1004C03A1000051EE0BFFEC7108000581000021EE03FFEC5000084C0DD +:2002880000800074108884041080000310803FCC1080010C1005003A1000161E00800074F0 +:200290001090D5041080030310803FCC1080201C10BFE0041080005810000D1EE13FFE875D +:2002980000007980E0BFFE45E0BFFE47108000581000021E00800044E0BFFE85E0BFFE47A5 +:2002A0001004C03A1000031EE03FFE8500000106000049C0008000741088840410800003A6 +:2002A80010803FCC1080020C1005003A1000161E008000741090D5041080030310803FCCCC +:2002B0001080201C10BFE0041080005810000D1EE13FFEC700008900E0BFFE05E0BFFE07D8 +:2002B800108000581000021E00800044E0BFFEC5E0BFFE071004C03A1000031EE03FFEC523 +:2002C000000001060000580000800074108884041080000310803FCC1080040C1005003A8E +:2002C80010001A1E008000741090D504108002C310C03FCC18C0201C18FFE004008000742E +:2002D000108F7D041080001718800E26008000741090D504108002C310C03FCC18C0201CCA +:2002D80018FFE00400800074108F7D0410C0001500800074108F7D041100001700006E4028 +:2002E0000000020600800044E0BFFF15E0BFFF171005003A103F6B1EE13FFF1700029500D6 +:2002E800E0BFFF15003F6706DEFFFC04DF000315DF000304E13FFE15E17FFF15E03FFD0515 +:2002F000E0BFFF17108002A810002F1EE0BFFF171085883A1087883A008000341082FB04F8 +:2002F8001885883A108000171000683A00000C1400000C2000000C2C00000C3800000C4416 +:2003000000000C5000000C5C00000C6800000C7400000C7C00801004E0BFFD0500001B0647 +:2003080000BFFE44E0BFFD050000180600800904E0BFFD050000150600800C04E0BFFD059B +:200310000000120600800644E0BFFD0500000F0600800484E0BFFD0500000C060080008476 +:20031800E0BFFD050000090600801604E0BFFD0500000606E03FFD0500000406008004041B +:20032000E0BFFD0500000106E03FFD05E0BFFE17108002281000371EE0BFFE171085883A16 +:200328001087883A0080003410832E041885883A108000171000683A00000CD800000CEC4F +:2003300000000D0000000D1400000D2800000D3C00000D5000000D6400C0013418C42C0432 +:20033800E0BFFD03188000050000220600C0013418C42804E0BFFD031880000500001D06E5 +:2003400000C0013418C42404E0BFFD03188000050000180600C0013418C42004E0BFFD03B6 +:20034800188000050000130600C0013418C41C04E0BFFD031880000500000E0600C00134A9 +:2003500018C41804E0BFFD03188000050000090600C0013418C41404E0BFFD031880000525 +:200358000000040600C0013418C41004E0BFFD0318800005E037883ADF000017DEC00104E8 +:20036000F800283ADEFFFA04DFC00515DF000415DF000404E13FFD15E17FFE05E03FFC05FB +:20036800E0BFFE071007883A0080007410888504108000171885883A1080000310803FCCAF +:200370001080010C1005003A1000051EE0BFFE07117FF404E13FFD170000BA800000F906B5 +:20037800E0BFFE0710BFF804E0BFFF15E0FFFF17188016E81000B81EE13FFF17E13FFF1766 +:200380002105883A1087883A00800034108387041885883A108000171000683A00000F88FB +:20038800000010D8000010D8000010D8000010D8000010D8000010D8000010D8000010D815 +:20039000000010D8000010D8000010D8000010D800000F94000010D8000010D8000010D852 +:20039800000010D8000010D8000010D8000010D8000010D8000010D8000010D8000010D805 +:2003A000000010D8000010D8000010D8000010D8000010D8000010D8000010D8000010D8FD +:2003A800000010D8000010D8000010D8000010D8000010D8000010D8000010D8000010D8F5 +:2003B000000010D8000010D8000010D8000010D8000010D8000010D8000010D8000010D8ED +:2003B800000010D8000010D8000010D8000010D8000010D8000010D8000010D8000010D8E5 +:2003C000000010D8000010D8000010D8000010D8000010D8000010D8000010D8000010D8DD +:2003C80000000FA000000FAC00000FB800000FC400000FD000000FDC00000FE800000FF44D +:2003D000000010000000100C0000101800001024000010300000103C00001048000010543D +:2003D800000010600000106C0000107800001084000010900000109C000010A8000010B435 +:2003E000000010C0000010CC00BFFFC4E0BFFC050000520600800FC4E0BFFC0500004F068F +:2003E80000800204E0BFFC0500004C06008000C4E0BFFC0500004906008009C4E0BFFC055D +:2003F0000000460600800844E0BFFC050000430600800184E0BFFC050000400600800384FA +:2003F800E0BFFC0500003D0600801084E0BFFC0500003A06008002C4E0BFFC0500003706EB +:2004000000BFFEC4E0BFFC050000340600801844E0BFFC050000310600800284E0BFFC0528 +:2004080000002E06008011C4E0BFFC0500002B0600801204E0BFFC050000280600800AC4C8 +:20041000E0BFFC0500002506008008C4E0BFFC050000220600800304E0BFFC0500001F06A1 +:2004180000800104E0BFFC0500001C0600800BC4E0BFFC0500001906008004C4E0BFFC0587 +:2004200000001606008001C4E0BFFC0500001306008018C4E0BFFC050000100600801044BC +:20042800E0BFFC0500000D0600800044E0BFFC0500000A0600800244E0BFFC05000007061A +:2004300000800444E0BFFC050000040600801904E0BFFC0500000106E03FFC05E0BFFD1723 +:20043800108002281000371EE0BFFD171085883A1087883A00800034108442041885883A35 +:20044000108000171000683A000011280000113C0000115000001164000011780000118CC1 +:20044800000011A0000011B400C0013418C42C04E0BFFC03188000050000220600C00134C5 +:2004500018C42804E0BFFC031880000500001D0600C0013418C42404E0BFFC0318800005F2 +:200458000000180600C0013418C42004E0BFFC03188000050000130600C0013418C41C042C +:20046000E0BFFC031880000500000E0600C0013418C41804E0BFFC031880000500000906F6 +:2004680000C0013418C41404E0BFFC03188000050000040600C0013418C41004E0BFFC03C3 +:2004700018800005E037883ADFC00117DF000017DEC00204F800283ADEFFFA04DFC00515B7 +:20047800DF000415DF000404E13FFD15E17FFE15E1BFFF15E0BFFF171004C03A10001A1E21 +:20048000E0BFFE17108001701000011E000255C0E03FFC1500001006E0FFFC17E0BFFE1775 +:2004880010C5C83A1007883AE0BFFD171885883A10BFFFC41080000311403FCC2940201C6C +:20049000297FE004E13FFC170000D840E0BFFC1710800044E0BFFC15E0FFFC17E0BFFE1799 +:2004980018BFED3600003B06E0BFFF171080005810001B1EE0BFFE17108000F01000011EC0 +:2004A000000255C0E03FFC1500001106E0BFFC1711000104E0FFFC17E0BFFE1710C5C83A99 +:2004A8001007883AE0BFFD171885883A10BFFFC41080000311403FCC2940201C297FE00497 +:2004B0000000D840E0BFFC1710800044E0BFFC15E0FFFC17E0BFFE1718BFEC3600001D061C +:2004B800E0BFFF171080009810001A1EE0BFFE17108000F01000011E000255C0E03FFC1555 +:2004C00000001106E0BFFC1711000184E0FFFC17E0BFFE1710C5C83A1007883AE0BFFD17B4 +:2004C8001885883A10BFFFC41080000311403FCC2940201C297FE0040000D840E0BFFC1739 +:2004D00010800044E0BFFC15E0FFFC17E0BFFE1718BFEC36E037883ADFC00117DF00001763 +:2004D800DEC00204F800283ADEFFFD04DFC00215DF000115DF000104E13FFF15E0BFFF17B0 +:2004E0001004C03A1000061E010000742100210401400104000D883A00011D800000110635 +:2004E800E0BFFF17108000581000061E0100007421002304014000840180004400011D803E +:2004F00000000806E0BFFF17108000981000051E0100007421002304014000840180008447 +:2004F80000011D80E037883ADFC00117DF000017DEC00204F800283ADEFFF904DFC006152E +:20050000DF000515DF000504E13FFF05E03FFC1500002906E0BFFF071004403A1000061E10 +:2005080000800B44E0BFFD05E0BFFF030085C83AE0BFFB050000040600800804E0BFFD0565 +:20051000E0BFFF03E0BFFB05E13FFB07014019040002B6C011003FCC2100201C213FE004D6 +:20051800014002840002BCC010800C04E0BFFD45E13FFB07014002840002B6C011003FCC80 +:200520002100201C213FE004014002840002BCC010800C04E0BFFD85E13FFB07014002842B +:200528000002BCC010800C04E0BFFDC5E0BFFC1710800044E0BFFC15E0BFFC1710800110AB +:20053000103FD41E0009883A00013680E13FFD0401400104000D883A00011D80E037883A3B +:20053800DFC00117DF000017DEC00204F800283ADEFFFE04DFC00115DF000015D839883A9D +:2005400000016AC0E037883ADFC00117DF000017DEC00204F800283ADEFFFE04DF00011518 +:20054800DF000104E13FFF15E0BFFF171004D2BA1007883A00BFFFC41884703A1007883AAC +:20055000008000741090D50410C001C5E0BFFF171004D3BA108003CC1007883A0080007406 +:200558001090D50410C00205E0BFFF171004D1BA108003CC1007883A008000741090D5043A +:2005600010C00285E0BFFF171004D2BA108003CC1007883A008000741090D50410C0024513 +:20056800E0BFFF171004D0BA108003CC1007883A008000741090D50410C002C5E0BFFF172F +:200570001004D07A1080004C1007883A008000741090D50410C00305E0BFFF171080004C82 +:200578001007883A008000741090D50410C00345E037883ADF000017DEC00104F800283A39 +:20058000DEFFFC04DF000315DF000304E13FFE0500800044E0BFFD15E0BFFE07E0BFFF15B2 +:20058800E0FFFF171880016010000E1EE0FFFF17188001A01000121EE0FFFF17188000E04E +:200590001000011E00001406E0BFFD1710800084E0BFFD15E0BFFD1710800104E0BFFD1591 +:2005980000000D06E0BFFD1710800084E0BFFD15E0BFFD1710800204E0BFFD1500000606B2 +:2005A000E0BFFD1710800084E0BFFD15E0BFFD1710800404E0BFFD15E0BFFD17E037883A3B +:2005A800DF000017DEC00104F800283ADEFFFC04DFC00315DF000215DF000204008001341C +:2005B0001084340410800017E0BFFE15D0A6F80310803FCCE0BFFF15E0FFFF17188000605A +:2005B80010001E1EE0FFFF17188000A01000261EE0FFFF171805003A1000011E00002606AF +:2005C00000800044D0A0000500800134108430041080000310803FCC1080201C10BFE004B8 +:2005C800108001E010000A1E00800134108430041080000311003FCC2100201C213FE0049D +:2005D00000016000D0A6F71500800044D0A6F805E13FFE170001518000001006008001341F +:2005D800108430041080000310803FCC1080201C10BFE004108001D81000081E00800084EB +:2005E000D0A6F80500000506D0A6F717D0A00005D026F80500000106D026F805E037883ABE +:2005E800DFC00117DF000017DEC00204F800283ADEFFFD04DFC00215DF000115DF000104DB +:2005F000008000741090D5041080004311003FCC2100201C213FE00400026680E0BFFF1553 +:2005F80000027DC0E0BFFF17E037883ADFC00117DF000017DEC00204F800283ADEFFFC048E +:20060000DFC00315DF000215DF000204E13FFE15E0BFFE17108003CC10803FCCE0BFFF15B4 +:20060800E0FFFF171880036810008D1EE13FFF17E13FFF172105883A1087883A00800034BE +:20061000108614041885883A108000171000683A00001A6000001884000018AC000018D49E +:20061800000018FC000019240000194C0000199C000019C4000019EC00001A1400001A3CF1 +:2006200000001974E0BFFE171004D23A108003CC11003FCCE0BFFE171004D13A108003CCAC +:2006280011403FCC0001A74000006D06E0BFFE171004D23A108003CC11003FCCE0BFFE17F8 +:200630001004D13A108003CC11403FCC0001AD0000006306E0BFFE171004D23A108003CC86 +:2006380011003FCCE0BFFE171004D13A108003CC11403FCC0001B40000005906E0BFFE1730 +:200640001004D23A108003CC11003FCCE0BFFE171004D13A108003CC11403FCC0001B78039 +:2006480000004F06E0BFFE171004D23A108003CC11003FCCE0BFFE171004D13A108003CCBC +:2006500011403FCC0001BB0000004506E0BFFE171004D23A108003CC11003FCCE0BFFE1724 +:200658001004D13A108003CC11403FCC0001C0C000003B06E0BFFE171004D23A108003CCB3 +:2006600011003FCCE0BFFE171004D13A108003CC11403FCC0001C68000003106E0BFFE179E +:200668001004D23A108003CC11003FCCE0BFFE171004D13A108003CC11403FCC0001CC403C +:2006700000002706E0BFFE171004D23A108003CC11003FCCE0BFFE171004D13A108003CCBC +:2006780011403FCC0001D94000001D06E0BFFE171004D23A108003CC11003FCCE0BFFE17C6 +:200680001004D13A108003CC11403FCC0001E00000001306E0BFFE171004D23A108003CC53 +:2006880011003FCCE0BFFE171004D13A108003CC11403FCC0001E6C000000906E0BFFE173E +:200690001004D23A108003CC11003FCCE0BFFE171004D13A108003CC11403FCC0001EBC075 +:20069800E037883ADFC00117DF000017DEC00204F800283ADEFFFC04DFC00315DF00021534 +:2006A000DF000204E13FFE15E17FFF05E0FFFE17008000741090D50410C5883A1080000333 +:2006A80010C03FCC18C0201C18FFE004E0BFFF031885883A1009883A00028B00E037883A07 +:2006B000DFC00117DF000017DEC00204F800283ADEFFFA04DFC00515DF000415DF0004040C +:2006B800E13FFE15E17FFF05E13FFF0301400384000274C0008000741090D50410800383E8 +:2006C00011803FCC3180201C31BFE004E13FFC0401400074294024040002C740E13FFC042E +:2006C80001400104000D883A00011D80E037883ADFC00117DF000017DEC00204F800283ADB +:2006D000DEFFFC04DFC00315DF000215DF000204E13FFE15E17FFF05E13FFF03E17FFE176D +:2006D800000274C0E037883ADFC00117DF000017DEC00204F800283ADEFFFC04DFC00315B4 +:2006E000DF000215DF000204E13FFE15E17FFF05E13FFF03E17FFE1700026B00E037883AAB +:2006E800DFC00117DF000017DEC00204F800283ADEFFFC04DFC00315DF000215DF000204D8 +:2006F000E13FFE15E17FFF05E0FFFE17008000741090D50410C5883A1080000311003FCCAC +:2006F8002100201C213FE0040149C4040002C3C01009883A000CE900E037883ADFC001174A +:20070000DF000017DEC00204F800283ADEFFFD04DF000215DF000204E13FFE15E17FFF0595 +:20070800008000741090D504108001431009883AE0FFFE17008000741090D50410C5883ABD +:20071000108000032085883A1007883A008000741090D50410C00145E037883ADF000017A4 +:20071800DEC00104F800283ADEFFFD04DF000215DF000204E13FFE15E17FFF050080007480 +:200720001090D504108001431009883AE0FFFE17008000741090D50410C5883A1080000306 +:200728002085C83A1007883A008000741090D50410C00145E037883ADF000017DEC001043C +:20073000F800283ADEFFFD04DF000215DF000204E13FFE15E17FFF05008000741090D50492 +:2007380011000143E0FFFE17008000741090D50410C5883A1080000320C03FCC18C0201CC2 +:2007400018FFE00410803FCC1080201C10BFE0041880041E008000741090D50410000185C7 +:2007480000001806008000741090D50411000143E0FFFE17008000741090D50410C5883AB9 +:200750001080000320C03FCC18C0201C18FFE00410803FCC1080201C10BFE00410C0050EFF +:2007580000C0007418D0D50400BFFFC4188001850000040600C0007418D0D5040080004429 +:2007600018800185E037883ADF000017DEC00104F800283ADEFFFC04DFC00315DF00021505 +:20076800DF000204E13FFE15E17FFF05008000741090D50411000183E0FFFE17008000740B +:200770001090D50410C5883A1080000320C03FCC18C0201C18FFE00410803FCC1080201C65 +:2007780010BFE0041880011E00027DC0E037883ADFC00117DF000017DEC00204F800283A34 +:20078000DEFFFC04DFC00315DF000215DF000204E13FFE15E17FFF05008000741090D504E6 +:2007880011000183E0FFFE17008000741090D50410C5883A1080000320C03FCC18C0201C32 +:2007900018FFE00410803FCC1080201C10BFE0041880012600027DC0E037883ADFC00117A6 +:20079800DF000017DEC00204F800283ADEFFFC04DFC00315DF000215DF000204E13FFE05BB +:2007A000E17FFF05008000741090D5041080018310C03FCC18C0201C18FFE004E0BFFE07C6 +:2007A8001880011E00027DC0E037883ADFC00117DF000017DEC00204F800283ADEFFFC04DA +:2007B000DFC00315DF000215DF000204E13FFE05E17FFF05008000741090D504108001838F +:2007B80010C03FCC18C0201C18FFE004E0BFFE071880012600027DC0E037883ADFC0011705 +:2007C000DF000017DEC00204F800283ADEFFFE04DFC00115DF000015D839883A00C00134D5 +:2007C80018C40404008000441880000500C0013418C40804008000441880000500001F006F +:2007D000E037883ADFC00117DF000017DEC00204F800283ADEFFFE04DFC00115DF000015FD +:2007D800D839883A00001F00E037883ADFC00117DF000017DEC00204F800283ADEFFFE04AC +:2007E000DFC00115DF000015D839883A00003140E037883ADFC00117DF000017DEC00204E2 +:2007E800F800283ADEFFFD04DFC00215DF000115DF000104E13FFF15E13FFF17000028C0D8 +:2007F000E037883ADFC00117DF000017DEC00204F800283ADEFFF504DFC00A15DF000915D4 +:2007F800DF000904E13FFE15E17FFF15E0BFFE17108003CC11403FCCE13FF704000225C0DD +:20080000E0BFFE171004D23A108003CC11403FCCE13FF84400020EC00001F540E13FF9448A +:200808000140007429402604E1BFFF17E1FFF7040002C740E13FF9440001FA400001F7C09E +:20081000E0BFFE171004D13A108003CC11C03FCCE13FF944E1BFF8440140007429402B0434 +:200818000002C740E13FF9440001FA40E037883ADFC00117DF000017DEC00204F800283A9B +:20082000DEFFF704DFC00815DF000715DF000704E13FFE05E17FFF050001F540E1BFFE03E1 +:20082800E13FF90401400074294030040002C740E13FF9040001FA400001F7C0E1BFFF0782 +:20083000E13FF90401400074294033040002C740E13FF9040001FA40E037883ADFC0011745 +:20083800DF000017DEC00204F800283ADEFFFD04DF000215DF000204E13FFE15E17FFF154C +:20084000E0BFFF17108001E81000481EE0BFFF171085883A1087883A0080003410884B04F4 +:200848001885883A108000171000683A0000214800002164000021800000219C000021C0AB +:20085000000021E400002208E0BFFE1700C0168410C0000500C0114410C0004510000085B7 +:2008580000003A06E0BFFE1700C0140410C0000500C010C410C00045100000850000330668 +:20086000E0BFFE1700C014C410C0000500C0140410C000451000008500002C06E0FFFE17AF +:20086800008011C418800005008014041880004500800C0418800085180000C50000230656 +:20087000E0FFFE17008011C418800005008014041880004500800C4418800085180000C543 +:2008780000001A06E0FFFE170080104418800005008010C418800045008010C41880008539 +:20088000180000C500001106E0FFFE1700801184188000050080130418800045008011C4F5 +:2008880018800085180000C500000806E0FFFE1700801B841880000500801BC4188000455C +:2008900000801B8418800085180000C5E037883ADF000017DEC00104F800283ADEFFFC0486 +:20089800DF000315DF000304E13FFD15E17FFE05E0BFFE03E0BFFF15E0FFFF171880036883 +:2008A0001000991EE13FFF17E13FFF172105883A1087883A008000341088AA041885883A6B +:2008A800108000171000683A000022DC000023000000232C000023500000237C000023A88A +:2008B000000023D40000241C000024480000246C00002490000024BC000023F8E0FFFD1753 +:2008B800008011441880000500801384188000450080110418800085180000C500008406A1 +:2008C000E0FFFD170080128418800005008015441880004500801344188000850080140430 +:2008C800188000C51800010500007906E0FFFD17008013C418800005008015441880004579 +:2008D0000080150418800085180000C500007006E0FFFD170080130418800005008013C481 +:2008D80018800045008010441880008500801104188000C51800010500006506E0FFFD17C4 +:2008E000008014C4188000050080150418800045008013C41880008500801484188000C5A4 +:2008E8001800010500005A06E0FFFD17008011041880000500801144188000450080130404 +:2008F0001880008500801644188000C51800010500004F06E0FFFD170080104418800005BD +:2008F80000801104188000450080110418800085180000C500004606E0FFFD17008014C448 +:200900001880000500801544188000450080108418800085180000C500003D06E0FFFD1740 +:20090800008010C418800005008013C418800045008013441880008500801404188000C5C1 +:200910001800010500003206E0FFFD17008012841880000500801144188000450080144441 +:2009180018800085180000C500002906E0FFFD1700801284188000050080138418800045FC +:200920000080114418800085180000C500002006E0FFFD1700801284188000050080124446 +:2009280018800045008011441880008500801444188000C51800010500001506E0FFFD177F +:2009300000801284188000050080124418800045008013841880008500801144188000C5DB +:200938001800010500000A06E0FFFD17008013841880000500801BC418800045008013C437 +:200940001880008500801C04188000C518000105E037883ADF000017DEC00104F800283A93 +:20094800DEFFFD04DFC00215DF000115DF000104E13FFF15E13FFF170149C4040002C3C021 +:200950001009883A000CE900E037883ADFC00117DF000017DEC00204F800283ADEFFFE0454 +:20095800DFC00115DF000015D839883A0009883A000136800100007421003604014001046B +:20096000000D883A00011D80E037883ADFC00117DF000017DEC00204F800283ADEFFFD04A8 +:20096800DF000215DF000204E03FFF1500001306E03FFE1500000B06E0BFFF17E13FFE171B +:2009700000C0007418CF8B041004913A10C5883A1105883A10000005E0BFFE1710800044D2 +:20097800E0BFFE15E0BFFE1710800410103FF21EE0BFFF1710800044E0BFFF15E0BFFF1705 +:2009800010800410103FEA1EE037883ADF000017DEC00104F800283ADEFFFD04DF000215BC +:20098800DF000204E13FFE15E17FFF15D0A6F917E0FFFE1701000074210FCB041004913AF6 +:2009900010C5883A1085883A1085883A1107883AE0BFFF1718800015E037883ADF000017F7 +:20099800DEC00104F800283ADEFFFE04DF000115DF000104E13FFF15D0A6F917E0FFFF17DB +:2009A00001000074210FCB041004913A10C5883A1085883A1085883A1105883A1080001720 +:2009A800E037883ADF000017DEC00104F800283ADEFFFC04DFC00315DF000215DF000204F4 +:2009B000E13FFE15E17FFF15E0BFFE17108004301000011E000255C0D166F917E1BFFE17C6 +:2009B800E0FFFF17008000741090D50410C5883A1100000300C0007418CF8B042804913A71 +:2009C00010C5883A1185883A11000005D0A6F917E13FFE1700C0007418CF8B041004913ACE +:2009C80010C5883A1105883A1080000310803FCC1080201C10BFE004E037883ADFC0011763 +:2009D000DF000017DEC00204F800283ADEFFFC04DFC00315DF000215DF000204E13FFE1571 +:2009D800E17FFF15E0BFFE17108004301000011E000255C0E17FFF17D0A6F917E13FFE179C +:2009E00000C0007418CF8B041004913A10C5883A1105883A10C00003008000741090D504BF +:2009E8001145883A10C00005E0FFFF17008000741090D50410C5883A1080000310803FCCDB +:2009F0001080201C10BFE004E037883ADFC00117DF000017DEC00204F800283ADEFFFF0404 +:2009F800DF000015D839883A008000741090D5041080004310803FCC108000441009883A8E +:200A000000800074108F7D04108000171006913A0080400410C5C83A2080092E00800074D4 +:200A08001090D50410800043108000441007883A008000741090D50410C00045000003064A +:200A1000008000741090D504100000450005883AE037883ADF000017DEC00104F800283A71 +:200A1800DEFFFC04DFC00315DF000215DF000204E13FFF15E03FFE150000040600027DC0A0 +:200A2000E0BFFE1710800044E0BFFE15E0FFFE17E0BFFF1718BFF9360005883AE037883A2D +:200A2800DFC00117DF000017DEC00204F800283ADEFFFE04DF000115DF000104E13FFF1517 +:200A3000E0BFFF171007883A008000741090D50410C000450005883AE037883ADF00001700 +:200A3800DEC00104F800283ADEFFFE04DF000115DF000104008000741090D50410800043A9 +:200A400011003FCC00800074108F7D04108000171006913A0080400410C5C83A2080062E6F +:200A4800008000741090D5041080004310803FCCE0BFFF1500000106E03FFF15E0BFFF1711 +:200A5000E037883ADF000017DEC00104F800283ADEFFF904DFC00615DF000515DF00050445 +:200A5800E13FFE15E0BFFE17108000581000101E0001F54001000074210038040001FA402E +:200A6000008000741090D504100000450009883A00013680010000440001368001000084B1 +:200A68000001368000800084E0BFFF1500003606E0BFFE17108000981000291E00017B0015 +:200A7000E0BFFB15E13FFB1700017FC0008000741090D5041080004311803FCCE13FFC0449 +:200A78000140007429403B040002C7400100007421003D04014000840180008400011D80B9 +:200A8000E13FFC04014000840180004400011D80008000741090D5041080034310803FCC30 +:200A88001080201C10BFE0041005003A1000021E0100190400025200E0BFFB17108003CCCE +:200A90001005003A1000031E00800084E0BFFF1500000D06008000C4E0BFFF1500000A06F5 +:200A9800E0BFFE17108000D81000061E0001F5400100007421003E040001FA40E03FFF1572 +:200AA00000000106E03FFF15E0BFFF17E037883ADFC00117DF000017DEC00204F800283AC3 +:200AA800DEFFFE04DF000115DF000104E03FFF1500000806E0FFFF17008000741090D504D3 +:200AB00010C5883A10000005E0BFFF1710800044E0BFFF15E0BFFF17108003D0103FF51EC4 +:200AB800E037883ADF000017DEC00104F800283A29001B2E28001A16008000440007883AFB +:200AC00001C007C40000030619C0132618C0004428000416294B883A1085883A293FFA36EC +:200AC80010000D260007883A214002362149C83A1886B03A1004D07A280AD07A103FFA1E34 +:200AD000300002262005883AF800283A1809883A2005883AF800283A0007883A003FF80643 +:200AD800008000440007883A003FEF06DEFFFE04DC000015DFC001150021883A20000C1693 +:200AE000000D883A28000E160002AF001007883A8005003A1000011E00C7C83A1805883ABB +:200AE800DFC00117DC000017DEC00204F800283A0109C83A04000044000D883A283FF20EBC +:200AF000014BC83A8021003A003FEF06DEFFFF04DFC00015018000442807883A2000041605 +:200AF80028000C16DFC00017DEC001040002AF010109C83A28000B16180B883A018000448A +:200B00000002AF000085C83ADFC00017DEC00104F800283A014BC83ADFC00017DEC0010443 +:200B08000002AF010147C83A003FF306000D883A0002AF01018000440002AF0120000A2651 +:200B10000007883A2080004C1005003A2008D07A1000011E1947883A294B883A203FF91E52 +:200B18001805883AF800283A0007883A1805883AF800283ADEFFE5042013883ADFC01815FB +:200B2000D9801915D9C01A15D8801904D8800015008000741088860411000017D9C0001796 +:200B28000080820400E0003418FFFFC4280D883AD880040DD940010400BFFFC4D8C0061506 +:200B3000D8C00315DA400515D880048DDA4001150002E140D8C0011718000005DFC01817EA +:200B3800DEC01B04F800283ADEFFE6042813883ADFC01815D9C01915D8801904D88000154D +:200B4000100F883A0080820400E0003418FFFFC4D880040DD940010400BFFFC4D8C0061504 +:200B4800D8C00315DA400515D880048DDA4001150002E140D8C0011718000005DFC01817D2 +:200B5000DEC01A04F800283A208000CC2011883A1000161E20C00017017FBFF4297FBFC477 +:200B580001E0207439E020041945883A11C4703A00C6303A1886703A18000C1E280D883A7B +:200B6000380B883A21000104208000171187883A1946703A0084303A10C4703A103FF92656 +:200B680020800007100003262100004420800007103FFD1E2205C83AF800283A30800217CB +:200B7000DEFFFE04DC000015DFC001153021883A0007883A1000061E1805883A30000115AB +:200B7800DFC00117DC000017DEC00204F800283A0006F9401007883A1805883A8000011528 +:200B800080000215DFC00117DC000017DEC00204F800283ADEFEA404DD815815DC01521583 +:200B8800D9C15115DFC15B15DF015A15DDC15915DD415715DD015615DCC15515DC81541542 +:200B9000DC415315282D883A3021883AD9014F1500075B8010800017D9C15117D881491516 +:200B9800D8814F171000022610800E1710020D26B080030B1080020C10020E26B0800417DF +:200BA00010020C26B200030B0080028440C0068C18802F1EB080038F10002D16B240038B1F +:200BA800B2800717B2C00917D9014F17DC402904D880400400C10004423FFF4C800D883A46 +:200BB000880B883ADA002C0DDA402C8DDA803015DAC03215D8802D15D8C02E15D88029155F +:200BB800D8C02B15D8002F150002E140D8814B1510000416D9014F17880B883A0006630025 +:200BC0001002321ED8802C0B1080100C10000326B080030B10801014B080030DD8814B1752 +:200BC800DFC15B17DF015A17DDC15917DD815817DD415717DD015617DCC15517DC81541727 +:200BD000DC415317DC015217DEC15C04F800283A0005883A0007883ADD401904D881421565 +:200BD800802F883AD8C14315D8014B15D8014815D8014415D8014715DD400C15D8000E158C +:200BE000D8000D15B88000071000192600C0094410C01726B821883A0000010610C00326B8 +:200BE8008400004480800007103FFC1E85E7C83A98000E26DC800E17DC400D17008001C475 +:200BF00094E5883A8C400044ADC00015DC800E15ACC00115DC400D1514428B16AD400204EF +:200BF800D9014B1724C9883AD9014B15802F883AB880000710013C26BDC00044D8000405F3 +:200C0000B8C0000704FFFFC4D8014C15D8014A15D8C14D15BDC00044D9414D170080160449 +:200C080028FFF80410C0603618C5883A1085883A00C0003418CC110410C5883A11000017A1 +:200C10002000683A00003FB8000031A8000031A800003FA4000031A8000031A8000031A8EB +:200C1800000031A8000031A8000031A800003D8400003F94000031A800003D9C0000403C6F +:200C2000000031A80000402800003FE400003FE400003FE400003FE400003FE400003FE4A1 +:200C280000003FE400003FE400003FE4000031A8000031A8000031A8000031A8000031A806 +:200C3000000031A8000031A8000031A8000031A8000031A80000380000003E6C000031A8AC +:200C380000003E6C000031A8000031A8000031A8000031A800003FD0000031A8000031A8CD +:200C4000000038B4000031A8000031A8000031A8000031A8000031A800003900000031A859 +:200C4800000031A800003F20000031A8000031A8000031A8000031A8000031A8000031A83E +:200C5000000031A8000031A8000031A8000031A800003EF40000380C00003E6C00003E6C56 +:200C580000003E6C00003E580000380C000031A8000031A800003DE0000031A800003DB063 +:200C6000000038C000003E1000003DFC000031A8000040A4000031A80000390C000031A841 +:200C6800000031A800003F84D9014D172000CE2601400044D9800F04D9C14015D94145152A +:200C7000D9814115280F883AD9000F05D8000405D8014615D8C14C171880008C1005003A4A +:200C7800D88150151000031ED901451721000084D9014515D9414C172940210CD9414E15CE +:200C800028002D1ED9814A17D881451730A1C83A0400290E0080040414045E0EDC800E17D6 +:200C8800DC400D171027883A07000074E700FD84050001C400000306843FFC04AD400204A7 +:200C90009C00130E948004048C400044AF000015ACC00115DC800E15DC400D15A47FF60E31 +:200C9800D9014F17B00B883AD9800C04D9C151150002DBC0D9C1511710009E1E843FFC04E8 +:200CA000DC800E17DC400D17DD4019049C3FED169425883A8C400044008001C4AF000015C7 +:200CA800AC000115DC800E15DC400D151441F516AD40020400000206DC800E17DC400D1791 +:200CB000D880040710000B2600800044948000448C400044A8800115D8C00404008001C431 +:200CB800A8C00015DC800E15DC400D151441DA16AD400204D901501720000B1ED880044480 +:200CC000948000848C400044A880001500C00084008001C4A8C00115DC800E15DC400D156B +:200CC8001441C216AD400204D9414E17008020042880B126D8C1461719E1C83A0400260E20 +:200CD000008004041403CF0E1027883A07000074E700F984050001C400000306843FFC041A +:200CD800AD4002049C00130E948004048C400044AF000015ACC00115DC800E15DC400D151D +:200CE000A47FF60ED9014F17B00B883AD9800C04D9C151150002DBC0D9C151171000551E85 +:200CE800843FFC04DC800E17DC400D17DD4019049C3FED169425883A8C400044008001C480 +:200CF000AF000015AC000115DC800E15DC400D1514418216AD400204D9014C172080400C98 +:200CF80010004A1ED941411791E5883A8C400044008001C4A9400015A9C00115DC800E1569 +:200D0000DC400D1514416716A8C00204D9814C173080010C10002826D8814A17D90145178D +:200D08001121C83A0400240E008004041404550EDC400D171027883A07000074E700FD8442 +:200D1000050001C400000306843FFC0418C002049C00110E948004048C4000441F00001534 +:200D18001CC00115DC800E15DC400D15A47FF60ED9014F17B00B883AD9800C040002DBC022 +:200D200010001C1E843FFC04DC800E17DC400D17D8C019049C3FEF169425883A8C400044C5 +:200D2800008001C41F0000151C000115DC800E15DC400D151440CB16D8814A17D9414517DE +:200D30001140010E2805883AD9814B17308D883AD9814B1590013B1ED9C14017DD4019044A +:200D3800D8000D15003EA706D8800E171005451ED8000D15B080030B1080100C103E8726E2 +:200D400000BFFFC4D8814B15003E8406D9814D170080194411806E16D941471700C0004464 +:200D48001943490ED8814117948000448C400044A8800015008001C4A8C00115DC800E1540 +:200D5000DC400D151441CA16A8C00204D901491700800044948000448C400044188001158E +:200D5800008001C419000015DC800E15DC400D151441B6161CC00204D9014217D9414317A1 +:200D6000000D883A000F883A000B8C8010017426D9414717D98141178C4000442C85883A64 +:200D680014BFFFC428BFFFC430C0004498800115008001C498C00015DC800E15DC400D155A +:200D700014418E169CC00204D9414817D88008048C4000449165883A98800015008001C4F1 +:200D780099400115DC800E15DC400D151440ED1698C00204003F8506D9814A17D8814517C0 +:200D800030A1C83A043F4B0E0080040414043A0E1027883A07000074E700F984050001C45A +:200D880000000306843FFC04AD4002049C00130E948004048C400044AF000015ACC001155D +:200D9000DC800E15DC400D15A47FF60ED9014F17B00B883AD9800C04D9C151150002DBC09C +:200D9800D9C15117103FA31E843FFC04DC800E17DC400D17DD4019049C3FED169425883A12 +:200DA0008C400044008001C4AF000015AC000115DC800E15DC400D1514416116AD400204DC +:200DA800003F2406D9014F1700068C80D9C15117003DEF06D9014F17B00B883AD9C151157F +:200DB0000004CFC0D9C15117103DEE26003F8C06D9014217D9414317000D883A000F883A15 +:200DB800000B84001000F21E008000741080F904948000448C400044A880001500C0004442 +:200DC000008001C4A8C00115DC800E15DC400D1514430016A8C00204D8800517D90147170C +:200DC80011015C0EDC400D17D981491700800044948000448C40004418800115008001C476 +:200DD00019800015DC800E15DC400D151443161618C00204D8814717143FFFC4043F2B0EEE +:200DD800008004041402A80EDC400D171027883A07000074E700F984050001C400000306BC +:200DE00018C00204843FFC049C02A20E948004048C4000441F0000151CC00115DC800E1533 +:200DE800DC400D15A47FF60ED9014F17B00B883AD9800C040002DBC0103F4E1EDC800E1787 +:200DF000DC400D17D8C01904003FEE06D8802C0B00FFFFC4D8C14B151080100C103DCC1E8E +:200DF800003DCE06D9014F17B00B883AD9800C040002DBC0103F3F1EDC800E17003F2E0667 +:200E0000D9414C1729400414D9414C15D9814C173080080C10014F1ED8C14C171880040CB6 +:200E08001002F01ED9014C172080100C1002ED263880000F39C00104D9C140151023D7FAD4 +:200E10001021883A880378160100004498000416D8C14C1700BFDFC41886703AD8C14C151F +:200E18008444B03A10022C1E98022B1E20803FCC1002A126D8C01904DD000F04D8C14115B1 +:200E2000D8C14117DCC14515A0C5C83A11C00A0499C0010ED9C14515DCC14615D8800407CD +:200E2800103E4C26D881451710800044D8814515003E4806D9814C1731800414D9814C15E1 +:200E3000D8C14C171880080C1001271ED9414C172880040C1002BC1ED9814C173080100CFA +:200E38001002B9263C00000B0009883A39C001040023883AD9C14015D8000405003FD306CC +:200E4000D9014C1721000414D9014C15D9414C172880080C1001081ED8C14C171880040CCD +:200E48001002B61ED9014C172080100C1002B3263C00000B0100004439C001040023883A51 +:200E5000D9C14015D8000405003FC006D9014F17B00B883AD9800C040002DBC0103EE51E99 +:200E5800DC800E17D8C01904D9814C173080004C1005003A103EA51E00800044DC400D1727 +:200E600018800115D8814917948000448C40004418800015008001C4DC800E15DC400D15F4 +:200E68001442240ED9014F17B00B883AD9800C040002DBC0103ECF1EDC800E17D8C01904AE +:200E7000003E9206D9014F17B00B883AD9800C040002DBC0103EC026003EC606D9014F174B +:200E7800B00B883AD9800C04D9C151150002DBC0D9C15117103EBF1EDC800E17DC400D17E9 +:200E8000DD401904003E7406D9014F17B00B883AD9800C04D9C151150002DBC0D9C151179B +:200E8800103EB41EDD401904003D6D06D9014F17B00B883AD9800C04D9C151150002DBC07D +:200E9000D9C15117103EAB1EDC800E17DC400D17DD401904003E3406D9014F17B00B883AF9 +:200E9800D9800C04D9C151150002DBC0D9C15117103EA01EDC800E17DC400D17DD4019042B +:200EA000003E1C06D9014F17B00B883AD9800C04D9C151150002DBC0D9C15117103E951E0C +:200EA800DC800E17DC400D17DD401904003E0406D90005170102580ED981471721807A16A0 +:200EB000D881411791A5883A8C400044A8800015008001C4A9800115DC800E15DC400D15EB +:200EB8001442FC16A8C00204D94147172161C83A043F9D0E008004041402190EDC400D1755 +:200EC0001027883A07000074E700F984050001C40000030618C00204843FFC049C02130E07 +:200EC800948004048C4000441F0000151CC00115DC800E15DC400D15A47FF60ED9014F1794 +:200ED000B00B883AD9800C040002DBC0103E691EDC800E17DC400D17D8C01904003FEE0601 +:200ED800D8814717143FFFC4043E970E008004041400180E1029883A07000074E700F984AA +:200EE000054001C4000003069CC00204843FFC04A400120E948004048C4000449F00001516 +:200EE8009D000115DC800E15DC400D15AC7FF60ED9014F17B00B883AD9800C040002DBC088 +:200EF000103E4C1EDC800E17DC400D17DCC01904003FEE0607000074E700F9849425883A23 +:200EF8008C400044008001C49F0000159C000115DC800E15DC400D15147E720ED9014F1710 +:200F0000B00B883AD9800C040002DBC0103E391EDC800E17DC400D17DCC01904003E6A0681 +:200F0800D9014F17B00B883AD9800C04D9C151150002DBC0D9C15117103E2E1EDC800E17E9 +:200F1000DC400D17DD401904003DBA06D9014F17B00B883AD9800C040002DBC0103E251EF6 +:200F1800DC800E17DC400D17DCC01904003E4206D9014F17B00B883AD9800C040002DBC0F6 +:200F2000103E1C1EDC800E17DC400D17D8C01904003E2E06D9414C172880004C1005003A81 +:200F2800103DDA1E003E9F06D8C141179125883A8C400044008001C4A8C00015A900011587 +:200F3000DC800E15DC400D1514426C16A8C00204D941491700800044948000448C400044F8 +:200F380018800115008001C419400015DC800E15DC400D152021883A144256161940020457 +:200F4000D98147178C400044DC400D153107C83AD901411790E5883A28C001158105883AA2 +:200F480028800015008001C4DC800E15147F1D1628C00204003DB5063C0000173C40011775 +:200F50003980020401000044D9814015D8000405003EBE063C0000173C4001173880020446 +:200F5800D8814015003EB7063C0000173C40011739000204D90140150009883AD8000405CF +:200F6000003EB20638C0001739C00104D8C14A151800D70E00C7C83AD8C14A15D9014C177B +:200F6800B8C0000721000114D9014C15003C9806D9814C173080080C1001F626D9014B17B5 +:200F70003880001739C00104D9C140152007D7FAD9C140171100001510C00115003C690605 +:200F7800B8C0000700801B0418825526D9414C1729400414D9414C15003C8506D9814C1729 +:200F8000B8C0000731800814D9814C15003C8006D8814C173C00001700C01E041080009473 +:200F8800D8814C1539C00104014000742940E20400800C040023883A01000084D9C14015A4 +:200F9000D8C14D15D9414415D8800445D8C00485D8000405003E7D06D8814C17B8C0000734 +:200F980010801014D8814C15003C6906D9414C172880020C1001E526398000173880020443 +:200FA000D8814015D981421539C00117D9C14315D9014217D941431700098C4010021D26FE +:200FA800D9014217D9414317000D883A000F883A000BA6001002D016D9414D17008011C466 +:200FB00011421016018000743180E704D9814115D9014C1700C000C400BFDFC42088703AF2 +:200FB800180F883AD8C14515D9014C15D8014615003E6A063880001700C0004439C001044F +:200FC000D9C14015D9000F04180F883AD8C14515D9014115D8800F05D8000405003CAC06EF +:200FC800014000742940ED04D9414415D9814C173080080C1000FF263C0000173C400117EA +:200FD00038800204D8814015D9414C172880004C1005003A1000B91E8444B03A1000B7264F +:200FD800D9814D172940009400800C0401000084D9414C15D8800445D9800485D80004054A +:200FE000003E3206018000743180E204D9814415003FE60600800AC4D8800405B8C00007E3 +:200FE800003C1B06D8814C17B8C0000710800054D8814C15003C1606D880040710004C1E7E +:200FF00000800804D8800405B8C00007003C1006D9814C17B8C0000731800214D9814C1565 +:200FF800003C0B060009883A0400024401400284D9C151150002C3C0B9000007D8C14D176E +:20100000BDC00044D9014D15D9414D171885883A113FF40428BFF404D9C1511780BFF32E6D +:20100800D9014A15003BFC06D8814C17B8C0000710802014D8814C15003BF506B8C00007E4 +:2010100000800A84BDC0004418831826D8C14D1518BFF40400C0024418827B361821883A02 +:201018000009883A01400284D9C151150002C3C0D9414D17B9800007D9C151171145883AC9 +:20102000113FF40430BFF404D9814D15BDC0004480BFF42E2027883A203BDF0E04FFFFC48C +:20102800003BDD06D80004053980001739C00104D9C14015D98141153001C92698000E1660 +:20103000D9014117000B883A980D883A0007F48010025926D8C1411710CFC83A99C19E164E +:20103800D9C1451538000916D8014615003DEB06B8C00007003BC606D90141170002D480DD +:20104000D8814515100F883A103FF70ED8014515D8014615003DE10620C03FCC008000446E +:2010480018802D2618800E36008000841880FA26010000742100F2040002D480100F883A42 +:20105000DCC145159880010ED8814515008000741080F204DCC14615D8814115003DCF067C +:20105800D9401904DD000F04D9414115880A977AD98141178004D0FA8806D0FA810001CC99 +:201060002884B03A31BFFFC421000C04D981411510CAB03A310000051021883A1823883A5C +:20106800283FF21ED8C14C171880004C1005003A103DB31E20803FCC1080201C10BFE0047A +:2010700000C00C0410FDAE2631BFFFC4D981411530C00005003DAA068880006810002C1EA0 +:201078008800021E0080024414002936D90018C4DD000F04D9014115D901411780800C0460 +:2010800020800005003D9E06DC400D1707000074E700F9849425883A8C400044008001C4DB +:201088001F0000151C000115DC800E15DC400D15147DDC1618C00204003C74060100008489 +:20109000D8000405003D8106D9814C1730C4703A1005003A103CB326D90141179480004442 +:201098008C400044008001C4A9000015A8C00115DC800E15DC400D15147E6016ACC0020470 +:2010A000003CD10607000074E700F984003C4906DD000F04DC8019048009883A880B883AAA +:2010A80001800284000F883A000A6C0012000C0494BFFFC48009883A880B883A01800284FB +:2010B000000F883A92000005000A05401009883A1021883A188000681823883A103FEE1E43 +:2010B8001800021E00800244113FEB3694BFFFC4DC814115003FC006D9014C172080004CB2 +:2010C00010009A1ED9401904DD000F04D9414115003D5B06D9014F17B00B883AD9800C04EE +:2010C8000002DBC0103C731EDC800E17D8C01904003CF906D8C14C171880040C1000711EDA +:2010D000D9014C172080100C10006E263C00000B0023883A39C00104D9C14015003EFA060C +:2010D800DC400D1707000074E700F9849425883A8C400044008001C41F0000151C000115A3 +:2010E000DC800E15DC400D15147D701618C00204003D7506DC800E17DC400D17070000744A +:2010E800E700FD84003BBA06D9014F17B00B883AD9800C040002DBC0103C4E1EDC800E1789 +:2010F000D8C01904003CE3063C0000170009883A39C001040023883AD9C14015D800040535 +:2010F800003D1A063880001739C00104D9C140151023D7FA1021883A003D12063C00001720 +:201100000100004439C001040023883AD9C14015D8000405003D0D06008000741080F90406 +:20110800948000448C400044A880001500C00044008001C4A8C00115DC800E15DC400D159E +:201110001440CA16A8C002042000061ED94147172800041ED9814C173080004C1005003A0F +:20111800103BEA1E00800044DC400D1718800115D8814917948000448C40004418800015E4 +:20112000008001C4DC800E15DC400D151440CA1618C002040121C83A0400500E008004048D +:201128001400800E1027883A07000074E700F984050001C40000030618C00204843FFC04B9 +:201130009C007A0E948004048C4000441F0000151CC00115DC800E15DC400D15A47FF60E45 +:20113800D9014F17B00B883AD9800C040002DBC0103C001EDC800E17DC400D17D8C01904F4 +:20114000003FEE063C0000170023883A39C00104D9C14015003E8C06D9401904DD000F0441 +:20114800D9414115D9814417880A973A8004D13A810003CC3109883A2884B03A214000032A +:20115000D90141178806D13A1021883A213FFFC4D9014115D981411710C8B03A1823883AFD +:2011580031400005203FEF1E003CC50600800C04D98018C4DD000F04D88018C5D9814115F4 +:20116000003CBF06DC400D1707000074E700FD84003BC106D9414C172880040C10007C2662 +:201168003880001739C00104D9C14015D9814B17D9C1401711800015003A7206D9014F1766 +:20117000B00B883AD9800C040002DBC0103BC91EDC800E17DC400D17D8C01904D9014717FC +:20117800D94141178C4000449125883A008001C41940001519000115DC800E15DC400D15BE +:20118000147CE81618C00204003B800638C0001739000204D9014015D8C1421539C00117A4 +:20118800D9C14315003E1A060005883A1409C83A1105803A044BC83A2885C83A2021883A3E +:201190001023883A0100004400800B44D8800405003C7E06D9014F17B00B883AD9800C04EF +:201198000002DBC0103BA31EDC800E17DC400D17D9000517D9401904003DA106D9014F177E +:2011A000B00B883AD9800C040002DBC0103B991EDC800E17DC400D17D9000517D8C019043F +:2011A800003D8B0607000074E700F9849425883A8C400044008001C41F0000151C00011544 +:2011B000DC800E15DC400D15147FBC1618C00204003FC206D9014F17B00B883AD9800C04F2 +:2011B8000002DBC0103B831EDC800E17D9000517D8C01904003CFC0607000074E700F98446 +:2011C000003BDE06008000741080E804D8814115003DEF06D9014217D9414317000990401F +:2011C80010003926D9414D17008011C41140CE16018000743180E904D9814115003DE40626 +:2011D000D9014C17BDC00044B8C0000721000814D9014C15003A2E06DCC1451598011016E6 +:2011D800980F883AD8014615003C4C06D9014F17B00B883AD9800C040002DBC0103B5D1E43 +:2011E000DC800E17D9000517D8C01904003F2E06D8C14C171880100C1000A02638800017FC +:2011E80039C00104D9C14015D9014B17D9C140171100000D0039F306D9014F17B00B883AC0 +:2011F000D9800C040002DBC0103B4A1EDC800E17DC400D17D9000517D8C01904003F2D0649 +:2011F8000080018414C09A36DCC145159800010ED8014515008000741080EB04980F883A81 +:20120000D8814115003A720600BFFFC49880E226D9414D17008019C42880DC26008011C4F1 +:201208002880DA26D9414C17D9014317D981421729404014D9414C152000CC163021883A6D +:201210002023883A0039883AD9414D17008019842880B726008011842880B5260080194429 +:201218002880C826008011442880C6269829883AD9014F17D8800504880D883AD8800115CE +:20122000D8C00604D8800704800B883A01C00084D8C00215D8800315DD000015000507C03A +:20122800D9814D17D8814115008019C430809526D8C14D17008011C418809226D94141175D +:20123000D9814D17008019842D25883A308086260080118430808426000D883A000F883A44 +:20123800880B883A8009883A000B84001000751E9005883ADC800715D9014117D9414D1745 +:2012400000C019C41125C83A28C06826008011C428806626D9000517D8C14D1700801944EB +:2012480010C05516213FFFC4D9000515D8C008052021883A2000C11600800AC4D8800845A3 +:20125000008002441400AF0E1027883ADC400B848009883A014002840002BCC010800C0413 +:201258008C7FFFC48009883A01400284888000050002B6C01021883A98BFF51610C00C04DC +:20126000D88009C4108001C4897FFFC488FFFFC52880A72E1009883AD9800804D8C00884FD +:2012680028800003294000441880000518C00044293FFB361987C83A00800044D8C1481560 +:2012700090CF883A1480960E39C00044D9C1451538003416E0803FCC1080201C10BFE00468 +:2012780010004E2600800B44DC814715D8014615D8800405003BAB0600800B44D880040599 +:20128000003D2D06D9014F17B00B883AD9800C040002DBC0103AB71E003AB5063880001738 +:2012880039C00104D9C14015D9414B17D9C140171140001500395306980F883ADCC1451594 +:20129000D8014615003B95060027883A0039720600C0007418C0EB04100F883AD88145150B +:20129800D8C141150039DA06008000741080EA04D8814115003D1606D9414D170080198419 +:2012A00028804926200F883A24805716D9414C172880004C1000012621C00044D9C1451554 +:2012A800383FCC0ED8014515003FCA06D900051700BFFF041100480E99004716D8C14D1584 +:2012B000003FF006D880071714BF8B2E9007883A01000C041100000510800044D88007151F +:2012B80018BFFC1E003F8406D881411710C0000700800C0418805B26D90005179125883ABE +:2012C000003F7506D9014C172080004C1005003A103F6A26D8800717003F7706D9C14515D7 +:2012C80038004D16DC814715D8014615003B5B06D9014F17D8800504D8800115D8C0060431 +:2012D000D8800704800B883A880D883A01C000C4D8C00215D8800315DCC000159829883A1F +:2012D800000507C0D8814115003F5106D8C14217D901431707000B441821883A2460003CAE +:2012E000003F31069D000044003F3906983F251E04C00044003F230604C00184003F2106E0 +:2012E800D8014515003EEE06200F883A0100370E9800031ED9814C173080004C103FB726AC +:2012F0002080004498A7883ADCC14515980F883A983F800E003FB306D9814D1731BFFF840B +:2012F800D9814D15003F4C060100180E008000441485883AD8814515100F883A103F750EDD +:20130000003FA80680C00C0400800C04D8C008C5D9800804D8C00904D8800885003F650602 +:20130800D9014C172084703A103F9C26003F6606D9800804D8C00884003F5E0600800B4483 +:201310000121C83AD8800845003F3D06008000841105C83A003FE606D8014515DC8147153F +:20131800003FB106000D883A000F883A8009883A880B883A000B8C80103F9F260080004490 +:201320001509C83AD9000515003F9B0698000D1ED8C14C171880004C10000A1E010000449A +:20132800200F883AD9014515003F4A063CC0001739C00104983D0E0EB8C0000704FFFFC4AA +:201330000038D3069CC00084DCC14515980F883A983F400E003F7306008000741088860459 +:201338002013883A110000172805883A300F883A480B883A100D883A0002E141008000747C +:201340001088860410C00017DEFFFD04DC400115DC000015DFC002152023883A2821883ABD +:201348001800022618800E1710001F268100030B2080020C100028268140041728001D2651 +:201350002080004C1005003A10000B262080008C100012260005883A8080021528000B2656 +:201358000005883ADFC00217DC400117DC000017DEC00304F800283A80800517800002151D +:201360000085C83A80800615283FF51E2080200C103FF32600BFFFC4003FF2068080051748 +:2013680080800215003FED061809883A00068C80003FDE0620C0A00C0080800418BFE02697 +:201370008809883A800B883A000767408100030B81400417003FDA062080040C103FED2673 +:201378002080010C1000122681400C172800052680801004288002268809883A0006C80024 +:2013800080000C158080030B814004178000011510BFF6CC8080030D814000158080030BA7 +:2013880010800214113FFFCC8080030D003FC30681400417003FF90628C004172080041794 +:20139000DEFFF104DFC00E15DF000D15DDC00C15DD800B15DD400A15DD000915DCC008157D +:20139800DC800715DC400615DC000515D9000315D940041510C07F161D3FFFC4D8C0041736 +:2013A000D9000317A505883A1085883A1CC0050425C0050498AD883A15C7883AB1400017F7 +:2013A80019000017D8C0001529400044D90002150002C2C01039883A10003D1ED94004177D +:2013B000D900031700083A0010002C16E7000044B80F883A0011883A0009883A9940001754 +:2013B80038C000179CC0010428BFFFCC2085883A11BFFFCC193FFFCC1004D43A280AD43A6C +:2013C0002189C83A2209883A1806D43A288B883A200DD43A28BFFFCC1887C83A1987883AE3 +:2013C8003900000D38C0008D2808D43A39C001041811D43AB4FFE92EA505883A1085883A3A +:2013D000B885883A10C0001718000C1E113FFF04B900082E10BFFF1710000326000005066A +:2013D800208000171000031E213FFF04A53FFFC4B93FFB36D900031725000415E005883A02 +:2013E000DFC00E17DF000D17DDC00C17DD800B17DD400A17DD000917DCC00817DC80071777 +:2013E800DC400617DC000517DEC00F04F800283AB823883A9825883AD8000115002B883AB2 +:2013F00094000017E009883A94800104817FFFCC0002C3C0800AD43AE009883AA8A1883AD0 +:2013F8000002C3C08900001780FFFFCC8020D43A217FFFCC28CBC83AD8C001172008D43A72 +:201400001405883A28CB883A280DD43A10FFFFCC20C9C83A2189883A8900008D2009D43A7B +:201408008940000D102AD43A8C400104D9000115B4BFE32ED9000217203FA01ED8800017E4 +:2014100010FFFF04B8C0082E10BFFF171000032600000506188000171000031E18FFFF04D9 +:20141800A53FFFC4B8FFFB36D8C003171D000415003F92060005883A003FC1062200101750 +:20142000DEFFDA04DD402115DD002015DC801E15DC401D15DFC02515DF002415DDC02315E9 +:20142800DD802215DCC01F15DC001C15D90016153023883A2829883AD9C01715DC802817A7 +:20143000302B883A40000A2620801117400B883A4080011520C011170080004410C4983AF2 +:201438004080021500082440D8C01617180010158800A31690000015A8DFFC2C009FFC34EB +:2014400018809126000D883A000F883AA009883AA80B883ADD001215DD401315000B8C805D +:201448001000171ED98027170080004430800015D880291710029B26D900291700800074A7 +:201450001080F94410FFFFC4208000151805883ADFC02517DF002417DDC02317DD802217E7 +:20145800DD402117DD002017DCC01F17DC801E17DC401D17DC001C17DEC02604F800283A27 +:20146000D9001617D9401217D8800104A80D883AD9C00204D880001500088800D880071540 +:20146800A804D53A1101FFCC20008626D8C012170080043410BFFFC4DDC00117A884703A6A +:201470001811883A124FFC3425BF0044D80008150005883A00CFFE34480B883A4009883ADB +:20147800180F883A100D883A000B13000218DBF44210D844024FF4F44A61E9C4480F883A6D +:20148000400D883A180B883A1009883A000B22400222D87442322CC4024FF1F44A628A04CC +:20148800480F883A400D883A180B883A1009883A000B1B00B009883A1021883A1823883ACB +:20149000000BAE80021427F4421E7EC4024FF4F44A5104C4480F883A400D883A180B883A87 +:201498001009883A000B2240180F883A880B883A100D883A8009883A000B1B001009883A83 +:2014A000180B883A1021883A1823883A000BBE00000D883A000F883A8009883A880B883A4E +:2014A800D8800D15000BA60010031716D8C00D170080058410C1482E01000044D9000C156E +:2014B000BD85C83A11BFFFC430030B16D9800A15D8001115D8C00D171802FF16D9000A1796 +:2014B800D8C00915D800101520C9883AD9000A15D90017170080024411004636008001449F +:2014C0001102041604400044D8C017170080014410C1ED3618C5883A1085883A00C00034EE +:2014C80018D4CC0410C5883A110000172000683A0000541C0000541C00005E1C00005DF41C +:2014D00000005E3800005E44D90027170089C3C420800015A000102600C0007418C10504FC +:2014D800D9802917303F7926188000C7190000C41000101ED880291711000015003F73065D +:2014E00000A0003410BFFFC400C0004488AA703A90C00015003F58060080043410BFFFC45A +:2014E800A884703A103FEC1E00C0007418C10204003FEB06D8802917190002041100001595 +:2014F000003F6206DDC00117D880021701000804B8C10C8418A3883A2441B80E00C010047D +:2014F8001C47C83A88BFF804A8C6983AA084D83A1888B03A000BCB801011883A00BF84347C +:201500000100004410D3883A8DBEF344D9000815003F6F06D80017150440004400BFFFC4A7 +:2015080000C00044D8800E15D8002615D8800F15D8C00B151021883AD8801617100011154F +:20151000D8801617114011171009883A00087C40D8C01617D8800515188010150080038423 +:20151800140068368805003A1000661ED9000D170102300E208003CC100490FA2025D13A0B +:2015200000C0007418C1170410C5883A90C0040C140000171440011718036A1E0580008449 +:201528009000102604C000749CC149049080004C1005003A1000081E9980001799C0011779 +:20153000880B883A8009883A000B22401021883AB58000441823883A9025D07A9CC00204C4 +:20153800903FF21EA80B883AA009883A880F883A800D883A000B5E801029883A182B883A43 +:20154000D8C00C171805003A1000081E0005883A00CFFC34180F883AA009883AA80B883AB4 +:20154800100D883A000BA6001003FE16B009883A000BAE80180B883A1009883AA00D883AE9 +:20155000A80F883A000B22400011883A025007341009883A180B883A480F883A400D883A4D +:20155800000B1B00D9000F17102D883A00BF303418B9883AE02F883A20028F1E0005883A32 +:2015600000D00534A009883AA80B883A180F883A100D883A000B13001009883AE00F883A10 +:20156800180B883AB00D883A1025883A1827883A000B950000834F16E0E0003C9009883A28 +:20157000980B883A180F883AB00D883A000BA6001000080E0027883A0025883AD880261752 +:20157800DF000517D80006150084303AD8800D1500019B06D9801217D88013173029883A3C +:20158000102B883AD8C0021718008516D9000D170080038411008216200490FAD9802617F9 +:2015880000C0007418C1170410C5883A1480001714C0011730031E16D9000517D8C00F17D3 +:20159000A823883AA021883A192B883A2039883A00000F060005883A00D009345009883A06 +:20159800580B883A180F883A100D883A000B2240180B883A000D883A000F883A1009883A79 +:2015A0001021883A1823883A000B8C8010004526900D883A980F883A8009883A880B883A41 +:2015A800000B5E80180B883A1009883A000BBE001009883A1029883A000BAE80180F883AB9 +:2015B0009009883A980B883A100D883A000B2240180F883A880B883A8009883A100D883AA7 +:2015B800000B13001015883AA0800C04E0800005E70000441817883AE57FD61E500D883AE6 +:2015C000180F883A5009883A180B883A000B1B00100D883A9009883A980B883A180F883A74 +:2015C8001021883A1823883A000BA60010000816980B883A800D883A880F883A9009883ACC +:2015D000000B84001000171EA080004C10001526D8800D17D8800415E009883A213FFFC4B5 +:2015D80020C0000700800E441880081ED8800517113FFA1ED8C00417D980051700800C04E8 +:2015E00018C00044D8C004153080000520800003D8C004172700004410800044D8C00D151A +:2015E80020800005D9001617D940071700082440E0000005D9800D17D8C02717D900291744 +:2015F000308000441880001520029C26D8C0051727000015003E5D06D9800D1700C0007414 +:2015F80018C11704D9001217300490FAD940131710C5883A1200001712400117400D883AA3 +:20160000480F883A000BA6001000030ED8800D1710BFFFC4D8800D15D8000C15003EA80672 +:20160800D9000B17202CC03AB000C71EDC001117DC8010170027883A04000B0ED8C00A17A6 +:2016100000C0090E8005883A1C011316D9000A17D980111780A1C83A2089C83A308DC83A4E +:20161800D9000A15D9801115D88010170080150ED8C00B171805003A1001C91E04800E0E70 +:20162000D9001617980B883A900D883A00090900D9001617D9800717100B883A1027883A7B +:201628000008CD40D9001617D94007171023883A00082440DC400715D9001017248DC83A04 +:2016300030010E1ED900161704400044880B883A0008F280D98009171025883A0180040EDD +:20163800D9001617100B883A000909001025883AD88017178880F30E0023883AD9800917B9 +:2016400030019E1E00C00044D9000A1720C5883A10C007CC1800841E00800704D9000A1716 +:20164800D980111780A1883A2089883A308D883AD9000A15D9801115D88011170080050EAA +:20165000D9400717D9001617100D883A0008B880D8800715D8C00A1700C0050ED900161718 +:20165800900B883A180D883A0008B8801025883AD9000C172005003A10016F26D9000F17F7 +:201660000102170ED9800B173005003A1000881E0400050ED9001617980B883A800D883AD1 +:201668000008B8801027883A8804C03A1002541E980B883ADD800517DCC00615A700004C97 +:201670002827883AD9000717900B883A0004E380D9000717D94006171023883A8DC00C040F +:2016780000083A00D9001617900B883A980D883A1029883A00089FC0102B883A108003173D +:201680001001281ED9000717A80B883A00083A00D90016171021883AA80B883A000824406B +:201688008000041ED88017171000021EE004C03A10011726A0010616A000041ED8C0171779 +:201690001800021EE004C03A1001012604023D16B5C00005D9800517D9000F17B58000442C +:201698003105883AB0806526D9400717D900161701800284000F883A0008F640D8800715B8 +:2016A000D880061714C10C26D9400617D900161701800284000F883A0008F640D900161756 +:2016A800980B883A01800284000F883AD88006150008F6401027883A003FC2062445C83AC9 +:2016B000A088983A003E4B0601BFFFC400800044D9800E15D9800F15D8800B15D8C0161714 +:2016B800008005C4180011151580082E00C001040009883A18C7883A188005042100004489 +:2016C000B0BFFC2ED980161731001115DC000F17003E4B06D98017170023883A31BFFF04A4 +:2016C800D9801715003DF8060080080410C9C83A00C0010419005A16008000C4113F7E1665 +:2016D00020800704003F7506D9801717008000441180A10ED9800F17D8C0101730BFFFC41A +:2016D8001881C61618A5C83AD8800F1710026216DC0011171007883AD9800A17D8801117DF +:2016E000D900161730CD883A10C5883A01400044D9800A15D88011150008F2801027883AA0 +:2016E800003F250600C0007418C0F904003D6706DD8005170400004400000706D9400717C0 +:2016F000D900161701800284000F883A0008F640D880071584000044D9000717900B883A2E +:2016F8000004E38015C00C04B5C00005D8C00F17B580004480FFF116D8000615D940071725 +:20170000D9001617018000440008B8801009883A900B883AD880071500083A0000803C0E06 +:20170800B009883A213FFFC42140000300800E4428C03FCC18C0201C18FFE0041881981E9C +:20171000D980051721BFF71ED8800D173700004410800044D8800D1500800C443080000585 +:20171800D9001617900B883A00082440983ECD26D8C00617180004261CC00326D900161717 +:20172000180B883A00082440D9001617980B883A00082440003EC3061805883A003EEB066C +:20172800D9800A17D8C0111720BFFF04308D883A1887883A80A1883AD9800A15D8C011158C +:20173000003F1D06A03F0C1E0080043410BFFFC4A884703A103F081EA89FFC2C103F0626AF +:20173800D8C01117D9000A1718C0004421000044D8C01115D9000A15003F0006D940071724 +:20174000D900161700090900D8800715003EED061000021EB880004C103FC11EB5BFFFC4B3 +:20174800B0C0000700800C0418BFFC26B7000044003FCB06D9800D17018FC83A3801F72611 +:20175000398003CC300C90FA0140007429411704D9001217314D883A30C0011730800017E0 +:20175800D94013173821D13A100D883A180F883A000B22401011883A1813883A1029883ACA +:20176000182B883A8001E52605800084044000748C4149048080004C1005003A1000081E2C +:201768008980001789C00117480B883A4009883A000B22401011883AB58000441813883A0A +:201770008021D07A8C400204803FF21E4029883A482B883A003DCA06D90008172005003A09 +:201778001001F61EDC001117DC80101718C10CC4003F6106D8000B15D9802617D8C00D170C +:201780003080004418AD883AB13FFFC4D9000E150581F60EDD800F15003F3006D8000B15A7 +:20178800D90026170101EB0E202D883AD9000E15D9000F15003F290601800044D9800B157C +:20179000003FF70601000044D9000B15003FEA0604000C0ED9400717D90016170180004470 +:201798000008B8801009883A900B883AD880071500083A000081E00EBDC0004400800E84C1 +:2017A000B881A226B7000044B5C00005003F740600800E44B8819D26053FFA0E8DC00C4443 +:2017A800003FF806D9001617A80B883A0400004400082440003EDF06D9001617980B883A27 +:2017B00001800284000F883A0008F6401027883AD8800615003EBB06D9801117D8800D179B +:2017B800D8000915308DC83A0087C83AD9801115D8C01015003CFE06018DC83AD980111548 +:2017C000D8000A15003CF306D9000D17000BAE80880B883A8009883A180F883A100D883A3F +:2017C800000B8C80103CE126D9800D1731BFFFC4D9800D15003CDD06D9000717900B883A79 +:2017D00000083A00103E8D0ED9400717D900161701800284000F883A0008F640D9800D17FE +:2017D800D880071531BFFFC4D9800D15B001A71ED8800E17D8800F15003E800690800417F1 +:2017E0001085883A1085883A1485883A11000417000826C000C008041887C83A003E5A06BB +:2017E800D9400717D9801017D900161700090900D8800715003E4306D9800F17D8800D171C +:2017F000D9800315D8800415D8C00B171805003A1000E21ED90003170005883A00CFF83421 +:2017F800200C90FA0100007421011704180B883A310D883A327FFF17323FFE171009883A5C +:20180000480F883A400D883A000B5E80180B883AB00D883AB80F883A1009883A000B1300D1 +:20180800A80B883AA009883AD8C01915D8801815000BBE001009883A1027883A000BAE80BF +:20181000A80B883AA009883A180F883A100D883A000B1300D98018171823883AD8801415EC +:20181800302D883AD98005179CC00C04DC401515D8C0191734C00005D8800517D9401917EC +:20182000D9801417B009883A880F883A182F883A17000044000B950000804E16D9801417E4 +:201828000005883A00CFFC34180B883A880F883A1009883A000B1300D9401917180F883A71 +:20183000B009883A100D883A000B950000BDA216D8C003170080004410C01216003D450633 +:20183800D98014170005883A00CFFC34180B883A880F883A1009883A000B1300D9C01B1744 +:20184000180B883A1009883AB00D883A000BA600103D9116D9800517D90003173105883A44 +:20184800E0BD3426045009340021883AB80B883AB009883A800D883A880F883A000B224000 +:20185000D9401517D9001417880F883A000D883AD8801A15D8C01B15000B2240180B883A66 +:201858001009883A1823883A1021883A000BBE001009883A102B883A000BAE80880B883A76 +:201860008009883A180F883A100D883A000B13001021883AD9001B171823883ADC00141537 +:20186800AD400C04DC401515D8801A17E5400005202F883AD9C01B17D9001417880B883A35 +:20187000100D883A102D883AE7000044000BA600103FC30ED9000417D9000D15003D7106DB +:20187800D98017170080008411BDE60E203CFB1ED9001617900B883A01800144000F883A94 +:201880000008F640D9000717100B883A1025883A00083A0000BCF10ED8C00D17D900051791 +:20188800D800061518C00044D8C00D1500800C442700004420800005003E8906D8C0051716 +:20189000003BC206018000743181490430C0091730800817D9001217D9401317180F883A34 +:20189800100D883A000B5E80948003CC058000C41029883A182B883A003C8906D900101771 +:2018A000D98009170025883A1105C83A2089883A308D883AD9001015D9800915003E3206DB +:2018A800288000442700004420800005003E6C06D8800F1700BCE016D9800F17303CC51E76 +:2018B0000005883A00D00534980B883A180F883A9009883A100D883A000B2240180B883A6E +:2018B800A80F883A1009883AA00D883A000B9D80103CB80E0027883A0025883A003FC60638 +:2018C00099400117D900161700087C40998004171100030499400304318D883A318D883A21 +:2018C800318002041023883A000802C0D9001617880B883A018000440008B880100B883A4D +:2018D000003D9C0600800E44B8807026B8800044B7000044B0800005003E4106D8800317D6 +:2018D8000180007431811704B009883A100E90FAB80B883A398F883A38BFFE17D98005177B +:2018E00038FFFF1737000044180F883A100D883A000B2240A80B883AA009883A182F883A02 +:2018E800102D883A000BBE001009883A1027883A000BAE80A80B883AA009883A180F883A42 +:2018F000100D883A000B1300180B883AD8C005179CC00C041009883A1CC000052021883A17 +:2018F800D9000317008000442823883A208022261029883A0005883A00D00934180F883A6C +:20190000100D883A880B883A8009883A000B2240180B883A1009883A1823883A1021883A2B +:20190800000BBE001009883A102B883A000BAE80880B883A8009883A180F883A100D883A7D +:20191000000B1300180B883AD8C005171009883AAD400C041D05883A154000052021883AE7 +:20191800D9000317A50000442823883AA13FE11EE505883A173FFFC40025883A04CFF8343C +:20192000B009883AB80B883A900D883A980F883A000B1B00180B883A1009883A800D883AAA +:20192800880F883A000BA600103CAB160009883A980B883AB80F883AB00D883A000B130032 +:20193000180B883A880F883A1009883A800D883A000B950000BC470E00C00C04E73FFFC4C5 +:20193800E080000710FFFD26D9800417E7000044D9800D15003CAB06D8C00F17D900111730 +:2019400020E1C83A0007883A003D9B0600800E44B0800005B5800044003DC1060580008450 +:20194800003BF706D9000F17013C000ED9800E1701BC300E0005883A00D00934A80B883A3B +:20195000180F883AA009883A100D883A000B2240B10000441021883A1823883A000BAE80B9 +:20195800880B883A8009883A180F883A100D883A000B22400011883A02500734180B883A55 +:20196000480F883A1009883A400D883A000B1B00102D883A00BF303410EF883AD8800D17DF +:20196800D8C00E178029883A10BFFFC4882B883AD8800415D8C00315003E8306D8800117D8 +:20197000DC001117DC80101700C00D841887C83A003D6906018000443021883AD9800F15DD +:20197800D9802615D9800E15003B9306B021883ADD800F15003B9006103E221EB880004C74 +:201980001005003A103E1F1E003E1B06D9001617980B883A01800284000F883A0008F6408D +:20198800D8C00E171027883AD8C00F15003CD306DEFFFB04DCC00315DC800215DFC00415FD +:20199000DC400115DC0000152027883A2825883A2000022620800E17100056269100030BC4 +:2019980020FFFFCC18E0001C18E000041880020C1000261E90C00117208200149080030DFD +:2019A0001009883A00C0400E92000A17400040262084000C10005326940014179080030BCF +:2019A8001080010C1000481E914007179809883A800D883A000F883A403EE83A8080261EB6 +:2019B0009080030B910004179000011510BDFFCC10FFFFCC18C4000C9080030D9100001587 +:2019B80018002B260007883A1805883A94001415DFC00417DCC00317DC800217DC40011728 +:2019C000DC000017DEC00504F800283A9440041788001F269080001718C000CC94400015A3 +:2019C8001461C83A180025260005883A908002150400170E90C0091791400717880D883A58 +:2019D000800F883A9809883A183EE83A88A3883A80A1C83A00BFF6169080030B00FFFFC410 +:2019D800108010149080030D1805883ADFC00417DCC00317DC800217DC400117DC00001730 +:2019E000DEC00504F800283A90800F1700BFBE160007883A1805883ADFC00417DCC0031705 +:2019E800DC800217DC400117DC000017DEC00504F800283A00068C80003FA8069080051717 +:2019F00090800215003FDA069080011790C00C1780A1C83A183FB42690800F1780A1C83A49 +:2019F800003FB106914007179809883A000D883A01C00044403EE83A1021883A00BFFFC49E +:201A00008080022692000A17003FA40698C000170080074418BFDE269080030B8007883A86 +:201A0800108010149080030D003FCF060140003429598C042007883A200005260080007427 +:201A10001088860411000017180B883A000663010080007410888704110000170007430193 +:201A18000080007410A6690420800B150080007410A6A4042080081500C0007418E685040D +:201A20000080007410A66B042140030D2180038D20C0091520800A152000001520000115C3 +:201A28002000021520000415200005152000061521000715F800283AF800283AF800283A6E +:201A3000F800283AF800283A20800E17DEFFFD04DC400115DC000015DFC0021504400044DE +:201A380001400104000D883A2021883A2200BB04200F883A10000526DFC00217DC4001177D +:201A4000DC000017DEC00304F800283A2100011700800034109A6B0400C000C480800F15E6 +:201A480080C0B9158200BA1584400E158000B8150006860081000217880D883A800F883A1D +:201A5000014002840006860081000317800F883A0140048401800084DFC00217DC4001177D +:201A5800DC000017DEC00304000686010005883AF800283A0005883AF800283A0080007413 +:201A6000108886041100001701400034295A5D0400074F81008000741088860411000017AE +:201A680001400034295A5B0400074F810140007429679B0400074F8100800074108887045E +:201A70001100001700069AC1DEFFFC04DC0000152821883ADC400115014017042023883A61 +:201A78008009883ADFC00315DCC002150002C3C0114003048809883A1027883A0007808069 +:201A800010C003041023883A1809883A980D883A000B883A10000B261400011510C0021511 +:201A88001000001500081AC08805883ADFC00317DCC00217DC400117DC000017DEC00404AD +:201A9000F800283A0023883A8805883ADFC00317DCC00217DC400117DC000017DEC004046D +:201A9800F800283ADEFFFD040080007410888704DC00001514000017DC400115DFC00215DB +:201AA00080800E172023883A100026268400B804808001178100021710FFFFC418000916A5 +:201AA8002080030F10000B26017FFFC4000002062080030F1000072618FFFFC421001704DB +:201AB000197FFB1E80800017100019261021883A003FEF0600BFFFC400C000442080038D22 +:201AB80020C0030D20000015200002152000011520000415200005152000061520000C158D +:201AC00020000D1520001115200012152005883ADFC00217DC400117DC000017DEC00304CC +:201AC800F800283A8009883A00068C80003FD7068809883A0140010400069C80808000155B +:201AD000103FE21E008003040009883A88800015003FEE06DEFFFB04DCC0031504C000743D +:201AD8009CC2B804DC800215DC400115DC0000152823883A2025883ADFC00415000CB9802D +:201AE000988002179009883A000B883A10C0011700BFFF0418A0703A8463C83A8C43FBC40A +:201AE8008822D33A0083FFC48C7FFFC48822933A1440060E0009934098C002179009883A8C +:201AF000044BC83A80C7883A10C00926000CBB800005883ADFC00417DCC00317DC8002178A +:201AF800DC400117DC000017DEC00504F800283A9009883A00099340844DC83A00FFFFC4DA +:201B00009009883A000B883A01C0007439D0CB043180005410C009263880001798C002174C +:201B08009009883A1445C83A3880001519800115000CBB8000800044003FE6060009934079 +:201B100099800217100F883A9009883A1187C83A008003C41940005410FFDC0E00800074CC +:201B180010888B0410C00017008000741090CB043140011538C7C83A10C00015003FD306B7 +:201B2000DEFFFD04DC400115DC000015DFC002152821883A2023883A28005A26000CB980F1 +:201B2800823FFE044140011700BFFF84028000745282B804288E703A41CD883A30C0011741 +:201B30005100021700BFFF041892703A5017883A310067262880004C1005003A3240011563 +:201B380010001A1E000B883A3247883A188001171080004C1000231E280AC03A3A4F883AE9 +:201B40002800451E31000217008000741082BA0420807B26308003173A07883A19C0001570 +:201B48001100021520800315388000544080011528001A268809883ADFC00217DC40011714 +:201B5000DC000017DEC00304000CBB8180BFFE1750C002044091C83A41000217388F883A75 +:201B580020C06126408003173247883A000B883A1100021520800315188001171080004CB8 +:201B6000103FDD26388000543A07883A280AC03A4080011519C00015283FE61E00807FC4E6 +:201B680011C01F2E3806D27A1800481E3804D0FA100690FA1ACD883A31400217314059266E +:201B70002880011700FFFF0410C4703A3880022E29400217317FFA1E298003174180031547 +:201B7800414002158809883A2A00031532000215DFC00217DC400117DC000017DEC0030453 +:201B8000000CBB81DFC00217DC400117DC000017DEC00304F800283A31000217003FBD06D3 +:201B88003806D0FA0080004451400117180890FA1807D0BA22C9883A2180021710C4983A68 +:201B90004100031541800215288AB03A220002158809883A5140011532000315DFC0021733 +:201B9800DC400117DC000017DEC00304000CBB812880004C3A4D883A1000071E80BFFE1753 +:201BA0004091C83A4100031740C00217308D883A20C00215190003150080007410888A041D +:201BA8001100001730C000545200021540C00115313FA03600800074108F8104114000176C +:201BB0008809883A0006B540003F9A060080010410C0072E0080050410C01936188016C444 +:201BB800100690FA003FB30601400044003F7E063804D1BA10800E04100690FA003FAD0632 +:201BC00022000315220002153A05883A38C0005411C000154100021540C001154100031598 +:201BC800003F84061005D0BA00C00044510001171886983A20C8B03A51000115003FA70693 +:201BD0000080150410C004363804D33A10801B84100690FA003F97060080550410C004367B +:201BD8003804D3FA10801DC4100690FA003F91060081550410C0032E00801F8400C0FC043F +:201BE000003F8C063804D4BA10801F04100690FA003F880630800217DEFFF504DF0009158E +:201BE800DD800715DC800315DFC00A15DDC00815DD400615DD000515DCC00415DC40021561 +:201BF000DC000115302D883A2039883A2825883A10001C2629C0030B3880020C100027262E +:201BF80028800417100025263880008CB5400017100028260021883A0023883A880D883AE2 +:201C0000E009883A0081000480006E26800F883A914007171400012E100F883A90C00917AC +:201C0800183EE83A1007883A80A1C83A88A3883A00806D0EB080021710C5C83AB0800215F9 +:201C1000103FEE1E0009883A2005883ADFC00A17DF000917DDC00817DD800717DD40061777 +:201C1800DD000517DCC00417DC800317DC400217DC000117DEC00B04F800283A0004CFC0C3 +:201C20001000E41E91C0030BB54000173880008C103FD81E3880004C1005003A10005726BE +:201C28000029883A002F883AA00042263880800C9400021710008B26800D883AA400A53638 +:201C30003881200C100027269080051792000417914000171087883A1887883A1808D7FAE6 +:201C38002A21C83A8080004420C9883A2027D07AA085883A980D883A9880022E1027883A30 +:201C4000100D883A3881000C1000B826300B883AE009883A000780801000312691400417F0 +:201C48001009883A800D883A1023883A000802C090C0030B00BEFFC41886703A18C0201460 +:201C500090C0030D9C07C83A8C05883AA00D883AA021883A9080001590C0021594400415B1 +:201C580094C0051591000017B80B883AA023883A00080CC090C0021790800017A027883A5F +:201C60001C07C83A1405883A90C00215A021883A90800015B08002171405C83AB0800215AA +:201C6800103FA826A469C83A91C0030BBCEF883AA03FBE1EADC00017AD000117AD4002046D +:201C7000003FB906AC400017AC000117AD400204003F8A0691400417E009883A0006C80068 +:201C780000800304E08000159080030B013FFFC4108010149080030D003F93060027883A9A +:201C8000002F883AD80000150029883A98001E26D8C000171804C03A10005E269821883ACB +:201C8800A4C0012EA021883A91000017908004179180021791C005171100022E31E3883AA5 +:201C90008C00161681C0381690C0091791400717E009883AB80D883A183EE83A1023883AEF +:201C980000BFE10EA469C83AA0001826B08002171445C83AB0800215103F72269C67C83ABA +:201CA000BC6F883A983FE21EADC00017ACC00117AD400204D8000015003FDC06B80B883AD2 +:201CA800880D883A00080CC090C00017E009883A900B883A1C47883A90C00015000663008F +:201CB000103FC91EA469C83AA03FE81EE009883A900B883A00066300103FC31ED80000155C +:201CB800003FE20691000017908004171100022E8023883A8500313691C00517A1C0183664 +:201CC00090C0091791400717E009883AB80D883A183EE83A1021883A00BFB30E1023883A93 +:201CC8001027883A003F9B06B80B883A800D883A00080CC090C00217908000178023883A86 +:201CD0001C07C83A1405883A90C0021590800015003FC406A00D883AA021883A003F8106A7 +:201CD800B80B883AA00D883A00080CC090C0021790800017A021883A1D07C83A1505883A0F +:201CE000A023883AA027883A90C0021590800015003F8006B809883A01400284980D883AD4 +:201CE8000007F4801000172615C5C83A1500004400800044D8800015003F9806B80B883A4C +:201CF000800D883A00080CC090C00017E009883A900B883A1C07883A90C000158027883A8F +:201CF80000066300103F6B26003F7F06400B883AE009883A00092D00103F76261023883AF1 +:201D0000003F500600C000449D000044D8C00015003F82069080030B00C00244013FFFC4AE +:201D0800108010149080030DE0C00015003F0606DEFFF704DCC0031524C0B804DD80061543 +:201D1000DD400515DFC00815DDC00715DD000415DC800215DC400115DC000015202B883A6E +:201D1800282D883A00068B8098002126002F883A9C8001179C00021790BFFFC410000D1685 +:201D20000023883A053FFFC48080030F8C400044100006268080038F800B883AA809883A07 +:201D280015000226B03EE83AB8AEB03A84001704947FF51E9CC00017983FED1E00068BC093 +:201D3000B805883ADFC00817DDC00717DD800617DD400517DD000417DCC00317DC800217C5 +:201D3800DC400117DC000017DEC00904F800283A002F883A003FF106DEFFF804DCC00315AB +:201D400024C0B804DD400515DFC00715DD800615DD000415DC800215DC400115DC000015ED +:201D4800282B883A00068B8098001F26002D883A9C8001179C00021790BFFFC410000C165C +:201D50000023883A053FFFC48080030F8C400044100005268080038F8009883A1500022610 +:201D5800A83EE83AB0ACB03A84001704947FF61E9CC00017983FEE1E00068BC0B005883A39 +:201D6000DFC00717DD800617DD400517DD000417DCC00317DC800217DC400117DC000017A9 +:201D6800DEC00804F800283A002D883A003FF206D0A00517F800283A0080007410810B04B7 +:201D7000F800283A00800074108886041100001700075B81DEFFFC0400C0007418C10604E4 +:201D7800DC800215DC400115DC0000152023883A2825883ADFC003153021883A3009883ADC +:201D8000180B883A300009260009AF008009883A014000742940F10410000B1E8C000D1502 +:201D88008C800C1500C0007418C106041805883ADFC00317DC800217DC400117DC000017C3 +:201D9000DEC00404F800283A0009AF000007883A103FF226003FF5060180007431888604D9 +:201D98002007883A31000017280D883A180B883A00075D412880030BDEFFED04DC401015B4 +:201DA0001080008CDC000F15DFC01215DC8011152821883A2023883A10000B2628C010C4B2 +:201DA800008000442880051528C0041528C00015DFC01217DC801117DC401017DC000F1706 +:201DB000DEC01304F800283A2940038F28002116D80D883A0009E80010001E16D88001175E +:201DB80000E00014113C000C20C031268080030B00C80004108200148080030D20C01E26D3 +:201DC000048100048809883A900B883A000780801009883A1000312680C0030B008000347F +:201DC800109A6B0488800F1518C020148480051580C0030D8100041581000015DFC0121744 +:201DD000DC801117DC401017DC000F17DEC01304F800283A80C0030B1880200C10000426CF +:201DD80004801004188200148080030D003FE50604810004003FFB068140038F8809883AFC +:201DE0000009EF40103FDE268080030B80C010C404810004108000548080030D00800044F5 +:201DE80080C004158080051580C00015003FD50680C00A170080007410A66B0418BFCB1EBF +:201DF0008080030B00C100041825883A10C4B03A8080030D80C01315003FCA068100030B2D +:201DF8002080800C103FB21E80C010C42100009400800044808005158100030D80C00415EF +:201E000080C00015003FAA06DEFFF60428C002C400800584DC800215DFC00915DF000815C4 +:201E0800DDC00715DD800615DD400515DD000415DCC00315DC400115DC0000152025883A7E +:201E100010C01236044004048940142E008003040007883A908000151805883ADFC0091730 +:201E1800DF000817DDC00717DD800617DD400517DD000417DCC00317DC800217DC400117E7 +:201E2000DC000017DEC00A04F800283A00BFFE0418A2703A883FED16897FEC369009883A35 +:201E2800000CB98000807DC414402B2E8806D27A18003F1E880CD0FA300490FA02C0007446 +:201E30005AC2B80412CB883A2C000317580F883A2C00041E00000A061800860E8400031704 +:201E38002C0007268080011700FFFF0410C8703A2447C83A008003C410FFF70E31BFFFC41A +:201E400032400044028000745282BA04540002178280A0268080011700FFFF0410CA703A71 +:201E48002C4DC83A008003C4118083165280031552800215300029168147883A1880011712 +:201E50009009883A1080005418800115000CBB8080C00204003FC00602C000745AC2B804E5 +:201E58008AC5883A14000317580F883A8806D0FA14006C2680C0011700BFFF0481800317CF +:201E60001886703A80C7883A18800117814002179009883A10800054188001153140021512 +:201E680029800315000CBB8080C00204003FAA060080010410C0052E0080050410C078368E +:201E7000198016C4300490FA003FBC068804D1BA11800E04300490FA003FB80600807FC4E8 +:201E78001140BB362806D0FA573FFE0400800044180890FA1807D0BAE1C001175909883A84 +:201E80002140021710C4983A8100031581400215388EB03A2C00031524000215E1C00115CB +:201E88004807883A4800CD161807D0BA0080004410C8983A3900443621C4703A10000A1E6D +:201E90002109883A00BFFF044884703A3906703A124001041800041E2109883A3904703AC1 +:201E98004A400104103FFC26480490FA4819883A023FFF04589B883A6807883A014003C4FF +:201EA0001C0003171C00041E0000A7063000AB0E840003171C00A426808001171204703ABC +:201EA800144DC83A29BFF90E8100031780C00217894000548445883A20C002151900031504 +:201EB000814001151187883A3100005450800315508002151980001511000115128002150F +:201EB800128003159009883A000CBB8080C00204003F59068109883A2080011780C002177D +:201EC00081400317108000542080011528C00215194003159009883A000CBB8080C0020435 +:201EC800003F4D068080020414000317143F911E1A400084003F730688C000548445883A75 +:201ED00080C00115003FDF06E400021700BFFF0480C00117802D883A18AA703AAC4016364E +:201ED800AC49C83A008003C41100130E888000548447883A808001152080005418800115D9 +:201EE000E0C002159009883A000CBB8080C00204003F310639C00117573FFE04003FA0063F +:201EE8000080150410C067368804D33A11801B84300490FA003F4106D0A6FD17D0E007176F +:201EF000053FFFC41080040488A7883A1D00032698C3FFC400BC000418A6703A9009883A5B +:201EF800980B883A000993401009883A15000426854B883A1029883A11405A2E87000C2650 +:201F0000E400021780C0011700BFFF041884703A144003361449C83A008003C4113FD316F8 +:201F08009009883A000CBB800007883A003F0A0605C00074BDD0CB04B8800017988D883A34 +:201F1000B9800015D0E0071700BFFFC418808E262145C83A3085883AB880001520C001CCEE +:201F180018005F1E000B883AA4C5883A1083FFCC00C400041887C83A28E7883A9009883A29 +:201F2000980B883A000993401007883A00BFFFC418807A261D05C83A9885883A10C00054A6 +:201F2800B8800017A021883AA0C001159885883AB8800015E5000215B7003626018003C4CE +:201F300035404B3600800044A0800115003FCD062808D27A2000371E2808D0FA200690FAF4 +:201F38001AD1883A4180021741805B263080011700FFFF0410C4703A2880022E31800217D6 +:201F400041BFFA1E3200031739C00117820003158180021507000074E702B80434000315EE +:201F480044000215003F3E0663000044608000CC10005D2618C00204003F51068089883A76 +:201F5000003F6D060080550410C020368804D3FA11801DC4300490FA003ED80648C000C44F +:201F5800003F310605C00074BDD0CB04B8800017988D883AB9800015293FB21E2083FFCC34 +:201F6000103FB01EE40002179D45883A1080005480800115B8C00017D0A6FE1710C0012E90 +:201F6800D0E6FE15D0A6FF1710FF962ED0E6FF15003F94060080010411001E362804D1BAED +:201F700011000E04200690FA003FC5060081550410C01D2E01801F840080FC04003EB706E0 +:201F78000080020410CBC83A2169883A003F9E0600BFFE04A93FFD042088703AB10B883A3D +:201F800000C0014428C0021528C00115B08001171080004C2084B03AB0800115313FDD2ECC +:201F8800B14002049009883A0006C800E4000217003FD8060080050411001536210016C41F +:201F9000200690FA003FA6068804D4BA11801F04300490FA003E99062009D0BA01400074C5 +:201F98002942B80400C00044288001171906983A10C4B03A28800115003FA3060027883A00 +:201FA00000C00044003F8606D1200715003F730600801504110019362804D33A11001B84AB +:201FA800200690FA003F8E06480B883A6807883A288000CC18FFFE04297FFFC4100015260D +:201FB0001880021710FFFA262109883A393F1E36203F1D2621C4703A100002266013883ADB +:201FB800003EE1062109883A3904703A63000104103FFC266013883A003EDB06008055040B +:201FC000110008362804D3FA11001DC4200690FA003F73060104303A388E703AE1C00115C9 +:201FC800003FE906008155041100032E01001F8400C0FC04003F6A062804D4BA11001F04AE +:201FD000200690FA003F6606008000C429403FCC2007883A1180022E2084703A10000B26A5 +:201FD800313FFFC43000051E00002C06213FFFC400BFFFC418C000442080282618800003E7 +:201FE00028BFFA1E1805883AF800283A0011883A0007883A01C001044004923A18C000441B +:201FE8001151883A19FFFC1E02BFBFF452BFBFC4026020744A60200402C000C4208000177A +:201FF00031BFFF04200F883A1204F03A1287883A1A46703A0084303A10C4703A10000B269B +:201FF8002080000328800F262080004321C0004428800C262080008321C000842880092608 +:20200000208000C321C000C4288006262100010459BFEA362007883A003FD1060005883AC0 +:20200800F800283A3805883AF800283A01C003C42007883A3980032E2904B03A108000CC37 +:20201000100009263000062630CD883A28800003294000441880000518C0004430FFFB1EFD +:202018002005883AF800283A3811883A200F883A28C0001731BFFC0438C0001528800117AF +:202020003880011528C0021738C0021528800317294004043880031539C0040441BFF43694 +:20202800008000C41180072E1007883A2880001731BFFF04294001043880001539C00104CA +:2020300019BFFA363807883A003FDE062807883A2011883A29000C2E298F883A21C00A2E8A +:20203800300007262187883A198DC83A39FFFFC43880000318FFFFC41880000519BFFB1EFB +:202040002005883AF800283A01C003C439800A36303FFB26400F883A320D883A2880000371 +:20204800294000443880000539C0004439BFFB1E2005883AF800283A1904B03A108000CC1C +:20205000103FF31E3811883A180B883A200F883A28C0001731BFFC0438C000152880011773 +:202058003880011528C0021738C0021528800317294004043880031539C0040441BFF4365C +:20206000008000C41180072E1007883A2880001731BFFF04294001043880001539C0010492 +:2020680019BFFA363811883A003FD906008000C429403FCC2007883A1180022E2084703A77 +:2020700010000826300005262805883A30CD883A1880000518C0004419BFFD1E2005883A76 +:20207800F800283A2804923A020003C4200F883A2884B03A1006943A10C6B03A41800A2E09 +:202080004005883A31BFFC0438C0001538C0011538C0021538C0031539C0040411BFF9360F +:20208800008000C41180052E31BFFF04008000C438C0001539C0010411BFFB363807883AEC +:20209000003FE0062800082628800117210013171085883A1085883A1105883A10C000173D +:2020980028C0001511400015F800283A20BFFFEC100014260007883A20BFC02C1000021E93 +:2020A0002008923A18C0020420BC002C1000021E2008913A18C0010420B0002C1000031E19 +:2020A8002105883A18C000841089883A200003162090002C1000062618C000441805883A2D +:2020B000F800283A2008943A00C00404003FEA0600C008041805883AF800283A20C00017CD +:2020B800188001CC10000A261880004C1005003A100021261880008C1000251E1804D0BABC +:2020C00001400084208000152805883AF800283A18BFFFCC10001526000B883A18803FCCE0 +:2020C8001000021E1806D23A29400204188003CC1000021E1806D13A29400104188000CC9D +:2020D0001000021E1806D0BA294000841880004C1000031E1806D07A18000A2629400044B9 +:2020D8002805883A20C00015F800283A1806D43A01400404003FE906000B883A2805883A4B +:2020E000F800283A014008042805883AF800283A1804D07A0140004420800015003FDA0631 +:2020E8002080041728C0041710CFC83A38000C1E18C5883A1085883A10C0050421000504DE +:2020F00028CB883A2085883A10BFFF04297FFF041180001728C0001730C0031E20BFFA3670 +:2020F8003805883AF800283A30C0033601C000443805883AF800283A01FFFFC4003FF806E8 +:20210000295FFC2C013F3034290B883A0145C83A1007D53A000D883A0140040E280F883AEC +:202108003807883A3005883AF800283A008004C4193FFB0410C00C0E008007C41107C83A77 +:202110000080078401400044110002160080004410CA983A000F883A280D883A3807883ABD +:202118003005883AF800283A0080023410CFD83A000D883A3005883A3807883AF800283A8E +:2021200020800417DEFFF904DD0004151085883A250005041085883ADC000015A0A1883A44 +:20212800DD400515857FFF17DC400115DFC00615A809883A2823883ADCC00315DC800215B3 +:20213000000826C0100B883A008008041145C83A888000150080028480FFFF0411401416C0 +:20213800008002C41149C83AA0C02736000D883A28800544A906D83AA884983A1CCFFC348E +:2021400011A4B03A9005883A9807883ADFC00617DD400517DD000417DCC00317DC80021710 +:20214800DC400117DC000017DEC00704F800283AA0C00E36293FFD44000D883A20000F26DC +:2021500000800804110BC83AA0C01236000F883AA904983A3146D83A3108983A108FFC346A +:2021580018A6B03A3924B03A003FE606293FFD4481BFFE1780FFFE04203FF11EACCFFC34B5 +:202160003025883A003FDF0618BFFF17110CD83A003FD70618BFFF17114ED83A003FEC065D +:20216800DEFFF904DC4002152823883AD80B883ADFC00615DD000515DCC00415DC800315BE +:202170002025883A000848008809883AD94001041027883A1829883A000848008900041797 +:2021780091C00417D9800117180B883A390FC83A1009883AD8800017380E917A2011883AAD +:202180001185C83A11C5883A1006953A2813883A00800D0E1D29883AA00B883A480F883A04 +:202188009809883A400D883A000B5E80DFC00617DD000517DCC00417DC800317DC400217C5 +:20219000DEC00704F800283A28D3C83A003FF206DEFFFE04008005C4DC000015DFC001152A +:202198002021883A11000C16200490FA00C0007418C1170410C5883A1240011712000017F1 +:2021A0004807883A4005883ADFC00117DC000017DEC00204F800283A0011883A024FFC340B +:2021A8000005883A00D00934480B883A4009883A180F883A100D883A000B2240843FFFC468 +:2021B0001011883A1813883A803FF51E4005883A4807883ADFC00117DC000017DEC0020407 +:2021B800F800283A297FFFC430800417280BD17A318005041085883A294B883A294B883A7C +:2021C0001085883A290B883A3087883A2940010430C0052E30800017318001042080001576 +:2021C8002100010430FFFB362140032E2000001521000104217FFD36F800283A208004179C +:2021D0002807D17A2100050410C00D0E1085883A1085883A208D883A2180182E30BFFF1757 +:2021D80030FFFF041000041E20C0142E18FFFF0418800017103FFC2600800044F800283A09 +:2021E00018800A0E294007CC2800082618C5883A1085883A208D883A30C000171944D83AC2 +:2021E8001144983A18BFF41E003FEB0618C5883A1085883A208D883A003FE7060005883A3F +:2021F000F800283A20C01317DEFFFB04DCC00315DC800215DFC004152825883ADC4001156F +:2021F800DC0000152027883A018004040140010418001726014000449485883A2CA2983AA9 +:202200001085883A10C7883A1C0000178C4D883A318D883A9809883A3180050480001226AB +:20220800808000171880001580000415800003158005883ADFC00417DCC00317DC80021795 +:20221000DC400117DC000017DEC00504F800283A0009C2401007883A0021883A988013157F +:20221800103FE41E003FF2060009C240103FF0261021883A1480011514400215003FEA0677 +:20222000DEFFF504DCC0051504C00044DC0002152821883A980B883ADDC00915DD80081572 +:20222800DD400715DD000615DC800415DC400315DFC00A153023883A382D883ADDC00B1703 +:2022300000087C401025883A00A0003410BFFFC48888703A202AD53A0080043410BFFFC410 +:202238008886703AA829003A800B883AD8C0011594000504A000021E18C00434D8C00115AD +:2022400028002726D809883AD940001500082DC0100D883A10003526D8C0011700800804BD +:202248001185C83AD90000171886983A1906B03A90C00515D8C001171986D83AD8C00115FC +:20225000180B003A00800084114BC83A80C0011591400415A0001A1E3545883A10BEF34456 +:2022580000C00D44B08000151987C83AB8C000159005883ADFC00A17DDC00917DD80081791 +:20226000DD400717DD000617DCC00517DC800417DC400317DC000217DEC00B04F800283AC8 +:20226800D900010400082DC011800804D880011794C00415980B883A90800515A03FE6268F +:202270002945883A1085883A1405883A113FFF1730FEF3842820917AB0C00015000826C01B +:2022780080A1C83ABC000015003FE106D880001790800515D8C00117003FD106DEFFFB04F1 +:20228000DC0000152821883ADC800215300B883A2025883A8009883ADC400115DFC0041596 +:20228800DCC003153023883A00083A0010004226100050160027883A814001179009883A20 +:2022900000087C401019883A8280041788800417818005045287883A1085883A18C7883AA2 +:202298001085883A8A00050464C0031530DB883A4097883A61C005040013883A3100001753 +:2022A000414000174200010420BFFFCC28FFFFCC10C5C83A1245883A2008D43A280AD43A3D +:2022A8001007D43A3880000D2149C83A20C9883A3900008D3180010439C001042013D43A5A +:2022B00042FFEE3633400C2E308000173180010410FFFFCC1A47883A1004D43A1809D43A31 +:2022B80038C0000D1105883A3880008D1013D43A39C00104337FF43638BFFF1738FFFF0492 +:2022C0001000041E18FFFF041880001752BFFFC4103FFC266005883A62800415DFC00417E2 +:2022C800DCC00317DC800217DC400117DC000017DEC00504F800283A9009883A000B883A7B +:2022D00000087C401019883A00800044608004156005883A60000515DFC00417DCC0031771 +:2022D800DC800217DC400117DC000017DEC00504F800283A880D883A04C000448023883A85 +:2022E0003021883A003FAC06DEFFF90428800417DC0000153021D17A28C0021710800044DB +:2022E800DC40011580A3883ADD400515DD000415DC800215DFC006152825883ADCC00315A2 +:2022F0003029883A202B883A294001171C40030E18C7883A294000441C7FFD16A809883A49 +:2022F80000087C401027883A114005040400090E2805883A0007883A18C00044100000159B +:202300001080010480FFFC1E8405883A1085883A288B883A9080041791000504A18007CCBF +:202308001085883A1085883A208F883A30001E26008008041191C83A0007883A2080001772 +:202310001184983A1884B03A2880001520C0001721000104294001041A06D83A21FFF736F9 +:2023180028C00015180001268C40004488BFFFC498800415A809883A900B883A00082440E2 +:202320009805883ADFC00617DD400517DD000417DCC00317DC800217DC400117DC000017FF +:20232800DEC00704F800283A2080001721000104288000152940010421FFEC2E2080001799 +:2023300021000104288000152940010421FFF636003FE606DEFFF004DC800815DC40071543 +:202338002C80041734400417DCC00915DC000615DFC00F15DF000E15DDC00D15DD800C157C +:20234000DD400B15DD000A152821883A3027883A9440040E8825883A2C4004172827883A33 +:202348003021883A808002179447883AD8C004158140011710C0010E2940004400087C40D2 +:20235000D8800515D9000417D8C005172105883A1085883A190005042085883AD88003151B +:202358002080052E2005883AD8C00317100000151080010410FFFC368C45883A9487883A8E +:202360009DC005041085883A8400050418C7883AB885883ADC000015D880021580F9883AD8 +:20236800B880432ED9000115B9000017253FFFCCA0001A26DCC00017DC800117002B883ACA +:202370009C40001794000017A009883A897FFFCC0002C3C0880AD43A80FFFFCCA8C7883AD1 +:20237800A009883A10E3883A8020D43A0002C3C08806D43A1405883A9CC001041887883AB9 +:2023800090C0008D9440000D182AD43A948001049F3FEB3695400015B9000017202AD43A05 +:20238800A8001C26D9000117DD000017002D883A24C000172025883A9823883AA40000173D +:20239000A809883AA5000104817FFFCC0002C3C08806D43A800AD43A94C0000DB0C7883AF2 +:2023980010E1883A9400008DA809883A948001040002C3C0944000178020D43A88FFFFCC55 +:2023A00010C5883A80A7883A982CD43AA73FEB3694C00015D8800217BDC00104B880042EFE +:2023A800D8C0011718C00104D8C00115003FBE06D900041701000C0ED8C0031718BFFF1729 +:2023B00018FFFF041000032600000706188000171000051ED900041718FFFF04213FFFC49A +:2023B800D9000415203FF91ED8800417D8C00517188004151805883ADFC00F17DF000E171D +:2023C000DDC00D17DD800C17DD400B17DD000A17DCC00917DC800817DC400717DC00061715 +:2023C800DEC01004F800283ADEFFFD04DC00001504000044DC8001152825883A800B883A04 +:2023D000DFC0021500087C401400041514800515DFC00217DC800117DC000017DEC00304D4 +:2023D800F800283ADEFFF604DD8006152D800417DF000815DDC00715DD400515DD00041592 +:2023E000DCC00315DC800215DFC00915DC400115DC000015282F883A2039883A302B883A85 +:2023E8003829883A2C8005040027883A94400017A80B883A9CC00044893FFFCC0002C3C0FC +:2023F0008808D43A1521883AA80B883A0002C3C08008D43A843FFFCC1105883A1006943A5D +:2023F8001028D43A1C07883A90C00015948001049DBFEE16A0000826B8800217B080130E4C +:20240000B585883A1085883A15C5883AB0C0004415000515B8C00415B805883ADFC009171B +:20240800DF000817DDC00717DD800617DD400517DD000417DCC00317DC800217DC400117F1 +:20241000DC000017DEC00A04F800283AB9400117E009883A2940004400087C40B980041732 +:20241800B940030411000304318D883A318D883A318002041023883A000802C0B80B883A91 +:20242000E009883A00082440882F883A003FDC06DEFFFA04308000CCDD000415DCC00315EA +:20242800DC000015DFC00515DC800215DC4001153021883A2027883A2829883A10002B1EBD +:202430008025D0BA90001B269C0012178000081E00003006800B883A800D883A9809883AEC +:20243800900014268080001710001B261021883A9080004C1005003A9025D07A800D883A66 +:202440009809883AA00B883A103FF21E0008CD40A00B883A9809883A1023883A0008244007 +:202448008829883A800B883A800D883A9809883A903FEC1EA005883ADFC00517DD0004170F +:20245000DCC00317DC800217DC400117DC000017DEC00604F800283A0008CD4080800015EE +:202458001021883A10000015003FE1061085883A00C0007418C15D041085883A10C5883A73 +:2024600011BFFF17000F883A0008F6401029883A003FCB069809883A01409C440008F2805E +:20246800988012151021883A10000015003FD006DEFFF904DCC00315DC8002152827883AD6 +:202470002025883A0140024439000204DD000415DC400115DFC00615DD400515DC00001575 +:202478003829883A3023883A0002B6C000C000441880350E000B883A18C7883A294000449A +:2024800018BFFD169009883A00087C401011883AD880071700C00044018002444080051535 +:2024880040C004153440260E3021883A99AB883A9C05883A11C00007400B883A9009883AB7 +:2024900039FFF404018002840008F640840000441011883A8C3FF61EAC45883A117FFE04E8 +:20249800880D883A35000C0EA185C83A2821883A28A3883A81C00007400B883A9009883A0E +:2024A00039FFF404018002840008F640840000441011883A847FF71E4005883ADFC0061721 +:2024A800DD400517DD000417DCC00317DC800217DC400117DC000017DEC00704F800283A8E +:2024B00099400284003FE706000B883A003FCD06DEFFF404DD800815DC800415DC400315AA +:2024B800DFC00B15DF000A15DDC00915DD400715DD000615DCC00515DC0002152825883AA3 +:2024C0003023883A202D883A2800C926000CB980943FFE0488C002C40080058482000117F6 +:2024C80010C01B2E00BFFE04188E703A3839883A38001A16E4401936013FFF044126703A68 +:2024D00099C02616802B883A9829883A84000204A80F883AA70DC83A008003C41180C136DF +:2024D80038800117A549883A1080004CA084B03A3880011520C0011718C0005420C0011592 +:2024E000B009883A000CBB808023883A0000060601C004043839883AE47FE72E00800304AE +:2024E8000023883AB08000158805883ADFC00B17DF000A17DDC00917DD800817DD40071726 +:2024F000DD000617DCC00517DC800417DC400317DC000217DEC00C04F800283A008000747C +:2024F8001082B8041240021784CD883A802B883A3240B9263140011700BFFF842884703A19 +:202500001185883A10C0011718C0004C1807003A1800A3262908703A9929883AA1C0A30EAC +:202508004080004C1000551E8080001780AFC83AB8C0011700BFFF041884703A30002E26C0 +:202510003240B92698A9883A2509883AD900001521C02A163080031730C002170140090437 +:2025180099BFFF041880031510C00215B9000317B8800217B82B883ABC000204208002156F +:20252000110003152980E436008004C49009883A8011883A11800F2E90800017BA00040402 +:2025280091000204B880021590C00117008006C4B8C003151180072E90C00217BA00060478 +:2025300091000404B8C0041590800317B88005153140E72620800017DD000017B80F883A33 +:202538004080001520C0011740C001152080021740800215003F970698A9883AA1C01F169B +:20254000B8C00317B880021799BFFF0401400904B82B883A1880021510C00315BC000204F1 +:202548002980C336008004C49009883A8011883A11800F2E90800017BA000404910002048D +:20255000B880021590C00117008006C4B8C003151180072E90C00217BA000604910004044E +:20255800B8C0041590800317B88005153140C72620800017B80F883A003FD906880B883A45 +:20256000B009883A000780801023883A100025268080011700FFFF84893FFE0410C4703AA7 +:202568008085883A2080952699BFFF0401C0090439804536008004C49009883A880B883ADC +:2025700011800F2E9080001789400204910002048880001590C00117008006C488C00115C3 +:202578001180072E90C00217894004049100040488C00215908003178880031531C0912659 +:20258000208000172880001520C0011728C001152080021728800215900B883AB009883A81 +:202588000006C800B009883A000CBB80003F5E06300B883ADFC00B17DF000A17DDC0091785 +:20259000DD800817DD400717DD000617DCC00517DC800417DC400317DC000217DEC00C0472 +:202598000007808138800117E54B883A310000541080004C1704B03A3880011529000115E6 +:2025A0002987883A1880011729400204B009883A10800054188001150006C800003F380632 +:2025A800000D883A0009883A003F5D0630C0021730800317800F883A8400020410C0021542 +:2025B00018800315003F23068809883A900B883A00080CC0003FD00630800117E0C00404EA +:2025B8001108703A9905883A10FF4D161705C83A870B883A108000542880011580C0011702 +:2025C000008000741082B804B009883A18C0004CE0C6B03A1140021580C00115000CBB8085 +:2025C80084400204003F200698A9883A2509883AE0800404D900011520BF7016B8C0031783 +:2025D000B880021799BFFF04014009041880021510C00315BC40020429804136008004C4F0 +:2025D8009009883A880F883A11800F2E90800017B9C0040491000204B880021590C001176B +:2025E000008006C4B8C003151180072E90C00217B9C0060491000404B8C0041590800317FB +:2025E800B880051531404026208000173880001520C0011738C00115208002173880021598 +:2025F000D8C00117BF0B883AB009883A1F05C83A1080005428800115B8C0011700800074C8 +:2025F8001082B8041140021518C0004CE0C6B03AB8C00115000CBB80003EEB06208001179D +:2026000000FFFF04800F883A10C4703A98A9883A84000204003ECF06900B883A8009883AA1 +:2026080000080CC0DD000017B80F883A003EC906900B883A8009883A00080CC0B80F883A4F +:20261000003EC40690C00417894006049100060488C004159080051788800515003F68066D +:20261800900B883A8809883A00080CC0003FD40690C0041791000604BA000804B8C00615A6 +:2026200090800517B8800715003F120690C0041791000604BA000804B8C006159080051738 +:20262800B8800715003F320690C0041791000604B9C00804B8C0061590800517B880071529 +:20263000003FB906200D883A0109C83A2188B03A2008D7FA00A0003410BFFFC41144703AA0 +:202638002088B03A009FFC341105C83A0087C83A10C4B03A1004D7FA00C000441885C83A3A +:20264000F800283A200D883A0109C83A2188B03A2008D7FA00A0003410BFFFC41144703A34 +:202648002088B03A009FFC341105C83A1004D7FAF800283ADEFFFD04DC0000150400007473 +:20265000840F8404DC400115800000152023883A2809883ADFC00215000CDD401007883AD8 +:2026580000BFFFC4188006261805883ADFC00217DC400117DC000017DEC00304F800283A5F +:2026600080800017103FF826888000151805883ADFC00217DC400117DC000017DEC0030456 +:20266800F800283A2940038F0009CEC1DEFFFE04DC0000152821883A2940038FDFC00115DA +:202670000009F6401007883A00BFFFC4188009268080030B80C01415108400148080030DBA +:202678001805883ADFC00117DC000017DEC00204F800283A8080030B10BBFFCC8080030D07 +:202680001805883ADFC00117DC000017DEC00204F800283A2880030BDEFFFB04DCC003156D +:202688001080400CDC800215DC400115DC0000153027883A3825883ADFC004152821883AC5 +:20269000000D883A01C000842023883A100002262940038F0009F6408080030B8140038F3E +:202698008809883A10BBFFCC980D883A900F883A8080030DDFC00417DCC00317DC8002177C +:2026A000DC400117DC000017DEC005040009BAC1DEFFFE04DC0000152821883A2940038FF2 +:2026A800DFC001150009FDC01007883A100008168080141710C5883A808014151805883AC6 +:2026B000DFC00117DC000017DEC00204F800283A8080030B10BBFFCC8080030D1805883ACF +:2026B800DFC00117DC000017DEC00204F800283A2144B03A108000CC10001D1E200F883A73 +:2026C0002880001721000017280D883A2080161E023FBFF4423FBFC42207883A0160207460 +:2026C800296020041946703A0104303A10C4703A10001C1E4013883A2811883A00000106EE +:2026D0001800181E39C001043900001731800104314000172245883A1204703A0106303AB6 +:2026D8001886703A217FF6263809883A300B883A20C000071800051E00000606210000444B +:2026E00020C0000729400044180002262880000718BFFA2620C00003288000031885C83A33 +:2026E800F800283A0005883AF800283ADEFFFD04DC00001504000074840F8404DC400115C3 +:2026F000800000152023883A2809883A300B883A380D883ADFC00215000CEC001007883AB2 +:2026F80000BFFFC4188006261805883ADFC00217DC400117DC000017DEC00304F800283ABF +:2027000080800017103FF826888000151805883ADFC00217DC400117DC000017DEC00304B5 +:20270800F800283ADEFFFE04DC4000152023883A2809883A300B883ADFC001150002C3C018 +:20271000100B883A8809883A000780801023883A01C0090410000D2610FFFF171009883A6C +:2027180000BFFF041886703A1887883A180D883A000B883A38C01736008004C410C00836E7 +:202720002000021520000015200001158805883ADFC00117DC400017DEC00204F800283AC0 +:20272800008006C488000015880001158900020410FFF32E8800021588000315890004047D +:2027300019FFEF1E890006048800041588000515003FEB0600081AC08805883ADFC0011776 +:20273800DC400017DEC00204F800283ADEFFFD04DC00001504000074840F8404DC400115BC +:20274000800000152023883A2809883ADFC00215000C50401007883A00BFFFC4188006267B +:202748001805883ADFC00217DC400117DC000017DEC00304F800283A80800017103FF82630 +:20275000888000151805883ADFC00217DC400117DC000017DEC00304F800283ADEFFFC04B2 +:20275800DC400115DC000015DFC00315DC8002152821883A2023883A2800292600068B807C +:202760008800022688800E1710002D268080030F100022268809883A800B883A00066300A6 +:202768001025883A80800B1710000426814007178809883A103EE83A10002A168080030BFE +:202770001080200C1000231E81400C172800052680801004288002268809883A0006C80000 +:2027780080000C1581401117280003268809883A0006C800800011158000030D00068BC0BE +:202780009005883ADFC00317DC800217DC400117DC000017DEC00404F800283A00068BC03C +:202788000025883A9005883ADFC00317DC800217DC400117DC000017DEC00404F800283A9E +:202790008809883A00068C808080030F103FD11E003FF206814004178809883A0006C80040 +:20279800003FD90604BFFFC4003FD4060080007410888604200B883A110000170009D5C19A +:2027A000DEFFFD04DC00001504000074840F8404DC400115800000152023883A2809883AF8 +:2027A800300B883ADFC00215000C69001007883A00BFFFC4188006261805883ADFC0021733 +:2027B000DC400117DC000017DEC00304F800283A80800017103FF826888000151805883A63 +:2027B800DFC00217DC400117DC000017DEC00304F800283ADEFFFD04DC00001504000074DC +:2027C000840F8404DC400115800000152023883A2809883ADFC00215000C7C801007883A88 +:2027C80000BFFFC4188006261805883ADFC00217DC400117DC000017DEC00304F800283AEE +:2027D00080800017103FF826888000151805883ADFC00217DC400117DC000017DEC00304E5 +:2027D800F800283ADEFFFD04DC00001504000074840F8404DC400115800000152023883A59 +:2027E0002809883A300B883A380D883ADFC00215000C9D801007883A00BFFFC418800626E4 +:2027E8001805883ADFC00217DC400117DC000017DEC00304F800283A80800017103FF82690 +:2027F000888000151805883ADFC00217DC400117DC000017DEC00304F800283ADEFFFD0411 +:2027F800DC00001504000074840F8404DC400115800000152023883A2809883A300B883A81 +:20280000380D883ADFC00215000CBD801007883A00BFFFC4188006261805883ADFC00217FC +:20280800DC400117DC000017DEC00304F800283A80800017103FF826888000151805883A0A +:20281000DFC00217DC400117DC000017DEC00304F800283ADEFFF1040015883A2005883A3A +:202818003011883ADF000D15DD400A15DCC00815DFC00E15DDC00C15DD800B15DD000915AF +:20282000DC800715DC400615DC000515DA8003154027883A1039883A282B883ADA800415C5 +:202828003800401E2A0065364000B52600BFFFD414C0AD3600803FC414C15E36000B883A18 +:202830000005883A9884D83A0100007421016504018008041105883A10C0000328C7883AAA +:2028380030E9C83AA0010A1E982ED43AACEBC83A9DBFFFCC05000044A809883AB80B883AC7 +:202840000002C2C0100B883AB009883A1021883A0002C3C0A809883AB80B883A1023883A37 +:202848000002C3401004943AE006D43A10C4B03A1440042E14C5883A843FFFC414C0013625 +:2028500014415C361463C83A8809883AB80B883A0002C2C0100B883AB009883A102B883A57 +:202858000002C3C08809883AB80B883A1025883A0002C3401004943AE0FFFFCC10C4B03ABD +:202860001480042E9885883AAD7FFFC414C0013614813C368004943AA009883AA884B03ADF +:2028680000001506380D883A29C06C3600BFFFD411C0643600803FC411C11836000B883A36 +:202870000005883A3084D83A010000742101650401C008041105883A10C0000328C7883A92 +:2028780038EDC83AB000731E35400136E4C05B36008000440009883AD8800315D9400317C5 +:202880002007883AD90004152805883ADFC00E17DF000D17DDC00C17DD800B17DD400A172A +:20288800DD000917DCC00817DC800717DC400617DC000517DEC00F04F800283A00BFFFD430 +:202890001200563600803FC412010036000B883A0005883A9884D83A0100007421016504FC +:20289800018008041105883A10C0000328C7883A30CBC83A280006263145C83AE084D83AF8 +:2028A000A946983AE178983A9966983A18AAB03A982ED43AA809883A9CBFFFCCB80B883ABD +:2028A8000002C2C0100B883A9009883A1021883A0002C3C0A809883AB80B883A1023883AEF +:2028B0000002C3401004943AE006D43A10C4B03A1440042E14C5883A843FFFC414C00136BD +:2028B8001440EA361463C83A8809883AB80B883A0002C2C0100B883A9009883A102B883A82 +:2028C0000002C3C08809883AB80B883A1025883A0002C3401004943AE0FFFFCC10C4B03A55 +:2028C8001480042E9885883AAD7FFFC414C001361480D9368004943A0009883AA884B03A7B +:2028D000003FAD060080403410BFFFC411C0B636014004042805883A003F9A060005883AD5 +:2028D8000009883A003FA4060080403410BFFFC414C0B336014004042805883A003F51061B +:2028E00001000044000B883A0002C2C01027883A00BFFFD414FFF436003F460600804034FB +:2028E80010BFFFC41200AC36014004042805883A003FA8063D85C83A3588983A9886D83AA2 +:2028F000A8A2D83AE084D83A20EEB03AB824D43AAD86983A8809883A900B883A1886B03AD7 +:2028F800D8C00115BC3FFFCC0002C2C0100B883A8009883A1029883A0002C3C0900B883AC3 +:202900008809883A102B883A0002C340D94001171004943A9DA6983A2806D43A10C4B03A40 +:202908001540032E15C5883AA53FFFC415C0912E1563C83A8809883A900B883A0002C2C0A4 +:20291000100B883A8009883A102B883A0002C3C08809883A900B883A1021883A0002C34055 +:20291800DA8001171004943A50FFFFCC10C6B03A1C00032E1DC7883AAD7FFFC41DC0792E0B +:20292000A004943A982ED43A9CFFFFCCA8A4B03A947FFFCC902AD43A8809883A980B883A57 +:202928001C21C83A0002C3C08809883AB80B883A1029883A0002C3C0980B883AA809883A9B +:202930001023883A0002C3C0A809883AB80B883A1027883A0002C3C01009883AA004D43A0A +:202938008CE3883A1447883A1CC0022E008000742089883A1804D43A2085883A80804436BB +:2029400080803E269005883A0009883A003F3A069D26983A3505C83AA8A2D83A982ED43A71 +:20294800E084D83AAD06983A8809883AB80B883A1886B03AD8C000159DBFFFCC0002C2C0BC +:20295000100B883AB009883AD88002150002C3C08809883AB80B883A102B883A0002C34041 +:20295800D90000171004943A2006D43A10C4B03A1540052ED940021714C5883A297FFFC4DB +:20296000D940021514C0462E1563C83A8809883AB80B883A0002C2C0100B883AB009883AB1 +:202968001025883A0002C3C08809883AB80B883A1021883A0002C340DA8000171004943AB0 +:2029700050FFFFCC10C6B03A1C00062E1CC7883A94BFFFC41CC003361C00022E94BFFFC4EB +:202978001CC7883AD9000217E538983A1C2BC83A2004943A90A8B03A003EBF061804943A6F +:20298000E588983AA0FFFFCC10C5883A20BFBD2E90BFFFC40009883A003EF70601400204CE +:202988002805883A003EE706014006042805883A003EE406014002042805883A003EA10698 +:20299000014006042805883A003E9E06014002042805883A003EFF06014006042805883A58 +:20299800003EFC061C3F862E1DC7883AAD7FFFC4003F8306157F6E2EA53FFFC415C5883A00 +:2029A000003F6B06AD7FFFC4003EC206843FFFC414C5883A003F1306AD7FFFC4003F2506A0 +:2029A800157FB92E297FFFC414C5883AD9400215003FB506843FFFC414C5883A003EA1065E +:2029B000DEFFF0043011883A000D883ADD400B15DCC00915DC000615DFC00F15DF000E15B1 +:2029B800DDC00D15DD800C15DD000A15DC800815DC4007152817883AD98004154027883A79 +:2029C000D98005152021883A282B883A38002C1E2A00563640009A2600BFFFD414C0923606 +:2029C80000803FC414C15C36000B883A0005883A9884D83A010000742101650401800804B6 +:2029D0001105883A10C0000328C7883A30E5C83A9000A41E982ED43AACEBC83A9D3FFFCC0E +:2029D800002D883AA809883AB80B883A0002C2C0100B883AA009883A0002C3C0A809883A34 +:2029E000B80B883A1023883A0002C3401004943A8006D43A10C4B03A1440032E14C5883A04 +:2029E80014C00136144158361463C83A8809883AB80B883A0002C2C0A009883A0000530648 +:2029F000380D883A29C0132ED9000415D9400515D94004175813883A2811883A4005883A0E +:2029F8004807883ADFC00F17DF000E17DDC00D17DD800C17DD400B17DD000A17DCC00917AB +:202A0000DC800817DC400717DC000617DEC01004F800283A00BFFFD411C0663600803FC47A +:202A080011C12036000B883A0005883A3084D83A010000742101650401C008041105883A87 +:202A100010C0000328C7883A38E5C83A9000941E35405E3684C05D2E8011883AA813883A19 +:202A1800DC000415DD400515003FDC0600BFFFD412004A3600803FC412010D36000B883A87 +:202A20000005883A9884D83A0100007421016504018008041105883A10C0000328C7883AB8 +:202A280030C7C83A1800DC1E002D883A982ED43AA809883A9CBFFFCCB80B883A0002C2C01E +:202A3000100B883A9009883A0002C3C0A809883AB80B883A1023883A0002C3401004943AF5 +:202A38008006D43A10C4B03A1440032E14C5883A14C00136144102361463C83A8809883AA8 +:202A4000B80B883A0002C2C09009883A100B883A0002C3C08809883AB80B883A102B883ADB +:202A48000002C3401004943A80FFFFCC10C4B03A1540042E14C5883A14C002361540012ECD +:202A500014C5883A1545C83A1584D83A0013883AD8800415D8C004170005883AD880051592 +:202A58001811883A003F9D060080403410BFFFC414C0C636014004042805883A003F6C0652 +:202A600001000044000B883A0002C2C01027883A00BFFFD414FFF436003F6106008040345E +:202A680010BFFFC41200C536014004042805883A003FB4060080403410BFFFC411C0C2362F +:202A7000014004042805883A003F980684C9C83A8105803AA987C83A18ABC83A2021883AA8 +:202A7800003F9D069CA6983A3485C83AA8A2D83A982ED43AAC86983A8084D83A8809883AF0 +:202A8000B80B883A18B8B03A9D3FFFCC0002C2C0100B883AA009883A0002C3C08809883AAC +:202A8800B80B883A102B883A0002C3401004943AE006D43A902D883A10C4B03A1540022E0F +:202A900014C5883A14C0AB2E1563C83A8809883AB80B883A0002C2C0100B883AA009883AC0 +:202A98000002C3C08809883AB80B883A102B883A0002C3401004943AE0FFFFCC10C4B03A75 +:202AA0001540042E14C5883A14C002361540012E14C5883A84A0983A156BC83A003F3106DB +:202AA8003C8FC83A3486983A99C4D83AA9E2D83AAC8C983A18ACB03AB02ED43A81C4D83AAE +:202AB0008809883AB80B883A308CB03AD9C00315D9800215B53FFFCC0002C2C0100B883A47 +:202AB800A009883A1039883A0002C3C08809883AB80B883A102B883A0002C340D900021737 +:202AC0001004943A9CA6983A2006D43A84A0983ADCC0001510C4B03ADC0001151540032EEF +:202AC8001585883AE73FFFC415806E2E1563C83A8809883AB80B883A0002C2C0100B883AC5 +:202AD000A009883A1021883A0002C3C0B80B883A8809883A1029883A0002C340D9400217F9 +:202AD8001004943A28FFFFCC10C4B03A1500032E1585883A843FFFC41580562ED98000179B +:202AE000E022943A302ED43A8462B03A34FFFFCC882AD43A8C7FFFCC8809883A980B883A7E +:202AE8001521C83A0002C3C08809883AB80B883A1029883A0002C3C0980B883AA809883AE1 +:202AF0001023883A0002C3C0A809883AB80B883A1027883A0002C3C0100B883AA004D43A47 +:202AF8008CE3883A1449883A24C0022E00800074288B883A2004D43A2008943AA0FFFFCC5F +:202B0000288D883A20C9883A81800B3681804026818DC83A00000F0630C5C83A182D883AC7 +:202B08008084D83AA8C6983A9DA6983A85A0983A18AAB03A003F1D06D8C0001720C5C83AA7 +:202B10002089803A3587C83A1907C83A80CDC83A1009883AD94001172905C83A2887803A6E +:202B180030C7C83AD98003171484D83A1988983A1C86D83A2088B03A2011883A1813883AEE +:202B2000D9000415D8C00515003ED406014006042805883A003EA606014002042805883A7F +:202B2800003EA306014002042805883A003EDF06014002042805883A003EF2060140060496 +:202B30002805883A003EEF06014006042805883A003ED606153FA92E843FFFC41585883A02 +:202B3800003FA606157F912EE73FFFC41585883A003F8E06157F542E14C5883A003F5206DF +:202B400014C5883A003EFC0614C5883A003EA606D8800117113FC836000D883A003FCD0676 +:202B4800DEFFF804DCC003152027883A2100001700C00044DD400515DD000415DDC00715B5 +:202B5000DD800615DC800215DC400115DC000015282B883A3029883A1900632E28800017BE +:202B58001880812E00C0010420C0DC2610C07E2600C0008410C0672620C07B269DC0021763 +:202B600028C002179C4003172BC00317B8CDC83A9C8004172C0004173009883A300097167C +:202B680000800FC411806B160100A40E35BFF804B000BC168596D83A0019883A0013883AE6 +:202B7000010000440015883AB000BE162590983A000F883A00BFFFC43889883A408B883ABB +:202B780021CD803A314B883A7904703A8146703A10C4B03A10000226024000440015883A6C +:202B80005A5EB03A62A0B03A99400117A880011728806E26280066267C45C83A7889803A08 +:202B88008487C83A1909C83A100D883A200F883A38007716A5C00215A1C00415A0000115BB +:202B9000A1800315A2000317A240041700BFFFC4408B883A2A09803A488D883A01C40034A7 +:202B980039FFFFC4218D883A3980173631C06526A30002174209883A00BFFFC4220F803AFA +:202BA0004A4B883A394F883A2095883A3897883A510D803A6099883A32D7883A0084003416 +:202BA80010BFFFC42011883A3813883AA1000315A1C00415A300021512C0033658BFED1E61 +:202BB00000BFFF8412BFEB2EA2800417008000C400C8003418FFFFC4A2400317A080001551 +:202BB8001A802336A027883A9805883ADDC00717DD800617DD400517DD000417DCC0031706 +:202BC000DC800217DC400117DC000017DEC00804F800283A20FFF41E3100001598800117AE +:202BC8003080011598C0021730C00215988003173080031598C0041730C004159880011709 +:202BD00028C001173027883A10C4703A30800115003FE5061DC026160023883A182F883A57 +:202BD8000025883A003FA806A827883A003FDE0601800044500497FA4808D07A518AD83A24 +:202BE000A20002171108B03A0007883A4984703A208CB03A28CEB03A42000044A027883A52 +:202BE800A1C00415A2000215A1800315003FCE068BC5C83A8889803A9407C83A1909C83A70 +:202BF000100D883A200F883A003F99067C45883A13C9803A8487883A20C9883AA14001158F +:202BF800A5C00215A0800315A1000415003FB606001F883A0021883A003F8306018DC83A38 +:202C0000003F670600BFFF84117FAF36003F98060005883A1189C83A1105803A01CBC83A73 +:202C08002885C83A01800044A1800115A5C00215A1000315A0800415003F8206203F7226D5 +:202C100035BFF804B9AF883AB0003116959AD83A001D883A000F883A010000440011883A8A +:202C1800B00025162594983A0013883A00BFFFC44889883A508B883A224D803A314B883A38 +:202C20008904703A9146703A10C4B03A1000022601C000440011883A69E2B03A7224B03A59 +:202C2800003F59068407883A008007C41185C83A1886983A7996D83A8198D83A1AD6B03A28 +:202C3000003F3E062006D07A008007C41185C83A1890D83A218E983A003F3E06113F821E00 +:202C380028C001179880011710FF7F2604C000749CC16004003F7C062006D07A008007C423 +:202C40001185C83A1894D83A2192983A003FD7069487883A008007C41185C83A1886983A4D +:202C4800899AD83A919CD83A1B5AB03A003FC906DEFFEA04DCC01415DCC004042011883A64 +:202C50002813883ADC401315D809883A980B883ADC400904DFC01515DA400115D9C0031548 +:202C5800DA000015D9800215000C3040D9000204880B883A000C3040D8800A17880B883A03 +:202C60009809883AD9800E041080005CD8800A15000AD2001009883A000BFF00DFC0151797 +:202C6800DCC01417DC401317DEC01604F800283ADEFFEA04DCC01415DCC004042011883A06 +:202C70002813883ADC401315D809883A980B883ADC400904DFC01515DA400115D9C0031528 +:202C7800DA000015D9800215000C3040D9000204880B883A000C3040D9800E049809883AE3 +:202C8000880B883A000AD2001009883A000BFF00DFC01517DCC01417DC401317DEC016048E +:202C8800F800283ADEFFE004DC401815DC4004042011883A2813883ADC001715D809883A09 +:202C9000880B883ADC000904DFC01F15DA400115D9C00315DA000015D9800215DDC01E1503 +:202C9800DD801D15DD401C15DD001B15DCC01A15DC801915000C3040D9000204800B883A35 +:202CA000000C3040D9000417008000441100102ED8C0091710C0062E0080010420800A2680 +:202CA8001880CC2600800084208009261880191ED8C00A17D88005178009883A10C4C03A9A +:202CB000D8800A1500000706008000841880C326D8800517D8C00A178809883A10C4C03AAD +:202CB800D8800515000BFF00DFC01F17DDC01E17DD801D17DD401C17DD001B17DCC01A171C +:202CC000DC801917DC401817DC001717DEC02004F800283ADD800717DC800C17002B883A10 +:202CC8000023883AA80B883AB00D883A880F883ADDC00817DCC00D179009883A000BE4C034 +:202CD000001B883A680F883AB009883A000B883A980D883AB82D883A002F883ADB40161541 +:202CD800D8801315D8C01415DCC01515000BE4C0B00D883A000B883A9009883AB80F883AF6 +:202CE0001021883A1823883A000BE4C08085883A140D803A88C7883A30CD883A1029883AC8 +:202CE800302B883ADA801317DAC01417DB001517DB4016173440612E0009883A5105883A31 +:202CF000128D803A5D07883A30CD883A0021883A044000441025883A3027883A32C0623681 +:202CF80059807A26680B883AB80F883A6009883AB00D883A000BE4C01009883A000F883A80 +:202D00001545883A1111803A19C7883A40C7883A88CB883AD8C006178089883AD8800B1741 +:202D080018C00104240D803A10C7883A2013883AD8800A17D9000517314D883A3015883AA0 +:202D10002088C03A0088003410BFFFC4D9000F15D8C010151180162E1811883A101F883A48 +:202D1800980497FA9016D07A500697FA480CD07A500ED07A12D6B03A00800044198CB03A2C +:202D20004888703A9818D07A001B883A03A000343013883A3815883A4091883A200002267C +:202D28005B64B03A63A6B03A7ABFED36DA0010150084003410BFFFC412801436DA0010176D +:202D3000101F883A4A45883A124D803A5287883A9497883A5C8F803A9CD9883A010000447F +:202D380030CD883A3B0F883A423FFFC41013883A3015883A111AB03A980030165825883A4E +:202D40003827883A7ABFEF2EDA00101500803FC4488E703A008020040007883A0011883ABA +:202D480038801826008000C4D9000E04DA801215D8800E15DA401115003F6A06898021260B +:202D50000009883A5105883A128D803A5D07883A30CD883A0021883A0023883A1025883A83 +:202D58003027883A32FF9E2E008000448089883A240D803A344D883A2021883A3023883A70 +:202D6000003F9806403FE71E010040044904703A10C4B03A103FE31E94C4B03A103FE12610 +:202D680049C5883A1251803A4291883A013FC0041112703A4015883A003FDA066813883A85 +:202D7000003FCE06143F7C36003FDD0612BF852E003FE5060080008420BF351E01000074B0 +:202D780021016004003F3F06DEFFED04DCC01115DCC004042011883A2813883ADC000E150E +:202D8000D809883A980B883ADC000904DFC01215DA400115D9C00315DA000015D98002153C +:202D8800DC801015DC400F15000C3040D9000204800B883A000C3040D9000417008000448E +:202D900011000B2ED94009171140762ED8800517D8C00A170180010410C4F03AD880051588 +:202D980021800226008000842080141E290009269809883A000BFF00DFC01217DCC011172B +:202DA000DC801017DC400F17DC000E17DEC01304F800283A0100007421016004000BFF0039 +:202DA800DFC01217DCC01117DC801017DC400F17DC000E17DEC01304F800283A29805B2680 +:202DB00028802D26D8C00617D8800B17D9C00817DC400D17188BC83AD9800717DC000C17C6 +:202DB800D94006153C40383689C036260015883A001D883A02C40034001F883A003F883AA6 +:202DC00004800F4400000F06601D883A681F883A400D883A100F883A3191883A5808D07A61 +:202DC8004185803A39D3883A28C6B03A1245883A1815883A2017883A400D883A100F883AD4 +:202DD000FC801726580A97FA5006D07AFFC000443C7FF1363411C83A3205803A3C53C83AE9 +:202DD8007298B03A7ADAB03A4885C83A89FFE61E343FE936003FE4069809883AD9800415BE +:202DE000000BFF00DFC01217DCC01117DC801017DC400F17DC000E17DEC01304F800283A68 +:202DE80000803FC47090703A008020040007883A0013883A40800D26DBC00815DB8007153A +:202DF000003FAB06343FC92E3185883A1189803A39C7883A20C9883A297FFFC4100D883AE6 +:202DF800200F883AD9400615003FC006483FF21E010040047104703A10C4B03A103FEE1E7D +:202E000031C4B03A103FEC267205883A1391803A43D1883A013FC004111C703A401F883A09 +:202E0800003FE5068009883A003F92069809883AD8000715D8000815D8000615003F8D064D +:202E1000DEFFEF04DC400F15DC4004042005883A2807883ADC000E15D809883A880B883A9F +:202E1800DC000904D8C00115D8800015D9800215DFC01015D9C00315000C3040D900020456 +:202E2000800B883A000C3040D880041700C00044180D883A1880062ED88009178809883AD4 +:202E2800800B883A1880022E000C43C0100D883A3005883ADFC01017DC400F17DC000E1787 +:202E3000DEC01104F800283ADEFFEF04DC400F15DC4004042005883A2807883ADC000E156A +:202E3800D809883A880B883ADC000904D8C00115D8800015D9800215DFC01015D9C0031599 +:202E4000000C3040D9000204800B883A000C3040D880041700C00044180D883A1880062E24 +:202E4800D88009178809883A800B883A1880022E000C43C0100D883A3005883ADFC01017DF +:202E5000DC400F17DC000E17DEC01104F800283ADEFFEF04DC400F15DC4004042005883AF7 +:202E58002807883ADC000E15D809883A880B883ADC000904D8C00115D8800015D9800215FE +:202E6000DFC01015D9C00315000C3040D9000204800B883A000C3040D880041700C0004442 +:202E680001BFFFC41880062ED88009178809883A800B883A1880022E000C43C0100D883A2D +:202E70003005883ADFC01017DC400F17DC000E17DEC01104F800283ADEFFEF04DC400F1525 +:202E7800DC4004042005883A2807883ADC000E15D809883A880B883ADC000904D8C00115B0 +:202E8000D8800015D9800215DFC01015D9C00315000C3040D9000204800B883A000C3040BC +:202E8800D880041700C0004401BFFFC41880062ED88009178809883A800B883A1880022E84 +:202E9000000C43C0100D883A3005883ADFC01017DC400F17DC000E17DEC01104F800283A27 +:202E9800DEFFEF04DC400F15DC4004042005883A2807883ADC000E15D809883A880B883A17 +:202EA000DC000904D8C00115D8800015D9800215DFC01015D9C00315000C3040D9000204CE +:202EA800800B883A000C3040D880041700C00044180D883A1880062ED88009178809883A4C +:202EB000800B883A1880022E000C43C0100D883A3005883ADFC01017DC400F17DC000E17FF +:202EB800DEC01104F800283A2006D7FADEFFF604008000C4DFC00915DCC00815DC800715ED +:202EC000DC400615DC000515D8800015D8C0011520000F1E00800084D8800015D809883A49 +:202EC800000BFF001009883A180B883A2005883A2807883ADFC00917DCC00817DC80071754 +:202ED000DC400617DC000517DEC00A04F800283A00800F041807003AD88002151800112601 +:202ED8000027883A2025883AD9000315DCC00415000BF70011000744013FE80E10BFFF449E +:202EE00010000C1690A2983A0021883AD8800217DC400415DC0003151105C83AD880021598 +:202EE800003FDE0600A0003420800A260109C83A003FEB069006D07A008007C41105C83A84 +:202EF0001886D83A9922983A9120983A1C62B03A003FEE060009883A01707834003FD30667 +:202EF800DEFFF8042005883A2807883AD809883AD9400204D8C00115D8800015DFC0071571 +:202F0000000C3040D8C00217008000841880051E0007883A1805883ADFC00717DEC00804B6 +:202F0800F800283A0080004410FFF92E0080010418800426D8C00417183FF51600800784EE +:202F100010C0080ED88003171000121E00E0003418FFFFC41805883ADFC00717DEC00804D5 +:202F1800F800283A00800F0410D1C83A40BFF804D9800517D9C00617100008163888D83AA3 +:202F2000D88003172007883A103FE2260107C83A003FE00600E00034003FDE0639C7883AB7 +:202F2800008007C41205C83A1886983A3208D83A1908B03A003FF206DEFFF204DFC00D1593 +:202F3000DDC00C15DD800B15DD400A15DD000915DCC00815DC800715DC400615DC000515B1 +:202F3800D800011520000F1E00800084D8800015D809883A000BFF00DFC00D17DDC00C179D +:202F4000DD800B17DD400A17DD000917DCC00817DC800717DC400617DC000517DEC00E04A1 +:202F4800F800283A008000C400C00F04002F883A202D883AD8800015D8C00215D9000315EB +:202F5000DDC00415000BF7001240074448000B16483FE72610BFFF4410002E16B0A2983A85 +:202F58000021883AD8800217DC400415DC0003151245C83AD8800215003FDD060255C83A99 +:202F600051BFF80430001B16B9A8D83A002B883A000F883A010000440011883A3000251630 +:202F680021A6983A0025883A00BFFFC49089883A988B883A248D803A314B883AB104703A7F +:202F7000B946703A10C4B03A1000022601C000440011883AD9000217A1C4B03AAA06B03AEF +:202F78002249C83AD8C00415D9000215D8800315003FBF06BDC7883A008007C41285C83A8D +:202F80001886983AB2A8D83ABAAAD83A1D28B03A003FDF06B006D07A008007C41245C83AE8 +:202F88001886D83ABA62983AB260983A1C62B03A003FCC062006D07A008007C41285C83ADA +:202F900018A6D83A22A4983A003FD706DEFFF204DF000C153038D43ADD000815DC40051524 +:202F98002028D43A247FFFCCDC000415343FFFCCDCC00715D90000152827883A8809883A18 +:202FA000D9400115800B883AD9800215DFC00D15D9C00315DD800A15DD400915302D883ADD +:202FA800DDC00B15DC8006150002C3C08809883AE00B883A102B883A0002C3C0800B883A81 +:202FB000A009883A1023883A0002C3C0A009883AE00B883A1021883A0002C3C0A8FFFFCC1A +:202FB800A82AD43A8C23883A1011883AAC6B883AA804943AB009883A980B883A10C7883AF9 +:202FC000A812D43A180D883AAC00022E008000744091883A4267883A302D883A0002C3C0D0 +:202FC800D9400317D90000171023883A0002C3C014CB883A894B883AB005883A2807883AAD +:202FD000DFC00D17DF000C17DDC00B17DD800A17DD400917DD000817DCC00717DC80061773 +:202FD800DC400517DC000417DEC00E04F800283A00BFFFD411000E3600803FC401400204EF +:202FE0000007883A11001036000B883A20C6D83A00800074108165041887883A1880000302 +:202FE80000C008042885883A1885C83AF800283A014004040080403410BFFFC42807883AD5 +:202FF000113FF22E014006042807883A20C6D83A00800074108165041887883A1880000333 +:202FF80000C008042885883A1885C83AF800283A20C00017DEFFFD04DC000015DC8002154C +:20300000DC4001150080004422000317001F883A224004172400011710C0552E008001040C +:2030080018804F2600800084188002264244B03A10001A1E000D883A000F883A0011883AAC +:203010000080043410BFFFC4301D883A3884703A400A953A79BFFC2C308CB03A00E00434AA +:2030180018FFFFC4800497FA30C6703A1946B03A01600034297FFFC4194A703A288AB03A17 +:203020002807883A7005883ADC800217DC400117DC000017DEC00304F800283A2100021793 +:2030280000BF008420803F160080FFC411002C1600803FC4408C703A008020040007883A54 +:20303000000F883A2280FFC430801E2600801FC44089883A220D803A324D883A2011883A4B +:203038003013883A0088003410BFFFC412400D364804963A400CD23A480ED23A013FFFC4B7 +:20304000118CB03A01400434297FFFC43104703A3946703A5201FFCC100D883A180F883A17 +:20304800003FC706480897FA4004D07A4806D07A528000442084B03A1011883A1813883AE1 +:20305000003FEB06383FE11E010040044104703A10C4B03A103FE3263005883A003FDC0658 +:20305800000D883A000F883A0201FFC4003FB4060005883A00C00234408CB03A48CEB03A86 +:20306000013FFFC401400434297FFFC43104703A3946703A100D883A180F883A0201FFC4D3 +:20306800003FA7061109C83A00800E041100431621FFF8043800451649D8D83A001B883A85 +:203070000023883A014000440025883A3800471629D6983A0015883A00BFFFC45089883A95 +:20307800588B883A228D803A314B883A4104703A4946703A10C4B03A100002260440004446 +:203080000025883A00803FC4644EB03A3892703A008020046C90B03A0015883A4880162651 +:2030880001001FC43905883A11CD803A320D883A100F883A0084003410BFFFC43011883A7D +:203090000007883A11801B364004963A3808D23A400AD23A1813883A1108B03A00BFFFC44D +:2030980000C0043418FFFFC4208C703A28CE703A4A01FFCC003F7206503FE91E01004004A8 +:2030A0003904703A0007883A10C4B03A100006263A45883A11CD803A320D883A100F883AAB +:2030A8003011883A0007883A0084003410BFFFC4123FE52E00C00044003FE3060009883A97 +:2030B0000013883A000B883A003FE4064A47883A008007C41105C83A1886983A4118D83AA4 +:2030B800491AD83A1B18B03A003FB5062806D07A008007C41105C83A1896D83A2914983AC2 +:2030C000003FB50620C00117224000170080043410BFFFC41808D53A180CD7FA1894703AC1 +:2030C8002201FFCC281B883A4817883A298001155019883A40001E1E4A84B03A1000192667 +:2030D0004804D63A500C923A013F008400C4003418FFFFC4118CB03A008000C4480A923ADD +:2030D800688000156900021519800B36200F883A1811883A2945883A1149803A3187883AE7 +:2030E00020C9883A100B883A200D883A39FFFFC4413FF82E69C002156980041569400315B5 +:2030E800F800283A0080008428800015F800283A0081FFC440800F26480CD63A5006923A94 +:2030F0004804923A0009883A30C6B03A01440034110CB03A423F0044194EB03A008000C423 +:2030F80069C004156A0002156880001569800315F800283A4A84B03A1000031E008001042F +:2031000028800015F800283A0009883A014002344904703A5146703A10C4B03A1000052625 +:2031080000800044688000156B0004156AC00315F800283A68000015003FFB062180001751 +:2031100000C0004419800A2E288000171880082E00C0010430C0262610C0222600C00084E0 +:2031180030C0052610C0071E208001171000091E00800044F800283A10C01A1E0005883AAB +:20312000F800283A220001172880011740800326403FF72600BFFFC4F800283A20C00217E1 +:203128002880021710FFFA161880091621C0041728C00417218003172880031719FFF43632 +:2031300038C0052638C0023619FFEC1E30BFEB2E403FE71E003FEF0611BFFA2E403FE426C9 +:20313800003FEC0628800117103FE11E003FE90611BFDD1E28C00117208001171885C83AE8 +:20314000F800283ADEFFF804DFC00715DF000615DF000604E13FFC15E0BFFC171004803AED +:203148001000091EE13FFC17014003040002C3C01007883A008000741083C4041887883AA7 +:20315000E0FFFF1500000106E03FFF15E0BFFF17E0BFFB15E0BFFB171005003A10001D1E83 +:20315800E0BFFB1710800017108004171005003A1000071EE0BFFB171080001710800417CD +:20316000E13FFB17103EE83AE0BFFE1500000106E03FFE15E0BFFE17E0BFFA15E13FFC172D +:20316800000CD5C0E0BFFA171004403A1000071E000C6040E0FFFA1700C7C83A10C00015E9 +:2031700000BFFFC4E0BFFD1500000806E03FFD1500000606000C60401007883A0080144464 +:203178001880001500BFFFC4E0BFFD15E0BFFD17E037883ADFC00117DF000017DEC002047A +:20318000F800283ADEFFFD04DFC00215DF000115DF000104008000741088910410800017A0 +:203188001005003A1000061E008000741088910410800017103EE83AE0BFFF1500000306B0 +:2031900000800074108F8404E0BFFF15E0BFFF17E037883ADFC00117DF000017DEC0020472 +:20319800F800283ADEFFFC04DF000315DF000304E13FFD15E17FFE15E1BFFF15E0BFFF17F5 +:2031A000E037883ADF000017DEC00104F800283ADEFFF904DFC00615DF000515DF000504CE +:2031A800E13FFC15E17FFD15E0BFFC171004803A1000091EE13FFC17014003040002C3C0AD +:2031B0001007883A008000741083C4041887883AE0FFFF1500000106E03FFF15E0BFFF1794 +:2031B800E0BFFB15E0BFFB171005003A1000121EE0BFFB1710800017108008171005003AB2 +:2031C0001000081EE0BFFB171080001710800817E13FFB17E17FFD17103EE83AE0BFFE15EA +:2031C80000000B06E0FFFD170088000418800115E03FFE1500000606000C76801007883A90 +:2031D000008014441880001500BFFFC4E0BFFE15E0BFFE17E037883ADFC00117DF000017EC +:2031D800DEC00204F800283ADEFFFD04DFC00215DF000115DF00010400800074108891044B +:2031E000108000171005003A1000061E008000741088910410800017103EE83AE0BFFF15BA +:2031E8000000030600800074108F8404E0BFFF15E0BFFF17E037883ADFC00117DF000017B5 +:2031F000DEC00204F800283ADEFFEB04DFC01415DF001315DF001304E13FFD15E0BFFD174B +:2031F8001004803A1000091EE13FFD17014003040002C3C01007883A008000741083C40489 +:203200001887883AE0FFFF1500000106E03FFF15E0BFFF17E0BFED15E0BFED171005003AD8 +:2032080010000F1EE0BFED1710800017108008171004C03A1000031E00800044E0BFFE15BB +:2032100000000C06E17FEE04E13FFD17000C6900E0BFEF1710880020E0BFFE150000050677 +:20321800000C88C01007883A0080144418800015E03FFE15E0BFFE17E037883ADFC001176E +:20322000DF000017DEC00204F800283ADEFFFD04DFC00215DF000115DF0001040080007439 +:2032280010889104108000171005003A1000061E008000741088910410800017103EE83AF7 +:20323000E0BFFF150000030600800074108F8404E0BFFF15E0BFFF17E037883ADFC00117AF +:20323800DF000017DEC00204F800283ADEFFFE04DFC00115DF000015D839883A01000074B2 +:2032400021089704014000742941B5040180007431889704000C96C00100003421000804C5 +:2032480001400034294008040180003431806D04000C96C001000074213FEA0401400074CB +:20325000297FEA04018000743181B504000C96C0000EE400000F0380E037883ADFC00117F2 +:20325800DF000017DEC00204F800283ADEFFFC04DF000315DF000304E13FFD15E17FFE1503 +:20326000E1BFFF15E0FFFE17E0BFFD1718800E2600000A06E0BFFD1710C00017E0BFFE17C9 +:2032680010C00015E0BFFE1710800104E0BFFE15E0BFFD1710800104E0BFFD15E0FFFE1779 +:20327000E0BFFF1718BFF31EE037883ADF000017DEC00104F800283ADEFFF804DFC0071541 +:20327800DF000615DF000604E13FFC15E17FFD15E1BFFE15E03FFA15E0BFFC171004803A4F +:203280001000091EE13FFC17014003040002C3C01007883A008000741083C4041887883A6E +:20328800E0FFFF1500000106E03FFF15E0BFFF17E0BFFB15E0BFFB171005003A1000111E56 +:20329000E0BFFB1710800017108007171005003A1000091EE0BFFB1710800017108007178C +:20329800E13FFB17E17FFD17E1BFFE17103EE83AE0BFFA150000050600BFDE84E0BFFA15C3 +:2032A0000000020600BFEBC4E0BFFA15E0BFFA171004403A1000071E000CACC01007883A26 +:2032A800E0BFFA170085C83A1880001500BFFFC4E0BFFA15E0BFFA17E037883ADFC00117B2 +:2032B000DF000017DEC00204F800283ADEFFFD04DFC00215DF000115DF00010400800074A9 +:2032B80010889104108000171005003A1000061E008000741088910410800017103EE83A67 +:2032C000E0BFFF150000030600800074108F8404E0BFFF15E0BFFF17E037883ADFC001171F +:2032C800DF000017DEC00204F800283ADEFFFD04DFC00215DF000115DF0001040009883ABA +:2032D000000D0440000D0780010000742101A804014000742941A804018000743181A80498 +:2032D800000F3F80000EF70001000074213BF504000FB9C0D1270117D1670217D1A70317BE +:2032E00000009200E0BFFF1501000044000C5040E13FFF17000FBB00DEFFFE04DF000115D4 +:2032E800DF000104E13FFF15E037883ADF000017DEC00104F800283ADEFFFE04DF0001150E +:2032F000DF000104E13FFF15E037883ADF000017DEC00104F800283ADEFFF704DFC0081546 +:2032F800DF000715DF000704E13FFB15E17FFC15E1BFFD15E0BFFB171004803A1000091EC8 +:20330000E13FFB17014003040002C3C01007883A008000741083C4041887883AE0FFFF1532 +:2033080000000106E03FFF15E0BFFF17E0BFFA15E0BFFA171005003A1000241EE0BFFA1707 +:2033100010800217108000CC1080006010001A1EE0BFFA1710800017108005171005003A0E +:203318001000151EE0BFFA171080001710800517E17FFC17E1BFFD17E13FFA17103EE83A87 +:20332000E0BFF915E0BFF9171004403A1000071E000CCFC0E0FFF91700C7C83A10C0001536 +:2033280000BFFFC4E0BFFE1500000E06E0BFF917E0BFFE1500000B06000CCFC01007883A57 +:20333000008003441880001500000406000CCFC01007883A008014441880001500BFFFC484 +:20333800E0BFFE15E0BFFE17E037883ADFC00117DF000017DEC00204F800283ADEFFFD04AD +:20334000DFC00215DF000115DF0001040080007410889104108000171005003A1000061E93 +:20334800008000741088910410800017103EE83AE0BFFF150000030600800074108F840456 +:20335000E0BFFF15E0BFFF17E037883ADFC00117DF000017DEC00204F800283ADEFFFC0494 +:20335800DFC00315DF000215DC000115DF000104E13FFF15E0BFFF17108000D010000F1E4C +:20336000E13FFF17040000748403C404014003040002C3C01405883A1080020410000015ED +:20336800E13FFF17040000748403C404014003040002C3C01405883A10000015E037883AA2 +:20337000DFC00217DF000117DC000017DEC00304F800283ADEFFF804DF000715DF000704DE +:20337800E13FFE150005303AE0BFFB15E0FFFB1700BFFF841884703A1001703AE0BFFB17FF +:20338000E0BFFD15D0A00E1710C000C400BFFF041884703AD0A00E15D0E00E17E0BFFE172F +:203388001887883A008000F41088000410C0072EE0BFFD17E0BFFA15E0BFFA171001703AE3 +:2033900000BFFFC4E0BFFF1500000C06D0A00E17E0BFFC15D0E00E17E0BFFE171885883AA9 +:20339800D0A00E15E0BFFD17E0BFF915E0BFF9171001703AE0BFFC17E0BFFF15E0BFFF179E +:2033A000E037883ADF000017DEC00104F800283ADEFFFD04DFC00215DF000115DF000104D4 +:2033A800E13FFF15E13FFF17000ECE40E037883ADFC00117DF000017DEC00204F800283AFB +:2033B000DEFFF704DFC00815DF000715DF000704E13FFB15E17FFC15E1BFFD15E0BFFB1780 +:2033B8001004803A1000091EE13FFB17014003040002C3C01007883A008000741083C404C9 +:2033C0001887883AE0FFFF1500000106E03FFF15E0BFFF17E0BFFA15E0BFFA171005003AFD +:2033C8001000241EE0BFFA1710800217108000CC1005003A10001A1EE0BFFA1710800017F0 +:2033D000108006171005003A1000151EE0BFFA171080001710800617E17FFC17E1BFFD1773 +:2033D800E13FFA17103EE83AE0BFF915E0BFF9171004403A1000071E000CFE40E0FFF917DC +:2033E00000C7C83A10C0001500BFFFC4E0BFFE1500000E06E0BFF917E0BFFE1500000B0665 +:2033E800000CFE401007883A008003441880001500000406000CFE401007883A0080144429 +:2033F0001880001500BFFFC4E0BFFE15E0BFFE17E037883ADFC00117DF000017DEC00204FE +:2033F800F800283ADEFFFD04DFC00215DF000115DF00010400800074108891041080001726 +:203400001005003A1000061E008000741088910410800017103EE83AE0BFFF150000030635 +:2034080000800074108F8404E0BFFF15E0BFFF17E037883ADFC00117DF000017DEC00204F7 +:20341000F800283ADEFFFD04DFC00215DF000115DF000104E13FFF15000F8F8000800044BF +:203418001001703AE037883ADFC00117DF000017DEC00204F800283ADEFFFE04DFC00115C1 +:20342000DF000015D839883A0100007421042E04000B883A01800144000D2540010000747F +:2034280021042404000D0D400100007421084604000E9FC00100007421083C04000D0D4050 +:20343000E037883ADFC00117DF000017DEC00204F800283ADEFFFD04DFC00215DF0001156F +:20343800DF000104E13FFF15E13FFF170140007429488E04000EE5C0E037883ADFC001172B +:20344000DF000017DEC00204F800283ADEFFFA04DFC00515DF000415DF000404E13FFD15D3 +:20344800E17FFE15E1BFFF15E0BFFD1710800017E0BFFC15E0BFFC1711000A04E0BFFD17AF +:2034500011C00217E17FFE17E1BFFF17000D7540E037883ADFC00117DF000017DEC002045B +:20345800F800283ADEFFFA04DFC00515DF000415DF000404E13FFD15E17FFE15E1BFFF152E +:20346000E0BFFD1710800017E0BFFC15E0BFFC1711000A04E0BFFD1711C00217E17FFE175F +:20346800E1BFFF17000D9780E037883ADFC00117DF000017DEC00204F800283ADEFFFC0409 +:20347000DFC00315DF000215DF000204E13FFF15E0BFFF1710800017E0BFFE15E0BFFE17B4 +:2034780011000A04E0BFFF1711400217000D5EC0E037883ADFC00117DF000017DEC00204A1 +:20348000F800283ADEFFFA04DFC00515DF000415DF000404E13FFD15E17FFE15E1BFFF1506 +:20348800E0BFFD1710800017E0BFFC15E0BFFC1711000A04E17FFE17E1BFFF17000D6600AB +:20349000E037883ADFC00117DF000017DEC00204F800283ADEFFFA04DFC00515DF0004150C +:20349800DF000404E13FFD15E17FFE15E1BFFF15E0FFFD170080004418800815E0BFFD17B5 +:2034A0001080001711000104E0BFFD17108008171007883A2005883A10C00035E13FFE17F3 +:2034A800E17FFF17D80000150180007431B4C504E1FFFD17000F0540E0BFFD1710000915D5 +:2034B000E0BFFD171100020400800074108F890410800017100B883A0180007431B54F0460 +:2034B800E1FFFD17000EB9001004403A1000041EE0FFFD1700A0003410BFFFC41880011572 +:2034C000E037883ADFC00117DF000017DEC00204F800283ADEFFF804DF000715DF000704AA +:2034C800E13FFF15E0BFFF17E0BFFE15E0BFFE1710800017E0BFFD1500000006E0BFFD1784 +:2034D0001080010410800037E0BFFC15E0BFFC171080C00C1005003A1000741EE0BFFC171F +:2034D8001080400C1005003A1000351E00800074E0BFFB15E0BFFE1710800A17108000446A +:2034E0001081FFCCE0BFFA15E0BFFE1710C00B17E0BFFA1718801626E0BFFD17108000371E +:2034E800E0BFFB15E0BFFB1710A0000C1005003A10000F1EE0BFFE1710C00A17E0BFFB17C6 +:2034F0001009883AE0BFFE171885883A10800E0411000005E0BFFE1710800A1710800044DD +:2034F80010C1FFCCE0BFFE1710C00A15003FE106E0BFFB1710BFFFEC1005003A1000101E57 +:20350000E0BFFE1710C0081700BFFF841886703AE0BFFE1710C00815E0BFFD171100010414 +:20350800E0BFFE17108008171007883A2005883A10C00035E0BFFD1710800104108000376C +:20351000E0BFFC171080800C1005003A103FBB1EE0BFFC1710BFFFEC1004D43AE0BFF9151B +:2035180000001506E13FFD17E0BFFE1710C00D17E0BFFE171885883A10820E041080000352 +:2035200010C03FCC18C0201C18FFE0042005883A10C00035E0BFFE1710800D171080004479 +:2035280010C1FFCCE0BFFE1710C00D15E0BFF91710BFFFC4E0BFF915E0BFF9171005003A55 +:203530001000051EE0BFFE1710C00D17E0BFFE1710800C1718BFE31EE0BFF9171005003A63 +:20353800103F961EE0BFFE1710C0081700BFFF441886703AE0BFFE1710C00815E0BFFE172E +:203540001080001711000104E0BFFE17108008171007883A2005883A10C00035E0BFFD17D3 +:203548001080010410800037003F8406E037883ADF000017DEC00104F800283ADEFFFC0495 +:20355000DF000315DF000304E13FFF15E0BFFF17E0BFFE15E0BFFE171080001710800104F3 +:2035580010800037E0BFFD15E0BFFD171081000C1005003A10000C1EE0BFFE1710800017A7 +:2035600011000104E0BFFE1710800817108100141007883A2005883A10C00035E0BFFE17B4 +:203568001000091500000A06E0BFFE1710C0091700A0003410BFFF0410C00536E0BFFE17FC +:203570001080091710C00044E0BFFE1710C0091500800074108F890410800017E037883A35 +:20357800DF000017DEC00104F800283ADEFFFC04DF000315DF000304E13FFD15E17FFE15E1 +:2035800000000706E0BFFE171090000C1005003A1000031E00BFFD44E0BFFF1500000B067A +:20358800E0BFFD1710C00D17E0BFFD1710800C1718800526E0BFFD1710C00917E0BFFD17FD +:203590001080011718BFEF36E03FFF15E0BFFF17E037883ADF000017DEC00104F800283AC3 +:20359800DEFFF804DF000715DF000704E13FFB15E17FFC15E1BFFD1500BFF9C4E0BFFA15D8 +:2035A000E0BFFC17E0BFFF15E0FFFF17189A80601000041EE0FFFF17189A80A010001B1EDD +:2035A80000002706E0BFFB1710C0011700A0003410BFFFC418802226E0BFFD17108000179D +:2035B000E0BFF915E0BFF917108000901000071EE0FFF91700A0003410BFFFC41880032634 +:2035B800E0BFF917E0BFFE150000030600E0003418FFFF84E0FFFE15E0BFFB17E0FFFE1744 +:2035C00010C00115E03FFA1500000D06E0BFFB1710C0011700A0003410BFFFC418800826FF +:2035C800E13FFD17E0BFFB1710C00917E0BFFB17108001171885803A20800015E03FFA157B +:2035D000E0BFFA17E037883ADF000017DEC00104F800283ADEFFF204DFC00D15DF000C15CB +:2035D800DF000C04E13FFB15E17FFC15E1BFFD15E1FFFE15E0BFFC17E0BFFA1500004806F0 +:2035E000E0BFFB1710800A17E0BFF715E0BFFB1710800B17E0BFF615E0FFF717E0BFF61718 +:2035E80018800536E0BFF717E0FFF61710C5C83AE0BFF8150000040600820004E0FFF61758 +:2035F00010C5C83AE0BFF815E0BFF8171005003A10001F1EE0FFFD17E0BFF8171880022E85 +:2035F800E0BFFD17E0BFF815E0BFFB1710C00E04E0BFF6171887883AE0BFFA171009883A29 +:20360000180B883AE1BFF817000802C0E0FFF817E0BFFA1710C5883AE0BFFA15E0FFFD1776 +:20360800E0BFF8171885C83AE0BFFD15E0FFF617E0BFF8171885883A10C1FFCCE0BFFB175E +:2036100010C00B15E0BFFD1710800048103FCC1EE0FFFA17E0BFFC171880141EE0BFFE17C6 +:203618001090000C1004C03A1000101EE0BFFB1710C00A17E0BFF7171880051EE0BFFB17DF +:2036200010C00917E0BFFB171080011718BFF736E0BFFB1710C00A17E0BFF717188003262D +:20362800E0BFFD1710800048103FB51EE0FFFA17E0BFFC17188019260005303AE0BFF51544 +:20363000E0FFF51700BFFF841884703A1001703AE0BFF517E0BFF915E0BFFB171080081794 +:2036380010C00054E0BFFB1710C00815E0BFFB171080001711000104E0BFFB1710800817E2 +:203640001007883A2005883A10C00035E0BFF917E0BFF415E0BFF4171001703AE0FFFA17F9 +:20364800E0BFFC1718800526E0FFFA17E0BFFC171887C83AE0FFFF1500000906E0BFFE17F4 +:203650001090000C1005003A1000031E00BFFD44E0BFFF150000020600BFFEC4E0BFFF153F +:20365800E0BFFF17E037883ADFC00117DF000017DEC00204F800283ADEFFF204DFC00D1585 +:20366000DF000C15DF000C04E13FFB15E17FFC15E1BFFD15E1FFFE15E03FF915E0BFFC1736 +:20366800E0BFF61500003A06E0BFFB1710800C17E0BFFA15E0BFFB1710800D17E0BFF91534 +:20367000E0FFFA17E0BFF9171880062EE0FFF917E0BFFA171885C83A10BFFFC4E0BFF81553 +:2036780000000C06E0BFF9171005003A1000051E00820004E0FFFA1710C5C83AE0BFF815F6 +:20368000000004060081FFC4E0FFFA1710C5C83AE0BFF815E0BFF8171005003A10001F1E1F +:20368800E0FFFD17E0BFF8171880022EE0BFFD17E0BFF815E0BFFB1710C20E04E0BFFA1715 +:203690001885883AE0FFFC171009883A180B883AE1BFF817000802C0E0FFF817E0BFFC17F0 +:2036980010C5883AE0BFFC15E0FFFD17E0BFF8171885C83AE0BFFD15E0FFFA17E0BFF8173C +:2036A0001885883A10C1FFCCE0BFFB1710C00C15E0BFFD1710800048103FC31E0005303A43 +:2036A800E0BFF515E0FFF51700BFFF841884703A1001703AE0BFF517E0BFF715E0BFFB1724 +:2036B0001080081710C00094E0BFFB1710C00815E0BFFB171080001711000104E0BFFB172A +:2036B800108008171007883A2005883A10C00035E0BFF717E0BFF415E0BFF4171001703AC4 +:2036C000E0BFFD17108000501000111EE0BFFE171090000C1004C03A1000101EE0BFFB17BB +:2036C80010C00D17E0BFF9171880051EE0BFFB1710C00917E0BFFB171080011718BFF73686 +:2036D000E0BFFB1710C00D17E0BFF91718800326E0BFFD1710800048103FCD1EE0FFFC170E +:2036D800E0BFF61718800526E0FFFC17E0BFF6171887C83AE0FFFF1500000906E0BFFE176E +:2036E0001090000C1005003A1000031E00BFFD44E0BFFF150000020600BFFEC4E0BFFF15AF +:2036E800E0BFFF17E037883ADFC00117DF000017DEC00204F800283ADEFFFA04DFC00515F5 +:2036F000DF000415DF000404E13FFE15E17FFF05E0BFFE1710800017E0BFFD15008003F4C1 +:2036F80010909004E0BFFC15E0BFFE171080080310803FCC1080201C10BFE0041004C03A57 +:203700001000161E00000A06E0BFFC1710BFFFC4E0BFFC15E0BFFC171004C03A1000041E6F +:20370800E0FFFE17008000441880080500000B06E0BFFD1710800104108000371080200C68 +:203710001004C03A103FF01E01001904000CE900E0BFFD17E0FFFF0310C00035E037883AA9 +:20371800DFC00117DF000017DEC00204F800283ADEFFFA04DFC00515DF000415DF00040473 +:20372000E13FFE15E17FFF05E0BFFE1710800017E0BFFD15008003F410909004E0BFFC158B +:20372800E0BFFE171080080310803FCC1080201C10BFE0041004C03A10001D1E00000A06AF +:20373000E0BFFC1710BFFFC4E0BFFC15E0BFFC171004C03A1000041EE0FFFE1700800044DB +:203738001880080500001206E0BFFD1710800104108000371080200C1004C03A103FF01E7E +:2037400001001904000CE900E0BFFD1710800204E0FFFF0310C00035E0BFFE17108008C318 +:20374800108000441007883AE0BFFE1710C008C5E037883ADFC00117DF000017DEC0020439 +:20375000F800283ADEFFFB04DFC00415DF000315DC000215DF000204E13FFF15E13FFF1732 +:2037580001400044000DBB80E0BFFF1710000845E0BFFF1710000885E0BFFF17100008C58E +:20376000E03FFE1500001C06E13FFE17014018C40002C3C010C01004E0BFFF171889883A22 +:20376800014008040180144400081AC0E13FFE17014018C40002C3C010C00C04E0BFFF17CD +:203770001889883A014008040180040400081AC0E13FFE17E43FFF17014018C40002C3C00E +:203778001405883A1080240410000045E0BFFE1710800044E0BFFE15E0BFFE17108000903B +:20378000103FE11EE037883ADFC00217DF000117DC000017DEC00304F800283ADEFFF4048C +:20378800DFC00B15DF000A15DC800915DC400815DC000715DF000704E13FFF15E0BFFF17E6 +:203790001080094310803FCC1080201C10BFE004E0BFFC15E03FFE1500006A06E13FFE179C +:20379800E43FFF17014018C40002C3C01405883A108024041080004310803FCC1080201C69 +:2037A00010BFE004E0BFFB15E13FFE17E43FFF17014018C40002C3C01405883A1080240404 +:2037A8001080008311003FCCE17FFC170002C3C01005D23AE0BFFA15E0FFFA17E0BFFB176A +:2037B00018800116E03FFA15E03FFD1500004706E47FFE17E0FFFD17E0BFFA171889883A20 +:2037B800E17FFB170002BCC01025883AE43FFF178809883A014018C40002C3C01405883A01 +:2037C0001485883A1080100410800003E0BFF945E13FFE17E47FFD17E43FFF17014018C478 +:2037C8000002C3C01405883A1445883A10800C041080000310C03FCC18C0201C18FFE00449 +:2037D000E0BFF94718802626E0FFFE17D0A00F041885883A108000031007883AE0BFFD1721 +:2037D8001885883AE0BFF905E0FFF903E0BFFF17108008C310803FCC1080201C10BFE004D0 +:2037E00018800926E0FFF90300BFE0041884B03A11403FCCE13FFF17000DBB80E0FFF90349 +:2037E800E0BFFF1710C008C5E0BFF94311403FCCE13FFF17000DC700E13FFE17E47FFD1782 +:2037F000E43FFF17014018C40002C3C01405883A1445883A10C00C04E0BFF9431880000590 +:2037F800E0BFFD1710800044E0BFFD15E0BFFD1710800410103FB61EE0BFFE171080004477 +:20380000E0BFFE15E0BFFE1710800090103F931EE037883ADFC00417DF000317DC80021721 +:20380800DC400117DC000017DEC00504F800283ADEFFFB04DFC00415DF000315DC000215FA +:20381000DF000204E13FFF15E03FFE1500002106E0BFFE17108000481000121EE13FFE1725 +:20381800014018C40002C3C010C01004E0BFFF1718A1883AE0BFFE1711000044014018C4B4 +:203820000002C3C010C01004E0BFFF171885883A8009883A100B883A01801404000802C080 +:2038280000000906E13FFE17014018C40002C3C010C01004E0BFFF171889883A0140080451 +:203830000180140400081AC0E0BFFE1710800044E0BFFE15E0BFFE1710800090103FDC1EA6 +:20383800E0BFFF171080088310BFFFC41007883AE0BFFF1710C00885E037883ADFC0021792 +:20384000DF000117DC000017DEC00304F800283ADEFFF804DFC00715DF000615DF00060408 +:20384800E13FFD15E17FFE05E03FFC15E03FFB15E0BFFD1710800A0310803FCC1080201CB5 +:2038500010BFE004108016D810004D1EE0BFFD1710800A0410800044E0BFFA1500000F06C4 +:20385800E13FFC17014002840002C3C01007883AE0BFFA171080000310803FCC1080201C4E +:2038600010BFE0041885883A10BFF404E0BFFC15E0BFFA1710800044E0BFFA15E0BFFA17DD +:203868001080000310803FCC1080201C10BFE0041007883A008000741088850410800017FE +:203870001885883A1080000310803FCC1080010C1004C03A103FE21EE0BFFA17108000036E +:2038780010803FCC1080201C10BFE00410800ED81000251EE0BFFA1710800044E0BFFA151B +:2038800000000F06E13FFB17014002840002C3C01007883AE0BFFA171080000310803FCCDE +:203888001080201C10BFE0041885883A10BFF404E0BFFB15E0BFFA1710800044E0BFFA159A +:20389000E0BFFA171080000310803FCC1080201C10BFE0041007883A0080007410888504CD +:20389800108000171885883A1080000310803FCC1080010C1004C03A103FE21E00000206DA +:2038A00000BFFFC4E0BFFC15E0BFFE07E0BFFF15E0FFFF17188012A010002F1EE0FFFF17EE +:2038A800188012C81000041EE0FFFF17188012201000081E00004A06E0FFFF17188012E098 +:2038B00010002B1EE0FFFF17188019A01000011E00004306E0BFFB17108000501000051E1D +:2038B800E0BFFB1710BFFFC41007883AE0BFFD1710C00845E0BFFC17108000501000381E0C +:2038C000E0BFFC1710BFFFC41007883AE0BFFD1710C00885E0BFFD171080088310803FCC52 +:2038C800108001701000061EE0FFFD17008001041880088500000206E13FFD17000E0300C1 +:2038D000E0BFFD171080088310803FCC108000E8103FF91E00002206E0BFFC17108000988F +:2038D80010001F1EE13FFD17000DD44000001C06E0BFFC17108000481000191EE0BFFD1788 +:2038E0001080084310803FCC108014281000141EE0BFFD171080088311003FCC014018C43D +:2038E8000002C3C010C01004E0BFFD171887883AE0BFFD171080084310803FCC1889883AB7 +:2038F000E0BFFD171080084310C03FCC0080140410C5C83A100D883A0140080400081AC0D2 +:2038F800E037883ADFC00117DF000017DEC00204F800283ADEFFF004DFC00F15DF000E1596 +:20390000DC800D15DC400C15DC000B15DF000B04E13FFC15E17FFD15E1BFFE15E1FFFF15B8 +:20390800E0BFFE171007883AE0BFFD1710C5883AE0BFFB15E0FFFC1700800044188009C5FD +:203910000000A306E0BFFD1710800003E0BFF805E0BFFC171080090310803FCC1080201C57 +:2039180010BFE0041004803A10003B1EE0BFFC171080090310803FCC1080201C10BFE0043D +:20392000E0BFF715E0BFF7171004C03A1000031EE0BFF807108016D81000111EE0BFF717E8 +:203928001005003A10001A1EE0BFF8071007883A0080007410888504108000171885883A56 +:203930001080000310803FCC1080010C1004C03A10000F1EE0BFF80710800EE010000C1E0B +:20393800E0FFF717E0BFFC171885883A10800A0410000005E17FF807E13FFC17000E11000D +:20394000E0FFFC1700BFFFC41880090500006D06E0BFFC171080090310803FCC108001E878 +:203948001000681EE0FFF717E0BFFC171885883A10C00A04E0BFF80318800005E0BFFC1704 +:2039500010800903108000441007883AE0BFFC1710C0090500005B06E0BFF807108006D811 +:203958001000031EE0BFFC171000090500005506E0BFF807108003581000031EE0BFFC1787 +:203960001000084500004F06E0BFF807108002981000101EE0BFFC1710000845E0BFFC17CE +:2039680010800883108000441007883AE0BFFC1710C00885E0BFFC171080088310803FCC00 +:20397000108000F010003F1EE13FFC17000E030000003C06E0BFF8071080021810000C1E42 +:20397800E0BFFC171080084310803FCC1005003A1000341EE0BFFC171080084310BFFFC437 +:203980001007883AE0BFFC1710C0084500002D06E0BFF8071007883A0080007410888504C0 +:20398800108000171885883A1080000310803FCC1080201C10BFE004108025CC1005003A9C +:203990001000201EE0BFFC171080088310803FCC108000B01000021EE13FFC17000E0300AD +:20399800E0BFFC171080084310803FCC1080142810000E1EE0BFFC171080088311003FCCF6 +:2039A000E0BFFC171080084314403FCCE43FFC17014018C40002C3C01405883A1445883A4D +:2039A80010C01004E0BFF80318800005E0BFFC1710800843108000441007883AE0BFFC17F8 +:2039B00010C00845E0BFFD1710800044E0BFFD15E0FFFD17E0BFFB1718BF5A36008004040F +:2039B800E0BFF915E03FFA150000390600801404E0BFF61500001206E13FFA17E0BFF6179E +:2039C000147FFFC4E43FFC17014018C40002C3C01405883A1445883A10801004108000038C +:2039C80010803FCC1080201C10BFE004108008181000061EE0BFF61710BFFFC4E0BFF615F9 +:2039D000E0BFF61710800048103FEB1EE0BFF617108004481000031E00800404E0BFF61510 +:2039D80000000306E0BFF61710800044E0BFF615E13FFA17E0BFF6171023883AE43FFC1794 +:2039E000014018C40002C3C01405883A1080240414400045E0FFF917E0BFF6171880020EB6 +:2039E800E0BFF617E0BFF915E13FFA17E43FFC17014018C40002C3C01405883A10802404CA +:2039F00010000085E0BFFA1710800044E0BFFA15E0BFFA1710800090103FC41EE0BFF91740 +:2039F800108004481000031EE0BFFC171000098500003106E0BFF9171085883AE0BFF91568 +:203A0000E0BFF9171007883AE0BFFC1710C00985E03FFA1500002506E13FFA17E43FFC174E +:203A0800014018C40002C3C01405883A108024041080004310803FCC1080201C10BFE0047C +:203A1000108004501000161EE4BFFA17E13FFA17E43FFC17014018C40002C3C01405883AD6 +:203A1800108024041080004310803FCC1080201C10BFE0041008923AE17FF9170002B6C01D +:203A20001023883AE43FFC179009883A014018C40002C3C01405883A1080240414400085F2 +:203A2800E0BFFA1710800044E0BFFA15E0BFFA1710800090103FD81EE0BFFC1710800943A9 +:203A300010803FCC1080201C10BFE004E0BFF515E13FFC17000DE1C0E0BFFC17100009C542 +:203A3800E0BFFC171080094310C03FCC18C0201C18FFE004E0BFF51718800426E0FFFC1797 +:203A400000800044188009C5003FEB06E0BFFE17E037883ADFC00417DF000317DC80021757 +:203A4800DC400117DC000017DEC00504F800283ADEFFFC04DFC00315DF000215DF000204C7 +:203A5000E13FFF15E0BFFF17E0BFFE15E0BFFE171080094310803FCC1080201C10BFE00411 +:203A580010C00044E0BFFE171080098310803FCC1080201C10BFE00418800316E0BFFE17EB +:203A60001000094500000606E0BFFE1710800943108000441007883AE0BFFE1710C00945CD +:203A6800E0BFFE171080098310803FCC1080201C10BFE004108000501000091EE0BFFE1789 +:203A7000108009C310803FCC1080201C10BFE0041004C03A1000021EE13FFE17000DE1C09F +:203A7800E0BFFE1710800717E037883ADFC00117DF000017DEC00204F800283ADEFFFC046B +:203A8000DFC00315DF000215DF000204E13FFF15E0BFFF1710800017E0BFFE15E0BFFF179D +:203A880010000805010EA604000CE900E0BFFE171007883A00800C0418800035010401045F +:203A9000000CE900E0BFFE171007883A00800C04188000350100FA04000CE900E0BFFE178F +:203A98001007883A00800C0418800035E13FFF1701400E04000DBB80E13FFF17014002048A +:203AA000000DBB80E13FFF17000DD440E13FFF1701400184000DBB80E13FFF1701400304A5 +:203AA800000DBB80E0FFFF1700BFFFC418800905E0BFFF1711000A04000B883A0180020471 +:203AB00000081AC0E0BFFF1710000945E0BFFF1710000985E0BFFF17100009C50080007427 +:203AB800108F8904108000171009883A014002840002C2C01007883AE0BFFF1710C007157B +:203AC000E0BFFF1711000104E0BFFF1710800717100B883A0180007431BA4C04E1FFFF17B5 +:203AC800000EB900E037883ADFC00117DF000017DEC00204F800283ADEFFFA04DFC00515FF +:203AD000DF000415DF000404E13FFD15E17FFE15E1BFFF15E0BFFD1710800017E0BFFC1594 +:203AD800E0BFFC1711000A04E0BFFD1711C00217E17FFE17E1BFFF17000E3F40E037883ACF +:203AE000DFC00117DF000017DEC00204F800283ADEFFF404DF000B15DF000B04E13FFB1529 +:203AE800E17FFC15E1BFFD15E1FFFE15E03FF91500800074108F8904108000171005003A65 +:203AF0001000411EE0BFFB171005003A10003B1EE0FFFB17E0BFFD1718800315E0FFFB1799 +:203AF800E0BFFE17188005150005303AE0BFF815E0FFF81700BFFF841884703A1001703AFC +:203B0000E0BFF817E0BFFA1500800074108F8A0410800017E0BFF915E0FFFC17E0BFF91733 +:203B08001885883A10C00044E0BFFB1710C00215E0BFFB1710C00217E0BFF9171880042E7F +:203B1000E0FFFB17008000441880040500000206E0BFFB1710000405E0FFFB170080007488 +:203B180010889504E0BFF615E0FFF715E0FFF717E0BFF61718800115E0BFF61710C00017ED +:203B2000E0BFF71710C00015E0BFF61710C00017E0BFF71718800115E0FFF617E0BFF7176C +:203B280018800015E0BFFA17E0BFF515E0BFF5171001703AE03FFF150000050600BFFA8496 +:203B3000E0BFFF150000020600BFDE84E0BFFF15E0BFFF17E037883ADF000017DEC00104BF +:203B3800F800283ADEFFFA04DFC00515DF000415DF000404E13FFF1500800244E0BFFC15F6 +:203B4000E13FFC17014003F4295090040002C3C0100B883A0100BEF4213C20040002C2C0D3 +:203B4800100B883A01200034213FFFC40002C2C0100B883AE13FFF170002C2C0E0BFFD153C +:203B5000E0BFFD171005003A10002A1EE03FFE150000170600A0003410BFFFC410BFFFC4B4 +:203B5800103FFE1EE13FFC17014003F4295090040002C3C0100B883A0100BEF4213C2004D4 +:203B60000002C2C0100B883A01200034213FFFC40002C2C01007883AE0BFFF1710C5C83A83 +:203B6800E0BFFF15E0BFFE1710800044E0BFFE15E0FFFE17E0BFFD1718BFE616E13FFC17A3 +:203B7000014003F4295090040002C3C0100B883A0100BEF4213C20040002C2C01009883AFB +:203B7800E17FFF170002C3C010BFFFC4103FFE1E00000D06E13FFC17014003F429509004AA +:203B80000002C3C0100B883A0100BEF4213C20040002C2C01009883AE17FFF170002C3C035 +:203B880010BFFFC400BFFE160005883AE037883ADFC00117DF000017DEC00204F800283A6D +:203B9000DEFFFF04DF000015D839883AE037883ADF000017DEC00104F800283ADEFFF904C8 +:203B9800DFC00615DF000515DF000504E13FFD15E17FFE15E0BFFD171005003A1000041E99 +:203BA000E0BFFD17108002171004C03A1000071E000EF1001007883A0080058418800015D8 +:203BA80000BFFA84E0BFFF1500001306E0FFFD17E0BFFE17E0BFFB15E0FFFC15E0FFFC17BC +:203BB000E0BFFB1718800115E0BFFB1710C00017E0BFFC1710C00015E0BFFB1710C00017CF +:203BB800E0BFFC1718800115E0FFFB17E0BFFC1718800015E03FFF15E0BFFF17E037883A7C +:203BC000DFC00117DF000017DEC00204F800283ADEFFFD04DFC00215DF000115DF000104CD +:203BC8000080007410889104108000171005003A1000061E008000741088910410800017CA +:203BD000103EE83AE0BFFF150000030600800074108F8404E0BFFF15E0BFFF17E037883A4D +:203BD800DFC00117DF000017DEC00204F800283ADEFFFD04DFC00215DF000115DF000104B5 +:203BE00000BFFF0400C0007418FFEA041885883AE0BFFF1500000606E0BFFF171080001750 +:203BE800103EE83AE0BFFF1710BFFF04E0BFFF15E0FFFF170080007410BFE90418BFF62E73 +:203BF000E037883ADFC00117DF000017DEC00204F800283ADEFFFD04DFC00215DF000115A8 +:203BF800DF00010400BFFF0400C0007418FFEA041885883AE0BFFF1500000606E0BFFF17FB +:203C000010800017103EE83AE0BFFF1710BFFF04E0BFFF15E0FFFF170080007410BFEA04AD +:203C080018BFF62EE037883ADFC00117DF000017DEC00204F800283ADEFFFF04DF00001549 +:203C1000D839883AE037883ADF000017DEC00104F800283ADEFFF904DFC00615DF00051568 +:203C1800DF000504E13FFC15E17FFD15E1BFFE15E1FFFF15E0800217D8800015E13FFC1741 +:203C2000E17FFD17E1BFFE17E1FFFF17000F2280E037883ADFC00117DF000017DEC002048A +:203C2800F800283ADEFFF904DF000615DF000604E13FFE15E17FFF15E0BFFF17E0BFFC1559 +:203C30000005303AE0BFFB15E0FFFB1700BFFF841884703A1001703AE0BFFB17E0BFFD15C0 +:203C3800E0FFFC170080004410C4983A1007883A00800074108F8804108000171886B03AE9 +:203C400000800074108F880410C0001500800074108F880410800017100170FAE0BFFD176C +:203C4800E0BFFA15E0BFFA171001703A0005883AE037883ADF000017DEC00104F800283AB0 +:203C5000DEFFF904DF000615DF000604E13FFE15E17FFF15E0BFFF17E0BFFC150005303A1C +:203C5800E0BFFB15E0FFFB1700BFFF841884703A1001703AE0BFFB17E0BFFD15E0FFFC1715 +:203C60000080004410C4983A0084303A1007883A00800074108F8804108000171886703A05 +:203C680000800074108F880410C0001500800074108F880410800017100170FAE0BFFD1744 +:203C7000E0BFFA15E0BFFA171001703A0005883AE037883ADF000017DEC00104F800283A88 +:203C7800DEFFFC04DF000315DF000304E13FFE15E17FFF15000530FAE0BFFD15E0FFFF17F6 +:203C80000080004410C4983A1007883AE0BFFD171884703A1004C03AE037883ADF0000170B +:203C8800DEC00104F800283ADEFFF404DFC00B15DF000A15DF000A04E13FFB15E17FFC15FF +:203C9000E1BFFD15E1FFFE1500BFFA84E0BFFA15E0BFFC17E0BFF915E0BFF91710800808D6 +:203C98001000291E0005303AE0BFF715E0FFF71700BFFF841884703A1001703AE0BFF717BE +:203CA000E0BFF815E0BFF91700C0007418D0D904100490FA10C7883AE0BFFD171880001519 +:203CA800E0BFF91700C0007418D0D904100490FA10C5883A10C00104E0BFFE1718800015E9 +:203CB000E0BFFD171005003A1000051EE17FF917E13FFB17000F0A40E0BFFF150000040607 +:203CB800E17FF917E13FFB17000F1400E0BFFF15E0BFFF17E0BFFA15E0BFF817E0BFF615B9 +:203CC000E0BFF6171001703AE0BFFA17E037883ADFC00117DF000017DEC00204F800283A49 +:203CC800DEFFF804DFC00715DF000615DC000515DF000504E13FFC15E17FFD15E1BFFE151A +:203CD000E1FFFF15E13FFD17E17FFE17E1BFFF17000F5680E0BFFB15E0BFFB171004803A6E +:203CD80010001F1EE13FFB17040000748403C404014003040002C3C01405883A10C00017F7 +:203CE000E0BFFC1710C00015E13FFB17040000748403C404014003040002C3C01405883A8C +:203CE8001080010410C00017E0BFFC1710C00115E13FFB17040000748403C4040140030467 +:203CF0000002C3C01405883A1080020410C00017E0BFFC1710C00215E13FFB17000CD5C06B +:203CF800E037883ADFC00217DF000117DC000017DEC00304F800283ADEFFFB04DFC004159E +:203D0000DF000315DF000304E13FFD15E17FFE15E1BFFF15010000742103C704E17FFD1795 +:203D08000180004401C07FC4000F3200010000742103C404E17FFE17000D883A01C07FC4E8 +:203D1000000F3200010000742103CA04E17FFF170180004401C07FC4000F3200E037883A92 +:203D1800DFC00117DF000017DEC00204F800283ADEFFFA04DFC00515DF000415DC00031560 +:203D2000DF000304E13FFE15E0BFFE171080021710D00034E0BFFE1710C00215E03FFD152D +:203D280000002306E13FFD17040000748403C404014003040002C3C01405883A10C00017C8 +:203D3000E0BFFE17108000171880161EE13FFD17040000748403C404014003040002C3C084 +:203D38001405883A10800204108000171004403A10000C1EE13FFD17014003040002C3C08A +:203D40001007883A008000741083C4041887883AE0BFFE171880032600BFFCC4E0BFFF1533 +:203D480000000A06E0BFFD1710800044E0BFFD150080007410889004108000171007883A73 +:203D5000E0BFFD1718BFD72EE03FFF15E0BFFF17E037883ADFC00217DF000117DC00001761 +:203D5800DEC00304F800283ADEFFF404DFC00B15DF000A15DF000A04E13FFB15E17FFC152C +:203D6000E1BFFD1500BFFFC4E0BFF81500BFFB44E0BFF715E03FF615E13FFB1701400074A9 +:203D680029488E04000F9180E0BFFA15E0BFFA171004C03A1000051EE13FFB17000F9AC0DE +:203D7000E0BFFA1500800044E0BFF615E0BFFA171005003A1000311EE13FFA17000FACC00D +:203D7800E0BFF815E0BFF8171004403A1000031EE0BFF817E0BFF71500002A06E13FF8175A +:203D8000014003040002C3C01007883A008000741083C4041885883AE0BFF915E0FFFC1730 +:203D88000090003410BFFFC41886703AE0BFF91710C00215E0BFF6171004C03A1000061EF9 +:203D9000E13FF917000F4700E0BFF715E0BFF7171004803A1000131EE0BFFA1710800317CC +:203D98001005003A1000091EE0BFFA1710800317E13FF917E17FFB17E1BFFC17E1FFFD17E2 +:203DA000103EE83AE0BFFF1500000106E03FFF15E0BFFF17E0BFF7150000020600BFFB4440 +:203DA800E0BFF715E0BFF7171004403A1000091EE13FF817000CD5C0000F6F40E0FFF71763 +:203DB00000C7C83A10C0001500BFFFC4E0BFFE1500000206E0BFF817E0BFFE15E0BFFE17F5 +:203DB800E037883ADFC00117DF000017DEC00204F800283ADEFFFD04DFC00215DF000115DE +:203DC000DF0001040080007410889104108000171005003A1000061E008000741088910493 +:203DC80010800017103EE83AE0BFFF150000030600800074108F8404E0BFFF15E0BFFF1785 +:203DD000E037883ADFC00117DF000017DEC00204F800283ADEFFFA04DF000515DF00050493 +:203DD800E13FFF150005303AE0BFFD15E0FFFD1700BFFF841884703A1001703AE0BFFD178E +:203DE000E0BFFE15E0BFFF17E0BFFC15E0BFFC1710C00017E0BFFC1710800117188001150B +:203DE800E0BFFC1710C00117E0BFFC171080001718800015E0FFFC17E0BFFC1718800115C9 +:203DF000E0FFFC17E0BFFC1718800015E0BFFE17E0BFFB15E0BFFB171001703AE037883ABA +:203DF800DF000017DEC00104F800283ADEFFFB04DFC00415DF000315DF000304D0A01117AF +:203E0000E0BFFE15D0A7061710800044D0A7061500003106E0BFFE1710800017E0BFFF15B1 +:203E0800E0BFFE171080040310803FCC1005003A1000051ED0A706171004C03A1000021E60 +:203E1000E0BFFE1710000405E0BFFE1710C00217D0A7061710C01E36E0BFFE171080040325 +:203E180010803FCC1004C03A1000191EE0BFFE1710C00317E0BFFE1711000517183EE83AA3 +:203E2000E0BFFD15E0BFFD171004C03A1000031EE13FFE17000F754000000D06E0BFFE171F +:203E280010C00217E0BFFD171887883AE0BFFE1710C00215E0BFFE1710C00217D0A70617B1 +:203E30001880032EE0FFFE170080004418800405E0BFFF17E0BFFE15D0E01104E0BFFE1770 +:203E380010FFCC1EE037883ADFC00117DF000017DEC00204F800283ADEFFFF04DF00001519 +:203E4000D839883A000170FAE037883ADF000017DEC00104F800283ADEFFF904DFC00615C4 +:203E4800DF000515DF000504E13FFD15E17FFE15E0BFFE1710800017E0BFFC15E13FFD1795 +:203E50000002D48010800044E0BFFB1500000D06E0BFFC1711000217E1BFFB17E17FFD1764 +:203E5800000FBE801004C03A1000031EE0BFFC17E0BFFF1500000706E0BFFC1710800017F3 +:203E6000E0BFFC15E0FFFE17E0BFFC1710FFF01EE03FFF15E0BFFF17E037883ADFC0011757 +:203E6800DF000017DEC00204F800283ADEFFFA04DFC00515DF000415DF000404E13FFE15A0 +:203E70000080007410888C0410800017E0BFFD1500003306E0BFFD17110002170002D48052 +:203E7800E0BFFC15E0BFFD1710C00217E0BFFC171885883A10BFFFC41080000310803FCC0D +:203E80001080201C10BFE00410800BD81000031EE0BFFC1710BFFFC4E0BFFC15E0BFFC1759 +:203E88001007883AE0BFFE171885883A1080000310803FCC1080201C10BFE00410800BE006 +:203E900010000A1EE0BFFC171007883AE0BFFE171885883A1080000310803FCC1080201C42 +:203E980010BFE0041004C03A10000A1EE0BFFD1711000217E1BFFC17E17FFE17000FBE80BF +:203EA0001004C03A1000031EE0BFFD17E0BFFF1500000806E0BFFD1710800017E0BFFD1544 +:203EA80000C0007418C88C04E0BFFD1710FFC91EE03FFF15E0BFFF17E037883ADFC0011735 +:203EB000DF000017DEC00204F800283ADEFFFA04DFC00515DF000415DC000315DF00030498 +:203EB800E13FFF1500BFFA04E0BFFD15E03FFE1500002006E13FFE17040000748403C404F4 +:203EC000014003040002C3C01405883A108000171004C03A1000141EE13FFE170400007496 +:203EC8008403C404014003040002C3C01407883AE0BFFF171880001500800074108890045F +:203ED00010C00017E0BFFE171880040E00C0007418C89004E0BFFE1718800015E0BFFE17D0 +:203ED800E0BFFD1500000606E0BFFE1710800044E0BFFE15E0BFFE1710800810103FDD1E2D +:203EE000E0BFFD17E037883ADFC00217DF000117DC000017DEC00304F800283A200B883AA8 +:203EE800000D883A0009883A000F883A000FC5C1DEFFFE04000B883ADC000015DFC0011568 +:203EF0002021883A000FD94000800074108887041100001720800F1710000126103EE83ADB +:203EF8008009883A000FF84000C000C41980032E2144B03A10C4703A10000F2631FFFFC4C5 +:203F00003000061E00000A0639FFFFC400BFFFC421000044294000443880052620C00003E8 +:203F08002880000318BFF8261885C83AF800283A0005883AF800283A180F883A20C00017FF +:203F10002880001718BFED1E31BFFF04210001042940010439BFF936003FE806DEFFFA043A +:203F18000080007410888704DC00001514000017DD0004152829883A81405217DCC003156F +:203F2000DC800215DC400115DFC005152023883A3027883A3825883A280025262900011732 +:203F2800008007C4110027168800101E2105883A1085883A20C000441145883A0009883AE4 +:203F30001500021528C001152005883ADFC00517DD000417DCC00317DC800217DC4001174E +:203F3800DC000017DEC00604F800283A2980220400800044110E983A30C040172105883AC1 +:203F40001085883A1185883A19C6B03A1480201514C000150080008430C0401588BFE31EA6 +:203F48003080411711C4B03A30804115003FDF060080007410911904100B883A8080521572 +:203F5000003FD60600800034108000041000021E013FFFC4003FDC0601006404103EE83AC1 +:203F58001007883A103FFA2680805217180B883A180001151880001580C0521518006215A2 +:203F6000180063150009883A883FC826003FD706F800283A008000741088870410800017FD +:203F6800DEFFF304DF000B15D880011500800034108000041005003AD8800215D880011782 +:203F7000DD400815DD00071510805204DFC00C15DDC00A15DD800915DCC00615DC800515F4 +:203F7800DC400415DC000315282B883A2039883AD88000152829003AD880011714405217AB +:203F800088001026DDC00017888001178C802204143FFFC48000091605BFFFC4A000151E4E +:203F88008409883A2105883A1485883A10C02017A8C01126843FFFC485BFF81ED880021790 +:203F900010003126DFC00C17DF000B17DDC00A17DD800917DD400817DD000717DCC00617BC +:203F9800DC800517DC400417DC000317DEC00D04F800283A8409883A88C001172105883AC4 +:203FA0001445883A18FFFFC4118002171C00152610000215303FE72600C000441C06983A70 +:203FA800908040178CC001171884703A10001426908041171884703A10000C1E2105883ACE +:203FB0001485883A11400017E009883A303EE83A8880011798BFC81EB8800017147FD526B9 +:203FB800003FC5068C000115003FEA062105883A1485883A11000017303EE83A003FF406DA +:203FC000303EE83A003FF206888001171000081E8900001720000726B90000158809883AB6 +:203FC80000000000BC400017883FB71E003FC50689000017882F883A2023883A883FB21E6B +:203FD000003FC006DEFFFD04DF000215DF000204E13FFF15E0BFFF17E0BFFE15E0BFFE17C4 +:203FD8001005003A1000021E002AF07000000106002AF0B0E037883ADF000017DEC001047D +:203FE000F800283ADEFFFD04DFC00215DF000115DF000104E13FFF15E13FFF17000FF4404D +:203FE800003FFF060000FD904F494E3C49492053206E6F203E345055000000006563694E0E +:203FF000206F74202065655321756F590000000072617453676E6974776F6E20002E2E2EA9 +:203FF8000000657600002D72333030300000000000216B4F783230250000000000002D2D38 +:20400000643430250000000030257830000078327272754320746E65656761706432253A77 +:20400800000000006E6168437020656772676F7200006D617277657220657469206C6C61BF +:2040100000003F3068737570616761202D206E69474E203E000000006873757061676120F8 +:2040180000006E6968737570616761202D206E694B4F203E00000000657365726370207476 +:204020000000003F2020202000000000000020206434302500000000303A43503230257898 +:204028003E2D207873342520000000003A4745522C7333253A4D454D3125783000000078EB +:204030003A4D454D3125783000000078756C617664253A6500000000207272650000000098 +:204038002E6E75526F6E2E2E000000777832302500000000000063702E6E755278452E2E07 +:204040000000746920202000202020202828202020282828202020202020202020202020FB +:20404800202020201010882010101010101010101010101004040410040404041004040408 +:20405000101010104141101041414141010101010101010101010101010101010101010156 +:20405800101010104242101042424242020202020202020202020202020202020202020234 +:204060001010101000000020000000000000000000000000000000000000000000000000E0 +:20406800000000000000000000000000000000000000000000000000000000000000000038 +:20407000000000000000000000000000000000000000000000000000000000000000000030 +:20407800000000000000000000000000000000000000000000000000000000000000000028 +:20408000000000000000000000000000000000000000000000000000000000000000000020 +:20408800000000000000000000000000000000000000000000000000000000000000000018 +:20409000000000000000000000000000000000000000000000000000000000000000000010 +:20409800000000000000000000000000000000000000000000000000000000000000000008 +:2040A000000000002020200020202020282820202028282820202020202020202020202078 +:2040A8002020202010108820101010101010101010101010040404100404040410040404A8 +:2040B0001010101041411010414141410101010101010101010101010101010101010101F6 +:2040B8001010101042421010424242420202020202020202020202020202020202020202D4 +:2040C000101010100000002000000000000000000000000000000000000000000000000080 +:2040C8000000000000000000000000000000000000000000000000000000000000000000D8 +:2040D0000000000000000000000000000000000000000000000000000000000000000000D0 +:2040D8000000000000000000000000000000000000000000000000000000000000000000C8 +:2040E0000000000000000000333231303736353462613938666564630000000000464E4981 +:2040E80000666E69004E414E006E616E6C756E280000296C333231303736353442413938C5 +:2040F00046454443000000002067756276206E69697270663A66746E646162207361622003 +:2040F8000000006530300030303030303030303030303030202030302020202020202020D3 +:20410000202020200000202069666E497974696E00000000004E614E000000430000002E27 +:204108002D4F5349393538380000312D0001041C000103C4000103C4000103C4000103C402 +:20411000000103C4000103C4000103C4000103C4000103C47F7F7F7F7F7F7F7F00000000AF +:204118003FF000000000000040240000000000004059000000000000408F4000000000004C +:2041200040C388000000000040F86A0000000000412E848000000000416312D00000000059 +:204128004197D7840000000041CDCD65200000004202A05FE800000042374876A2000000E0 +:20413000426D1A94E540000042A2309C1E90000042D6BCC426340000430C6BF537E0800057 +:204138004341C37985D8A00043763457674EC80043ABC16D60913D0043E158E478B58C4046 +:204140004415AF1DD6E2EF50444B1AE4064DD5924480F0CFC7E14AF644B52D0279D99DB4C6 +:2041480044EA784337E080004341C379B5056E174693B8B5E93FF9F54D384F03F9301D322D +:204150005A8277487F73BF3C75154FDD97D889BC3C9CD2B2D5A8A7333949F62344F4A73DF3 +:2041580032A50FFDCF8C979D255BBA0864AC6F430AC8062800000005000000190000007D36 +:2041600000000000000000000000000000000000000000000202010003030303040404041E +:2041680004040404050505050505050505050505050505050606060606060606060606068F +:20417000060606060606060606060606060606060606060607070707070707070707070763 +:20417800070707070707070707070707070707070707070707070707070707070707070747 +:20418000070707070707070707070707070707070707070708080808080808080808080833 +:20418800080808080808080808080808080808080808080808080808080808080808080817 +:2041900008080808080808080808080808080808080808080808080808080808080808080F +:20419800080808080808080808080808080808080808080808080808080808080808080807 +:2041A00008080808080808080808080808080808080808087665642F6C756E2F0000006C07 +:2041A8007665642F61746A2F61755F67000074727665642F61746A2F61755F67000074723B +:2041B0007665642F64636C2F3236315F305F37300000000000000000000000000000000031 +:2041B8000000000000000000000000000000000000000000000000000000000000000000E7 +:2041C0000000000000000000000000000000000000000000000000000000000000000000DF +:2041C8000000000000000000000000000000000000000000000000000000000000000000D7 +:2041D0000000000000000000000000000000000000000000000000000000000000000000CF +:2041D8000000000000000000000000000000000000000000000000000000000000000000C7 +:2041E0000000000000000000000000000000000000000000000000000000000000000000BF +:2041E8000000000000000000000000000000000000000000000000000000000000000000B7 +:2041F0000000000000000000000000000000000000000000000000000000000000000000AF +:2041F8000000000000000000000000000000000000000000000000000000000000000000A7 +:2042000000000000000000000000000000000000000000000000000000000000000000009E +:20420800000000000000000000000000000000000000000000000000000000000000000096 +:2042100000000000000000000000000000000000000000000000000000000000000000008E +:20421800000000000000000000000000000000000000000000000000000000000000000086 +:2042200000000000000000000000000000000000000000000000000000000000000000007E +:20422800000000000000000000000000000000000000000000000000000000000000000076 +:2042300000000000000000000000000000000000000000000000000000000000000000006E +:20423800000000000000000000000000000000000000000000000000000000000000000066 +:2042400000000000000000000000000000000000000000000000000000000000000000005E +:20424800000000000000000000000000000000000000000000000000000000000000000056 +:2042500000000000000000000000000000000000000000000000000000000000000000004E +:20425800000000000000000000000000000000000000000000000000000000000000000046 +:2042600000000000000000000000000000000000000000000000000000000000000000003E +:20426800000000000000000000000000000000000000000000000000000000000000000036 +:2042700000000000000000000000000000000000000000000000000000000000000000002E +:20427800000000000000000000000000000000000000000000000000000000000000000026 +:2042800000000000000000000000000000000000000000000000000000000000000000001E +:20428800000000000000000000000000000000000000000000000000000000000000000016 +:2042900000000000000000000000000000000000000000000000000000000000000000000E +:20429800000000000000000000000000000000000000000000000000000000000000000006 +:2042A0000000000000000000000000000000000000000000000000000000000000000000FE +:2042A8000000000000000000000000000000000000000000000000000000000000000000F6 +:2042B0000000000000000000000000000000000000000000000000000000000000000000EE +:2042B8000000000000000000000000000000000000000000000000000000000000000000E6 +:2042C0000000000000000000000000000000000000000000000000000000000000000000DE +:2042C8000000000000000000000000000000000000000000000000000000000000000000D6 +:2042D0000000000000000000000000000000000000000000000000000000000000000000CE +:2042D8000000000000000000000000000000000000000000000000000000000000000000C6 +:2042E0000000000000000000000000000000000000000000000000000000000000000000BE +:2042E8000000000000000000000000000000000000000000000000000000000000000000B6 +:2042F0000000000000000000000000000000000000000000000000000000000000000000AE +:2042F8000000000000000000000000000000000000000000000000000000000000000000A6 +:2043000000000000000000000000000000000000000000000000000000000000000000009D +:20430800000000000000000000000000000000000000000000000000000000000000000095 +:2043100000000000000000000000000000000000000000000000000000000000000000008D +:20431800000000000000000000000000000000000000000000000000000000000000000085 +:2043200000000000000000000000000000000000000000000000000000000000000000007D +:20432800000000000000000000000000000000000000000000000000000000000000000075 +:2043300000000000000000000000000000000000000000000000000000000000000000006D +:20433800000000000000000000000000000000000000000000000000000000000000000065 +:2043400000000000000000000000000000000000000000000000000000000000000000005D +:20434800000000000000000000000000000000000000000000000000000000000000000055 +:2043500000000000000000000000000000000000000000000000000000000000000000004D +:20435800000000000000000000000000000000000000000000000000000000000000000045 +:2043600000000000000000000000000000000000000000000000000000000000000000003D +:20436800000000000000000000000000000000000000000000000000000000000000000035 +:2043700000000000000000000000000000000000000000000000000000000000000000002D +:20437800000000000000000000000000000000000000000000000000000000000000000025 +:2043800000000000000000000000000000000000000000000000000000000000000000001D +:20438800000000000000000000000000000000000000000000000000000000000000000015 +:2043900000000000000000000000000000000000000000000000000000000000000000000D +:20439800000000000000000000000000000000000000000000000000000000000000000005 +:2043A0000000000000000000000000000000000000000000000000000000000000000000FD +:2043A8000000000000000000000000000000000000000000000000000000000000000000F5 +:2043B0000000000000000000000000000000000000000000000000000000000000000000ED +:2043B8000000000000000000000000000000000000000000000000000000000000000000E5 +:2043C0000000000000000000000000000000000000000000000000000000000000000000DD +:2043C8000000000000000000000000000000000000000000000000000000000000000000D5 +:2043D0000000000000000000000000000000000000000000000000000000000000000000CD +:2043D8000000000000000000000000000000000000000000000000000000000000000000C5 +:2043E0000000000000000000000000000000000000000000000000000000000000000000BD +:2043E8000000000000000000000000000000000000000000000000000000000000000000B5 +:2043F0000000000000000000000000000000000000000000000000000000000000000000AD +:2043F8000000000000000000000000000000000000000000000000000000000000000000A5 +:2044000000000000000000000000000000000000000000000000000000000000000000009C +:20440800000000000000000000000000000000000000000000000000000000000000000094 +:2044100000000000000000000000000000000000000000000000000000000000000000008C +:20441800000000000000000000000000000000000000000000000000000000000000000084 +:2044200000000000000000000000000000000000000000000000000000000000000000007C +:20442800000000000000000000000000000000000000000000000000000000000000000074 +:2044300000000000000000000000000000000000000000000000000000000000000000006C +:20443800000000000000000000000000000000000000000000000000000000000000000064 +:2044400000000000000000000000000000000000000000000000000000000000000000005C +:20444800000000000000000000000000000000000000000000000000000000000000000054 +:2044500000000000000000000000000000000000000000000000000000000000000000004C +:20445800000000000000000000000000000000000000000000000000000000000000000044 +:2044600000000000000000000000000000000000000000000000000000000000000000003C +:20446800000000000000000000000000000000000000000000000000000000000000000034 +:2044700000000000000000000000000000000000000000000000000000000000000000002C +:20447800000000000000000000000000000000000000000000000000000000000000000024 +:2044800000000000000000000000000000000000000000000000000000000000000000001C +:20448800000000000000000000000000000000000000000000000000000000000000000014 +:2044900000000000000000000000000000000000000000000000000000000000000000000C +:20449800000000000000000000000000000000000000000000000000000000000000000004 +:2044A0000000000000000000000000000000000000000000000000000000000000000000FC +:2044A8000000000000000000000000000000000000000000000000000000000000000000F4 +:2044B0000000000000000000000000000000000000000000000000000000000000000000EC +:2044B8000000000000000000000000000000000000000000000000000000000000000000E4 +:2044C0000000000000000000000000000000000000000000000000000000000000000000DC +:2044C8000000000000000000000000000000000000000000000000000000000000000000D4 +:2044D0000000000000000000000000000000000000000000000000000000000000000000CC +:2044D8000000000000000000000000000000000000000000000000000000000000000000C4 +:2044E0000000000000000000000000000000000000000000000000000000000000000000BC +:2044E8000000000000000000000000000000000000000000000000000000000000000000B4 +:2044F0000000000000000000000000000000000000000000000000000000000000000000AC +:2044F8000000000000000000000000000000000000000000000000000000000000000000A4 +:2045000000000000000000000000000000000000000000000000000000000000000000009B +:20450800000000000000000000000000000000000000000000000000000000000000000093 +:2045100000000000000000000000000000000000000000000000000000000000000000008B +:20451800000000000000000000000000000000000000000000000000000000000000000083 +:2045200000000000000000000000000000000000000000000000000000000000000000007B +:20452800000000000000000000000000000000000000000000000000000000000000000073 +:2045300000000000000000000000000000000000000000000000000000000000000000006B +:20453800000000000000000000000000000000000000000000000000000000000000000063 +:2045400000000000000000000000000000000000000000000000000000000000000000005B +:20454800000000000000000000000000000000000000000000000000000000000000000053 +:2045500000000000000000000000000000000000000000000000000000000000000000004B +:20455800000000000000000000000000000000000000000000000000000000000000000043 +:2045600000000000000000000000000000000000000000000000000000000000000000003B +:20456800000000000000000000000000000000000000000000000000000000000000000033 +:2045700000000000000000000000000000000000000000000000000000000000000000002B +:20457800000000000000000000000000000000000000000000000000000000000000000023 +:2045800000000000000000000000000000000000000000000000000000000000000000001B +:20458800000000000000000000000000000000000000000000000000000000000000000013 +:2045900000000000000000000000000000000000000000000000000000000000000000000B +:20459800000000000000000000000000000000000000000000000000000000000000000003 +:2045A0000000000000000000000000000000000000000000000000000000000000000000FB +:2045A8000000000000000000000000000000000000000000000000000000000000000000F3 +:2045B0000000000000000000000000000000000000000000000000000000000000000000EB +:2045B8000000000000000000000000000000000000000000000000000000000000000000E3 +:2045C0000000000000000000000000000000000000000000000000000000000000000000DB +:2045C8000000000000000000000000000000000000000000000000000000000000000000D3 +:2045D0000000000000000000000000000000000000000000000000000000000000000000CB +:2045D8000000000000000000000000000000000000000000000000000000000000000000C3 +:2045E0000000000000000000000000000000000000000000000000000000000000000000BB +:2045E8000000000000000000000000000000000000000000000000000000000000000000B3 +:2045F0000000000000000000000000000000000000000000000000000000000000000000AB +:2045F8000000000000000000000000000000000000000000000000000000000000000000A3 +:2046000000000000000000000000000000000000000000000000000000000000000000009A +:20460800000000000000000000000000000000000000000000000000000000000000000092 +:2046100000000000000000000000000000000000000000000000000000000000000000008A +:20461800000000000000000000000000000000000000000000000000000000000000000082 +:2046200000000000000000000000000000000000000000000000000000000000000000007A +:20462800000000000000000000000000000000000000000000000000000000000000000072 +:2046300000000000000000000000000000000000000000000000000000000000000000006A +:20463800000000000000000000000000000000000000000000000000000000000000000062 +:2046400000000000000000000000000000000000000000000000000000000000000000005A +:20464800000000000000000000000000000000000000000000000000000000000000000052 +:2046500000000000000000000000000000000000000000000000000000000000000000004A +:20465800000000000000000000000000000000000000000000000000000000000000000042 +:2046600000000000000000000000000000000000000000000000000000000000000000003A +:20466800000000000000000000000000000000000000000000000000000000000000000032 +:2046700000000000000000000000000000000000000000000000000000000000000000002A +:20467800000000000000000000000000000000000000000000000000000000000000000022 +:2046800000000000000000000000000000000000000000000000000000000000000000001A +:20468800000000000000000000000000000000000000000000000000000000000000000012 +:2046900000000000000000000000000000000000000000000000000000000000000000000A +:20469800000000000000000000000000000000000000000000000000000000000000000002 +:2046A0000000000000000000000000000000000000000000000000000000000000000000FA +:2046A8000000000000000000000000000000000000000000000000000000000000000000F2 +:2046B0000000000000000000000000000000000000000000000000000000000000000000EA +:2046B8000000000000000000000000000000000000000000000000000000000000000000E2 +:2046C0000000000000000000000000000000000000000000000000000000000000000000DA +:2046C8000000000000000000000000000000000000000000000000000000000000000000D2 +:2046D0000000000000000000000000000000000000000000000000000000000000000000CA +:2046D8000000000000000000000000000000000000000000000000000000000000000000C2 +:2046E0000000000000000000000000000000000000000000000000000000000000000000BA +:2046E8000000000000000000000000000000000000000000000000000000000000000000B2 +:2046F0000000000000000000000000000000000000000000000000000000000000000000AA +:2046F8000000000000000000000000000000000000000000000000000000000000000000A2 +:20470000000000000000000000000000000000000000000000000000000000000000000099 +:20470800000000000000000000000000000000000000000000000000000000000000000091 +:20471000000000000000000000000000000000000000000000000000000000000000000089 +:20471800000000000000000000000000000000000000000000000000000000000000000081 +:20472000000000000000000000000000000000000000000000000000000000000000000079 +:20472800000000000000000000000000000000000000000000000000000000000000000071 +:20473000000000000000000000000000000000000000000000000000000000000000000069 +:20473800000000000000000000000000000000000000000000000000000000000000000061 +:20474000000000000000000000000000000000000000000000000000000000000000000059 +:20474800000000000000000000000000000000000000000000000000000000000000000051 +:20475000000000000000000000000000000000000000000000000000000000000000000049 +:20475800000000000000000000000000000000000000000000000000000000000000000041 +:20476000000000000000000000000000000000000000000000000000000000000000000039 +:20476800000000000000000000000000000000000000000000000000000000000000000031 +:20477000000000000000000000000000000000000000000000000000000000000000000029 +:20477800000000000000000000000000000000000000000000000000000000000000000021 +:20478000000000000000000000000000000000000000000000000000000000000000000019 +:20478800000000000000000000000000000000000000000000000000000000000000000011 +:20479000000000000000000000000000000000000000000000000000000000000000000009 +:20479800000000000000000000000000000000000000000000000000000000000000000001 +:2047A0000000000000000000000000000000000000000000000000000000000000000000F9 +:2047A8000000000000000000000000000000000000000000000000000000000000000000F1 +:2047B0000000000000000000000000000000000000000000000000000000000000000000E9 +:2047B8000000000000000000000000000000000000000000000000000000000000000000E1 +:2047C0000000000000000000000000000000000000000000000000000000000000000000D9 +:2047C8000000000000000000000000000000000000000000000000000000000000000000D1 +:2047D0000000000000000000000000000000000000000000000000000000000000000000C9 +:2047D8000000000000000000000000000000000000000000000000000000000000000000C1 +:2047E0000000000000000000000000000000000000000000000000000000000000000000B9 +:2047E8000000000000000000000000000000000000000000000000000000000000000000B1 +:2047F0000000000000000000000000000000000000000000000000000000000000000000A9 +:2047F8000000000000000000000000000000000000000000000000000000000000000000A1 +:20480000000000000000000000000000000000000000000000000000000000000000000098 +:20480800000000000000000000000000000000000000000000000000000000000000000090 +:20481000000000000000000000000000000000000000000000000000000000000000000088 +:20481800000000000000000000000000000000000000000000000000000000000000000080 +:20482000000000000000000000000000000000000000000000000000000000000000000078 +:20482800000000000000000000000000000000000000000000000000000000000000000070 +:20483000000000000000000000000000000000000000000000000000000000000000000068 +:20483800000000000000000000000000000000000000000000000000000000000000000060 +:20484000000000000000000000000000000000000000000000000000000000000000000058 +:20484800000000000000000000000000000000000000000000000000000000000000000050 +:20485000000000000000000000000000000000000000000000000000000000000000000048 +:20485800000000000000000000000000000000000000000000000000000000000000000040 +:20486000000000000000000000000000000000000000000000000000000000000000000038 +:20486800000000000000000000000000000000000000000000000000000000000000000030 +:20487000000000000000000000000000000000000000000000000000000000000000000028 +:20487800000000000000000000000000000000000000000000000000000000000000000020 +:20488000000000000000000000000000000000000000000000000000000000000000000018 +:20488800000000000000000000000000000000000000000000000000000000000000000010 +:20489000000000000000000000000000000000000000000000000000000000000000000008 +:20489800000109C000010A1C00010A7800000000000000000000000000000000000000008C +:2048A0000000000000000000000000000000000000010418000000000000000000000000DB +:2048A8000000000000000000000000000000000000000000000000000000000000000000F0 +:2048B0000000000000000000000000000000000000000000000000000000000000000000E8 +:2048B8000000000000000000000000000000000000000000000000000000000000000000E0 +:2048C0000000000100000000ABCD330EE66D12340005DEEC0000000B0000000000000000AB +:2048C8000000000000000000000000000000000000000000000000000000000000000000D0 +:2048D0000000000000000000000000000000000000000000000000000000000000000000C8 +:2048D8000000000000000000000000000000000000000000000000000000000000000000C0 +:2048E0000000000000000000000000000000000000000000000000000000000000000000B8 +:2048E8000000000000000000000000000000000000000000000000000000000000000000B0 +:2048F0000000000000000000000000000000000000000000000000000000000000000000A8 +:2048F8000000000000000000000000000000000000000000000000000000000000000000A0 +:20490000000000000000000000000000000000000000000000000000000000000000000097 +:2049080000000000000000000000000000000000000000000000000000000000000000008F +:20491000000000000000000000000000000000000000000000000000000000000000000087 +:2049180000000000000000000000000000000000000000000000000000000000000000007F +:20492000000000000000000000000000000000000000000000000000000000000000000077 +:2049280000000000000000000000000000000000000000000000000000000000000000006F +:20493000000000000000000000000000000000000000000000000000000000000000000067 +:2049380000000000000000000000000000000000000000000000000000000000000000005F +:20494000000000000000000000000000000000000000000000000000000000000000000057 +:2049480000000000000000000000000000000000000000000000000000000000000000004F +:20495000000000000000000000000000000000000000000000000000000000000000000047 +:2049580000000000000000000000000000000000000000000000000000000000000000003F +:20496000000000000000000000000000000000000000000000000000000000000000000037 +:2049680000000000000000000000000000000000000000000000000000000000000000002F +:20497000000000000000000000000000000000000000000000000000000000000000000027 +:2049780000000000000000000000000000000000000000000000000000000000000000001F +:20498000000000000000000000000000000000000000000000000000000000000000000017 +:2049880000000000000000000000000000000000000000000000000000000000000000000F +:204990000000000000000000000000000000000000000000000000000000000000000043C4 +:204998000000000000000000000000000000000000010AE000010AE000010AE800010AE843 +:2049A00000010AF000010AF000010AF800010AF800010B0000010B0000010B0800010B08BB +:2049A80000010B1000010B1000010B1800010B1800010B2000010B2000010B2800010B28AF +:2049B00000010B3000010B3000010B3800010B3800010B4000010B4000010B4800010B48A7 +:2049B80000010B5000010B5000010B5800010B5800010B6000010B6000010B6800010B689F +:2049C00000010B7000010B7000010B7800010B7800010B8000010B8000010B8800010B8897 +:2049C80000010B9000010B9000010B9800010B9800010BA000010BA000010BA800010BA88F +:2049D00000010BB000010BB000010BB800010BB800010BC000010BC000010BC800010BC887 +:2049D80000010BD000010BD000010BD800010BD800010BE000010BE000010BE800010BE87F +:2049E00000010BF000010BF000010BF800010BF800010C0000010C0000010C0800010C0873 +:2049E80000010C1000010C1000010C1800010C1800010C2000010C2000010C2800010C2867 +:2049F00000010C3000010C3000010C3800010C3800010C4000010C4000010C4800010C485F +:2049F80000010C5000010C5000010C5800010C5800010C6000010C6000010C6800010C6857 +:204A000000010C7000010C7000010C7800010C7800010C8000010C8000010C8800010C884E +:204A080000010C9000010C9000010C9800010C9800010CA000010CA000010CA800010CA846 +:204A100000010CB000010CB000010CB800010CB800010CC000010CC000010CC800010CC83E +:204A180000010CD000010CD000010CD800010CD800010CE000010CE000010CE800010CE836 +:204A200000010CF000010CF000010CF800010CF800010D0000010D0000010D0800010D082A +:204A280000010D1000010D1000010D1800010D1800010D2000010D2000010D2800010D281E +:204A300000010D3000010D3000010D3800010D3800010D4000010D4000010D4800010D4816 +:204A380000010D5000010D5000010D5800010D5800010D6000010D6000010D6800010D680E +:204A400000010D7000010D7000010D7800010D7800010D8000010D8000010D8800010D8806 +:204A480000010D9000010D9000010D9800010D9800010DA000010DA000010DA800010DA8FE +:204A500000010DB000010DB000010DB800010DB800010DC000010DC000010DC800010DC8F6 +:204A580000010DD000010DD000010DD800010DD800010DE000010DE000010DE800010DE8EE +:204A600000010DF000010DF000010DF800010DF800010E0000010E0000010E0800010E08E2 +:204A680000010E1000010E1000010E1800010E1800010E2000010E2000010E2800010E28D6 +:204A700000010E3000010E3000010E3800010E3800010E4000010E4000010E4800010E48CE +:204A780000010E5000010E5000010E5800010E5800010E6000010E6000010E6800010E68C6 +:204A800000010E7000010E7000010E7800010E7800010E8000010E8000010E8800010E88BE +:204A880000010E9000010E9000010E9800010E9800010EA000010EA000010EA800010EA8B6 +:204A900000010EB000010EB000010EB800010EB800010EC000010EC000010EC800010EC8AE +:204A980000010ED000010ED000010ED800010ED80001223800012238000106940000000021 +:204AA00000000000000000000000C66400000000000000000000000000010EE800000000D5 +:204AA8000000000000010EE8000000000000000000010EE800000000000000000000000000 +:204AB0000000000000000000000000000000000000000000000000000000000000000000E6 +:204AB8000000000000000000000000000000000000000000000000000000000000000000DE +:204AC0000000000000000000000000000000000000000000000000000000000000000000D6 +:204AC8000000000000000000000000000000000000000000000000000000000000000000CE +:204AD0000000000000000000000000000000000000000000000000000000000000000000C6 +:204AD8000000000000000000000000000000000000000000000000000000000000000000BE +:204AE0000000000000000000000000000000000000000000000000000000000000000000B6 +:204AE8000000000000000000000000000000000000000000000000000000000000000000AE +:204AF0000000000000000000000000000000000000000000000000000000000000000000A6 +:204AF80000000000000000000000000000000000000000000000000000000000000000009E +:204B0000000000000000000000000000000000000000000000000000000000000000000095 +:204B0800000106B0000000000000D1BC0000D10C0000D16400000000000000000000D20461 +:204B1000000411000000000A00000000000000000000000000000000000000000000000066 +:204B180000000000000000000000000000000000000000000000000000000000000000007D +:204B2000000000000000000000000000000000000000000000000000000000000000000075 +:204B280000000000000000000000000000000000000000000000000000000000000000006D +:204B3000000000000000000000000000000000000000000000000000000000000000000065 +:204B380000000000000000000000000000000000000000000000000000000000000000005D +:204B4000000000000000000000000000000000000000000000000000000000000000000055 +:204B480000000000000000000000000000000000000000000000000000000000000000004D +:204B5000000000000000000000000000000000000000000000000000000000000000000045 +:204B580000000000000000000000000000000000000000000000000000000000000000003D +:204B6000000000000000000000000000000000000000000000000000000000000000000035 +:204B680000000000000000000000000000000000000000000000000000000000000000002D +:204B7000000000000000000000000000000000000000000000000000000000000000000025 +:204B780000000000000000000000000000000000000000000000000000000000000000001D +:204B8000000000000000000000000000000000000000000000000000000000000000000015 +:204B880000000000000000000000000000000000000000000000000000000000000000000D +:204B9000000000000000000000000000000000000000000000000000000000000000000005 +:204B98000000000000000000000000000000000000000000000000000000000000000000FD +:204BA0000000000000000000000000000000000000000000000000000000000000000000F5 +:204BA8000000000000000000000000000000000000000000000000000000000000000000ED +:204BB0000000000000000000000000000000000000000000000000000000000000000000E5 +:204BB8000000000000000000000000000000000000000000000000000000000000000000DD +:204BC0000000000000000000000000000000000000000000000000000000000000000000D5 +:204BC8000000000000000000000000000000000000000000000000000000000000000000CD +:204BD0000000000000000000000000000000000000000000000000000000000000000000C5 +:204BD8000000000000000000000000000000000000000000000000000000000000000000BD +:204BE0000000000000000000000000000000000000000000000000000000000000000000B5 +:204BE8000000000000000000000000000000000000000000000000000000000000000000AD +:204BF0000000000000000000000000000000000000000000000000000000000000000000A5 +:204BF80000000000000000000000000000000000000000000000000000000000000000009D +:204C0000000000000000000000000000000000000000000000000000000000000000000094 +:204C080000000000000000000000000000000000000000000000000000000000000000008C +:204C1000000000000000000000000000000000000000000000000000000000000000000084 +:204C180000000000000000000000000000000000000000000000000000000000000000007C +:204C2000000000000000000000000000000000000000000000000000000000000000000074 +:204C280000000000000000000000000000000000000000000000000000000000000000006C +:204C3000000000000000000000000000000000000000000000000000000000000000000064 +:204C380000000000000000000000000000000000000000000000000000000000000000005C +:204C4000000000000000000000000000000000000000000000000000000000000000000054 +:204C480000000000000000000000000000000000000000000000000000000000000000004C +:204C5000000000000000000000000000000000000000000000000000000000000000000044 +:204C580000000000000000000000000000000000000000000000000000000000000000003C +:204C6000000000000000000000000000000000000000000000000000000000000000000034 +:204C680000000000000000000000000000000000000000000000000000000000000000002C +:204C7000000000000000000000000000000000000000000000000000000000000000000024 +:204C780000000000000000000000000000000000000000000000000000000000000000001C +:204C8000000000000000000000000000000000000000000000000000000000000000000014 +:204C880000000000000000000000000000000000000000000000000000000000000000000C +:204C9000000000000000000000000000000000000000000000000000000000000000000004 +:204C98000000000000000000000000000000000000000000000000000000000000000000FC +:204CA0000000000000000000000000000000000000000000000000000000000000000000F4 +:204CA8000000000000000000000000000000000000000000000000000000000000000000EC +:204CB0000000000000000000000000000000000000000000000000000000000000000000E4 +:204CB8000000000000000000000000000000000000000000000000000000000000000000DC +:204CC0000000000000000000000000000000000000000000000000000000000000000000D4 +:204CC8000000000000000000000000000000000000000000000000000000000000000000CC +:204CD0000000000000000000000000000000000000000000000000000000000000000000C4 +:204CD8000000000000000000000000000000000000000000000000000000000000000000BC +:204CE0000000000000000000000000000000000000000000000000000000000000000000B4 +:204CE8000000000000000000000000000000000000000000000000000000000000000000AC +:204CF0000000000000000000000000000000000000000000000000000000000000000000A4 +:204CF80000000000000000000000000000000000000000000000000000000000000000009C +:204D0000000000000000000000000000000000000000000000000000000000000000000093 +:204D080000000000000000000000000000000000000000000000000000000000000000008B +:204D1000000000000000000000000000000000000000000000000000000000000000000083 +:204D180000000000000000000000000000000000000000000000000000000000000000007B +:204D2000000000000000000000000000000000000000000000000000000000000000000073 +:204D280000000000000000000000000000000000000000000000000000000000000000006B +:204D3000000000000000000000000000000000000000000000000000000000000000000063 +:204D380000000000000000000000000000000000000000000000000000000000000000005B +:204D4000000000000000000000000000000000000000000000000000000000000000000053 +:204D480000000000000000000000000000000000000000000000000000000000000000004B +:204D5000000000000000000000000000000000000000000000000000000000000000000043 +:204D580000000000000000000000000000000000000000000000000000000000000000003B +:204D6000000000000000000000000000000000000000000000000000000000000000000033 +:204D680000000000000000000000000000000000000000000000000000000000000000002B +:204D7000000000000000000000000000000000000000000000000000000000000000000023 +:204D780000000000000000000000000000000000000000000000000000000000000000001B +:204D8000000000000000000000000000000000000000000000000000000000000000000013 +:204D880000000000000000000000000000000000000000000000000000000000000000000B +:204D9000000000000000000000000000000000000000000000000000000000000000000003 +:204D98000000000000000000000000000000000000000000000000000000000000000000FB +:204DA0000000000000000000000000000000000000000000000000000000000000000000F3 +:204DA8000000000000000000000000000000000000000000000000000000000000000000EB +:204DB0000000000000000000000000000000000000000000000000000000000000000000E3 +:204DB8000000000000000000000000000000000000000000000000000000000000000000DB +:204DC0000000000000000000000000000000000000000000000000000000000000000000D3 +:204DC8000000000000000000000000000000000000000000000000000000000000000000CB +:204DD0000000000000000000000000000000000000000000000000000000000000000000C3 +:204DD8000000000000000000000000000000000000000000000000000000000000000000BB +:204DE0000000000000000000000000000000000000000000000000000000000000000000B3 +:204DE8000000000000000000000000000000000000000000000000000000000000000000AB +:204DF0000000000000000000000000000000000000000000000000000000000000000000A3 +:204DF80000000000000000000000000000000000000000000000000000000000000000009B +:204E0000000000000000000000000000000000000000000000000000000000000000000092 +:204E080000000000000000000000000000000000000000000000000000000000000000008A +:204E1000000000000000000000000000000000000000000000000000000000000000000082 +:204E180000000000000000000000000000000000000000000000000000000000000000007A +:204E2000000000000000000000000000000000000000000000000000000000000000000072 +:204E280000000000000000000000000000000000000000000000000000000000000000006A +:204E3000000000000000000000000000000000000000000000000000000000000000000062 +:204E380000000000000000000000000000000000000000000000000000000000000000005A +:204E4000000000000000000000000000000000000000000000000000000000000000000052 +:204E480000000000000000000000000000000000000000000000000000000000000000004A +:204E5000000000000000000000000000000000000000000000000000000000000000000042 +:204E580000000000000000000000000000000000000000000000000000000000000000003A +:204E6000000000000000000000000000000000000000000000000000000000000000000032 +:204E680000000000000000000000000000000000000000000000000000000000000000002A +:204E7000000000000000000000000000000000000000000000000000000000000000000022 +:204E780000000000000000000000000000000000000000000000000000000000000000001A +:204E8000000000000000000000000000000000000000000000000000000000000000000012 +:204E880000000000000000000000000000000000000000000000000000000000000000000A +:204E9000000000000000000000000000000000000000000000000000000000000000000002 +:204E98000000000000000000000000000000000000000000000000000000000000000000FA +:204EA0000000000000000000000000000000000000000000000000000000000000000000F2 +:204EA8000000000000000000000000000000000000000000000000000000000000000000EA +:204EB0000000000000000000000000000000000000000000000000000000000000000000E2 +:204EB8000000000000000000000000000000000000000000000000000000000000000000DA +:204EC0000000000000000000000000000000000000000000000000000000000000000000D2 +:204EC8000000000000000000000000000000000000000000000000000000000000000000CA +:204ED0000000000000000000000000000000000000000000000000000000000000000000C2 +:204ED8000000000000000000000000000000000000000000000000000000000000000000BA +:204EE0000000000000000000000000000000000000000000000000000000000000000000B2 +:204EE8000000000000000000000000000000000000000000000000000000000000000000AA +:204EF0000000000000000000000000000000000000000000000000000000000000000000A2 +:204EF80000000000000000000000000000000000000000000000000000000000000000009A +:204F0000000000000000000000000000000000000000000000000000000000000000000091 +:204F0800000000000000000000000000000000000000000000000000000000000000000089 +:204F1000000000000000000000000000000000000000000000000000000000000000000081 +:204F1800000000000000000000000000000000000000000000000000000000000000000079 +:204F2000000106C00000000000000000000000000000EB3800000000000000000000000087 +:204F2800000410300000000000000000000000000000000000000000000000000000000025 +:204F3000000000000000000000000000000000000000000000000000000000000000000061 +:204F3800000000000000000000000000000000000000000000000000000000000000000059 +:204F4000000000000000000000000000000000000000000000000000000000000000000051 +:204F4800000000000000000000000000000000000000000000000000000000000000000049 +:204F5000000000000000000000000000000000000000000000000000000000000000000041 +:204F5800000000000000000000000000000000000000000000000000000000000000000039 +:204F60000000000000000000000000000000000000000000000000000000000100010285A8 +:204F6800000106D4000106D4000000010001042000020000FFFFFFFF0001223000012230A9 +:204F700000010EE800010EE8FFFFFFFF00000000000145F460204000FFFFFFFF00012254CA +:204F78000001225400000000000000000000000000000000000000000000000000000000A2 +:204F8000000000000000000000000000000000000000000000000000000000000000000011 +:204F8800000000000000000000000000000000000000000000000000000000000000000009 +:204F9000000000000000000000000000000000000000000000000000000000000000000001 +:204F98000000000000000000000000000000000000000000000000000000000000000000F9 +:204FA0000000000000000000000000000000000000000000000000000000000000000000F1 +:204FA8000000000000000000000000000000000000000000000000000000000000000000E9 +:204FB0000000000000000000000000000000000000000000000000000000000000000000E1 +:204FB8000000000000000000000000000000000000000000000000000000000000000000D9 +:204FC0000000000000000000000000000000000000000000000000000000000000000000D1 +:204FC8000000000000000000000000000000000000000000000000000000000000000000C9 +:204FD0000000000000000000000000000000000000000000000000000000000000000000C1 +:204FD8000000000000000000000000000000000000000000000000000000000000000000B9 +:204FE0000000000000000000000000000000000000000000000000000000000000000000B1 +:204FE8000000000000000000000000000000000000000000000000000000000000000000A9 +:204FF0000000000000000000000000000000000000000000000000000000000000000000A1 +:204FF800000000000000000000000000000000000000000000000000000000000000000099 +:20500000000000000000000000000000000000000000000000000000000000000000000090 +:20500800000000000000000000000000000000000000000000000000000000000000000088 +:20501000000000000000000000000000000000000000000000000000000000000000000080 +:20501800000000000000000000000000000000000000000000000000000000000000000078 +:20502000000000000000000000000000000000000000000000000000000000000000000070 +:20502800000000000000000000000000000000000000000000000000000000000000000068 +:20503000000000000000000000000000000000000000000000000000000000000000000060 +:20503800000000000000000000000000000000000000000000000000000000000000000058 +:20504000000000000000000000000000000000000000000000000000000000000000000050 +:20504800000000000000000000000000000000000000000000000000000000000000000048 +:20505000000000000000000000000000000000000000000000000000000000000000000040 +:20505800000000000000000000000000000000000000000000000000000000000000000038 +:20506000000000000000000000000000000000000000000000000000000000000000000030 +:20506800000000000000000000000000000000000000000000000000000000000000000028 +:20507000000000000000000000000000000000000000000000000000000000000000000020 +:20507800000000000000000000000000000000000000000000000000000000000000000018 +:20508000000000000000000000000000000000000000000000000000000000000000000010 +:20508800000000000000000000000000000000000000000000000000000000000000000008 +:20509000000000000000000000000000000000000000000000000000000000000000000000 +:205098000000000000000000000000000000000000000000000000000000000000000000F8 +:2050A0000000000000000000000000000000000000000000000000000000000000000000F0 +:2050A8000000000000000000000000000000000000000000000000000000000000000000E8 +:2050B0000000000000000000000000000000000000000000000000000000000000000000E0 +:2050B8000000000000000000000000000000000000000000000000000000000000000000D8 +:2050C0000000000000000000000000000000000000000000000000000000000000000000D0 +:2050C8000000000000000000000000000000000000000000000000000000000000000000C8 +:2050D0000000000000000000000000000000000000000000000000000000000000000000C0 +:2050D8000000000000000000000000000000000000000000000000000000000000000000B8 +:2050E0000000000000000000000000000000000000000000000000000000000000000000B0 +:2050E8000000000000000000000000000000000000000000000000000000000000000000A8 +:2050F0000000000000000000000000000000000000000000000000000000000000000000A0 +:2050F800000000000000000000000000000000000000000000000000000000000000000098 +:2051000000000000000000000000000000000000000000000000000000000000000000008F +:20510800000000000000000000000000000000000000000000000000000000000000000087 +:2051100000000000000000000000000000000000000000000000000000000000000000007F +:20511800000000000000000000000000000000000000000000000000000000000000000077 +:2051200000000000000000000000000000000000000000000000000000000000000000006F +:20512800000000000000000000000000000000000000000000000000000000000000000067 +:2051300000000000000000000000000000000000000000000000000000000000000000005F +:20513800000000000000000000000000000000000000000000000000000000000000000057 +:2051400000000000000000000000000000000000000000000000000000000000000000004F +:20514800000000000000000000000000000000000000000000000000000000000000000047 +:2051500000000000000000000000000000000000000000000000000000000000000000003F +:20515800000000000000000000000000000000000000000000000000000000000000000037 +:2051600000000000000000000000000000000000000000000000000000000000000000002F +:20516800000000000000000000000000000000000000000000000000000000000000000027 +:2051700000000000000000000000000000000000000000000000000000000000000000001F +:20517800000000000000000000000000000000000000000000000000000000000000000017 +:2051800000000000000000000000000000000000000000000000000000000000000000000F +:20518800000000000000000000000000000000000000000000000000000000000000000007 +:205190000000000000000000000000000000000000000000000000000000000000000000FF +:205198000000000000000000000000000000000000000000000000000000000000000000F7 +:2051A0000000000000000000000000000000000000000000000000000000000000000000EF +:2051A8000000000000000000000000000000000000000000000000000000000000000000E7 +:2051B0000000000000000000000000000000000000000000000000000000000000000000DF +:2051B8000000000000000000000000000000000000000000000000000000000000000000D7 +:2051C0000000000000000000000000000000000000000000000000000000000000000000CF +:2051C8000000000000000000000000000000000000000000000000000000000000000000C7 +:2051D0000000000000000000000000000000000000000000000000000000000000000000BF +:2051D8000000000000000000000000000000000000000000000000000000000000000000B7 +:2051E0000000000000000000000000000000000000000000000000000000000000000000AF +:2051E8000000000000000000000000000000000000000000000000000000000000000000A7 +:2051F00000000000000000000000000000000000000000000000000000000000000000009F +:2051F800000000000000000000000000000000000000000000000000000000000000000097 +:2052000000000000000000000000000000000000000000000000000000000000000000008E +:20520800000000000000000000000000000000000000000000000000000000000000000086 +:2052100000000000000000000000000000000000000000000000000000000000000000007E +:20521800000000000000000000000000000000000000000000000000000000000000000076 +:2052200000000000000000000000000000000000000000000000000000000000000000006E +:20522800000000000000000000000000000000000000000000000000000000000000000066 +:2052300000000000000000000000000000000000000000000000000000000000000000005E +:20523800000000000000000000000000000000000000000000000000000000000000000056 +:2052400000000000000000000000000000000000000000000000000000000000000000004E +:20524800000000000000000000000000000000000000000000000000000000000000000046 +:2052500000000000000000000000000000000000000000000000000000000000000000003E +:20525800000000000000000000000000000000000000000000000000000000000000000036 +:2052600000000000000000000000000000000000000000000000000000000000000000002E +:20526800000000000000000000000000000000000000000000000000000000000000000026 +:2052700000000000000000000000000000000000000000000000000000000000000000001E +:20527800000000000000000000000000000000000000000000000000000000000000000016 +:2052800000000000000000000000000000000000000000000000000000000000000000000E +:20528800000000000000000000000000000000000000000000000000000000000000000006 +:205290000000000000000000000000000000000000000000000000000000000000000000FE +:205298000000000000000000000000000000000000000000000000000000000000000000F6 +:2052A0000000000000000000000000000000000000000000000000000000000000000000EE +:2052A8000000000000000000000000000000000000000000000000000000000000000000E6 +:2052B0000000000000000000000000000000000000000000000000000000000000000000DE +:2052B8000000000000000000000000000000000000000000000000000000000000000000D6 +:2052C0000000000000000000000000000000000000000000000000000000000000000000CE +:2052C8000000000000000000000000000000000000000000000000000000000000000000C6 +:2052D0000000000000000000000000000000000000000000000000000000000000000000BE +:2052D8000000000000000000000000000000000000000000000000000000000000000000B6 +:2052E0000000000000000000000000000000000000000000000000000000000000000000AE +:2052E8000000000000000000000000000000000000000000000000000000000000000000A6 +:2052F00000000000000000000000000000000000000000000000000000000000000000009E +:2052F800000000000000000000000000000000000000000000000000000000000000000096 +:2053000000000000000000000000000000000000000000000000000000000000000000008D +:20530800000000000000000000000000000000000000000000000000000000000000000085 +:2053100000000000000000000000000000000000000000000000000000000000000000007D +:20531800000000000000000000000000000000000000000000000000000000000000000075 +:2053200000000000000000000000000000000000000000000000000000000000000000006D +:20532800000000000000000000000000000000000000000000000000000000000000000065 +:2053300000000000000000000000000000000000000000000000000000000000000000005D +:20533800000000000000000000000000000000000000000000000000000000000000000055 +:2053400000000000000000000000000000000000000000000000000000000000000000004D +:20534800000000000000000000000000000000000000000000000000000000000000000045 +:2053500000000000000000000000000000000000000000000000000000000000000000003D +:20535800000000000000000000000000000000000000000000000000000000000000000035 +:2053600000000000000000000000000000000000000000000000000000000000000000002D +:20536800000000000000000000000000000000000000000000000000000000000000000025 +:2053700000000000000000000000000000000000000000000000000000000000000000001D +:20537800000000000000000000000000000000000000000000000000000000000000000015 +:2053800000000000000000000000000000000000000000000000000000000000000000000D +:20538800000000000000000000000000000000000000000000000000000000000000000005 +:205390000000000000000000000000000000000000000000000000000000000000000000FD +:205398000000000000000000000000000000000000000000000000000000000000000000F5 +:2053A0000000000000000000000000000000000000000000000000000000000000000000ED +:2053A8000000000000000000000000000000000000000000000000000000000000000000E5 +:2053B0000000000000000000000000000000000000000000000000000000000000000000DD +:2053B8000000000000000000000000000000000000000000000000000000000000000000D5 +:2053C0000000000000000000000000000000000000000000000000000000000000000000CD +:2053C8000000000000000000000000000000000000000000000000000000000000000000C5 +:2053D0000000000000000000000000000000000000000000000000000000000000000000BD +:2053D8000000000000000000000000000000000000000000000000000000000000000000B5 +:2053E0000000000000000000000000000000000000000000000000000000000000000000AD +:2053E8000000000000000000000000000000000000000000000000000000000000000000A5 +:2053F00000000000000000000000000000000000000000000000000000000000000000009D +:2053F800000000000000000000000000000000000000000000000000000000000000000095 +:2054000000000000000000000000000000000000000000000000000000000000000000008C +:20540800000000000000000000000000000000000000000000000000000000000000000084 +:2054100000000000000000000000000000000000000000000000000000000000000000007C +:20541800000000000000000000000000000000000000000000000000000000000000000074 +:2054200000000000000000000000000000000000000000000000000000000000000000006C +:20542800000000000000000000000000000000000000000000000000000000000000000064 +:2054300000000000000000000000000000000000000000000000000000000000000000005C +:20543800000000000000000000000000000000000000000000000000000000000000000054 +:2054400000000000000000000000000000000000000000000000000000000000000000004C +:20544800000000000000000000000000000000000000000000000000000000000000000044 +:2054500000000000000000000000000000000000000000000000000000000000000000003C +:20545800000000000000000000000000000000000000000000000000000000000000000034 +:2054600000000000000000000000000000000000000000000000000000000000000000002C +:20546800000000000000000000000000000000000000000000000000000000000000000024 +:2054700000000000000000000000000000000000000000000000000000000000000000001C +:20547800000000000000000000000000000000000000000000000000000000000000000014 +:2054800000000000000000000000000000000000000000000000000000000000000000000C +:20548800000000000000000000000000000000000000000000000000000000000000000004 +:205490000000000000000000000000000000000000000000000000000000000000000000FC +:205498000000000000000000000000000000000000000000000000000000000000000000F4 +:2054A0000000000000000000000000000000000000000000000000000000000000000000EC +:2054A8000000000000000000000000000000000000000000000000000000000000000000E4 +:2054B0000000000000000000000000000000000000000000000000000000000000000000DC +:2054B8000000000000000000000000000000000000000000000000000000000000000000D4 +:2054C0000000000000000000000000000000000000000000000000000000000000000000CC +:2054C8000000000000000000000000000000000000000000000000000000000000000000C4 +:2054D0000000000000000000000000000000000000000000000000000000000000000000BC +:2054D8000000000000000000000000000000000000000000000000000000000000000000B4 +:2054E0000000000000000000000000000000000000000000000000000000000000000000AC +:2054E8000000000000000000000000000000000000000000000000000000000000000000A4 +:2054F00000000000000000000000000000000000000000000000000000000000000000009C +:2054F800000000000000000000000000000000000000000000000000000000000000000094 +:2055000000000000000000000000000000000000000000000000000000000000000000008B +:20550800000000000000000000000000000000000000000000000000000000000000000083 +:2055100000000000000000000000000000000000000000000000000000000000000000007B +:20551800000000000000000000000000000000000000000000000000000000000000000073 +:2055200000000000000000000000000000000000000000000000000000000000000000006B +:20552800000000000000000000000000000000000000000000000000000000000000000063 +:2055300000000000000000000000000000000000000000000000000000000000000000005B +:20553800000000000000000000000000000000000000000000000000000000000000000053 +:2055400000000000000000000000000000000000000000000000000000000000000000004B +:20554800000000000000000000000000000000000000000000000000000000000000000043 +:2055500000000000000000000000000000000000000000000000000000000000000000003B +:20555800000000000000000000000000000000000000000000000000000000000000000033 +:2055600000000000000000000000000000000000000000000000000000000000000000002B +:20556800000000000000000000000000000000000000000000000000000000000000000023 +:2055700000000000000000000000000000000000000000000000000000000000000000001B +:20557800000000000000000000000000000000000000000000000000000000000000000013 +:2055800000000000000000000000000000000000000000000000000000000000000000000B +:20558800000000000000000000000000000000000000000000000000000000000000000003 +:205590000000000000000000000000000000000000000000000000000000000000000000FB +:205598000000000000000000000000000000000000000000000000000000000000000000F3 +:2055A0000000000000000000000000000000000000000000000000000000000000000000EB +:2055A8000000000000000000000000000000000000000000000000000000000000000000E3 +:2055B0000000000000000000000000000000000000000000000000000000000000000000DB +:2055B8000000000000000000000000000000000000000000000000000000000000000000D3 +:2055C0000000000000000000000000000000000000000000000000000000000000000000CB +:2055C8000000000000000000000000000000000000000000000000000000000000000000C3 +:2055D0000000000000000000000000000000000000000000000000000000000000000000BB +:2055D8000000000000000000000000000000000000000000000000000000000000000000B3 +:2055E0000000000000000000000000000000000000000000000000000000000000000000AB +:2055E8000000000000000000000000000000000000000000000000000000000000000000A3 +:2055F00000000000000000000000000000000000000000000000000000000000000000009B +:2055F800000000000000000000000000000000000000000000000000000000000000000093 +:2056000000000000000000000000000000000000000000000000000000000000000000008A +:20560800000000000000000000000000000000000000000000000000000000000000000082 +:2056100000000000000000000000000000000000000000000000000000000000000000007A +:20561800000000000000000000000000000000000000000000000000000000000000000072 +:2056200000000000000000000000000000000000000000000000000000000000000000006A +:20562800000000000000000000000000000000000000000000000000000000000000000062 +:2056300000000000000000000000000000000000000000000000000000000000000000005A +:20563800000000000000000000000000000000000000000000000000000000000000000052 +:2056400000000000000000000000000000000000000000000000000000000000000000004A +:20564800000000000000000000000000000000000000000000000000000000000000000042 +:2056500000000000000000000000000000000000000000000000000000000000000000003A +:20565800000000000000000000000000000000000000000000000000000000000000000032 +:2056600000000000000000000000000000000000000000000000000000000000000000002A +:20566800000000000000000000000000000000000000000000000000000000000000000022 +:2056700000000000000000000000000000000000000000000000000000000000000000001A +:20567800000000000000000000000000000000000000000000000000000000000000000012 +:2056800000000000000000000000000000000000000000000000000000000000000000000A +:20568800000000000000000000000000000000000000000000000000000000000000000002 +:205690000000000000000000000000000000000000000000000000000000000000000000FA +:205698000000000000000000000000000000000000000000000000000000000000000000F2 +:2056A0000000000000000000000000000000000000000000000000000000000000000000EA +:2056A8000000000000000000000000000000000000000000000000000000000000000000E2 +:2056B0000000000000000000000000000000000000000000000000000000000000000000DA +:2056B8000000000000000000000000000000000000000000000000000000000000000000D2 +:2056C0000000000000000000000000000000000000000000000000000000000000000000CA +:2056C8000000000000000000000000000000000000000000000000000000000000000000C2 +:2056D0000000000000000000000000000000000000000000000000000000000000000000BA +:2056D8000000000000000000000000000000000000000000000000000000000000000000B2 +:2056E0000000000000000000000000000000000000000000000000000000000000000000AA +:2056E8000000000000000000000000000000000000000000000000000000000000000000A2 +:2056F00000000000000000000000000000000000000000000000000000000000000000009A +:2056F800000000000000000000000000000000000000000000000000000000000000000092 +:20570000000000000000000000000000000000000000000000000000000000000000000089 +:20570800000000000000000000000000000000000000000000000000000000000000000081 +:20571000000000000000000000000000000000000000000000000000000000000000000079 +:20571800000000000000000000000000000000000000000000000000000000000000000071 +:20572000000000000000000000000000000000000000000000000000000000000000000069 +:20572800000000000000000000000000000000000000000000000000000000000000000061 +:20573000000000000000000000000000000000000000000000000000000000000000000059 +:20573800000000000000000000000000000000000000000000000000000000000000000051 +:20574000000000000000000000000000000000000000000000000000000000000000000049 +:20574800000000000000000000000000000000000000000000000000000000000000000041 +:20575000000000000000000000000000000000000000000000000000000000000000000039 +:20575800000000000000000000000000000000000000000000000000000000000000000031 +:20576000000000000000000000000000000000000000000000000000000000000000000029 +:20576800000000000000000000000000000000000000000000000000000000000000000021 +:20577000000000000000000000000000000000000000000000000000000000000000000019 +:20577800000000000000000000000000000000000000000000000000000000000000000011 +:20578000000000000000000000000000000000000000000000000000000000000000000009 +:20578800000000000000000000000000000000000000000000000000000000000000000001 +:205790000000000000000000000000000000000000000000000000000000000000000000F9 +:205798000000000000000000000000000000000000000000000000000000000000000000F1 +:2057A0000000000000000000000000000000000000000000000000000000000000000000E9 +:2057A8000000000000000000000000000000000000000000000000000000000000000000E1 +:2057B0000000000000000000000000000000000000000000000000000000000000000000D9 +:2057B8000000000000000000000000000000000000000000000000000000000000000000D1 +:2057C0000000000000000000000000000000000000000000000000000000000000000000C9 +:2057C8000000000000000000000000000000000000000000000000000000000000000000C1 +:2057D0000000000000000000000000000000000000000000000000000000000000000000B9 +:2057D8000000000000000000000000000000000000000000000000000000000000000000B1 +:2057E0000000000000000000000000000000000000000000000000000000000000000000A9 +:2057E8000000000000000000000000000000000000000000000000000000000000000000A1 +:2057F000000000000000000000000000000000000000000000000000000000000000000099 +:2057F800000000000000000000000000000000000000000000000000000000000000000091 +:20580000000000000000000000000000000000000000000000000000000000000000000088 +:20580800000000000000000000000000000000000000000000000000000000000000000080 +:20581000000000000000000000000000000000000000000000000000000000000000000078 +:20581800000000000000000000000000000000000000000000000000000000000000000070 +:20582000000000000000000000000000000000000000000000000000000000000000000068 +:20582800000000000000000000000000000000000000000000000000000000000000000060 +:20583000000000000000000000000000000000000000000000000000000000000000000058 +:20583800000000000000000000000000000000000000000000000000000000000000000050 +:20584000000000000000000000000000000000000000000000000000000000000000000048 +:20584800000000000000000000000000000000000000000000000000000000000000000040 +:20585000000000000000000000000000000000000000000000000000000000000000000038 +:20585800000000000000000000000000000000000000000000000000000000000000000030 +:20586000000000000000000000000000000000000000000000000000000000000000000028 +:20586800000000000000000000000000000000000000000000000000000000000000000020 +:20587000000000000000000000000000000000000000000000000000000000000000000018 +:20587800000000000000000000000000000000000000000000000000000000000000000010 +:20588000000000000000000000000000000000000000000000000000000000000000000008 +:20588800000000000000000000000000000000000000000000000000000000000000000000 +:205890000000000000000000000000000000000000000000000000000000000000000000F8 +:205898000000000000000000000000000000000000000000000000000000000000000000F0 +:2058A0000000000000000000000000000000000000000000000000000000000000000000E8 +:2058A8000000000000000000000000000000000000000000000000000000000000000000E0 +:2058B0000000000000000000000000000000000000000000000000000000000000000000D8 +:2058B8000000000000000000000000000000000000000000000000000000000000000000D0 +:2058C0000000000000000000000000000000000000000000000000000000000000000000C8 +:2058C8000000000000000000000000000000000000000000000000000000000000000000C0 +:2058D0000000000000000000000000000000000000000000000000000000000000000000B8 +:2058D8000000000000000000000000000000000000000000000000000000000000000000B0 +:2058E0000000000000000000000000000000000000000000000000000000000000000000A8 +:2058E8000000000000000000000000000000000000000000000000000000000000000000A0 +:2058F000000000000000000000000000000000000000000000000000000000000000000098 +:2058F800000000000000000000000000000000000000000000000000000000000000000090 +:20590000000000000000000000000000000000000000000000000000000000000000000087 +:2059080000000000000000000000000000000000000000000000000000000000000000007F +:20591000000000000000000000000000000000000000000000000000000000000000000077 +:2059180000000000000000000000000000000000000000000000000000000000000000006F +:20592000000000000000000000000000000000000000000000000000000000000000000067 +:2059280000000000000000000000000000000000000000000000000000000000000000005F +:20593000000000000000000000000000000000000000000000000000000000000000000057 +:2059380000000000000000000000000000000000000000000000000000000000000000004F +:20594000000000000000000000000000000000000000000000000000000000000000000047 +:2059480000000000000000000000000000000000000000000000000000000000000000003F +:20595000000000000000000000000000000000000000000000000000000000000000000037 +:2059580000000000000000000000000000000000000000000000000000000000000000002F +:20596000000000000000000000000000000000000000000000000000000000000000000027 +:2059680000000000000000000000000000000000000000000000000000000000000000001F +:20597000000000000000000000000000000000000000000000000000000000000000000017 +:2059780000000000000000000000000000000000000000000000000000000000000000000F +:20598000000000000000000000000000000000000000000000000000000000000000000007 +:205988000000000000000000000000000000000000000000000000000000000000000000FF +:205990000000000000000000000000000000000000000000000000000000000000000000F7 +:205998000000000000000000000000000000000000000000000000000000000000000000EF +:2059A0000000000000000000000000000000000000000000000000000000000000000000E7 +:2059A8000000000000000000000000000000000000000000000000000000000000000000DF +:2059B0000000000000000000000000000000000000000000000000000000000000000000D7 +:2059B8000000000000000000000000000000000000000000000000000000000000000000CF +:2059C0000000000000000000000000000000000000000000000000000000000000000000C7 +:2059C8000000000000000000000000000000000000000000000000000000000000000000BF +:2059D0000000000000000000000000000000000000000000000000000000000000000000B7 +:2059D8000000000000000000000000000000000000000000000000000000000000000000AF +:2059E0000000000000000000000000000000000000000000000000000000000000000000A7 +:2059E80000000000000000000000000000000000000000000000000000000000000000009F +:2059F000000000000000000000000000000000000000000000000000000000000000000097 +:2059F80000000000000000000000000000000000000000000000000000000000000000008F +:205A0000000000000000000000000000000000000000000000000000000000000000000086 +:205A080000000000000000000000000000000000000000000000000000000000000000007E +:205A1000000000000000000000000000000000000000000000000000000000000000000076 +:205A180000000000000000000000000000000000000000000000000000000000000000006E +:205A2000000000000000000000000000000000000000000000000000000000000000000066 +:205A280000000000000000000000000000000000000000000000000000000000000000005E +:205A3000000000000000000000000000000000000000000000000000000000000000000056 +:205A380000000000000000000000000000000000000000000000000000000000000000004E +:205A4000000000000000000000000000000000000000000000000000000000000000000046 +:205A480000000000000000000000000000000000000000000000000000000000000000003E +:205A5000000000000000000000000000000000000000000000000000000000000000000036 +:205A580000000000000000000000000000000000000000000000000000000000000000002E +:205A6000000000000000000000000000000000000000000000000000000000000000000026 +:205A680000000000000000000000000000000000000000000000000000000000000000001E +:205A7000000000000000000000000000000000000000000000000000000000000000000016 +:205A780000000000000000000000000000000000000000000000000000000000000000000E +:205A8000000000000000000000000000000000000000000000000000000000000000000006 +:205A88000000000000000000000000000000000000000000000000000000000000000000FE +:205A90000000000000000000000000000000000000000000000000000000000000000000F6 +:205A98000000000000000000000000000000000000000000000000000000000000000000EE +:205AA0000000000000000000000000000000000000000000000000000000000000000000E6 +:205AA8000000000000000000000000000000000000000000000000000000000000000000DE +:205AB0000000000000000000000000000000000000000000000000000000000000000000D6 +:205AB8000000000000000000000000000000000000000000000000000000000000000000CE +:205AC0000000000000000000000000000000000000000000000000000000000000000000C6 +:205AC8000000000000000000000000000000000000000000000000000000000000000000BE +:205AD0000000000000000000000000000000000000000000000000000000000000000000B6 +:205AD8000000000000000000000000000000000000000000000000000000000000000000AE +:205AE0000000000000000000000000000000000000000000000000000000000000000000A6 +:205AE80000000000000000000000000000000000000000000000000000000000000000009E +:205AF000000000000000000000000000000000000000000000000000000000000000000096 +:205AF80000000000000000000000000000000000000000000000000000000000000000008E +:205B0000000000000000000000000000000000000000000000000000000000000000000085 +:205B080000000000000000000000000000000000000000000000000000000000000000007D +:205B1000000000000000000000000000000000000000000000000000000000000000000075 +:205B180000000000000000000000000000000000000000000000000000000000000000006D +:205B2000000000000000000000000000000000000000000000000000000000000000000065 +:205B280000000000000000000000000000000000000000000000000000000000000000005D +:205B3000000000000000000000000000000000000000000000000000000000000000000055 +:205B380000000000000000000000000000000000000000000000000000000000000000004D +:205B4000000000000000000000000000000000000000000000000000000000000000000045 +:205B480000000000000000000000000000000000000000000000000000000000000000003D +:205B5000000000000000000000000000000000000000000000000000000000000000000035 +:205B580000000000000000000000000000000000000000000000000000000000000000002D +:205B6000000000000000000000000000000000000000000000000000000000000000000025 +:205B680000000000000000000000000000000000000000000000000000000000000000001D +:205B7000000000000000000000000000000000000000000000000000000000000000000015 +:205B780000000000000000000000000000000000000000000000000000000000000000000D +:205B8000000000000000000000000000000000000000000000000000000000000000000005 +:205B88000000000000000000000000000000000000000000000000000000000000000000FD +:205B90000000000000000000000000000000000000000000000000000000000000000000F5 +:205B98000000000000000000000000000000000000000000000000000000000000000000ED +:205BA0000000000000000000000000000000000000000000000000000000000000000000E5 +:205BA8000000000000000000000000000000000000000000000000000000000000000000DD +:205BB0000000000000000000000000000000000000000000000000000000000000000000D5 +:205BB8000000000000000000000000000000000000000000000000000000000000000000CD +:205BC0000000000000000000000000000000000000000000000000000000000000000000C5 +:205BC8000000000000000000000000000000000000000000000000000000000000000000BD +:205BD0000000000000000000000000000000000000000000000000000000000000000000B5 +:205BD8000000000000000000000000000000000000000000000000000000000000000000AD +:205BE0000000000000000000000000000000000000000000000000000000000000000000A5 +:205BE80000000000000000000000000000000000000000000000000000000000000000009D +:205BF000000000000000000000000000000000000000000000000000000000000000000095 +:205BF80000000000000000000000000000000000000000000000000000000000000000008D +:205C0000000000000000000000000000000000000000000000000000000000000000000084 +:205C080000000000000000000000000000000000000000000000000000000000000000007C +:205C1000000000000000000000000000000000000000000000000000000000000000000074 +:205C180000000000000000000000000000000000000000000000000000000000000000006C +:205C2000000000000000000000000000000000000000000000000000000000000000000064 +:205C280000000000000000000000000000000000000000000000000000000000000000005C +:205C3000000000000000000000000000000000000000000000000000000000000000000054 +:205C380000000000000000000000000000000000000000000000000000000000000000004C +:205C4000000000000000000000000000000000000000000000000000000000000000000044 +:205C480000000000000000000000000000000000000000000000000000000000000000003C +:205C5000000000000000000000000000000000000000000000000000000000000000000034 +:205C580000000000000000000000000000000000000000000000000000000000000000002C +:205C6000000000000000000000000000000000000000000000000000000000000000000024 +:205C680000000000000000000000000000000000000000000000000000000000000000001C +:205C7000000000000000000000000000000000000000000000000000000000000000000014 +:205C780000000000000000000000000000000000000000000000000000000000000000000C +:205C8000000000000000000000000000000000000000000000000000000000000000000004 +:205C88000000000000000000000000000000000000000000000000000000000000000000FC +:205C90000000000000000000000000000000000000000000000000000000000000000000F4 +:205C98000000000000000000000000000000000000000000000000000000000000000000EC +:205CA0000000000000000000000000000000000000000000000000000000000000000000E4 +:205CA8000000000000000000000000000000000000000000000000000000000000000000DC +:205CB0000000000000000000000000000000000000000000000000000000000000000000D4 +:205CB8000000000000000000000000000000000000000000000000000000000000000000CC +:205CC0000000000000000000000000000000000000000000000000000000000000000000C4 +:205CC8000000000000000000000000000000000000000000000000000000000000000000BC +:205CD0000000000000000000000000000000000000000000000000000000000000000000B4 +:205CD8000000000000000000000000000000000000000000000000000000000000000000AC +:205CE0000000000000000000000000000000000000000000000000000000000000000000A4 +:205CE80000000000000000000000000000000000000000000000000000000000000000009C +:205CF000000000000000000000000000000000000000000000000000000000000000000094 +:205CF80000000000000000000000000000000000000000000000000000000000000000008C +:205D0000000000000000000000000000000000000000000000000000000000000000000083 +:205D080000000000000000000000000000000000000000000000000000000000000000007B +:205D1000000000000000000000000000000000000000000000000000000000000000000073 +:205D180000000000000000000000000000000000000000000000000000000000000000006B +:205D2000000000000000000000000000000000000000000000000000000000000000000063 +:205D280000000000000000000000000000000000000000000000000000000000000000005B +:205D3000000000000000000000000000000000000000000000000000000000000000000053 +:205D380000000000000000000000000000000000000000000000000000000000000000004B +:205D4000000000000000000000000000000000000000000000000000000000000000000043 +:205D480000000000000000000000000000000000000000000000000000000000000000003B +:205D5000000000000000000000000000000000000000000000000000000000000000000033 +:205D580000000000000000000000000000000000000000000000000000000000000000002B +:205D6000000000000000000000000000000000000000000000000000000000000000000023 +:205D680000000000000000000000000000000000000000000000000000000000000000001B +:205D7000000000000000000000000000000000000000000000000000000000000000000013 +:205D780000000000000000000000000000000000000000000000000000000000000000000B +:205D8000000000000000000000000000000000000000000000000000000000000000000003 +:205D88000000000000000000000000000000000000000000000000000000000000000000FB +:205D90000000000000000000000000000000000000000000000000000000000000000000F3 +:205D98000000000000000000000000000000000000000000000000000000000000000000EB +:205DA0000000000000000000000000000000000000000000000000000000000000000000E3 +:205DA8000000000000000000000000000000000000000000000000000000000000000000DB +:205DB0000000000000000000000000000000000000000000000000000000000000000000D3 +:205DB8000000000000000000000000000000000000000000000000000000000000000000CB +:205DC0000000000000000000000000000000000000000000000000000000000000000000C3 +:205DC8000000000000000000000000000000000000000000000000000000000000000000BB +:205DD0000000000000000000000000000000000000000000000000000000000000000000B3 +:205DD8000000000000000000000000000000000000000000000000000000000000000000AB +:205DE0000000000000000000000000000000000000000000000000000000000000000000A3 +:205DE80000000000000000000000000000000000000000000000000000000000000000009B +:205DF000000000000000000000000000000000000000000000000000000000000000000093 +:205DF80000000000000000000000000000000000000000000000000000000000000000008B +:205E0000000000000000000000000000000000000000000000000000000000000000000082 +:205E080000000000000000000000000000000000000000000000000000000000000000007A +:205E1000000000000000000000000000000000000000000000000000000000000000000072 +:205E180000000000000000000000000000000000000000000000000000000000000000006A +:205E2000000000000000000000000000000000000000000000000000000000000000000062 +:205E280000000000000000000000000000000000000000000000000000000000000000005A +:205E3000000000000000000000000000000000000000000000000000000000000000000052 +:205E380000000000000000000000000000000000000000000000000000000000000000004A +:205E4000000000000000000000000000000000000000000000000000000000000000000042 +:205E480000000000000000000000000000000000000000000000000000000000000000003A +:205E5000000000000000000000000000000000000000000000000000000000000000000032 +:205E580000000000000000000000000000000000000000000000000000000000000000002A +:205E6000000000000000000000000000000000000000000000000000000000000000000022 +:205E680000000000000000000000000000000000000000000000000000000000000000001A +:205E7000000000000000000000000000000000000000000000000000000000000000000012 +:205E780000000000000000000000000000000000000000000000000000000000000000000A +:205E8000000000000000000000000000000000000000000000000000000000000000000002 +:205E88000000000000000000000000000000000000000000000000000000000000000000FA +:205E90000000000000000000000000000000000000000000000000000000000000000000F2 +:205E98000000000000000000000000000000000000000000000000000000000000000000EA +:205EA0000000000000000000000000000000000000000000000000000000000000000000E2 +:205EA8000000000000000000000000000000000000000000000000000000000000000000DA +:205EB0000000000000000000000000000000000000000000000000000000000000000000D2 +:205EB8000000000000000000000000000000000000000000000000000000000000000000CA +:205EC0000000000000000000000000000000000000000000000000000000000000000000C2 +:205EC8000000000000000000000000000000000000000000000000000000000000000000BA +:205ED0000000000000000000000000000000000000000000000000000000000000000000B2 +:205ED8000000000000000000000000000000000000000000000000000000000000000000AA +:205EE0000000000000000000000000000000000000000000000000000000000000000000A2 +:205EE80000000000000000000000000000000000000000000000000000000000000000009A +:205EF000000000000000000000000000000000000000000000000000000000000000000092 +:205EF80000000000000000000000000000000000000000000000000000000000000000008A +:205F0000000000000000000000000000000000000000000000000000000000000000000081 +:205F0800000000000000000000000000000000000000000000000000000000000000000079 +:205F1000000000000000000000000000000000000000000000000000000000000000000071 +:205F1800000000000000000000000000000000000000000000000000000000000000000069 +:205F2000000000000000000000000000000000000000000000000000000000000000000061 +:205F2800000000000000000000000000000000000000000000000000000000000000000059 +:205F3000000000000000000000000000000000000000000000000000000000000000000051 +:205F3800000000000000000000000000000000000000000000000000000000000000000049 +:205F4000000000000000000000000000000000000000000000000000000000000000000041 +:205F4800000000000000000000000000000000000000000000000000000000000000000039 +:205F5000000000000000000000000000000000000000000000000000000000000000000031 +:205F5800000000000000000000000000000000000000000000000000000000000000000029 +:205F6000000000000000000000000000000000000000000000000000000000000000000021 +:205F6800000000000000000000000000000000000000000000000000000000000000000019 +:205F7000000000000000000000000000000000000000000000000000000000000000000011 +:205F7800000000000000000000000000000000000000000000000000000000000000000009 +:205F8000000000000000000000000000000000000000000000000000000000000000000001 +:205F88000000000000000000000000000000000000000000000000000000000000000000F9 +:205F90000000000000000000000000000000000000000000000000000000000000000000F1 +:205F98000000000000000000000000000000000000000000000000000000000000000000E9 +:205FA0000000000000000000000000000000000000000000000000000000000000000000E1 +:205FA8000000000000000000000000000000000000000000000000000000000000000000D9 +:205FB0000000000000000000000000000000000000000000000000000000000000000000D1 +:205FB8000000000000000000000000000000000000000000000000000000000000000000C9 +:205FC0000000000000000000000000000000000000000000000000000000000000000000C1 +:205FC8000000000000000000000000000000000000000000000000000000000000000000B9 +:205FD0000000000000000000000000000000000000000000000000000000000000000000B1 +:205FD8000000000000000000000000000000000000000000000000000000000000000000A9 +:205FE0000000000000000000000000000000000000000000000000000000000000000000A1 +:205FE800000000000000000000000000000000000000000000000000000000000000000099 +:205FF000000000000000000000000000000000000000000000000000000000000000000091 +:205FF800000000000000000000000000000000000000000000000000000000000000000089 +:20600000000000000000000000000000000000000000000000000000000000000000000080 +:20600800000000000000000000000000000000000000000000000000000000000000000078 +:20601000000000000000000000000000000000000000000000000000000000000000000070 +:20601800000000000000000000000000000000000000000000000000000000000000000068 +:20602000000000000000000000000000000000000000000000000000000000000000000060 +:20602800000000000000000000000000000000000000000000000000000000000000000058 +:20603000000000000000000000000000000000000000000000000000000000000000000050 +:20603800000000000000000000000000000000000000000000000000000000000000000048 +:20604000000000000000000000000000000000000000000000000000000000000000000040 +:20604800000000000000000000000000000000000000000000000000000000000000000038 +:20605000000000000000000000000000000000000000000000000000000000000000000030 +:20605800000000000000000000000000000000000000000000000000000000000000000028 +:20606000000000000000000000000000000000000000000000000000000000000000000020 +:20606800000000000000000000000000000000000000000000000000000000000000000018 +:20607000000000000000000000000000000000000000000000000000000000000000000010 +:20607800000000000000000000000000000000000000000000000000000000000000000008 +:20608000000000000000000000000000000000000000000000000000000000000000000000 +:206088000000000000000000000000000000000000000000000000000000000000000000F8 +:206090000000000000000000000000000000000000000000000000000000000000000000F0 +:206098000000000000000000000000000000000000000000000000000000000000000000E8 +:2060A0000000000000000000000000000000000000000000000000000000000000000000E0 +:2060A8000000000000000000000000000000000000000000000000000000000000000000D8 +:2060B0000000000000000000000000000000000000000000000000000000000000000000D0 +:2060B8000000000000000000000000000000000000000000000000000000000000000000C8 +:2060C0000000000000000000000000000000000000000000000000000000000000000000C0 +:2060C8000000000000000000000000000000000000000000000000000000000000000000B8 +:2060D0000000000000000000000000000000000000000000000000000000000000000000B0 +:2060D8000000000000000000000000000000000000000000000000000000000000000000A8 +:2060E0000000000000000000000000000000000000000000000000000000000000000000A0 +:2060E800000000000000000000000000000000000000000000000000000000000000000098 +:2060F000000000000000000000000000000000000000000000000000000000000000000090 +:2060F800000000000000000000000000000000000000000000000000000000000000000088 +:2061000000000000000000000000000000000000000000000000000000000000000000007F +:20610800000000000000000000000000000000000000000000000000000000000000000077 +:2061100000000000000000000000000000000000000000000000000000000000000000006F +:20611800000000000000000000000000000000000000000000000000000000000000000067 +:2061200000000000000000000000000000000000000000000000000000000000000000005F +:20612800000000000000000000000000000000000000000000000000000000000000000057 +:2061300000000000000000000000000000000000000000000000000000000000000000004F +:20613800000000000000000000000000000000000000000000000000000000000000000047 +:2061400000000000000000000000000000000000000000000000000000000000000000003F +:20614800000000000000000000000000000000000000000000000000000000000000000037 +:2061500000000000000000000000000000000000000000000000000000000000000000002F +:20615800000000000000000000000000000000000000000000000000000000000000000027 +:2061600000000000000000000000000000000000000000000000000000000000000000001F +:20616800000000000000000000000000000000000000000000000000000000000000000017 +:2061700000000000000000000000000000000000000000000000000000000000000000000F +:20617800000000000000000000000000000000000000000000000000000000000000000007 +:206180000000000000000000000000000000000000000000000000000000000000000000FF +:206188000000000000000000000000000000000000000000000000000000000000000000F7 +:206190000000000000000000000000000000000000000000000000000000000000000000EF +:206198000000000000000000000000000000000000000000000000000000000000000000E7 +:2061A0000000000000000000000000000000000000000000000000000000000000000000DF +:2061A8000000000000000000000000000000000000000000000000000000000000000000D7 +:2061B0000000000000000000000000000000000000000000000000000000000000000000CF +:2061B8000000000000000000000000000000000000000000000000000000000000000000C7 +:2061C0000000000000000000000000000000000000000000000000000000000000000000BF +:2061C8000000000000000000000000000000000000000000000000000000000000000000B7 +:2061D0000000000000000000000000000000000000000000000000000000000000000000AF +:2061D8000000000000000000000000000000000000000000000000000000000000000000A7 +:2061E00000000000000000000000000000000000000000000000000000000000000000009F +:2061E800000000000000000000000000000000000000000000000000000000000000000097 +:2061F00000000000000000000000000000000000000000000000000000000000000000008F +:2061F800000000000000000000000000000000000000000000000000000000000000000087 +:2062000000000000000000000000000000000000000000000000000000000000000000007E +:20620800000000000000000000000000000000000000000000000000000000000000000076 +:2062100000000000000000000000000000000000000000000000000000000000000000006E +:20621800000000000000000000000000000000000000000000000000000000000000000066 +:2062200000000000000000000000000000000000000000000000000000000000000000005E +:20622800000000000000000000000000000000000000000000000000000000000000000056 +:2062300000000000000000000000000000000000000000000000000000000000000000004E +:20623800000000000000000000000000000000000000000000000000000000000000000046 +:2062400000000000000000000000000000000000000000000000000000000000000000003E +:20624800000000000000000000000000000000000000000000000000000000000000000036 +:2062500000000000000000000000000000000000000000000000000000000000000000002E +:20625800000000000000000000000000000000000000000000000000000000000000000026 +:2062600000000000000000000000000000000000000000000000000000000000000000001E +:20626800000000000000000000000000000000000000000000000000000000000000000016 +:2062700000000000000000000000000000000000000000000000000000000000000000000E +:20627800000000000000000000000000000000000000000000000000000000000000000006 +:206280000000000000000000000000000000000000000000000000000000000000000000FE +:206288000000000000000000000000000000000000000000000000000000000000000000F6 +:206290000000000000000000000000000000000000000000000000000000000000000000EE +:206298000000000000000000000000000000000000000000000000000000000000000000E6 +:2062A0000000000000000000000000000000000000000000000000000000000000000000DE +:2062A8000000000000000000000000000000000000000000000000000000000000000000D6 +:2062B0000000000000000000000000000000000000000000000000000000000000000000CE +:2062B8000000000000000000000000000000000000000000000000000000000000000000C6 +:2062C0000000000000000000000000000000000000000000000000000000000000000000BE +:2062C8000000000000000000000000000000000000000000000000000000000000000000B6 +:2062D0000000000000000000000000000000000000000000000000000000000000000000AE +:2062D8000000000000000000000000000000000000000000000000000000000000000000A6 +:2062E00000000000000000000000000000000000000000000000000000000000000000009E +:2062E800000000000000000000000000000000000000000000000000000000000000000096 +:2062F00000000000000000000000000000000000000000000000000000000000000000008E +:2062F800000000000000000000000000000000000000000000000000000000000000000086 +:2063000000000000000000000000000000000000000000000000000000000000000000007D +:20630800000000000000000000000000000000000000000000000000000000000000000075 +:2063100000000000000000000000000000000000000000000000000000000000000000006D +:20631800000000000000000000000000000000000000000000000000000000000000000065 +:2063200000000000000000000000000000000000000000000000000000000000000000005D +:20632800000000000000000000000000000000000000000000000000000000000000000055 +:2063300000000000000000000000000000000000000000000000000000000000000000004D +:20633800000000000000000000000000000000000000000000000000000000000000000045 +:2063400000000000000000000000000000000000000000000000000000000000000000003D +:20634800000000000000000000000000000000000000000000000000000000000000000035 +:2063500000000000000000000000000000000000000000000000000000000000000000002D +:20635800000000000000000000000000000000000000000000000000000000000000000025 +:2063600000000000000000000000000000000000000000000000000000000000000000001D +:20636800000000000000000000000000000000000000000000000000000000000000000015 +:2063700000000000000000000000000000000000000000000000000000000000000000000D +:20637800000000000000000000000000000000000000000000000000000000000000000005 +:206380000000000000000000000000000000000000000000000000000000000000000000FD +:206388000000000000000000000000000000000000000000000000000000000000000000F5 +:206390000000000000000000000000000000000000000000000000000000000000000000ED +:206398000000000000000000000000000000000000000000000000000000000000000000E5 +:2063A0000000000000000000000000000000000000000000000000000000000000000000DD +:2063A8000000000000000000000000000000000000000000000000000000000000000000D5 +:2063B0000000000000000000000000000000000000000000000000000000000000000000CD +:2063B8000000000000000000000000000000000000000000000000000000000000000000C5 +:2063C0000000000000000000000000000000000000000000000000000000000000000000BD +:2063C8000000000000000000000000000000000000000000000000000000000000000000B5 +:2063D0000000000000000000000000000000000000000000000000000000000000000000AD +:2063D8000000000000000000000000000000000000000000000000000000000000000000A5 +:2063E00000000000000000000000000000000000000000000000000000000000000000009D +:2063E800000000000000000000000000000000000000000000000000000000000000000095 +:2063F00000000000000000000000000000000000000000000000000000000000000000008D +:2063F800000000000000000000000000000000000000000000000000000000000000000085 +:2064000000000000000000000000000000000000000000000000000000000000000000007C +:20640800000000000000000000000000000000000000000000000000000000000000000074 +:2064100000000000000000000000000000000000000000000000000000000000000000006C +:20641800000000000000000000000000000000000000000000000000000000000000000064 +:2064200000000000000000000000000000000000000000000000000000000000000000005C +:20642800000000000000000000000000000000000000000000000000000000000000000054 +:2064300000000000000000000000000000000000000000000000000000000000000000004C +:20643800000000000000000000000000000000000000000000000000000000000000000044 +:2064400000000000000000000000000000000000000000000000000000000000000000003C +:20644800000000000000000000000000000000000000000000000000000000000000000034 +:2064500000000000000000000000000000000000000000000000000000000000000000002C +:20645800000000000000000000000000000000000000000000000000000000000000000024 +:2064600000000000000000000000000000000000000000000000000000000000000000001C +:20646800000000000000000000000000000000000000000000000000000000000000000014 +:2064700000000000000000000000000000000000000000000000000000000000000000000C +:20647800000000000000000000000000000000000000000000000000000000000000000004 +:206480000000000000000000000000000000000000000000000000000000000000000000FC +:206488000000000000000000000000000000000000000000000000000000000000000000F4 +:206490000000000000000000000000000000000000000000000000000000000000000000EC +:206498000000000000000000000000000000000000000000000000000000000000000000E4 +:2064A0000000000000000000000000000000000000000000000000000000000000000000DC +:2064A8000000000000000000000000000000000000000000000000000000000000000000D4 +:2064B0000000000000000000000000000000000000000000000000000000000000000000CC +:2064B8000000000000000000000000000000000000000000000000000000000000000000C4 +:2064C0000000000000000000000000000000000000000000000000000000000000000000BC +:2064C8000000000000000000000000000000000000000000000000000000000000000000B4 +:2064D0000000000000000000000000000000000000000000000000000000000000000000AC +:2064D8000000000000000000000000000000000000000000000000000000000000000000A4 +:2064E00000000000000000000000000000000000000000000000000000000000000000009C +:2064E800000000000000000000000000000000000000000000000000000000000000000094 +:2064F00000000000000000000000000000000000000000000000000000000000000000008C +:2064F800000000000000000000000000000000000000000000000000000000000000000084 +:2065000000000000000000000000000000000000000000000000000000000000000000007B +:20650800000000000000000000000000000000000000000000000000000000000000000073 +:2065100000000000000000000000000000000000000000000000000000000000000000006B +:20651800000000000000000000000000000000000000000000000000000000000000000063 +:2065200000000000000000000000000000000000000000000000000000000000000000005B +:20652800000000000000000000000000000000000000000000000000000000000000000053 +:2065300000000000000000000000000000000000000000000000000000000000000000004B +:20653800000000000000000000000000000000000000000000000000000000000000000043 +:2065400000000000000000000000000000000000000000000000000000000000000000003B +:20654800000000000000000000000000000000000000000000000000000000000000000033 +:2065500000000000000000000000000000000000000000000000000000000000000000002B +:20655800000000000000000000000000000000000000000000000000000000000000000023 +:2065600000000000000000000000000000000000000000000000000000000000000000001B +:20656800000000000000000000000000000000000000000000000000000000000000000013 +:2065700000000000000000000000000000000000000000000000000000000000000000000B +:20657800000000000000000000000000000000000000000000000000000000000000000003 +:206580000000000000000000000000000000000000000000000000000000000000000000FB +:206588000000000000000000000000000000000000000000000000000000000000000000F3 +:206590000000000000000000000000000000000000000000000000000000000000000000EB +:206598000000000000000000000000000000000000000000000000000000000000000000E3 +:2065A0000000000000000000000000000000000000000000000000000000000000000000DB +:2065A8000000000000000000000000000000000000000000000000000000000000000000D3 +:2065B0000000000000000000000000000000000000000000000000000000000000000000CB +:2065B8000000000000000000000000000000000000000000000000000000000000000000C3 +:2065C0000000000000000000000000000000000000000000000000000000000000000000BB +:2065C8000000000000000000000000000000000000000000000000000000000000000000B3 +:2065D0000000000000000000000000000000000000000000000000000000000000000000AB +:2065D8000000000000000000000000000000000000000000000000000000000000000000A3 +:2065E00000000000000000000000000000000000000000000000000000000000000000009B +:2065E800000000000000000000000000000000000000000000000000000000000000000093 +:2065F00000000000000000000000000000000000000000000000000000000000000000008B +:2065F800000000000000000000000000000000000000000000000000000000000000000083 +:2066000000000000000000000000000000000000000000000000000000000000000000007A +:20660800000000000000000000000000000000000000000000000000000000000000000072 +:2066100000000000000000000000000000000000000000000000000000000000000000006A +:20661800000000000000000000000000000000000000000000000000000000000000000062 +:2066200000000000000000000000000000000000000000000000000000000000000000005A +:20662800000000000000000000000000000000000000000000000000000000000000000052 +:2066300000000000000000000000000000000000000000000000000000000000000000004A +:20663800000000000000000000000000000000000000000000000000000000000000000042 +:2066400000000000000000000000000000000000000000000000000000000000000000003A +:20664800000000000000000000000000000000000000000000000000000000000000000032 +:2066500000000000000000000000000000000000000000000000000000000000000000002A +:20665800000000000000000000000000000000000000000000000000000000000000000022 +:2066600000000000000000000000000000000000000000000000000000000000000000001A +:20666800000000000000000000000000000000000000000000000000000000000000000012 +:2066700000000000000000000000000000000000000000000000000000000000000000000A +:20667800000000000000000000000000000000000000000000000000000000000000000002 +:206680000000000000000000000000000000000000000000000000000000000000000000FA +:206688000000000000000000000000000000000000000000000000000000000000000000F2 +:206690000000000000000000000000000000000000000000000000000000000000000000EA +:206698000000000000000000000000000000000000000000000000000000000000000000E2 +:2066A0000000000000000000000000000000000000000000000000000000000000000000DA +:2066A8000000000000000000000000000000000000000000000000000000000000000000D2 +:2066B0000000000000000000000000000000000000000000000000000000000000000000CA +:2066B8000000000000000000000000000000000000000000000000000000000000000000C2 +:2066C0000000000000000000000000000000000000000000000000000000000000000000BA +:2066C8000000000000000000000000000000000000000000000000000000000000000000B2 +:2066D0000000000000000000000000000000000000000000000000000000000000000000AA +:2066D8000000000000000000000000000000000000000000000000000000000000000000A2 +:2066E00000000000000000000000000000000000000000000000000000000000000000009A +:2066E800000000000000000000000000000000000000000000000000000000000000000092 +:2066F00000000000000000000000000000000000000000000000000000000000000000008A +:2066F800000000000000000000000000000000000000000000000000000000000000000082 +:20670000000000000000000000000000000000000000000000000000000000000000000079 +:20670800000000000000000000000000000000000000000000000000000000000000000071 +:20671000000000000000000000000000000000000000000000000000000000000000000069 +:20671800000000000000000000000000000000000000000000000000000000000000000061 +:20672000000000000000000000000000000000000000000000000000000000000000000059 +:20672800000000000000000000000000000000000000000000000000000000000000000051 +:20673000000000000000000000000000000000000000000000000000000000000000000049 +:20673800000000000000000000000000000000000000000000000000000000000000000041 +:20674000000000000000000000000000000000000000000000000000000000000000000039 +:20674800000000000000000000000000000000000000000000000000000000000000000031 +:20675000000000000000000000000000000000000000000000000000000000000000000029 +:20675800000000000000000000000000000000000000000000000000000000000000000021 +:20676000000000000000000000000000000000000000000000000000000000000000000019 +:20676800000000000000000000000000000000000000000000000000000000000000000011 +:20677000000000000000000000000000000000000000000000000000000000000000000009 +:20677800000000000000000000000000000000000000000000000000000000000000000001 +:206780000000000000000000000000000000000000000000000000000000000000000000F9 +:206788000000000000000000000000000000000000000000000000000000000000000000F1 +:206790000000000000000000000000000000000000000000000000000000000000000000E9 +:206798000000000000000000000000000000000000000000000000000000000000000000E1 +:2067A0000000000000000000000000000000000000000000000000000000000000000000D9 +:2067A8000000000000000000000000000000000000000000000000000000000000000000D1 +:2067B0000000000000000000000000000000000000000000000000000000000000000000C9 +:2067B8000000000000000000000000000000000000000000000000000000000000000000C1 +:2067C0000000000000000000000000000000000000000000000000000000000000000000B9 +:2067C8000000000000000000000000000000000000000000000000000000000000000000B1 +:2067D0000000000000000000000000000000000000000000000000000000000000000000A9 +:2067D8000000000000000000000000000000000000000000000000000000000000000000A1 +:2067E000000000000000000000000000000000000000000000000000000000000000000099 +:2067E800000000000000000000000000000000000000000000000000000000000000000091 +:2067F000000000000000000000000000000000000000000000000000000000000000000089 +:2067F800000000000000000000000000000000000000000000000000000000000000000081 +:20680000000000000000000000000000000000000000000000000000000000000000000078 +:20680800000000000000000000000000000000000000000000000000000000000000000070 +:20681000000000000000000000000000000000000000000000000000000000000000000068 +:20681800000000000000000000000000000000000000000000000000000000000000000060 +:20682000000000000000000000000000000000000000000000000000000000000000000058 +:20682800000000000000000000000000000000000000000000000000000000000000000050 +:20683000000000000000000000000000000000000000000000000000000000000000000048 +:20683800000000000000000000000000000000000000000000000000000000000000000040 +:20684000000000000000000000000000000000000000000000000000000000000000000038 +:20684800000000000000000000000000000000000000000000000000000000000000000030 +:20685000000000000000000000000000000000000000000000000000000000000000000028 +:20685800000000000000000000000000000000000000000000000000000000000000000020 +:20686000000000000000000000000000000000000000000000000000000000000000000018 +:20686800000000000000000000000000000000000000000000000000000000000000000010 +:20687000000000000000000000000000000000000000000000000000000000000000000008 +:20687800000000000000000000000000000000000000000000000000000000000000000000 +:206880000000000000000000000000000000000000000000000000000000000000000000F8 +:206888000000000000000000000000000000000000000000000000000000000000000000F0 +:206890000000000000000000000000000000000000000000000000000000000000000000E8 +:206898000000000000000000000000000000000000000000000000000000000000000000E0 +:2068A0000000000000000000000000000000000000000000000000000000000000000000D8 +:2068A8000000000000000000000000000000000000000000000000000000000000000000D0 +:2068B0000000000000000000000000000000000000000000000000000000000000000000C8 +:2068B8000000000000000000000000000000000000000000000000000000000000000000C0 +:2068C0000000000000000000000000000000000000000000000000000000000000000000B8 +:2068C8000000000000000000000000000000000000000000000000000000000000000000B0 +:2068D0000000000000000000000000000000000000000000000000000000000000000000A8 +:2068D8000000000000000000000000000000000000000000000000000000000000000000A0 +:2068E000000000000000000000000000000000000000000000000000000000000000000098 +:2068E800000000000000000000000000000000000000000000000000000000000000000090 +:2068F000000000000000000000000000000000000000000000000000000000000000000088 +:2068F800000000000000000000000000000000000000000000000000000000000000000080 +:20690000000000000000000000000000000000000000000000000000000000000000000077 +:2069080000000000000000000000000000000000000000000000000000000000000000006F +:20691000000000000000000000000000000000000000000000000000000000000000000067 +:2069180000000000000000000000000000000000000000000000000000000000000000005F +:20692000000000000000000000000000000000000000000000000000000000000000000057 +:2069280000000000000000000000000000000000000000000000000000000000000000004F +:20693000000000000000000000000000000000000000000000000000000000000000000047 +:2069380000000000000000000000000000000000000000000000000000000000000000003F +:20694000000000000000000000000000000000000000000000000000000000000000000037 +:2069480000000000000000000000000000000000000000000000000000000000000000002F +:20695000000000000000000000000000000000000000000000000000000000000000000027 +:2069580000000000000000000000000000000000000000000000000000000000000000001F +:20696000000000000000000000000000000000000000000000000000000000000000000017 +:2069680000000000000000000000000000000000000000000000000000000000000000000F +:20697000000000000000000000000000000000000000000000000000000000000000000007 +:206978000000000000000000000000000000000000000000000000000000000000000000FF +:206980000000000000000000000000000000000000000000000000000000000000000000F7 +:206988000000000000000000000000000000000000000000000000000000000000000000EF +:206990000000000000000000000000000000000000000000000000000000000000000000E7 +:206998000000000000000000000000000000000000000000000000000000000000000000DF +:2069A0000000000000000000000000000000000000000000000000000000000000000000D7 +:2069A8000000000000000000000000000000000000000000000000000000000000000000CF +:2069B0000000000000000000000000000000000000000000000000000000000000000000C7 +:2069B8000000000000000000000000000000000000000000000000000000000000000000BF +:2069C0000000000000000000000000000000000000000000000000000000000000000000B7 +:2069C8000000000000000000000000000000000000000000000000000000000000000000AF +:2069D0000000000000000000000000000000000000000000000000000000000000000000A7 +:2069D80000000000000000000000000000000000000000000000000000000000000000009F +:2069E000000000000000000000000000000000000000000000000000000000000000000097 +:2069E80000000000000000000000000000000000000000000000000000000000000000008F +:2069F000000000000000000000000000000000000000000000000000000000000000000087 +:2069F80000000000000000000000000000000000000000000000000000000000000000007F +:206A0000000000000000000000000000000000000000000000000000000000000000000076 +:206A080000000000000000000000000000000000000000000000000000000000000000006E +:206A1000000000000000000000000000000000000000000000000000000000000000000066 +:206A180000000000000000000000000000000000000000000000000000000000000000005E +:206A2000000000000000000000000000000000000000000000000000000000000000000056 +:206A280000000000000000000000000000000000000000000000000000000000000000004E +:206A3000000000000000000000000000000000000000000000000000000000000000000046 +:206A380000000000000000000000000000000000000000000000000000000000000000003E +:206A4000000000000000000000000000000000000000000000000000000000000000000036 +:206A480000000000000000000000000000000000000000000000000000000000000000002E +:206A5000000000000000000000000000000000000000000000000000000000000000000026 +:206A580000000000000000000000000000000000000000000000000000000000000000001E +:206A6000000000000000000000000000000000000000000000000000000000000000000016 +:206A680000000000000000000000000000000000000000000000000000000000000000000E +:206A7000000000000000000000000000000000000000000000000000000000000000000006 +:206A78000000000000000000000000000000000000000000000000000000000000000000FE +:206A80000000000000000000000000000000000000000000000000000000000000000000F6 +:206A88000000000000000000000000000000000000000000000000000000000000000000EE +:206A90000000000000000000000000000000000000000000000000000000000000000000E6 +:206A98000000000000000000000000000000000000000000000000000000000000000000DE +:206AA0000000000000000000000000000000000000000000000000000000000000000000D6 +:206AA8000000000000000000000000000000000000000000000000000000000000000000CE +:206AB0000000000000000000000000000000000000000000000000000000000000000000C6 +:206AB8000000000000000000000000000000000000000000000000000000000000000000BE +:206AC0000000000000000000000000000000000000000000000000000000000000000000B6 +:206AC8000000000000000000000000000000000000000000000000000000000000000000AE +:206AD0000000000000000000000000000000000000000000000000000000000000000000A6 +:206AD80000000000000000000000000000000000000000000000000000000000000000009E +:206AE000000000000000000000000000000000000000000000000000000000000000000096 +:206AE80000000000000000000000000000000000000000000000000000000000000000008E +:206AF000000000000000000000000000000000000000000000000000000000000000000086 +:206AF80000000000000000000000000000000000000000000000000000000000000000007E +:206B0000000000000000000000000000000000000000000000000000000000000000000075 +:206B080000000000000000000000000000000000000000000000000000000000000000006D +:206B1000000000000000000000000000000000000000000000000000000000000000000065 +:206B180000000000000000000000000000000000000000000000000000000000000000005D +:206B2000000000000000000000000000000000000000000000000000000000000000000055 +:206B280000000000000000000000000000000000000000000000000000000000000000004D +:206B3000000000000000000000000000000000000000000000000000000000000000000045 +:206B380000000000000000000000000000000000000000000000000000000000000000003D +:206B4000000000000000000000000000000000000000000000000000000000000000000035 +:206B480000000000000000000000000000000000000000000000000000000000000000002D +:206B5000000000000000000000000000000000000000000000000000000000000000000025 +:206B580000000000000000000000000000000000000000000000000000000000000000001D +:206B6000000000000000000000000000000000000000000000000000000000000000000015 +:206B680000000000000000000000000000000000000000000000000000000000000000000D +:206B7000000000000000000000000000000000000000000000000000000000000000000005 +:206B78000000000000000000000000000000000000000000000000000000000000000000FD +:206B80000000000000000000000000000000000000000000000000000000000000000000F5 +:206B88000000000000000000000000000000000000000000000000000000000000000000ED +:206B90000000000000000000000000000000000000000000000000000000000000000000E5 +:206B98000000000000000000000000000000000000000000000000000000000000000000DD +:206BA0000000000000000000000000000000000000000000000000000000000000000000D5 +:206BA8000000000000000000000000000000000000000000000000000000000000000000CD +:206BB0000000000000000000000000000000000000000000000000000000000000000000C5 +:206BB8000000000000000000000000000000000000000000000000000000000000000000BD +:206BC0000000000000000000000000000000000000000000000000000000000000000000B5 +:206BC8000000000000000000000000000000000000000000000000000000000000000000AD +:206BD0000000000000000000000000000000000000000000000000000000000000000000A5 +:206BD80000000000000000000000000000000000000000000000000000000000000000009D +:206BE000000000000000000000000000000000000000000000000000000000000000000095 +:206BE80000000000000000000000000000000000000000000000000000000000000000008D +:206BF000000000000000000000000000000000000000000000000000000000000000000085 +:206BF80000000000000000000000000000000000000000000000000000000000000000007D +:206C0000000000000000000000000000000000000000000000000000000000000000000074 +:206C080000000000000000000000000000000000000000000000000000000000000000006C +:206C1000000000000000000000000000000000000000000000000000000000000000000064 +:206C180000000000000000000000000000000000000000000000000000000000000000005C +:206C2000000000000000000000000000000000000000000000000000000000000000000054 +:206C280000000000000000000000000000000000000000000000000000000000000000004C +:206C3000000000000000000000000000000000000000000000000000000000000000000044 +:206C380000000000000000000000000000000000000000000000000000000000000000003C +:206C4000000000000000000000000000000000000000000000000000000000000000000034 +:206C480000000000000000000000000000000000000000000000000000000000000000002C +:206C5000000000000000000000000000000000000000000000000000000000000000000024 +:206C580000000000000000000000000000000000000000000000000000000000000000001C +:206C6000000000000000000000000000000000000000000000000000000000000000000014 +:206C680000000000000000000000000000000000000000000000000000000000000000000C +:206C7000000000000000000000000000000000000000000000000000000000000000000004 +:206C78000000000000000000000000000000000000000000000000000000000000000000FC +:206C80000000000000000000000000000000000000000000000000000000000000000000F4 +:206C88000000000000000000000000000000000000000000000000000000000000000000EC +:206C90000000000000000000000000000000000000000000000000000000000000000000E4 +:206C98000000000000000000000000000000000000000000000000000000000000000000DC +:206CA0000000000000000000000000000000000000000000000000000000000000000000D4 +:206CA8000000000000000000000000000000000000000000000000000000000000000000CC +:206CB0000000000000000000000000000000000000000000000000000000000000000000C4 +:206CB8000000000000000000000000000000000000000000000000000000000000000000BC +:206CC0000000000000000000000000000000000000000000000000000000000000000000B4 +:206CC8000000000000000000000000000000000000000000000000000000000000000000AC +:206CD0000000000000000000000000000000000000000000000000000000000000000000A4 +:206CD80000000000000000000000000000000000000000000000000000000000000000009C +:206CE000000000000000000000000000000000000000000000000000000000000000000094 +:206CE80000000000000000000000000000000000000000000000000000000000000000008C +:206CF000000000000000000000000000000000000000000000000000000000000000000084 +:206CF80000000000000000000000000000000000000000000000000000000000000000007C +:206D0000000000000000000000000000000000000000000000000000000000000000000073 +:206D080000000000000000000000000000000000000000000000000000000000000000006B +:206D1000000000000000000000000000000000000000000000000000000000000000000063 +:206D180000000000000000000000000000000000000000000000000000000000000000005B +:206D2000000000000000000000000000000000000000000000000000000000000000000053 +:206D280000000000000000000000000000000000000000000000000000000000000000004B +:206D3000000000000000000000000000000000000000000000000000000000000000000043 +:206D380000000000000000000000000000000000000000000000000000000000000000003B +:206D4000000000000000000000000000000000000000000000000000000000000000000033 +:206D480000000000000000000000000000000000000000000000000000000000000000002B +:206D5000000000000000000000000000000000000000000000000000000000000000000023 +:206D580000000000000000000000000000000000000000000000000000000000000000001B +:206D6000000000000000000000000000000000000000000000000000000000000000000013 +:206D680000000000000000000000000000000000000000000000000000000000000000000B +:206D7000000000000000000000000000000000000000000000000000000000000000000003 +:206D78000000000000000000000000000000000000000000000000000000000000000000FB +:206D80000000000000000000000000000000000000000000000000000000000000000000F3 +:206D88000000000000000000000000000000000000000000000000000000000000000000EB +:206D90000000000000000000000000000000000000000000000000000000000000000000E3 +:206D98000000000000000000000000000000000000000000000000000000000000000000DB +:206DA0000000000000000000000000000000000000000000000000000000000000000000D3 +:206DA8000000000000000000000000000000000000000000000000000000000000000000CB +:206DB0000000000000000000000000000000000000000000000000000000000000000000C3 +:206DB8000000000000000000000000000000000000000000000000000000000000000000BB +:206DC0000000000000000000000000000000000000000000000000000000000000000000B3 +:206DC8000000000000000000000000000000000000000000000000000000000000000000AB +:206DD0000000000000000000000000000000000000000000000000000000000000000000A3 +:206DD80000000000000000000000000000000000000000000000000000000000000000009B +:206DE000000000000000000000000000000000000000000000000000000000000000000093 +:206DE80000000000000000000000000000000000000000000000000000000000000000008B +:206DF000000000000000000000000000000000000000000000000000000000000000000083 +:206DF80000000000000000000000000000000000000000000000000000000000000000007B +:206E0000000000000000000000000000000000000000000000000000000000000000000072 +:206E080000000000000000000000000000000000000000000000000000000000000000006A +:206E1000000000000000000000000000000000000000000000000000000000000000000062 +:206E180000000000000000000000000000000000000000000000000000000000000000005A +:206E2000000000000000000000000000000000000000000000000000000000000000000052 +:206E280000000000000000000000000000000000000000000000000000000000000000004A +:206E3000000000000000000000000000000000000000000000000000000000000000000042 +:206E380000000000000000000000000000000000000000000000000000000000000000003A +:206E4000000000000000000000000000000000000000000000000000000000000000000032 +:206E480000000000000000000000000000000000000000000000000000000000000000002A +:206E5000000000000000000000000000000000000000000000000000000000000000000022 +:206E580000000000000000000000000000000000000000000000000000000000000000001A +:206E6000000000000000000000000000000000000000000000000000000000000000000012 +:206E680000000000000000000000000000000000000000000000000000000000000000000A +:206E7000000000000000000000000000000000000000000000000000000000000000000002 +:206E78000000000000000000000000000000000000000000000000000000000000000000FA +:206E80000000000000000000000000000000000000000000000000000000000000000000F2 +:206E88000000000000000000000000000000000000000000000000000000000000000000EA +:206E90000000000000000000000000000000000000000000000000000000000000000000E2 +:206E98000000000000000000000000000000000000000000000000000000000000000000DA +:206EA0000000000000000000000000000000000000000000000000000000000000000000D2 +:206EA8000000000000000000000000000000000000000000000000000000000000000000CA +:206EB0000000000000000000000000000000000000000000000000000000000000000000C2 +:206EB8000000000000000000000000000000000000000000000000000000000000000000BA +:206EC0000000000000000000000000000000000000000000000000000000000000000000B2 +:206EC8000000000000000000000000000000000000000000000000000000000000000000AA +:206ED0000000000000000000000000000000000000000000000000000000000000000000A2 +:206ED80000000000000000000000000000000000000000000000000000000000000000009A +:206EE000000000000000000000000000000000000000000000000000000000000000000092 +:206EE80000000000000000000000000000000000000000000000000000000000000000008A +:206EF000000000000000000000000000000000000000000000000000000000000000000082 +:206EF80000000000000000000000000000000000000000000000000000000000000000007A +:206F0000000000000000000000000000000000000000000000000000000000000000000071 +:206F0800000000000000000000000000000000000000000000000000000000000000000069 +:206F1000000000000000000000000000000000000000000000000000000000000000000061 +:206F1800000000000000000000000000000000000000000000000000000000000000000059 +:206F2000000000000000000000000000000000000000000000000000000000000000000051 +:206F2800000000000000000000000000000000000000000000000000000000000000000049 +:206F3000000000000000000000000000000000000000000000000000000000000000000041 +:206F3800000000000000000000000000000000000000000000000000000000000000000039 +:206F4000000000000000000000000000000000000000000000000000000000000000000031 +:206F4800000000000000000000000000000000000000000000000000000000000000000029 +:206F5000000000000000000000000000000000000000000000000000000000000000000021 +:206F5800000000000000000000000000000000000000000000000000000000000000000019 +:206F6000000000000000000000000000000000000000000000000000000000000000000011 +:206F6800000000000000000000000000000000000000000000000000000000000000000009 +:206F7000000000000000000000000000000000000000000000000000000000000000000001 +:206F78000000000000000000000000000000000000000000000000000000000000000000F9 +:206F80000000000000000000000000000000000000000000000000000000000000000000F1 +:206F88000000000000000000000000000000000000000000000000000000000000000000E9 +:206F90000000000000000000000000000000000000000000000000000000000000000000E1 +:206F98000000000000000000000000000000000000000000000000000000000000000000D9 +:206FA0000000000000000000000000000000000000000000000000000000000000000000D1 +:206FA8000000000000000000000000000000000000000000000000000000000000000000C9 +:206FB0000000000000000000000000000000000000000000000000000000000000000000C1 +:206FB8000000000000000000000000000000000000000000000000000000000000000000B9 +:206FC0000000000000000000000000000000000000000000000000000000000000000000B1 +:206FC8000000000000000000000000000000000000000000000000000000000000000000A9 +:206FD0000000000000000000000000000000000000000000000000000000000000000000A1 +:206FD800000000000000000000000000000000000000000000000000000000000000000099 +:206FE000000000000000000000000000000000000000000000000000000000000000000091 +:206FE800000000000000000000000000000000000000000000000000000000000000000089 +:206FF000000000000000000000000000000000000000000000000000000000000000000081 +:206FF800000000000000000000000000000000000000000000000000000000000000000079 +:20700000000000000000000000000000000000000000000000000000000000000000000070 +:20700800000000000000000000000000000000000000000000000000000000000000000068 +:20701000000000000000000000000000000000000000000000000000000000000000000060 +:20701800000000000000000000000000000000000000000000000000000000000000000058 +:20702000000000000000000000000000000000000000000000000000000000000000000050 +:20702800000000000000000000000000000000000000000000000000000000000000000048 +:20703000000000000000000000000000000000000000000000000000000000000000000040 +:20703800000000000000000000000000000000000000000000000000000000000000000038 +:20704000000000000000000000000000000000000000000000000000000000000000000030 +:20704800000000000000000000000000000000000000000000000000000000000000000028 +:20705000000000000000000000000000000000000000000000000000000000000000000020 +:20705800000000000000000000000000000000000000000000000000000000000000000018 +:20706000000000000000000000000000000000000000000000000000000000000000000010 +:20706800000000000000000000000000000000000000000000000000000000000000000008 +:20707000000000000000000000000000000000000000000000000000000000000000000000 +:207078000000000000000000000000000000000000000000000000000000000000000000F8 +:207080000000000000000000000000000000000000000000000000000000000000000000F0 +:207088000000000000000000000000000000000000000000000000000000000000000000E8 +:207090000000000000000000000000000000000000000000000000000000000000000000E0 +:207098000000000000000000000000000000000000000000000000000000000000000000D8 +:2070A0000000000000000000000000000000000000000000000000000000000000000000D0 +:2070A8000000000000000000000000000000000000000000000000000000000000000000C8 +:2070B0000000000000000000000000000000000000000000000000000000000000000000C0 +:2070B8000000000000000000000000000000000000000000000000000000000000000000B8 +:2070C0000000000000000000000000000000000000000000000000000000000000000000B0 +:2070C8000000000000000000000000000000000000000000000000000000000000000000A8 +:2070D0000000000000000000000000000000000000000000000000000000000000000000A0 +:2070D800000000000000000000000000000000000000000000000000000000000000000098 +:2070E000000000000000000000000000000000000000000000000000000000000000000090 +:2070E800000000000000000000000000000000000000000000000000000000000000000088 +:2070F000000000000000000000000000000000000000000000000000000000000000000080 +:2070F800000000000000000000000000000000000000000000000000000000000000000078 +:2071000000000000000000000000000000000000000000000000000000000000000000006F +:20710800000000000000000000000000000000000000000000000000000000000000000067 +:2071100000000000000000000000000000000000000000000000000000000000000000005F +:20711800000000000000000000000000000000000000000000000000000000000000000057 +:2071200000000000000000000000000000000000000000000000000000000000000000004F +:20712800000000000000000000000000000000000000000000000000000000000000000047 +:2071300000000000000000000000000000000000000000000000000000000000000000003F +:20713800000000000000000000000000000000000000000000000000000000000000000037 +:2071400000000000000000000000000000000000000000000000000000000000000000002F +:20714800000000000000000000000000000000000000000000000000000000000000000027 +:2071500000000000000000000000000000000000000000000000000000000000000000001F +:20715800000000000000000000000000000000000000000000000000000000000000000017 +:2071600000000000000000000000000000000000000000000000000000000000000000000F +:20716800000000000000000000000000000000000000000000000000000000000000000007 +:207170000000000000000000000000000000000000000000000000000000000000000000FF +:207178000000000000000000000000000000000000000000000000000000000000000000F7 +:207180000000000000000000000000000000000000000000000000000000000000000000EF +:207188000000000000000000000000000000000000000000000000000000000000000000E7 +:207190000000000000000000000000000000000000000000000000000000000000000000DF +:207198000000000000000000000000000000000000000000000000000000000000000000D7 +:2071A0000000000000000000000000000000000000000000000000000000000000000000CF +:2071A8000000000000000000000000000000000000000000000000000000000000000000C7 +:2071B0000000000000000000000000000000000000000000000000000000000000000000BF +:2071B8000000000000000000000000000000000000000000000000000000000000000000B7 +:2071C0000000000000000000000000000000000000000000000000000000000000000000AF +:2071C8000000000000000000000000000000000000000000000000000000000000000000A7 +:2071D00000000000000000000000000000000000000000000000000000000000000000009F +:2071D800000000000000000000000000000000000000000000000000000000000000000097 +:2071E00000000000000000000000000000000000000000000000000000000000000000008F +:2071E800000000000000000000000000000000000000000000000000000000000000000087 +:2071F00000000000000000000000000000000000000000000000000000000000000000007F +:2071F800000000000000000000000000000000000000000000000000000000000000000077 +:2072000000000000000000000000000000000000000000000000000000000000000000006E +:20720800000000000000000000000000000000000000000000000000000000000000000066 +:2072100000000000000000000000000000000000000000000000000000000000000000005E +:20721800000000000000000000000000000000000000000000000000000000000000000056 +:2072200000000000000000000000000000000000000000000000000000000000000000004E +:20722800000000000000000000000000000000000000000000000000000000000000000046 +:2072300000000000000000000000000000000000000000000000000000000000000000003E +:20723800000000000000000000000000000000000000000000000000000000000000000036 +:2072400000000000000000000000000000000000000000000000000000000000000000002E +:20724800000000000000000000000000000000000000000000000000000000000000000026 +:2072500000000000000000000000000000000000000000000000000000000000000000001E +:20725800000000000000000000000000000000000000000000000000000000000000000016 +:2072600000000000000000000000000000000000000000000000000000000000000000000E +:20726800000000000000000000000000000000000000000000000000000000000000000006 +:207270000000000000000000000000000000000000000000000000000000000000000000FE +:207278000000000000000000000000000000000000000000000000000000000000000000F6 +:207280000000000000000000000000000000000000000000000000000000000000000000EE +:207288000000000000000000000000000000000000000000000000000000000000000000E6 +:207290000000000000000000000000000000000000000000000000000000000000000000DE +:207298000000000000000000000000000000000000000000000000000000000000000000D6 +:2072A0000000000000000000000000000000000000000000000000000000000000000000CE +:2072A8000000000000000000000000000000000000000000000000000000000000000000C6 +:2072B0000000000000000000000000000000000000000000000000000000000000000000BE +:2072B8000000000000000000000000000000000000000000000000000000000000000000B6 +:2072C0000000000000000000000000000000000000000000000000000000000000000000AE +:2072C8000000000000000000000000000000000000000000000000000000000000000000A6 +:2072D00000000000000000000000000000000000000000000000000000000000000000009E +:2072D800000000000000000000000000000000000000000000000000000000000000000096 +:2072E00000000000000000000000000000000000000000000000000000000000000000008E +:2072E800000000000000000000000000000000000000000000000000000000000000000086 +:2072F00000000000000000000000000000000000000000000000000000000000000000007E +:2072F800000000000000000000000000000000000000000000000000000000000000000076 +:2073000000000000000000000000000000000000000000000000000000000000000000006D +:20730800000000000000000000000000000000000000000000000000000000000000000065 +:2073100000000000000000000000000000000000000000000000000000000000000000005D +:20731800000000000000000000000000000000000000000000000000000000000000000055 +:2073200000000000000000000000000000000000000000000000000000000000000000004D +:20732800000000000000000000000000000000000000000000000000000000000000000045 +:2073300000000000000000000000000000000000000000000000000000000000000000003D +:20733800000000000000000000000000000000000000000000000000000000000000000035 +:2073400000000000000000000000000000000000000000000000000000000000000000002D +:20734800000000000000000000000000000000000000000000000000000000000000000025 +:2073500000000000000000000000000000000000000000000000000000000000000000001D +:20735800000000000000000000000000000000000000000000000000000000000000000015 +:2073600000000000000000000000000000000000000000000000000000000000000000000D +:20736800000000000000000000000000000000000000000000000000000000000000000005 +:207370000000000000000000000000000000000000000000000000000000000000000000FD +:207378000000000000000000000000000000000000000000000000000000000000000000F5 +:207380000000000000000000000000000000000000000000000000000000000000000000ED +:207388000000000000000000000000000000000000000000000000000000000000000000E5 +:207390000000000000000000000000000000000000000000000000000000000000000000DD +:207398000000000000000000000000000000000000000000000000000000000000000000D5 +:2073A0000000000000000000000000000000000000000000000000000000000000000000CD +:2073A8000000000000000000000000000000000000000000000000000000000000000000C5 +:2073B0000000000000000000000000000000000000000000000000000000000000000000BD +:2073B8000000000000000000000000000000000000000000000000000000000000000000B5 +:2073C0000000000000000000000000000000000000000000000000000000000000000000AD +:2073C8000000000000000000000000000000000000000000000000000000000000000000A5 +:2073D00000000000000000000000000000000000000000000000000000000000000000009D +:2073D800000000000000000000000000000000000000000000000000000000000000000095 +:2073E00000000000000000000000000000000000000000000000000000000000000000008D +:2073E800000000000000000000000000000000000000000000000000000000000000000085 +:2073F00000000000000000000000000000000000000000000000000000000000000000007D +:2073F800000000000000000000000000000000000000000000000000000000000000000075 +:2074000000000000000000000000000000000000000000000000000000000000000000006C +:20740800000000000000000000000000000000000000000000000000000000000000000064 +:2074100000000000000000000000000000000000000000000000000000000000000000005C +:20741800000000000000000000000000000000000000000000000000000000000000000054 +:2074200000000000000000000000000000000000000000000000000000000000000000004C +:20742800000000000000000000000000000000000000000000000000000000000000000044 +:2074300000000000000000000000000000000000000000000000000000000000000000003C +:20743800000000000000000000000000000000000000000000000000000000000000000034 +:2074400000000000000000000000000000000000000000000000000000000000000000002C +:20744800000000000000000000000000000000000000000000000000000000000000000024 +:2074500000000000000000000000000000000000000000000000000000000000000000001C +:20745800000000000000000000000000000000000000000000000000000000000000000014 +:2074600000000000000000000000000000000000000000000000000000000000000000000C +:20746800000000000000000000000000000000000000000000000000000000000000000004 +:207470000000000000000000000000000000000000000000000000000000000000000000FC +:207478000000000000000000000000000000000000000000000000000000000000000000F4 +:207480000000000000000000000000000000000000000000000000000000000000000000EC +:207488000000000000000000000000000000000000000000000000000000000000000000E4 +:207490000000000000000000000000000000000000000000000000000000000000000000DC +:207498000000000000000000000000000000000000000000000000000000000000000000D4 +:2074A0000000000000000000000000000000000000000000000000000000000000000000CC +:2074A8000000000000000000000000000000000000000000000000000000000000000000C4 +:2074B0000000000000000000000000000000000000000000000000000000000000000000BC +:2074B8000000000000000000000000000000000000000000000000000000000000000000B4 +:2074C0000000000000000000000000000000000000000000000000000000000000000000AC +:2074C8000000000000000000000000000000000000000000000000000000000000000000A4 +:2074D00000000000000000000000000000000000000000000000000000000000000000009C +:2074D800000000000000000000000000000000000000000000000000000000000000000094 +:2074E00000000000000000000000000000000000000000000000000000000000000000008C +:2074E800000000000000000000000000000000000000000000000000000000000000000084 +:2074F00000000000000000000000000000000000000000000000000000000000000000007C +:2074F800000000000000000000000000000000000000000000000000000000000000000074 +:2075000000000000000000000000000000000000000000000000000000000000000000006B +:20750800000000000000000000000000000000000000000000000000000000000000000063 +:2075100000000000000000000000000000000000000000000000000000000000000000005B +:20751800000000000000000000000000000000000000000000000000000000000000000053 +:2075200000000000000000000000000000000000000000000000000000000000000000004B +:20752800000000000000000000000000000000000000000000000000000000000000000043 +:2075300000000000000000000000000000000000000000000000000000000000000000003B +:20753800000000000000000000000000000000000000000000000000000000000000000033 +:2075400000000000000000000000000000000000000000000000000000000000000000002B +:20754800000000000000000000000000000000000000000000000000000000000000000023 +:2075500000000000000000000000000000000000000000000000000000000000000000001B +:20755800000000000000000000000000000000000000000000000000000000000000000013 +:2075600000000000000000000000000000000000000000000000000000000000000000000B +:20756800000000000000000000000000000000000000000000000000000000000000000003 +:207570000000000000000000000000000000000000000000000000000000000000000000FB +:207578000000000000000000000000000000000000000000000000000000000000000000F3 +:207580000000000000000000000000000000000000000000000000000000000000000000EB +:207588000000000000000000000000000000000000000000000000000000000000000000E3 +:207590000000000000000000000000000000000000000000000000000000000000000000DB +:207598000000000000000000000000000000000000000000000000000000000000000000D3 +:2075A0000000000000000000000000000000000000000000000000000000000000000000CB +:2075A8000000000000000000000000000000000000000000000000000000000000000000C3 +:2075B0000000000000000000000000000000000000000000000000000000000000000000BB +:2075B8000000000000000000000000000000000000000000000000000000000000000000B3 +:2075C0000000000000000000000000000000000000000000000000000000000000000000AB +:2075C8000000000000000000000000000000000000000000000000000000000000000000A3 +:2075D00000000000000000000000000000000000000000000000000000000000000000009B +:2075D800000000000000000000000000000000000000000000000000000000000000000093 +:2075E00000000000000000000000000000000000000000000000000000000000000000008B +:2075E800000000000000000000000000000000000000000000000000000000000000000083 +:2075F00000000000000000000000000000000000000000000000000000000000000000007B +:2075F800000000000000000000000000000000000000000000000000000000000000000073 +:2076000000000000000000000000000000000000000000000000000000000000000000006A +:20760800000000000000000000000000000000000000000000000000000000000000000062 +:2076100000000000000000000000000000000000000000000000000000000000000000005A +:20761800000000000000000000000000000000000000000000000000000000000000000052 +:2076200000000000000000000000000000000000000000000000000000000000000000004A +:20762800000000000000000000000000000000000000000000000000000000000000000042 +:2076300000000000000000000000000000000000000000000000000000000000000000003A +:20763800000000000000000000000000000000000000000000000000000000000000000032 +:2076400000000000000000000000000000000000000000000000000000000000000000002A +:20764800000000000000000000000000000000000000000000000000000000000000000022 +:2076500000000000000000000000000000000000000000000000000000000000000000001A +:20765800000000000000000000000000000000000000000000000000000000000000000012 +:2076600000000000000000000000000000000000000000000000000000000000000000000A +:20766800000000000000000000000000000000000000000000000000000000000000000002 +:207670000000000000000000000000000000000000000000000000000000000000000000FA +:207678000000000000000000000000000000000000000000000000000000000000000000F2 +:207680000000000000000000000000000000000000000000000000000000000000000000EA +:207688000000000000000000000000000000000000000000000000000000000000000000E2 +:207690000000000000000000000000000000000000000000000000000000000000000000DA +:207698000000000000000000000000000000000000000000000000000000000000000000D2 +:2076A0000000000000000000000000000000000000000000000000000000000000000000CA +:2076A8000000000000000000000000000000000000000000000000000000000000000000C2 +:2076B0000000000000000000000000000000000000000000000000000000000000000000BA +:2076B8000000000000000000000000000000000000000000000000000000000000000000B2 +:2076C0000000000000000000000000000000000000000000000000000000000000000000AA +:2076C8000000000000000000000000000000000000000000000000000000000000000000A2 +:2076D00000000000000000000000000000000000000000000000000000000000000000009A +:2076D800000000000000000000000000000000000000000000000000000000000000000092 +:2076E00000000000000000000000000000000000000000000000000000000000000000008A +:2076E800000000000000000000000000000000000000000000000000000000000000000082 +:2076F00000000000000000000000000000000000000000000000000000000000000000007A +:2076F800000000000000000000000000000000000000000000000000000000000000000072 +:20770000000000000000000000000000000000000000000000000000000000000000000069 +:20770800000000000000000000000000000000000000000000000000000000000000000061 +:20771000000000000000000000000000000000000000000000000000000000000000000059 +:20771800000000000000000000000000000000000000000000000000000000000000000051 +:20772000000000000000000000000000000000000000000000000000000000000000000049 +:20772800000000000000000000000000000000000000000000000000000000000000000041 +:20773000000000000000000000000000000000000000000000000000000000000000000039 +:20773800000000000000000000000000000000000000000000000000000000000000000031 +:20774000000000000000000000000000000000000000000000000000000000000000000029 +:20774800000000000000000000000000000000000000000000000000000000000000000021 +:20775000000000000000000000000000000000000000000000000000000000000000000019 +:20775800000000000000000000000000000000000000000000000000000000000000000011 +:20776000000000000000000000000000000000000000000000000000000000000000000009 +:20776800000000000000000000000000000000000000000000000000000000000000000001 +:207770000000000000000000000000000000000000000000000000000000000000000000F9 +:207778000000000000000000000000000000000000000000000000000000000000000000F1 +:207780000000000000000000000000000000000000000000000000000000000000000000E9 +:207788000000000000000000000000000000000000000000000000000000000000000000E1 +:207790000000000000000000000000000000000000000000000000000000000000000000D9 +:207798000000000000000000000000000000000000000000000000000000000000000000D1 +:2077A0000000000000000000000000000000000000000000000000000000000000000000C9 +:2077A8000000000000000000000000000000000000000000000000000000000000000000C1 +:2077B0000000000000000000000000000000000000000000000000000000000000000000B9 +:2077B8000000000000000000000000000000000000000000000000000000000000000000B1 +:2077C0000000000000000000000000000000000000000000000000000000000000000000A9 +:2077C8000000000000000000000000000000000000000000000000000000000000000000A1 +:2077D000000000000000000000000000000000000000000000000000000000000000000099 +:2077D800000000000000000000000000000000000000000000000000000000000000000091 +:2077E000000000000000000000000000000000000000000000000000000000000000000089 +:2077E800000000000000000000000000000000000000000000000000000000000000000081 +:2077F000000000000000000000000000000000000000000000000000000000000000000079 +:2077F800000000000000000000000000000000000000000000000000000000000000000071 +:20780000000000000000000000000000000000000000000000000000000000000000000068 +:20780800000000000000000000000000000000000000000000000000000000000000000060 +:20781000000000000000000000000000000000000000000000000000000000000000000058 +:20781800000000000000000000000000000000000000000000000000000000000000000050 +:20782000000000000000000000000000000000000000000000000000000000000000000048 +:20782800000000000000000000000000000000000000000000000000000000000000000040 +:20783000000000000000000000000000000000000000000000000000000000000000000038 +:20783800000000000000000000000000000000000000000000000000000000000000000030 +:20784000000000000000000000000000000000000000000000000000000000000000000028 +:20784800000000000000000000000000000000000000000000000000000000000000000020 +:20785000000000000000000000000000000000000000000000000000000000000000000018 +:20785800000000000000000000000000000000000000000000000000000000000000000010 +:20786000000000000000000000000000000000000000000000000000000000000000000008 +:20786800000000000000000000000000000000000000000000000000000000000000000000 +:207870000000000000000000000000000000000000000000000000000000000000000000F8 +:207878000000000000000000000000000000000000000000000000000000000000000000F0 +:207880000000000000000000000000000000000000000000000000000000000000000000E8 +:207888000000000000000000000000000000000000000000000000000000000000000000E0 +:207890000000000000000000000000000000000000000000000000000000000000000000D8 +:207898000000000000000000000000000000000000000000000000000000000000000000D0 +:2078A0000000000000000000000000000000000000000000000000000000000000000000C8 +:2078A8000000000000000000000000000000000000000000000000000000000000000000C0 +:2078B0000000000000000000000000000000000000000000000000000000000000000000B8 +:2078B8000000000000000000000000000000000000000000000000000000000000000000B0 +:2078C0000000000000000000000000000000000000000000000000000000000000000000A8 +:2078C8000000000000000000000000000000000000000000000000000000000000000000A0 +:2078D000000000000000000000000000000000000000000000000000000000000000000098 +:2078D800000000000000000000000000000000000000000000000000000000000000000090 +:2078E000000000000000000000000000000000000000000000000000000000000000000088 +:2078E800000000000000000000000000000000000000000000000000000000000000000080 +:2078F000000000000000000000000000000000000000000000000000000000000000000078 +:2078F800000000000000000000000000000000000000000000000000000000000000000070 +:20790000000000000000000000000000000000000000000000000000000000000000000067 +:2079080000000000000000000000000000000000000000000000000000000000000000005F +:20791000000000000000000000000000000000000000000000000000000000000000000057 +:2079180000000000000000000000000000000000000000000000000000000000000000004F +:20792000000000000000000000000000000000000000000000000000000000000000000047 +:2079280000000000000000000000000000000000000000000000000000000000000000003F +:20793000000000000000000000000000000000000000000000000000000000000000000037 +:2079380000000000000000000000000000000000000000000000000000000000000000002F +:20794000000000000000000000000000000000000000000000000000000000000000000027 +:2079480000000000000000000000000000000000000000000000000000000000000000001F +:20795000000000000000000000000000000000000000000000000000000000000000000017 +:2079580000000000000000000000000000000000000000000000000000000000000000000F +:20796000000000000000000000000000000000000000000000000000000000000000000007 +:207968000000000000000000000000000000000000000000000000000000000000000000FF +:207970000000000000000000000000000000000000000000000000000000000000000000F7 +:207978000000000000000000000000000000000000000000000000000000000000000000EF +:207980000000000000000000000000000000000000000000000000000000000000000000E7 +:207988000000000000000000000000000000000000000000000000000000000000000000DF +:207990000000000000000000000000000000000000000000000000000000000000000000D7 +:207998000000000000000000000000000000000000000000000000000000000000000000CF +:2079A0000000000000000000000000000000000000000000000000000000000000000000C7 +:2079A8000000000000000000000000000000000000000000000000000000000000000000BF +:2079B0000000000000000000000000000000000000000000000000000000000000000000B7 +:2079B8000000000000000000000000000000000000000000000000000000000000000000AF +:2079C0000000000000000000000000000000000000000000000000000000000000000000A7 +:2079C80000000000000000000000000000000000000000000000000000000000000000009F +:2079D000000000000000000000000000000000000000000000000000000000000000000097 +:2079D80000000000000000000000000000000000000000000000000000000000000000008F +:2079E000000000000000000000000000000000000000000000000000000000000000000087 +:2079E80000000000000000000000000000000000000000000000000000000000000000007F +:2079F000000000000000000000000000000000000000000000000000000000000000000077 +:2079F80000000000000000000000000000000000000000000000000000000000000000006F +:207A0000000000000000000000000000000000000000000000000000000000000000000066 +:207A080000000000000000000000000000000000000000000000000000000000000000005E +:207A1000000000000000000000000000000000000000000000000000000000000000000056 +:207A180000000000000000000000000000000000000000000000000000000000000000004E +:207A2000000000000000000000000000000000000000000000000000000000000000000046 +:207A280000000000000000000000000000000000000000000000000000000000000000003E +:207A3000000000000000000000000000000000000000000000000000000000000000000036 +:207A380000000000000000000000000000000000000000000000000000000000000000002E +:207A4000000000000000000000000000000000000000000000000000000000000000000026 +:207A480000000000000000000000000000000000000000000000000000000000000000001E +:207A5000000000000000000000000000000000000000000000000000000000000000000016 +:207A580000000000000000000000000000000000000000000000000000000000000000000E +:207A6000000000000000000000000000000000000000000000000000000000000000000006 +:207A68000000000000000000000000000000000000000000000000000000000000000000FE +:207A70000000000000000000000000000000000000000000000000000000000000000000F6 +:207A78000000000000000000000000000000000000000000000000000000000000000000EE +:207A80000000000000000000000000000000000000000000000000000000000000000000E6 +:207A88000000000000000000000000000000000000000000000000000000000000000000DE +:207A90000000000000000000000000000000000000000000000000000000000000000000D6 +:207A98000000000000000000000000000000000000000000000000000000000000000000CE +:207AA0000000000000000000000000000000000000000000000000000000000000000000C6 +:207AA8000000000000000000000000000000000000000000000000000000000000000000BE +:207AB0000000000000000000000000000000000000000000000000000000000000000000B6 +:207AB8000000000000000000000000000000000000000000000000000000000000000000AE +:207AC0000000000000000000000000000000000000000000000000000000000000000000A6 +:207AC80000000000000000000000000000000000000000000000000000000000000000009E +:207AD000000000000000000000000000000000000000000000000000000000000000000096 +:207AD80000000000000000000000000000000000000000000000000000000000000000008E +:207AE000000000000000000000000000000000000000000000000000000000000000000086 +:207AE80000000000000000000000000000000000000000000000000000000000000000007E +:207AF000000000000000000000000000000000000000000000000000000000000000000076 +:207AF80000000000000000000000000000000000000000000000000000000000000000006E +:207B0000000000000000000000000000000000000000000000000000000000000000000065 +:207B080000000000000000000000000000000000000000000000000000000000000000005D +:207B1000000000000000000000000000000000000000000000000000000000000000000055 +:207B180000000000000000000000000000000000000000000000000000000000000000004D +:207B2000000000000000000000000000000000000000000000000000000000000000000045 +:207B280000000000000000000000000000000000000000000000000000000000000000003D +:207B3000000000000000000000000000000000000000000000000000000000000000000035 +:207B380000000000000000000000000000000000000000000000000000000000000000002D +:207B4000000000000000000000000000000000000000000000000000000000000000000025 +:207B480000000000000000000000000000000000000000000000000000000000000000001D +:207B5000000000000000000000000000000000000000000000000000000000000000000015 +:207B580000000000000000000000000000000000000000000000000000000000000000000D +:207B6000000000000000000000000000000000000000000000000000000000000000000005 +:207B68000000000000000000000000000000000000000000000000000000000000000000FD +:207B70000000000000000000000000000000000000000000000000000000000000000000F5 +:207B78000000000000000000000000000000000000000000000000000000000000000000ED +:207B80000000000000000000000000000000000000000000000000000000000000000000E5 +:207B88000000000000000000000000000000000000000000000000000000000000000000DD +:207B90000000000000000000000000000000000000000000000000000000000000000000D5 +:207B98000000000000000000000000000000000000000000000000000000000000000000CD +:207BA0000000000000000000000000000000000000000000000000000000000000000000C5 +:207BA8000000000000000000000000000000000000000000000000000000000000000000BD +:207BB0000000000000000000000000000000000000000000000000000000000000000000B5 +:207BB8000000000000000000000000000000000000000000000000000000000000000000AD +:207BC0000000000000000000000000000000000000000000000000000000000000000000A5 +:207BC80000000000000000000000000000000000000000000000000000000000000000009D +:207BD000000000000000000000000000000000000000000000000000000000000000000095 +:207BD80000000000000000000000000000000000000000000000000000000000000000008D +:207BE000000000000000000000000000000000000000000000000000000000000000000085 +:207BE80000000000000000000000000000000000000000000000000000000000000000007D +:207BF000000000000000000000000000000000000000000000000000000000000000000075 +:207BF80000000000000000000000000000000000000000000000000000000000000000006D +:207C0000000000000000000000000000000000000000000000000000000000000000000064 +:207C080000000000000000000000000000000000000000000000000000000000000000005C +:207C1000000000000000000000000000000000000000000000000000000000000000000054 +:207C180000000000000000000000000000000000000000000000000000000000000000004C +:207C2000000000000000000000000000000000000000000000000000000000000000000044 +:207C280000000000000000000000000000000000000000000000000000000000000000003C +:207C3000000000000000000000000000000000000000000000000000000000000000000034 +:207C380000000000000000000000000000000000000000000000000000000000000000002C +:207C4000000000000000000000000000000000000000000000000000000000000000000024 +:207C480000000000000000000000000000000000000000000000000000000000000000001C +:207C5000000000000000000000000000000000000000000000000000000000000000000014 +:207C580000000000000000000000000000000000000000000000000000000000000000000C +:207C6000000000000000000000000000000000000000000000000000000000000000000004 +:207C68000000000000000000000000000000000000000000000000000000000000000000FC +:207C70000000000000000000000000000000000000000000000000000000000000000000F4 +:207C78000000000000000000000000000000000000000000000000000000000000000000EC +:207C80000000000000000000000000000000000000000000000000000000000000000000E4 +:207C88000000000000000000000000000000000000000000000000000000000000000000DC +:207C90000000000000000000000000000000000000000000000000000000000000000000D4 +:207C98000000000000000000000000000000000000000000000000000000000000000000CC +:207CA0000000000000000000000000000000000000000000000000000000000000000000C4 +:207CA8000000000000000000000000000000000000000000000000000000000000000000BC +:207CB0000000000000000000000000000000000000000000000000000000000000000000B4 +:207CB8000000000000000000000000000000000000000000000000000000000000000000AC +:207CC0000000000000000000000000000000000000000000000000000000000000000000A4 +:207CC80000000000000000000000000000000000000000000000000000000000000000009C +:207CD000000000000000000000000000000000000000000000000000000000000000000094 +:207CD80000000000000000000000000000000000000000000000000000000000000000008C +:207CE000000000000000000000000000000000000000000000000000000000000000000084 +:207CE80000000000000000000000000000000000000000000000000000000000000000007C +:207CF000000000000000000000000000000000000000000000000000000000000000000074 +:207CF80000000000000000000000000000000000000000000000000000000000000000006C +:207D0000000000000000000000000000000000000000000000000000000000000000000063 +:207D080000000000000000000000000000000000000000000000000000000000000000005B +:207D1000000000000000000000000000000000000000000000000000000000000000000053 +:207D180000000000000000000000000000000000000000000000000000000000000000004B +:207D2000000000000000000000000000000000000000000000000000000000000000000043 +:207D280000000000000000000000000000000000000000000000000000000000000000003B +:207D3000000000000000000000000000000000000000000000000000000000000000000033 +:207D380000000000000000000000000000000000000000000000000000000000000000002B +:207D4000000000000000000000000000000000000000000000000000000000000000000023 +:207D480000000000000000000000000000000000000000000000000000000000000000001B +:207D5000000000000000000000000000000000000000000000000000000000000000000013 +:207D580000000000000000000000000000000000000000000000000000000000000000000B +:207D6000000000000000000000000000000000000000000000000000000000000000000003 +:207D68000000000000000000000000000000000000000000000000000000000000000000FB +:207D70000000000000000000000000000000000000000000000000000000000000000000F3 +:207D78000000000000000000000000000000000000000000000000000000000000000000EB +:207D80000000000000000000000000000000000000000000000000000000000000000000E3 +:207D88000000000000000000000000000000000000000000000000000000000000000000DB +:207D90000000000000000000000000000000000000000000000000000000000000000000D3 +:207D98000000000000000000000000000000000000000000000000000000000000000000CB +:207DA0000000000000000000000000000000000000000000000000000000000000000000C3 +:207DA8000000000000000000000000000000000000000000000000000000000000000000BB +:207DB0000000000000000000000000000000000000000000000000000000000000000000B3 +:207DB8000000000000000000000000000000000000000000000000000000000000000000AB +:207DC0000000000000000000000000000000000000000000000000000000000000000000A3 +:207DC80000000000000000000000000000000000000000000000000000000000000000009B +:207DD000000000000000000000000000000000000000000000000000000000000000000093 +:207DD80000000000000000000000000000000000000000000000000000000000000000008B +:207DE000000000000000000000000000000000000000000000000000000000000000000083 +:207DE80000000000000000000000000000000000000000000000000000000000000000007B +:207DF000000000000000000000000000000000000000000000000000000000000000000073 +:207DF80000000000000000000000000000000000000000000000000000000000000000006B +:207E0000000000000000000000000000000000000000000000000000000000000000000062 +:207E080000000000000000000000000000000000000000000000000000000000000000005A +:207E1000000000000000000000000000000000000000000000000000000000000000000052 +:207E180000000000000000000000000000000000000000000000000000000000000000004A +:207E2000000000000000000000000000000000000000000000000000000000000000000042 +:207E280000000000000000000000000000000000000000000000000000000000000000003A +:207E3000000000000000000000000000000000000000000000000000000000000000000032 +:207E380000000000000000000000000000000000000000000000000000000000000000002A +:207E4000000000000000000000000000000000000000000000000000000000000000000022 +:207E480000000000000000000000000000000000000000000000000000000000000000001A +:207E5000000000000000000000000000000000000000000000000000000000000000000012 +:207E580000000000000000000000000000000000000000000000000000000000000000000A +:207E6000000000000000000000000000000000000000000000000000000000000000000002 +:207E68000000000000000000000000000000000000000000000000000000000000000000FA +:207E70000000000000000000000000000000000000000000000000000000000000000000F2 +:207E78000000000000000000000000000000000000000000000000000000000000000000EA +:207E80000000000000000000000000000000000000000000000000000000000000000000E2 +:207E88000000000000000000000000000000000000000000000000000000000000000000DA +:207E90000000000000000000000000000000000000000000000000000000000000000000D2 +:207E98000000000000000000000000000000000000000000000000000000000000000000CA +:207EA0000000000000000000000000000000000000000000000000000000000000000000C2 +:207EA8000000000000000000000000000000000000000000000000000000000000000000BA +:207EB0000000000000000000000000000000000000000000000000000000000000000000B2 +:207EB8000000000000000000000000000000000000000000000000000000000000000000AA +:207EC0000000000000000000000000000000000000000000000000000000000000000000A2 +:207EC80000000000000000000000000000000000000000000000000000000000000000009A +:207ED000000000000000000000000000000000000000000000000000000000000000000092 +:207ED80000000000000000000000000000000000000000000000000000000000000000008A +:207EE000000000000000000000000000000000000000000000000000000000000000000082 +:207EE80000000000000000000000000000000000000000000000000000000000000000007A +:207EF000000000000000000000000000000000000000000000000000000000000000000072 +:207EF80000000000000000000000000000000000000000000000000000000000000000006A +:207F0000000000000000000000000000000000000000000000000000000000000000000061 +:207F0800000000000000000000000000000000000000000000000000000000000000000059 +:207F1000000000000000000000000000000000000000000000000000000000000000000051 +:207F1800000000000000000000000000000000000000000000000000000000000000000049 +:207F2000000000000000000000000000000000000000000000000000000000000000000041 +:207F2800000000000000000000000000000000000000000000000000000000000000000039 +:207F3000000000000000000000000000000000000000000000000000000000000000000031 +:207F3800000000000000000000000000000000000000000000000000000000000000000029 +:207F4000000000000000000000000000000000000000000000000000000000000000000021 +:207F4800000000000000000000000000000000000000000000000000000000000000000019 +:207F5000000000000000000000000000000000000000000000000000000000000000000011 +:207F5800000000000000000000000000000000000000000000000000000000000000000009 +:207F6000000000000000000000000000000000000000000000000000000000000000000001 +:207F68000000000000000000000000000000000000000000000000000000000000000000F9 +:207F70000000000000000000000000000000000000000000000000000000000000000000F1 +:207F78000000000000000000000000000000000000000000000000000000000000000000E9 +:207F80000000000000000000000000000000000000000000000000000000000000000000E1 +:207F88000000000000000000000000000000000000000000000000000000000000000000D9 +:207F90000000000000000000000000000000000000000000000000000000000000000000D1 +:207F98000000000000000000000000000000000000000000000000000000000000000000C9 +:207FA0000000000000000000000000000000000000000000000000000000000000000000C1 +:207FA8000000000000000000000000000000000000000000000000000000000000000000B9 +:207FB0000000000000000000000000000000000000000000000000000000000000000000B1 +:207FB8000000000000000000000000000000000000000000000000000000000000000000A9 +:207FC0000000000000000000000000000000000000000000000000000000000000000000A1 +:207FC800000000000000000000000000000000000000000000000000000000000000000099 +:207FD000000000000000000000000000000000000000000000000000000000000000000091 +:207FD800000000000000000000000000000000000000000000000000000000000000000089 +:207FE000000000000000000000000000000000000000000000000000000000000000000081 +:207FE800000000000000000000000000000000000000000000000000000000000000000079 +:207FF000000000000000000000000000000000000000000000000000000000000000000071 +:207FF800000000000000000000000000000000000000000000000000000000000000000069 +:20800000000000000000000000000000000000000000000000000000000000000000000060 +:20800800000000000000000000000000000000000000000000000000000000000000000058 +:20801000000000000000000000000000000000000000000000000000000000000000000050 +:20801800000000000000000000000000000000000000000000000000000000000000000048 +:20802000000000000000000000000000000000000000000000000000000000000000000040 +:20802800000000000000000000000000000000000000000000000000000000000000000038 +:20803000000000000000000000000000000000000000000000000000000000000000000030 +:20803800000000000000000000000000000000000000000000000000000000000000000028 +:20804000000000000000000000000000000000000000000000000000000000000000000020 +:20804800000000000000000000000000000000000000000000000000000000000000000018 +:20805000000000000000000000000000000000000000000000000000000000000000000010 +:20805800000000000000000000000000000000000000000000000000000000000000000008 +:20806000000000000000000000000000000000000000000000000000000000000000000000 +:208068000000000000000000000000000000000000000000000000000000000000000000F8 +:208070000000000000000000000000000000000000000000000000000000000000000000F0 +:208078000000000000000000000000000000000000000000000000000000000000000000E8 +:208080000000000000000000000000000000000000000000000000000000000000000000E0 +:208088000000000000000000000000000000000000000000000000000000000000000000D8 +:208090000000000000000000000000000000000000000000000000000000000000000000D0 +:208098000000000000000000000000000000000000000000000000000000000000000000C8 +:2080A0000000000000000000000000000000000000000000000000000000000000000000C0 +:2080A8000000000000000000000000000000000000000000000000000000000000000000B8 +:2080B0000000000000000000000000000000000000000000000000000000000000000000B0 +:2080B8000000000000000000000000000000000000000000000000000000000000000000A8 +:2080C0000000000000000000000000000000000000000000000000000000000000000000A0 +:2080C800000000000000000000000000000000000000000000000000000000000000000098 +:2080D000000000000000000000000000000000000000000000000000000000000000000090 +:2080D800000000000000000000000000000000000000000000000000000000000000000088 +:2080E000000000000000000000000000000000000000000000000000000000000000000080 +:2080E800000000000000000000000000000000000000000000000000000000000000000078 +:2080F000000000000000000000000000000000000000000000000000000000000000000070 +:2080F800000000000000000000000000000000000000000000000000000000000000000068 +:2081000000000000000000000000000000000000000000000000000000000000000000005F +:20810800000000000000000000000000000000000000000000000000000000000000000057 +:2081100000000000000000000000000000000000000000000000000000000000000000004F +:20811800000000000000000000000000000000000000000000000000000000000000000047 +:2081200000000000000000000000000000000000000000000000000000000000000000003F +:20812800000000000000000000000000000000000000000000000000000000000000000037 +:2081300000000000000000000000000000000000000000000000000000000000000000002F +:20813800000000000000000000000000000000000000000000000000000000000000000027 +:2081400000000000000000000000000000000000000000000000000000000000000000001F +:20814800000000000000000000000000000000000000000000000000000000000000000017 +:2081500000000000000000000000000000000000000000000000000000000000000000000F +:20815800000000000000000000000000000000000000000000000000000000000000000007 +:208160000000000000000000000000000000000000000000000000000000000000000000FF +:208168000000000000000000000000000000000000000000000000000000000000000000F7 +:208170000000000000000000000000000000000000000000000000000000000000000000EF +:208178000000000000000000000000000000000000000000000000000000000000000000E7 +:208180000000000000000000000000000000000000000000000000000000000000000000DF +:208188000000000000000000000000000000000000000000000000000000000000000000D7 +:208190000000000000000000000000000000000000000000000000000000000000000000CF +:208198000000000000000000000000000000000000000000000000000000000000000000C7 +:2081A0000000000000000000000000000000000000000000000000000000000000000000BF +:2081A8000000000000000000000000000000000000000000000000000000000000000000B7 +:2081B0000000000000000000000000000000000000000000000000000000000000000000AF +:2081B8000000000000000000000000000000000000000000000000000000000000000000A7 +:2081C00000000000000000000000000000000000000000000000000000000000000000009F +:2081C800000000000000000000000000000000000000000000000000000000000000000097 +:2081D00000000000000000000000000000000000000000000000000000000000000000008F +:2081D800000000000000000000000000000000000000000000000000000000000000000087 +:2081E00000000000000000000000000000000000000000000000000000000000000000007F +:2081E800000000000000000000000000000000000000000000000000000000000000000077 +:2081F00000000000000000000000000000000000000000000000000000000000000000006F +:2081F800000000000000000000000000000000000000000000000000000000000000000067 +:2082000000000000000000000000000000000000000000000000000000000000000000005E +:20820800000000000000000000000000000000000000000000000000000000000000000056 +:2082100000000000000000000000000000000000000000000000000000000000000000004E +:20821800000000000000000000000000000000000000000000000000000000000000000046 +:2082200000000000000000000000000000000000000000000000000000000000000000003E +:20822800000000000000000000000000000000000000000000000000000000000000000036 +:2082300000000000000000000000000000000000000000000000000000000000000000002E +:20823800000000000000000000000000000000000000000000000000000000000000000026 +:2082400000000000000000000000000000000000000000000000000000000000000000001E +:20824800000000000000000000000000000000000000000000000000000000000000000016 +:2082500000000000000000000000000000000000000000000000000000000000000000000E +:20825800000000000000000000000000000000000000000000000000000000000000000006 +:208260000000000000000000000000000000000000000000000000000000000000000000FE +:208268000000000000000000000000000000000000000000000000000000000000000000F6 +:208270000000000000000000000000000000000000000000000000000000000000000000EE +:208278000000000000000000000000000000000000000000000000000000000000000000E6 +:208280000000000000000000000000000000000000000000000000000000000000000000DE +:208288000000000000000000000000000000000000000000000000000000000000000000D6 +:208290000000000000000000000000000000000000000000000000000000000000000000CE +:208298000000000000000000000000000000000000000000000000000000000000000000C6 +:2082A0000000000000000000000000000000000000000000000000000000000000000000BE +:2082A8000000000000000000000000000000000000000000000000000000000000000000B6 +:2082B0000000000000000000000000000000000000000000000000000000000000000000AE +:2082B8000000000000000000000000000000000000000000000000000000000000000000A6 +:2082C00000000000000000000000000000000000000000000000000000000000000000009E +:2082C800000000000000000000000000000000000000000000000000000000000000000096 +:2082D00000000000000000000000000000000000000000000000000000000000000000008E +:2082D800000000000000000000000000000000000000000000000000000000000000000086 +:2082E00000000000000000000000000000000000000000000000000000000000000000007E +:2082E800000000000000000000000000000000000000000000000000000000000000000076 +:2082F00000000000000000000000000000000000000000000000000000000000000000006E +:2082F800000000000000000000000000000000000000000000000000000000000000000066 +:2083000000000000000000000000000000000000000000000000000000000000000000005D +:20830800000000000000000000000000000000000000000000000000000000000000000055 +:2083100000000000000000000000000000000000000000000000000000000000000000004D +:20831800000000000000000000000000000000000000000000000000000000000000000045 +:2083200000000000000000000000000000000000000000000000000000000000000000003D +:20832800000000000000000000000000000000000000000000000000000000000000000035 +:2083300000000000000000000000000000000000000000000000000000000000000000002D +:20833800000000000000000000000000000000000000000000000000000000000000000025 +:2083400000000000000000000000000000000000000000000000000000000000000000001D +:20834800000000000000000000000000000000000000000000000000000000000000000015 +:2083500000000000000000000000000000000000000000000000000000000000000000000D +:20835800000000000000000000000000000000000000000000000000000000000000000005 +:208360000000000000000000000000000000000000000000000000000000000000000000FD +:208368000000000000000000000000000000000000000000000000000000000000000000F5 +:208370000000000000000000000000000000000000000000000000000000000000000000ED +:208378000000000000000000000000000000000000000000000000000000000000000000E5 +:208380000000000000000000000000000000000000000000000000000000000000000000DD +:208388000000000000000000000000000000000000000000000000000000000000000000D5 +:208390000000000000000000000000000000000000000000000000000000000000000000CD +:208398000000000000000000000000000000000000000000000000000000000000000000C5 +:2083A0000000000000000000000000000000000000000000000000000000000000000000BD +:2083A8000000000000000000000000000000000000000000000000000000000000000000B5 +:2083B0000000000000000000000000000000000000000000000000000000000000000000AD +:2083B8000000000000000000000000000000000000000000000000000000000000000000A5 +:2083C00000000000000000000000000000000000000000000000000000000000000000009D +:2083C800000000000000000000000000000000000000000000000000000000000000000095 +:2083D00000000000000000000000000000000000000000000000000000000000000000008D +:2083D800000000000000000000000000000000000000000000000000000000000000000085 +:2083E00000000000000000000000000000000000000000000000000000000000000000007D +:2083E800000000000000000000000000000000000000000000000000000000000000000075 +:2083F00000000000000000000000000000000000000000000000000000000000000000006D +:2083F800000000000000000000000000000000000000000000000000000000000000000065 +:2084000000000000000000000000000000000000000000000000000000000000000000005C +:20840800000000000000000000000000000000000000000000000000000000000000000054 +:2084100000000000000000000000000000000000000000000000000000000000000000004C +:20841800000000000000000000000000000000000000000000000000000000000000000044 +:2084200000000000000000000000000000000000000000000000000000000000000000003C +:20842800000000000000000000000000000000000000000000000000000000000000000034 +:2084300000000000000000000000000000000000000000000000000000000000000000002C +:20843800000000000000000000000000000000000000000000000000000000000000000024 +:2084400000000000000000000000000000000000000000000000000000000000000000001C +:20844800000000000000000000000000000000000000000000000000000000000000000014 +:2084500000000000000000000000000000000000000000000000000000000000000000000C +:20845800000000000000000000000000000000000000000000000000000000000000000004 +:208460000000000000000000000000000000000000000000000000000000000000000000FC +:208468000000000000000000000000000000000000000000000000000000000000000000F4 +:208470000000000000000000000000000000000000000000000000000000000000000000EC +:208478000000000000000000000000000000000000000000000000000000000000000000E4 +:208480000000000000000000000000000000000000000000000000000000000000000000DC +:208488000000000000000000000000000000000000000000000000000000000000000000D4 +:208490000000000000000000000000000000000000000000000000000000000000000000CC +:208498000000000000000000000000000000000000000000000000000000000000000000C4 +:2084A0000000000000000000000000000000000000000000000000000000000000000000BC +:2084A8000000000000000000000000000000000000000000000000000000000000000000B4 +:2084B0000000000000000000000000000000000000000000000000000000000000000000AC +:2084B8000000000000000000000000000000000000000000000000000000000000000000A4 +:2084C00000000000000000000000000000000000000000000000000000000000000000009C +:2084C800000000000000000000000000000000000000000000000000000000000000000094 +:2084D00000000000000000000000000000000000000000000000000000000000000000008C +:2084D800000000000000000000000000000000000000000000000000000000000000000084 +:2084E00000000000000000000000000000000000000000000000000000000000000000007C +:2084E800000000000000000000000000000000000000000000000000000000000000000074 +:2084F00000000000000000000000000000000000000000000000000000000000000000006C +:2084F800000000000000000000000000000000000000000000000000000000000000000064 +:2085000000000000000000000000000000000000000000000000000000000000000000005B +:20850800000000000000000000000000000000000000000000000000000000000000000053 +:2085100000000000000000000000000000000000000000000000000000000000000000004B +:20851800000000000000000000000000000000000000000000000000000000000000000043 +:2085200000000000000000000000000000000000000000000000000000000000000000003B +:20852800000000000000000000000000000000000000000000000000000000000000000033 +:2085300000000000000000000000000000000000000000000000000000000000000000002B +:20853800000000000000000000000000000000000000000000000000000000000000000023 +:2085400000000000000000000000000000000000000000000000000000000000000000001B +:20854800000000000000000000000000000000000000000000000000000000000000000013 +:2085500000000000000000000000000000000000000000000000000000000000000000000B +:20855800000000000000000000000000000000000000000000000000000000000000000003 +:208560000000000000000000000000000000000000000000000000000000000000000000FB +:208568000000000000000000000000000000000000000000000000000000000000000000F3 +:208570000000000000000000000000000000000000000000000000000000000000000000EB +:208578000000000000000000000000000000000000000000000000000000000000000000E3 +:208580000000000000000000000000000000000000000000000000000000000000000000DB +:208588000000000000000000000000000000000000000000000000000000000000000000D3 +:208590000000000000000000000000000000000000000000000000000000000000000000CB +:208598000000000000000000000000000000000000000000000000000000000000000000C3 +:2085A0000000000000000000000000000000000000000000000000000000000000000000BB +:2085A8000000000000000000000000000000000000000000000000000000000000000000B3 +:2085B0000000000000000000000000000000000000000000000000000000000000000000AB +:2085B8000000000000000000000000000000000000000000000000000000000000000000A3 +:2085C00000000000000000000000000000000000000000000000000000000000000000009B +:2085C800000000000000000000000000000000000000000000000000000000000000000093 +:2085D00000000000000000000000000000000000000000000000000000000000000000008B +:2085D800000000000000000000000000000000000000000000000000000000000000000083 +:2085E00000000000000000000000000000000000000000000000000000000000000000007B +:2085E800000000000000000000000000000000000000000000000000000000000000000073 +:2085F00000000000000000000000000000000000000000000000000000000000000000006B +:2085F800000000000000000000000000000000000000000000000000000000000000000063 +:2086000000000000000000000000000000000000000000000000000000000000000000005A +:20860800000000000000000000000000000000000000000000000000000000000000000052 +:2086100000000000000000000000000000000000000000000000000000000000000000004A +:20861800000000000000000000000000000000000000000000000000000000000000000042 +:2086200000000000000000000000000000000000000000000000000000000000000000003A +:20862800000000000000000000000000000000000000000000000000000000000000000032 +:2086300000000000000000000000000000000000000000000000000000000000000000002A +:20863800000000000000000000000000000000000000000000000000000000000000000022 +:2086400000000000000000000000000000000000000000000000000000000000000000001A +:20864800000000000000000000000000000000000000000000000000000000000000000012 +:2086500000000000000000000000000000000000000000000000000000000000000000000A +:20865800000000000000000000000000000000000000000000000000000000000000000002 +:208660000000000000000000000000000000000000000000000000000000000000000000FA +:208668000000000000000000000000000000000000000000000000000000000000000000F2 +:208670000000000000000000000000000000000000000000000000000000000000000000EA +:208678000000000000000000000000000000000000000000000000000000000000000000E2 +:208680000000000000000000000000000000000000000000000000000000000000000000DA +:208688000000000000000000000000000000000000000000000000000000000000000000D2 +:208690000000000000000000000000000000000000000000000000000000000000000000CA +:208698000000000000000000000000000000000000000000000000000000000000000000C2 +:2086A0000000000000000000000000000000000000000000000000000000000000000000BA +:2086A8000000000000000000000000000000000000000000000000000000000000000000B2 +:2086B0000000000000000000000000000000000000000000000000000000000000000000AA +:2086B8000000000000000000000000000000000000000000000000000000000000000000A2 +:2086C00000000000000000000000000000000000000000000000000000000000000000009A +:2086C800000000000000000000000000000000000000000000000000000000000000000092 +:2086D00000000000000000000000000000000000000000000000000000000000000000008A +:2086D800000000000000000000000000000000000000000000000000000000000000000082 +:2086E00000000000000000000000000000000000000000000000000000000000000000007A +:2086E800000000000000000000000000000000000000000000000000000000000000000072 +:2086F00000000000000000000000000000000000000000000000000000000000000000006A +:2086F800000000000000000000000000000000000000000000000000000000000000000062 +:20870000000000000000000000000000000000000000000000000000000000000000000059 +:20870800000000000000000000000000000000000000000000000000000000000000000051 +:20871000000000000000000000000000000000000000000000000000000000000000000049 +:20871800000000000000000000000000000000000000000000000000000000000000000041 +:20872000000000000000000000000000000000000000000000000000000000000000000039 +:20872800000000000000000000000000000000000000000000000000000000000000000031 +:20873000000000000000000000000000000000000000000000000000000000000000000029 +:20873800000000000000000000000000000000000000000000000000000000000000000021 +:20874000000000000000000000000000000000000000000000000000000000000000000019 +:20874800000000000000000000000000000000000000000000000000000000000000000011 +:20875000000000000000000000000000000000000000000000000000000000000000000009 +:20875800000000000000000000000000000000000000000000000000000000000000000001 +:208760000000000000000000000000000000000000000000000000000000000000000000F9 +:208768000000000000000000000000000000000000000000000000000000000000000000F1 +:208770000000000000000000000000000000000000000000000000000000000000000000E9 +:208778000000000000000000000000000000000000000000000000000000000000000000E1 +:208780000000000000000000000000000000000000000000000000000000000000000000D9 +:208788000000000000000000000000000000000000000000000000000000000000000000D1 +:208790000000000000000000000000000000000000000000000000000000000000000000C9 +:208798000000000000000000000000000000000000000000000000000000000000000000C1 +:2087A0000000000000000000000000000000000000000000000000000000000000000000B9 +:2087A8000000000000000000000000000000000000000000000000000000000000000000B1 +:2087B0000000000000000000000000000000000000000000000000000000000000000000A9 +:2087B8000000000000000000000000000000000000000000000000000000000000000000A1 +:2087C000000000000000000000000000000000000000000000000000000000000000000099 +:2087C800000000000000000000000000000000000000000000000000000000000000000091 +:2087D000000000000000000000000000000000000000000000000000000000000000000089 +:2087D800000000000000000000000000000000000000000000000000000000000000000081 +:2087E000000000000000000000000000000000000000000000000000000000000000000079 +:2087E800000000000000000000000000000000000000000000000000000000000000000071 +:2087F000000000000000000000000000000000000000000000000000000000000000000069 +:2087F800000000000000000000000000000000000000000000000000000000000000000061 +:20880000000000000000000000000000000000000000000000000000000000000000000058 +:20880800000000000000000000000000000000000000000000000000000000000000000050 +:20881000000000000000000000000000000000000000000000000000000000000000000048 +:20881800000000000000000000000000000000000000000000000000000000000000000040 +:20882000000000000000000000000000000000000000000000000000000000000000000038 +:20882800000000000000000000000000000000000000000000000000000000000000000030 +:20883000000000000000000000000000000000000000000000000000000000000000000028 +:20883800000000000000000000000000000000000000000000000000000000000000000020 +:20884000000000000000000000000000000000000000000000000000000000000000000018 +:20884800000000000000000000000000000000000000000000000000000000000000000010 +:20885000000000000000000000000000000000000000000000000000000000000000000008 +:20885800000000000000000000000000000000000000000000000000000000000000000000 +:208860000000000000000000000000000000000000000000000000000000000000000000F8 +:208868000000000000000000000000000000000000000000000000000000000000000000F0 +:208870000000000000000000000000000000000000000000000000000000000000000000E8 +:208878000000000000000000000000000000000000000000000000000000000000000000E0 +:208880000000000000000000000000000000000000000000000000000000000000000000D8 +:208888000000000000000000000000000000000000000000000000000000000000000000D0 +:208890000000000000000000000000000000000000000000000000000000000000000000C8 +:208898000000000000000000000000000000000000000000000000000000000000000000C0 +:2088A0000000000000000000000000000000000000000000000000000000000000000000B8 +:2088A8000000000000000000000000000000000000000000000000000000000000000000B0 +:2088B0000000000000000000000000000000000000000000000000000000000000000000A8 +:2088B8000000000000000000000000000000000000000000000000000000000000000000A0 +:2088C000000000000000000000000000000000000000000000000000000000000000000098 +:2088C800000000000000000000000000000000000000000000000000000000000000000090 +:2088D000000000000000000000000000000000000000000000000000000000000000000088 +:2088D800000000000000000000000000000000000000000000000000000000000000000080 +:2088E000000000000000000000000000000000000000000000000000000000000000000078 +:2088E800000000000000000000000000000000000000000000000000000000000000000070 +:2088F000000000000000000000000000000000000000000000000000000000000000000068 +:2088F800000000000000000000000000000000000000000000000000000000000000000060 +:20890000000000000000000000000000000000000000000000000000000000000000000057 +:2089080000000000000000000000000000000000000000000000000000000000000000004F +:20891000000000000000000000000000000000000000000000000000000000000000000047 +:2089180000000000000000000000000000000000000000000000000000000000000000003F +:20892000000000000000000000000000000000000000000000000000000000000000000037 +:2089280000000000000000000000000000000000000000000000000000000000000000002F +:20893000000000000000000000000000000000000000000000000000000000000000000027 +:2089380000000000000000000000000000000000000000000000000000000000000000001F +:20894000000000000000000000000000000000000000000000000000000000000000000017 +:2089480000000000000000000000000000000000000000000000000000000000000000000F +:20895000000000000000000000000000000000000000000000000000000000000000000007 +:208958000000000000000000000000000000000000000000000000000000000000000000FF +:208960000000000000000000000000000000000000000000000000000000000000000000F7 +:208968000000000000000000000000000000000000000000000000000000000000000000EF +:208970000000000000000000000000000000000000000000000000000000000000000000E7 +:208978000000000000000000000000000000000000000000000000000000000000000000DF +:208980000000000000000000000000000000000000000000000000000000000000000000D7 +:208988000000000000000000000000000000000000000000000000000000000000000000CF +:208990000000000000000000000000000000000000000000000000000000000000000000C7 +:208998000000000000000000000000000000000000000000000000000000000000000000BF +:2089A0000000000000000000000000000000000000000000000000000000000000000000B7 +:2089A8000000000000000000000000000000000000000000000000000000000000000000AF +:2089B0000000000000000000000000000000000000000000000000000000000000000000A7 +:2089B80000000000000000000000000000000000000000000000000000000000000000009F +:2089C000000000000000000000000000000000000000000000000000000000000000000097 +:2089C80000000000000000000000000000000000000000000000000000000000000000008F +:2089D000000000000000000000000000000000000000000000000000000000000000000087 +:2089D80000000000000000000000000000000000000000000000000000000000000000007F +:2089E000000000000000000000000000000000000000000000000000000000000000000077 +:2089E80000000000000000000000000000000000000000000000000000000000000000006F +:2089F000000000000000000000000000000000000000000000000000000000000000000067 +:2089F80000000000000000000000000000000000000000000000000000000000000000005F +:208A0000000000000000000000000000000000000000000000000000000000000000000056 +:208A080000000000000000000000000000000000000000000000000000000000000000004E +:208A1000000000000000000000000000000000000000000000000000000000000000000046 +:208A180000000000000000000000000000000000000000000000000000000000000000003E +:208A2000000000000000000000000000000000000000000000000000000000000000000036 +:208A280000000000000000000000000000000000000000000000000000000000000000002E +:208A3000000000000000000000000000000000000000000000000000000000000000000026 +:208A380000000000000000000000000000000000000000000000000000000000000000001E +:208A4000000000000000000000000000000000000000000000000000000000000000000016 +:208A480000000000000000000000000000000000000000000000000000000000000000000E +:208A5000000000000000000000000000000000000000000000000000000000000000000006 +:208A58000000000000000000000000000000000000000000000000000000000000000000FE +:208A60000000000000000000000000000000000000000000000000000000000000000000F6 +:208A68000000000000000000000000000000000000000000000000000000000000000000EE +:208A70000000000000000000000000000000000000000000000000000000000000000000E6 +:208A78000000000000000000000000000000000000000000000000000000000000000000DE +:208A80000000000000000000000000000000000000000000000000000000000000000000D6 +:208A88000000000000000000000000000000000000000000000000000000000000000000CE +:208A90000000000000000000000000000000000000000000000000000000000000000000C6 +:208A98000000000000000000000000000000000000000000000000000000000000000000BE +:208AA0000000000000000000000000000000000000000000000000000000000000000000B6 +:208AA8000000000000000000000000000000000000000000000000000000000000000000AE +:208AB0000000000000000000000000000000000000000000000000000000000000000000A6 +:208AB80000000000000000000000000000000000000000000000000000000000000000009E +:208AC000000000000000000000000000000000000000000000000000000000000000000096 +:208AC80000000000000000000000000000000000000000000000000000000000000000008E +:208AD000000000000000000000000000000000000000000000000000000000000000000086 +:208AD80000000000000000000000000000000000000000000000000000000000000000007E +:208AE000000000000000000000000000000000000000000000000000000000000000000076 +:208AE80000000000000000000000000000000000000000000000000000000000000000006E +:208AF000000000000000000000000000000000000000000000000000000000000000000066 +:208AF80000000000000000000000000000000000000000000000000000000000000000005E +:208B0000000000000000000000000000000000000000000000000000000000000000000055 +:208B080000000000000000000000000000000000000000000000000000000000000000004D +:208B1000000000000000000000000000000000000000000000000000000000000000000045 +:208B180000000000000000000000000000000000000000000000000000000000000000003D +:208B2000000000000000000000000000000000000000000000000000000000000000000035 +:208B280000000000000000000000000000000000000000000000000000000000000000002D +:208B3000000000000000000000000000000000000000000000000000000000000000000025 +:208B380000000000000000000000000000000000000000000000000000000000000000001D +:208B4000000000000000000000000000000000000000000000000000000000000000000015 +:208B480000000000000000000000000000000000000000000000000000000000000000000D +:208B5000000000000000000000000000000000000000000000000000000000000000000005 +:208B58000000000000000000000000000000000000000000000000000000000000000000FD +:208B60000000000000000000000000000000000000000000000000000000000000000000F5 +:208B68000000000000000000000000000000000000000000000000000000000000000000ED +:208B70000000000000000000000000000000000000000000000000000000000000000000E5 +:208B78000000000000000000000000000000000000000000000000000000000000000000DD +:208B80000000000000000000000000000000000000000000000000000000000000000000D5 +:208B88000000000000000000000000000000000000000000000000000000000000000000CD +:208B90000000000000000000000000000000000000000000000000000000000000000000C5 +:208B98000000000000000000000000000000000000000000000000000000000000000000BD +:208BA0000000000000000000000000000000000000000000000000000000000000000000B5 +:208BA8000000000000000000000000000000000000000000000000000000000000000000AD +:208BB0000000000000000000000000000000000000000000000000000000000000000000A5 +:208BB80000000000000000000000000000000000000000000000000000000000000000009D +:208BC000000000000000000000000000000000000000000000000000000000000000000095 +:208BC80000000000000000000000000000000000000000000000000000000000000000008D +:208BD000000000000000000000000000000000000000000000000000000000000000000085 +:208BD80000000000000000000000000000000000000000000000000000000000000000007D +:208BE000000000000000000000000000000000000000000000000000000000000000000075 +:208BE80000000000000000000000000000000000000000000000000000000000000000006D +:208BF000000000000000000000000000000000000000000000000000000000000000000065 +:208BF80000000000000000000000000000000000000000000000000000000000000000005D +:208C0000000000000000000000000000000000000000000000000000000000000000000054 +:208C080000000000000000000000000000000000000000000000000000000000000000004C +:208C1000000000000000000000000000000000000000000000000000000000000000000044 +:208C180000000000000000000000000000000000000000000000000000000000000000003C +:208C2000000000000000000000000000000000000000000000000000000000000000000034 +:208C280000000000000000000000000000000000000000000000000000000000000000002C +:208C3000000000000000000000000000000000000000000000000000000000000000000024 +:208C380000000000000000000000000000000000000000000000000000000000000000001C +:208C4000000000000000000000000000000000000000000000000000000000000000000014 +:208C480000000000000000000000000000000000000000000000000000000000000000000C +:208C5000000000000000000000000000000000000000000000000000000000000000000004 +:208C58000000000000000000000000000000000000000000000000000000000000000000FC +:208C60000000000000000000000000000000000000000000000000000000000000000000F4 +:208C68000000000000000000000000000000000000000000000000000000000000000000EC +:208C70000000000000000000000000000000000000000000000000000000000000000000E4 +:208C78000000000000000000000000000000000000000000000000000000000000000000DC +:208C80000000000000000000000000000000000000000000000000000000000000000000D4 +:208C88000000000000000000000000000000000000000000000000000000000000000000CC +:208C90000000000000000000000000000000000000000000000000000000000000000000C4 +:208C98000000000000000000000000000000000000000000000000000000000000000000BC +:208CA0000000000000000000000000000000000000000000000000000000000000000000B4 +:208CA8000000000000000000000000000000000000000000000000000000000000000000AC +:208CB0000000000000000000000000000000000000000000000000000000000000000000A4 +:208CB80000000000000000000000000000000000000000000000000000000000000000009C +:208CC000000000000000000000000000000000000000000000000000000000000000000094 +:208CC80000000000000000000000000000000000000000000000000000000000000000008C +:208CD000000000000000000000000000000000000000000000000000000000000000000084 +:208CD80000000000000000000000000000000000000000000000000000000000000000007C +:208CE000000000000000000000000000000000000000000000000000000000000000000074 +:208CE80000000000000000000000000000000000000000000000000000000000000000006C +:208CF000000000000000000000000000000000000000000000000000000000000000000064 +:208CF80000000000000000000000000000000000000000000000000000000000000000005C +:208D0000000000000000000000000000000000000000000000000000000000000000000053 +:208D080000000000000000000000000000000000000000000000000000000000000000004B +:208D1000000000000000000000000000000000000000000000000000000000000000000043 +:208D180000000000000000000000000000000000000000000000000000000000000000003B +:208D2000000000000000000000000000000000000000000000000000000000000000000033 +:208D280000000000000000000000000000000000000000000000000000000000000000002B +:208D3000000000000000000000000000000000000000000000000000000000000000000023 +:208D380000000000000000000000000000000000000000000000000000000000000000001B +:208D4000000000000000000000000000000000000000000000000000000000000000000013 +:208D480000000000000000000000000000000000000000000000000000000000000000000B +:208D5000000000000000000000000000000000000000000000000000000000000000000003 +:208D58000000000000000000000000000000000000000000000000000000000000000000FB +:208D60000000000000000000000000000000000000000000000000000000000000000000F3 +:208D68000000000000000000000000000000000000000000000000000000000000000000EB +:208D70000000000000000000000000000000000000000000000000000000000000000000E3 +:208D78000000000000000000000000000000000000000000000000000000000000000000DB +:208D80000000000000000000000000000000000000000000000000000000000000000000D3 +:208D88000000000000000000000000000000000000000000000000000000000000000000CB +:208D90000000000000000000000000000000000000000000000000000000000000000000C3 +:208D98000000000000000000000000000000000000000000000000000000000000000000BB +:208DA0000000000000000000000000000000000000000000000000000000000000000000B3 +:208DA8000000000000000000000000000000000000000000000000000000000000000000AB +:208DB0000000000000000000000000000000000000000000000000000000000000000000A3 +:208DB80000000000000000000000000000000000000000000000000000000000000000009B +:208DC000000000000000000000000000000000000000000000000000000000000000000093 +:208DC80000000000000000000000000000000000000000000000000000000000000000008B +:208DD000000000000000000000000000000000000000000000000000000000000000000083 +:208DD80000000000000000000000000000000000000000000000000000000000000000007B +:208DE000000000000000000000000000000000000000000000000000000000000000000073 +:208DE80000000000000000000000000000000000000000000000000000000000000000006B +:208DF000000000000000000000000000000000000000000000000000000000000000000063 +:208DF80000000000000000000000000000000000000000000000000000000000000000005B +:208E0000000000000000000000000000000000000000000000000000000000000000000052 +:208E080000000000000000000000000000000000000000000000000000000000000000004A +:208E1000000000000000000000000000000000000000000000000000000000000000000042 +:208E180000000000000000000000000000000000000000000000000000000000000000003A +:208E2000000000000000000000000000000000000000000000000000000000000000000032 +:208E280000000000000000000000000000000000000000000000000000000000000000002A +:208E3000000000000000000000000000000000000000000000000000000000000000000022 +:208E380000000000000000000000000000000000000000000000000000000000000000001A +:208E4000000000000000000000000000000000000000000000000000000000000000000012 +:208E480000000000000000000000000000000000000000000000000000000000000000000A +:208E5000000000000000000000000000000000000000000000000000000000000000000002 +:208E58000000000000000000000000000000000000000000000000000000000000000000FA +:208E60000000000000000000000000000000000000000000000000000000000000000000F2 +:208E68000000000000000000000000000000000000000000000000000000000000000000EA +:208E70000000000000000000000000000000000000000000000000000000000000000000E2 +:208E78000000000000000000000000000000000000000000000000000000000000000000DA +:208E80000000000000000000000000000000000000000000000000000000000000000000D2 +:208E88000000000000000000000000000000000000000000000000000000000000000000CA +:208E90000000000000000000000000000000000000000000000000000000000000000000C2 +:208E98000000000000000000000000000000000000000000000000000000000000000000BA +:208EA0000000000000000000000000000000000000000000000000000000000000000000B2 +:208EA8000000000000000000000000000000000000000000000000000000000000000000AA +:208EB0000000000000000000000000000000000000000000000000000000000000000000A2 +:208EB80000000000000000000000000000000000000000000000000000000000000000009A +:208EC000000000000000000000000000000000000000000000000000000000000000000092 +:208EC80000000000000000000000000000000000000000000000000000000000000000008A +:208ED000000000000000000000000000000000000000000000000000000000000000000082 +:208ED80000000000000000000000000000000000000000000000000000000000000000007A +:208EE000000000000000000000000000000000000000000000000000000000000000000072 +:208EE80000000000000000000000000000000000000000000000000000000000000000006A +:208EF000000000000000000000000000000000000000000000000000000000000000000062 +:208EF80000000000000000000000000000000000000000000000000000000000000000005A +:208F0000000000000000000000000000000000000000000000000000000000000000000051 +:208F0800000000000000000000000000000000000000000000000000000000000000000049 +:208F1000000000000000000000000000000000000000000000000000000000000000000041 +:208F1800000000000000000000000000000000000000000000000000000000000000000039 +:208F2000000000000000000000000000000000000000000000000000000000000000000031 +:208F2800000000000000000000000000000000000000000000000000000000000000000029 +:208F3000000000000000000000000000000000000000000000000000000000000000000021 +:208F3800000000000000000000000000000000000000000000000000000000000000000019 +:208F4000000000000000000000000000000000000000000000000000000000000000000011 +:208F4800000000000000000000000000000000000000000000000000000000000000000009 +:208F5000000000000000000000000000000000000000000000000000000000000000000001 +:208F58000000000000000000000000000000000000000000000000000000000000000000F9 +:208F60000000000000000000000000000000000000000000000000000000000000000000F1 +:208F68000000000000000000000000000000000000000000000000000000000000000000E9 +:208F70000000000000000000000000000000000000000000000000000000000000000000E1 +:208F78000000000000000000000000000000000000000000000000000000000000000000D9 +:208F80000000000000000000000000000000000000000000000000000000000000000000D1 +:208F88000000000000000000000000000000000000000000000000000000000000000000C9 +:208F90000000000000000000000000000000000000000000000000000000000000000000C1 +:208F98000000000000000000000000000000000000000000000000000000000000000000B9 +:208FA0000000000000000000000000000000000000000000000000000000000000000000B1 +:208FA8000000000000000000000000000000000000000000000000000000000000000000A9 +:208FB0000000000000000000000000000000000000000000000000000000000000000000A1 +:208FB800000000000000000000000000000000000000000000000000000000000000000099 +:208FC000000000000000000000000000000000000000000000000000000000000000000091 +:208FC800000000000000000000000000000000000000000000000000000000000000000089 +:208FD000000000000000000000000000000000000000000000000000000000000000000081 +:208FD800000000000000000000000000000000000000000000000000000000000000000079 +:208FE000000000000000000000000000000000000000000000000000000000000000000071 +:208FE800000000000000000000000000000000000000000000000000000000000000000069 +:208FF000000000000000000000000000000000000000000000000000000000000000000061 +:208FF800000000000000000000000000000000000000000000000000000000000000000059 +:20900000000000000000000000000000000000000000000000000000000000000000000050 +:20900800000000000000000000000000000000000000000000000000000000000000000048 +:20901000000000000000000000000000000000000000000000000000000000000000000040 +:20901800000000000000000000000000000000000000000000000000000000000000000038 +:20902000000000000000000000000000000000000000000000000000000000000000000030 +:20902800000000000000000000000000000000000000000000000000000000000000000028 +:20903000000000000000000000000000000000000000000000000000000000000000000020 +:20903800000000000000000000000000000000000000000000000000000000000000000018 +:20904000000000000000000000000000000000000000000000000000000000000000000010 +:20904800000000000000000000000000000000000000000000000000000000000000000008 +:20905000000000000000000000000000000000000000000000000000000000000000000000 +:209058000000000000000000000000000000000000000000000000000000000000000000F8 +:209060000000000000000000000000000000000000000000000000000000000000000000F0 +:209068000000000000000000000000000000000000000000000000000000000000000000E8 +:209070000000000000000000000000000000000000000000000000000000000000000000E0 +:209078000000000000000000000000000000000000000000000000000000000000000000D8 +:209080000000000000000000000000000000000000000000000000000000000000000000D0 +:209088000000000000000000000000000000000000000000000000000000000000000000C8 +:209090000000000000000000000000000000000000000000000000000000000000000000C0 +:209098000000000000000000000000000000000000000000000000000000000000000000B8 +:2090A0000000000000000000000000000000000000000000000000000000000000000000B0 +:2090A8000000000000000000000000000000000000000000000000000000000000000000A8 +:2090B0000000000000000000000000000000000000000000000000000000000000000000A0 +:2090B800000000000000000000000000000000000000000000000000000000000000000098 +:2090C000000000000000000000000000000000000000000000000000000000000000000090 +:2090C800000000000000000000000000000000000000000000000000000000000000000088 +:2090D000000000000000000000000000000000000000000000000000000000000000000080 +:2090D800000000000000000000000000000000000000000000000000000000000000000078 +:2090E000000000000000000000000000000000000000000000000000000000000000000070 +:2090E800000000000000000000000000000000000000000000000000000000000000000068 +:2090F000000000000000000000000000000000000000000000000000000000000000000060 +:2090F800000000000000000000000000000000000000000000000000000000000000000058 +:2091000000000000000000000000000000000000000000000000000000000000000000004F +:20910800000000000000000000000000000000000000000000000000000000000000000047 +:2091100000000000000000000000000000000000000000000000000000000000000000003F +:20911800000000000000000000000000000000000000000000000000000000000000000037 +:2091200000000000000000000000000000000000000000000000000000000000000000002F +:20912800000000000000000000000000000000000000000000000000000000000000000027 +:2091300000000000000000000000000000000000000000000000000000000000000000001F +:20913800000000000000000000000000000000000000000000000000000000000000000017 +:2091400000000000000000000000000000000000000000000000000000000000000000000F +:20914800000000000000000000000000000000000000000000000000000000000000000007 +:209150000000000000000000000000000000000000000000000000000000000000000000FF +:209158000000000000000000000000000000000000000000000000000000000000000000F7 +:209160000000000000000000000000000000000000000000000000000000000000000000EF +:209168000000000000000000000000000000000000000000000000000000000000000000E7 +:209170000000000000000000000000000000000000000000000000000000000000000000DF +:209178000000000000000000000000000000000000000000000000000000000000000000D7 +:209180000000000000000000000000000000000000000000000000000000000000000000CF +:209188000000000000000000000000000000000000000000000000000000000000000000C7 +:209190000000000000000000000000000000000000000000000000000000000000000000BF +:209198000000000000000000000000000000000000000000000000000000000000000000B7 +:2091A0000000000000000000000000000000000000000000000000000000000000000000AF +:2091A8000000000000000000000000000000000000000000000000000000000000000000A7 +:2091B00000000000000000000000000000000000000000000000000000000000000000009F +:2091B800000000000000000000000000000000000000000000000000000000000000000097 +:2091C00000000000000000000000000000000000000000000000000000000000000000008F +:2091C800000000000000000000000000000000000000000000000000000000000000000087 +:2091D00000000000000000000000000000000000000000000000000000000000000000007F +:2091D800000000000000000000000000000000000000000000000000000000000000000077 +:2091E00000000000000000000000000000000000000000000000000000000000000000006F +:2091E800000000000000000000000000000000000000000000000000000000000000000067 +:2091F00000000000000000000000000000000000000000000000000000000000000000005F +:2091F800000000000000000000000000000000000000000000000000000000000000000057 +:2092000000000000000000000000000000000000000000000000000000000000000000004E +:20920800000000000000000000000000000000000000000000000000000000000000000046 +:2092100000000000000000000000000000000000000000000000000000000000000000003E +:20921800000000000000000000000000000000000000000000000000000000000000000036 +:2092200000000000000000000000000000000000000000000000000000000000000000002E +:20922800000000000000000000000000000000000000000000000000000000000000000026 +:2092300000000000000000000000000000000000000000000000000000000000000000001E +:20923800000000000000000000000000000000000000000000000000000000000000000016 +:2092400000000000000000000000000000000000000000000000000000000000000000000E +:20924800000000000000000000000000000000000000000000000000000000000000000006 +:209250000000000000000000000000000000000000000000000000000000000000000000FE +:209258000000000000000000000000000000000000000000000000000000000000000000F6 +:209260000000000000000000000000000000000000000000000000000000000000000000EE +:209268000000000000000000000000000000000000000000000000000000000000000000E6 +:209270000000000000000000000000000000000000000000000000000000000000000000DE +:209278000000000000000000000000000000000000000000000000000000000000000000D6 +:209280000000000000000000000000000000000000000000000000000000000000000000CE +:209288000000000000000000000000000000000000000000000000000000000000000000C6 +:209290000000000000000000000000000000000000000000000000000000000000000000BE +:209298000000000000000000000000000000000000000000000000000000000000000000B6 +:2092A0000000000000000000000000000000000000000000000000000000000000000000AE +:2092A8000000000000000000000000000000000000000000000000000000000000000000A6 +:2092B00000000000000000000000000000000000000000000000000000000000000000009E +:2092B800000000000000000000000000000000000000000000000000000000000000000096 +:2092C00000000000000000000000000000000000000000000000000000000000000000008E +:2092C800000000000000000000000000000000000000000000000000000000000000000086 +:2092D00000000000000000000000000000000000000000000000000000000000000000007E +:2092D800000000000000000000000000000000000000000000000000000000000000000076 +:2092E00000000000000000000000000000000000000000000000000000000000000000006E +:2092E800000000000000000000000000000000000000000000000000000000000000000066 +:2092F00000000000000000000000000000000000000000000000000000000000000000005E +:2092F800000000000000000000000000000000000000000000000000000000000000000056 +:2093000000000000000000000000000000000000000000000000000000000000000000004D +:20930800000000000000000000000000000000000000000000000000000000000000000045 +:2093100000000000000000000000000000000000000000000000000000000000000000003D +:20931800000000000000000000000000000000000000000000000000000000000000000035 +:2093200000000000000000000000000000000000000000000000000000000000000000002D +:20932800000000000000000000000000000000000000000000000000000000000000000025 +:2093300000000000000000000000000000000000000000000000000000000000000000001D +:20933800000000000000000000000000000000000000000000000000000000000000000015 +:2093400000000000000000000000000000000000000000000000000000000000000000000D +:20934800000000000000000000000000000000000000000000000000000000000000000005 +:209350000000000000000000000000000000000000000000000000000000000000000000FD +:209358000000000000000000000000000000000000000000000000000000000000000000F5 +:209360000000000000000000000000000000000000000000000000000000000000000000ED +:209368000000000000000000000000000000000000000000000000000000000000000000E5 +:209370000000000000000000000000000000000000000000000000000000000000000000DD +:209378000000000000000000000000000000000000000000000000000000000000000000D5 +:209380000000000000000000000000000000000000000000000000000000000000000000CD +:209388000000000000000000000000000000000000000000000000000000000000000000C5 +:209390000000000000000000000000000000000000000000000000000000000000000000BD +:209398000000000000000000000000000000000000000000000000000000000000000000B5 +:2093A0000000000000000000000000000000000000000000000000000000000000000000AD +:2093A8000000000000000000000000000000000000000000000000000000000000000000A5 +:2093B00000000000000000000000000000000000000000000000000000000000000000009D +:2093B800000000000000000000000000000000000000000000000000000000000000000095 +:2093C00000000000000000000000000000000000000000000000000000000000000000008D +:2093C800000000000000000000000000000000000000000000000000000000000000000085 +:2093D00000000000000000000000000000000000000000000000000000000000000000007D +:2093D800000000000000000000000000000000000000000000000000000000000000000075 +:2093E00000000000000000000000000000000000000000000000000000000000000000006D +:2093E800000000000000000000000000000000000000000000000000000000000000000065 +:2093F00000000000000000000000000000000000000000000000000000000000000000005D +:2093F800000000000000000000000000000000000000000000000000000000000000000055 +:2094000000000000000000000000000000000000000000000000000000000000000000004C +:20940800000000000000000000000000000000000000000000000000000000000000000044 +:2094100000000000000000000000000000000000000000000000000000000000000000003C +:20941800000000000000000000000000000000000000000000000000000000000000000034 +:2094200000000000000000000000000000000000000000000000000000000000000000002C +:20942800000000000000000000000000000000000000000000000000000000000000000024 +:2094300000000000000000000000000000000000000000000000000000000000000000001C +:20943800000000000000000000000000000000000000000000000000000000000000000014 +:2094400000000000000000000000000000000000000000000000000000000000000000000C +:20944800000000000000000000000000000000000000000000000000000000000000000004 +:209450000000000000000000000000000000000000000000000000000000000000000000FC +:209458000000000000000000000000000000000000000000000000000000000000000000F4 +:209460000000000000000000000000000000000000000000000000000000000000000000EC +:209468000000000000000000000000000000000000000000000000000000000000000000E4 +:209470000000000000000000000000000000000000000000000000000000000000000000DC +:209478000000000000000000000000000000000000000000000000000000000000000000D4 +:209480000000000000000000000000000000000000000000000000000000000000000000CC +:209488000000000000000000000000000000000000000000000000000000000000000000C4 +:209490000000000000000000000000000000000000000000000000000000000000000000BC +:209498000000000000000000000000000000000000000000000000000000000000000000B4 +:2094A0000000000000000000000000000000000000000000000000000000000000000000AC +:2094A8000000000000000000000000000000000000000000000000000000000000000000A4 +:2094B00000000000000000000000000000000000000000000000000000000000000000009C +:2094B800000000000000000000000000000000000000000000000000000000000000000094 +:2094C00000000000000000000000000000000000000000000000000000000000000000008C +:2094C800000000000000000000000000000000000000000000000000000000000000000084 +:2094D00000000000000000000000000000000000000000000000000000000000000000007C +:2094D800000000000000000000000000000000000000000000000000000000000000000074 +:2094E00000000000000000000000000000000000000000000000000000000000000000006C +:2094E800000000000000000000000000000000000000000000000000000000000000000064 +:2094F00000000000000000000000000000000000000000000000000000000000000000005C +:2094F800000000000000000000000000000000000000000000000000000000000000000054 +:2095000000000000000000000000000000000000000000000000000000000000000000004B +:20950800000000000000000000000000000000000000000000000000000000000000000043 +:2095100000000000000000000000000000000000000000000000000000000000000000003B +:20951800000000000000000000000000000000000000000000000000000000000000000033 +:2095200000000000000000000000000000000000000000000000000000000000000000002B +:20952800000000000000000000000000000000000000000000000000000000000000000023 +:2095300000000000000000000000000000000000000000000000000000000000000000001B +:20953800000000000000000000000000000000000000000000000000000000000000000013 +:2095400000000000000000000000000000000000000000000000000000000000000000000B +:20954800000000000000000000000000000000000000000000000000000000000000000003 +:209550000000000000000000000000000000000000000000000000000000000000000000FB +:209558000000000000000000000000000000000000000000000000000000000000000000F3 +:209560000000000000000000000000000000000000000000000000000000000000000000EB +:209568000000000000000000000000000000000000000000000000000000000000000000E3 +:209570000000000000000000000000000000000000000000000000000000000000000000DB +:209578000000000000000000000000000000000000000000000000000000000000000000D3 +:209580000000000000000000000000000000000000000000000000000000000000000000CB +:209588000000000000000000000000000000000000000000000000000000000000000000C3 +:209590000000000000000000000000000000000000000000000000000000000000000000BB +:209598000000000000000000000000000000000000000000000000000000000000000000B3 +:2095A0000000000000000000000000000000000000000000000000000000000000000000AB +:2095A8000000000000000000000000000000000000000000000000000000000000000000A3 +:2095B00000000000000000000000000000000000000000000000000000000000000000009B +:2095B800000000000000000000000000000000000000000000000000000000000000000093 +:2095C00000000000000000000000000000000000000000000000000000000000000000008B +:2095C800000000000000000000000000000000000000000000000000000000000000000083 +:2095D00000000000000000000000000000000000000000000000000000000000000000007B +:2095D800000000000000000000000000000000000000000000000000000000000000000073 +:2095E00000000000000000000000000000000000000000000000000000000000000000006B +:2095E800000000000000000000000000000000000000000000000000000000000000000063 +:2095F00000000000000000000000000000000000000000000000000000000000000000005B +:2095F800000000000000000000000000000000000000000000000000000000000000000053 +:2096000000000000000000000000000000000000000000000000000000000000000000004A +:20960800000000000000000000000000000000000000000000000000000000000000000042 +:2096100000000000000000000000000000000000000000000000000000000000000000003A +:20961800000000000000000000000000000000000000000000000000000000000000000032 +:2096200000000000000000000000000000000000000000000000000000000000000000002A +:20962800000000000000000000000000000000000000000000000000000000000000000022 +:2096300000000000000000000000000000000000000000000000000000000000000000001A +:20963800000000000000000000000000000000000000000000000000000000000000000012 +:2096400000000000000000000000000000000000000000000000000000000000000000000A +:20964800000000000000000000000000000000000000000000000000000000000000000002 +:209650000000000000000000000000000000000000000000000000000000000000000000FA +:209658000000000000000000000000000000000000000000000000000000000000000000F2 +:209660000000000000000000000000000000000000000000000000000000000000000000EA +:209668000000000000000000000000000000000000000000000000000000000000000000E2 +:209670000000000000000000000000000000000000000000000000000000000000000000DA +:209678000000000000000000000000000000000000000000000000000000000000000000D2 +:209680000000000000000000000000000000000000000000000000000000000000000000CA +:209688000000000000000000000000000000000000000000000000000000000000000000C2 +:209690000000000000000000000000000000000000000000000000000000000000000000BA +:209698000000000000000000000000000000000000000000000000000000000000000000B2 +:2096A0000000000000000000000000000000000000000000000000000000000000000000AA +:2096A8000000000000000000000000000000000000000000000000000000000000000000A2 +:2096B00000000000000000000000000000000000000000000000000000000000000000009A +:2096B800000000000000000000000000000000000000000000000000000000000000000092 +:2096C00000000000000000000000000000000000000000000000000000000000000000008A +:2096C800000000000000000000000000000000000000000000000000000000000000000082 +:2096D00000000000000000000000000000000000000000000000000000000000000000007A +:2096D800000000000000000000000000000000000000000000000000000000000000000072 +:2096E00000000000000000000000000000000000000000000000000000000000000000006A +:2096E800000000000000000000000000000000000000000000000000000000000000000062 +:2096F00000000000000000000000000000000000000000000000000000000000000000005A +:2096F800000000000000000000000000000000000000000000000000000000000000000052 +:20970000000000000000000000000000000000000000000000000000000000000000000049 +:20970800000000000000000000000000000000000000000000000000000000000000000041 +:20971000000000000000000000000000000000000000000000000000000000000000000039 +:20971800000000000000000000000000000000000000000000000000000000000000000031 +:20972000000000000000000000000000000000000000000000000000000000000000000029 +:20972800000000000000000000000000000000000000000000000000000000000000000021 +:20973000000000000000000000000000000000000000000000000000000000000000000019 +:20973800000000000000000000000000000000000000000000000000000000000000000011 +:20974000000000000000000000000000000000000000000000000000000000000000000009 +:20974800000000000000000000000000000000000000000000000000000000000000000001 +:209750000000000000000000000000000000000000000000000000000000000000000000F9 +:209758000000000000000000000000000000000000000000000000000000000000000000F1 +:209760000000000000000000000000000000000000000000000000000000000000000000E9 +:209768000000000000000000000000000000000000000000000000000000000000000000E1 +:209770000000000000000000000000000000000000000000000000000000000000000000D9 +:209778000000000000000000000000000000000000000000000000000000000000000000D1 +:209780000000000000000000000000000000000000000000000000000000000000000000C9 +:209788000000000000000000000000000000000000000000000000000000000000000000C1 +:209790000000000000000000000000000000000000000000000000000000000000000000B9 +:209798000000000000000000000000000000000000000000000000000000000000000000B1 +:2097A0000000000000000000000000000000000000000000000000000000000000000000A9 +:2097A8000000000000000000000000000000000000000000000000000000000000000000A1 +:2097B000000000000000000000000000000000000000000000000000000000000000000099 +:2097B800000000000000000000000000000000000000000000000000000000000000000091 +:2097C000000000000000000000000000000000000000000000000000000000000000000089 +:2097C800000000000000000000000000000000000000000000000000000000000000000081 +:2097D000000000000000000000000000000000000000000000000000000000000000000079 +:2097D800000000000000000000000000000000000000000000000000000000000000000071 +:2097E000000000000000000000000000000000000000000000000000000000000000000069 +:2097E800000000000000000000000000000000000000000000000000000000000000000061 +:2097F000000000000000000000000000000000000000000000000000000000000000000059 +:2097F800000000000000000000000000000000000000000000000000000000000000000051 +:20980000000000000000000000000000000000000000000000000000000000000000000048 +:20980800000000000000000000000000000000000000000000000000000000000000000040 +:20981000000000000000000000000000000000000000000000000000000000000000000038 +:20981800000000000000000000000000000000000000000000000000000000000000000030 +:20982000000000000000000000000000000000000000000000000000000000000000000028 +:20982800000000000000000000000000000000000000000000000000000000000000000020 +:20983000000000000000000000000000000000000000000000000000000000000000000018 +:20983800000000000000000000000000000000000000000000000000000000000000000010 +:20984000000000000000000000000000000000000000000000000000000000000000000008 +:20984800000000000000000000000000000000000000000000000000000000000000000000 +:209850000000000000000000000000000000000000000000000000000000000000000000F8 +:209858000000000000000000000000000000000000000000000000000000000000000000F0 +:209860000000000000000000000000000000000000000000000000000000000000000000E8 +:209868000000000000000000000000000000000000000000000000000000000000000000E0 +:209870000000000000000000000000000000000000000000000000000000000000000000D8 +:209878000000000000000000000000000000000000000000000000000000000000000000D0 +:209880000000000000000000000000000000000000000000000000000000000000000000C8 +:209888000000000000000000000000000000000000000000000000000000000000000000C0 +:209890000000000000000000000000000000000000000000000000000000000000000000B8 +:209898000000000000000000000000000000000000000000000000000000000000000000B0 +:2098A0000000000000000000000000000000000000000000000000000000000000000000A8 +:2098A8000000000000000000000000000000000000000000000000000000000000000000A0 +:2098B000000000000000000000000000000000000000000000000000000000000000000098 +:2098B800000000000000000000000000000000000000000000000000000000000000000090 +:2098C000000000000000000000000000000000000000000000000000000000000000000088 +:2098C800000000000000000000000000000000000000000000000000000000000000000080 +:2098D000000000000000000000000000000000000000000000000000000000000000000078 +:2098D800000000000000000000000000000000000000000000000000000000000000000070 +:2098E000000000000000000000000000000000000000000000000000000000000000000068 +:2098E800000000000000000000000000000000000000000000000000000000000000000060 +:2098F000000000000000000000000000000000000000000000000000000000000000000058 +:2098F800000000000000000000000000000000000000000000000000000000000000000050 +:20990000000000000000000000000000000000000000000000000000000000000000000047 +:2099080000000000000000000000000000000000000000000000000000000000000000003F +:20991000000000000000000000000000000000000000000000000000000000000000000037 +:2099180000000000000000000000000000000000000000000000000000000000000000002F +:20992000000000000000000000000000000000000000000000000000000000000000000027 +:2099280000000000000000000000000000000000000000000000000000000000000000001F +:20993000000000000000000000000000000000000000000000000000000000000000000017 +:2099380000000000000000000000000000000000000000000000000000000000000000000F +:20994000000000000000000000000000000000000000000000000000000000000000000007 +:209948000000000000000000000000000000000000000000000000000000000000000000FF +:209950000000000000000000000000000000000000000000000000000000000000000000F7 +:209958000000000000000000000000000000000000000000000000000000000000000000EF +:209960000000000000000000000000000000000000000000000000000000000000000000E7 +:209968000000000000000000000000000000000000000000000000000000000000000000DF +:209970000000000000000000000000000000000000000000000000000000000000000000D7 +:209978000000000000000000000000000000000000000000000000000000000000000000CF +:209980000000000000000000000000000000000000000000000000000000000000000000C7 +:209988000000000000000000000000000000000000000000000000000000000000000000BF +:209990000000000000000000000000000000000000000000000000000000000000000000B7 +:209998000000000000000000000000000000000000000000000000000000000000000000AF +:2099A0000000000000000000000000000000000000000000000000000000000000000000A7 +:2099A80000000000000000000000000000000000000000000000000000000000000000009F +:2099B000000000000000000000000000000000000000000000000000000000000000000097 +:2099B80000000000000000000000000000000000000000000000000000000000000000008F +:2099C000000000000000000000000000000000000000000000000000000000000000000087 +:2099C80000000000000000000000000000000000000000000000000000000000000000007F +:2099D000000000000000000000000000000000000000000000000000000000000000000077 +:2099D80000000000000000000000000000000000000000000000000000000000000000006F +:2099E000000000000000000000000000000000000000000000000000000000000000000067 +:2099E80000000000000000000000000000000000000000000000000000000000000000005F +:2099F000000000000000000000000000000000000000000000000000000000000000000057 +:2099F80000000000000000000000000000000000000000000000000000000000000000004F +:209A0000000000000000000000000000000000000000000000000000000000000000000046 +:209A080000000000000000000000000000000000000000000000000000000000000000003E +:209A1000000000000000000000000000000000000000000000000000000000000000000036 +:209A180000000000000000000000000000000000000000000000000000000000000000002E +:209A2000000000000000000000000000000000000000000000000000000000000000000026 +:209A280000000000000000000000000000000000000000000000000000000000000000001E +:209A3000000000000000000000000000000000000000000000000000000000000000000016 +:209A380000000000000000000000000000000000000000000000000000000000000000000E +:209A4000000000000000000000000000000000000000000000000000000000000000000006 +:209A48000000000000000000000000000000000000000000000000000000000000000000FE +:209A50000000000000000000000000000000000000000000000000000000000000000000F6 +:209A58000000000000000000000000000000000000000000000000000000000000000000EE +:209A60000000000000000000000000000000000000000000000000000000000000000000E6 +:209A68000000000000000000000000000000000000000000000000000000000000000000DE +:209A70000000000000000000000000000000000000000000000000000000000000000000D6 +:209A78000000000000000000000000000000000000000000000000000000000000000000CE +:209A80000000000000000000000000000000000000000000000000000000000000000000C6 +:209A88000000000000000000000000000000000000000000000000000000000000000000BE +:209A90000000000000000000000000000000000000000000000000000000000000000000B6 +:209A98000000000000000000000000000000000000000000000000000000000000000000AE +:209AA0000000000000000000000000000000000000000000000000000000000000000000A6 +:209AA80000000000000000000000000000000000000000000000000000000000000000009E +:209AB000000000000000000000000000000000000000000000000000000000000000000096 +:209AB80000000000000000000000000000000000000000000000000000000000000000008E +:209AC000000000000000000000000000000000000000000000000000000000000000000086 +:209AC80000000000000000000000000000000000000000000000000000000000000000007E +:209AD000000000000000000000000000000000000000000000000000000000000000000076 +:209AD80000000000000000000000000000000000000000000000000000000000000000006E +:209AE000000000000000000000000000000000000000000000000000000000000000000066 +:209AE80000000000000000000000000000000000000000000000000000000000000000005E +:209AF000000000000000000000000000000000000000000000000000000000000000000056 +:209AF80000000000000000000000000000000000000000000000000000000000000000004E +:209B0000000000000000000000000000000000000000000000000000000000000000000045 +:209B080000000000000000000000000000000000000000000000000000000000000000003D +:209B1000000000000000000000000000000000000000000000000000000000000000000035 +:209B180000000000000000000000000000000000000000000000000000000000000000002D +:209B2000000000000000000000000000000000000000000000000000000000000000000025 +:209B280000000000000000000000000000000000000000000000000000000000000000001D +:209B3000000000000000000000000000000000000000000000000000000000000000000015 +:209B380000000000000000000000000000000000000000000000000000000000000000000D +:209B4000000000000000000000000000000000000000000000000000000000000000000005 +:209B48000000000000000000000000000000000000000000000000000000000000000000FD +:209B50000000000000000000000000000000000000000000000000000000000000000000F5 +:209B58000000000000000000000000000000000000000000000000000000000000000000ED +:209B60000000000000000000000000000000000000000000000000000000000000000000E5 +:209B68000000000000000000000000000000000000000000000000000000000000000000DD +:209B70000000000000000000000000000000000000000000000000000000000000000000D5 +:209B78000000000000000000000000000000000000000000000000000000000000000000CD +:209B80000000000000000000000000000000000000000000000000000000000000000000C5 +:209B88000000000000000000000000000000000000000000000000000000000000000000BD +:209B90000000000000000000000000000000000000000000000000000000000000000000B5 +:209B98000000000000000000000000000000000000000000000000000000000000000000AD +:209BA0000000000000000000000000000000000000000000000000000000000000000000A5 +:209BA80000000000000000000000000000000000000000000000000000000000000000009D +:209BB000000000000000000000000000000000000000000000000000000000000000000095 +:209BB80000000000000000000000000000000000000000000000000000000000000000008D +:209BC000000000000000000000000000000000000000000000000000000000000000000085 +:209BC80000000000000000000000000000000000000000000000000000000000000000007D +:209BD000000000000000000000000000000000000000000000000000000000000000000075 +:209BD80000000000000000000000000000000000000000000000000000000000000000006D +:209BE000000000000000000000000000000000000000000000000000000000000000000065 +:209BE80000000000000000000000000000000000000000000000000000000000000000005D +:209BF000000000000000000000000000000000000000000000000000000000000000000055 +:209BF80000000000000000000000000000000000000000000000000000000000000000004D +:209C0000000000000000000000000000000000000000000000000000000000000000000044 +:209C080000000000000000000000000000000000000000000000000000000000000000003C +:209C1000000000000000000000000000000000000000000000000000000000000000000034 +:209C180000000000000000000000000000000000000000000000000000000000000000002C +:209C2000000000000000000000000000000000000000000000000000000000000000000024 +:209C280000000000000000000000000000000000000000000000000000000000000000001C +:209C3000000000000000000000000000000000000000000000000000000000000000000014 +:209C380000000000000000000000000000000000000000000000000000000000000000000C +:209C4000000000000000000000000000000000000000000000000000000000000000000004 +:209C48000000000000000000000000000000000000000000000000000000000000000000FC +:209C50000000000000000000000000000000000000000000000000000000000000000000F4 +:209C58000000000000000000000000000000000000000000000000000000000000000000EC +:209C60000000000000000000000000000000000000000000000000000000000000000000E4 +:209C68000000000000000000000000000000000000000000000000000000000000000000DC +:209C70000000000000000000000000000000000000000000000000000000000000000000D4 +:209C78000000000000000000000000000000000000000000000000000000000000000000CC +:209C80000000000000000000000000000000000000000000000000000000000000000000C4 +:209C88000000000000000000000000000000000000000000000000000000000000000000BC +:209C90000000000000000000000000000000000000000000000000000000000000000000B4 +:209C98000000000000000000000000000000000000000000000000000000000000000000AC +:209CA0000000000000000000000000000000000000000000000000000000000000000000A4 +:209CA80000000000000000000000000000000000000000000000000000000000000000009C +:209CB000000000000000000000000000000000000000000000000000000000000000000094 +:209CB80000000000000000000000000000000000000000000000000000000000000000008C +:209CC000000000000000000000000000000000000000000000000000000000000000000084 +:209CC80000000000000000000000000000000000000000000000000000000000000000007C +:209CD000000000000000000000000000000000000000000000000000000000000000000074 +:209CD80000000000000000000000000000000000000000000000000000000000000000006C +:209CE000000000000000000000000000000000000000000000000000000000000000000064 +:209CE80000000000000000000000000000000000000000000000000000000000000000005C +:209CF000000000000000000000000000000000000000000000000000000000000000000054 +:209CF80000000000000000000000000000000000000000000000000000000000000000004C +:209D0000000000000000000000000000000000000000000000000000000000000000000043 +:209D080000000000000000000000000000000000000000000000000000000000000000003B +:209D1000000000000000000000000000000000000000000000000000000000000000000033 +:209D180000000000000000000000000000000000000000000000000000000000000000002B +:209D2000000000000000000000000000000000000000000000000000000000000000000023 +:209D280000000000000000000000000000000000000000000000000000000000000000001B +:209D3000000000000000000000000000000000000000000000000000000000000000000013 +:209D380000000000000000000000000000000000000000000000000000000000000000000B +:209D4000000000000000000000000000000000000000000000000000000000000000000003 +:209D48000000000000000000000000000000000000000000000000000000000000000000FB +:209D50000000000000000000000000000000000000000000000000000000000000000000F3 +:209D58000000000000000000000000000000000000000000000000000000000000000000EB +:209D60000000000000000000000000000000000000000000000000000000000000000000E3 +:209D68000000000000000000000000000000000000000000000000000000000000000000DB +:209D70000000000000000000000000000000000000000000000000000000000000000000D3 +:209D78000000000000000000000000000000000000000000000000000000000000000000CB +:209D80000000000000000000000000000000000000000000000000000000000000000000C3 +:209D88000000000000000000000000000000000000000000000000000000000000000000BB +:209D90000000000000000000000000000000000000000000000000000000000000000000B3 +:209D98000000000000000000000000000000000000000000000000000000000000000000AB +:209DA0000000000000000000000000000000000000000000000000000000000000000000A3 +:209DA80000000000000000000000000000000000000000000000000000000000000000009B +:209DB000000000000000000000000000000000000000000000000000000000000000000093 +:209DB80000000000000000000000000000000000000000000000000000000000000000008B +:209DC000000000000000000000000000000000000000000000000000000000000000000083 +:209DC80000000000000000000000000000000000000000000000000000000000000000007B +:209DD000000000000000000000000000000000000000000000000000000000000000000073 +:209DD80000000000000000000000000000000000000000000000000000000000000000006B +:209DE000000000000000000000000000000000000000000000000000000000000000000063 +:209DE80000000000000000000000000000000000000000000000000000000000000000005B +:209DF000000000000000000000000000000000000000000000000000000000000000000053 +:209DF80000000000000000000000000000000000000000000000000000000000000000004B +:209E0000000000000000000000000000000000000000000000000000000000000000000042 +:209E080000000000000000000000000000000000000000000000000000000000000000003A +:209E1000000000000000000000000000000000000000000000000000000000000000000032 +:209E180000000000000000000000000000000000000000000000000000000000000000002A +:209E2000000000000000000000000000000000000000000000000000000000000000000022 +:209E280000000000000000000000000000000000000000000000000000000000000000001A +:209E3000000000000000000000000000000000000000000000000000000000000000000012 +:209E380000000000000000000000000000000000000000000000000000000000000000000A +:209E4000000000000000000000000000000000000000000000000000000000000000000002 +:209E48000000000000000000000000000000000000000000000000000000000000000000FA +:209E50000000000000000000000000000000000000000000000000000000000000000000F2 +:209E58000000000000000000000000000000000000000000000000000000000000000000EA +:209E60000000000000000000000000000000000000000000000000000000000000000000E2 +:209E68000000000000000000000000000000000000000000000000000000000000000000DA +:209E70000000000000000000000000000000000000000000000000000000000000000000D2 +:209E78000000000000000000000000000000000000000000000000000000000000000000CA +:209E80000000000000000000000000000000000000000000000000000000000000000000C2 +:209E88000000000000000000000000000000000000000000000000000000000000000000BA +:209E90000000000000000000000000000000000000000000000000000000000000000000B2 +:209E98000000000000000000000000000000000000000000000000000000000000000000AA +:209EA0000000000000000000000000000000000000000000000000000000000000000000A2 +:209EA80000000000000000000000000000000000000000000000000000000000000000009A +:209EB000000000000000000000000000000000000000000000000000000000000000000092 +:209EB80000000000000000000000000000000000000000000000000000000000000000008A +:209EC000000000000000000000000000000000000000000000000000000000000000000082 +:209EC80000000000000000000000000000000000000000000000000000000000000000007A +:209ED000000000000000000000000000000000000000000000000000000000000000000072 +:209ED80000000000000000000000000000000000000000000000000000000000000000006A +:209EE000000000000000000000000000000000000000000000000000000000000000000062 +:209EE80000000000000000000000000000000000000000000000000000000000000000005A +:209EF000000000000000000000000000000000000000000000000000000000000000000052 +:209EF80000000000000000000000000000000000000000000000000000000000000000004A +:209F0000000000000000000000000000000000000000000000000000000000000000000041 +:209F0800000000000000000000000000000000000000000000000000000000000000000039 +:209F1000000000000000000000000000000000000000000000000000000000000000000031 +:209F1800000000000000000000000000000000000000000000000000000000000000000029 +:209F2000000000000000000000000000000000000000000000000000000000000000000021 +:209F2800000000000000000000000000000000000000000000000000000000000000000019 +:209F3000000000000000000000000000000000000000000000000000000000000000000011 +:209F3800000000000000000000000000000000000000000000000000000000000000000009 +:209F4000000000000000000000000000000000000000000000000000000000000000000001 +:209F48000000000000000000000000000000000000000000000000000000000000000000F9 +:209F50000000000000000000000000000000000000000000000000000000000000000000F1 +:209F58000000000000000000000000000000000000000000000000000000000000000000E9 +:209F60000000000000000000000000000000000000000000000000000000000000000000E1 +:209F68000000000000000000000000000000000000000000000000000000000000000000D9 +:209F70000000000000000000000000000000000000000000000000000000000000000000D1 +:209F78000000000000000000000000000000000000000000000000000000000000000000C9 +:209F80000000000000000000000000000000000000000000000000000000000000000000C1 +:209F88000000000000000000000000000000000000000000000000000000000000000000B9 +:209F90000000000000000000000000000000000000000000000000000000000000000000B1 +:209F98000000000000000000000000000000000000000000000000000000000000000000A9 +:209FA0000000000000000000000000000000000000000000000000000000000000000000A1 +:209FA800000000000000000000000000000000000000000000000000000000000000000099 +:209FB000000000000000000000000000000000000000000000000000000000000000000091 +:209FB800000000000000000000000000000000000000000000000000000000000000000089 +:209FC000000000000000000000000000000000000000000000000000000000000000000081 +:209FC800000000000000000000000000000000000000000000000000000000000000000079 +:209FD000000000000000000000000000000000000000000000000000000000000000000071 +:209FD800000000000000000000000000000000000000000000000000000000000000000069 +:209FE000000000000000000000000000000000000000000000000000000000000000000061 +:209FE800000000000000000000000000000000000000000000000000000000000000000059 +:209FF000000000000000000000000000000000000000000000000000000000000000000051 +:209FF800000000000000000000000000000000000000000000000000000000000000000049 +:20A00000000000000000000000000000000000000000000000000000000000000000000040 +:20A00800000000000000000000000000000000000000000000000000000000000000000038 +:20A01000000000000000000000000000000000000000000000000000000000000000000030 +:20A01800000000000000000000000000000000000000000000000000000000000000000028 +:20A02000000000000000000000000000000000000000000000000000000000000000000020 +:20A02800000000000000000000000000000000000000000000000000000000000000000018 +:20A03000000000000000000000000000000000000000000000000000000000000000000010 +:20A03800000000000000000000000000000000000000000000000000000000000000000008 +:20A04000000000000000000000000000000000000000000000000000000000000000000000 +:20A048000000000000000000000000000000000000000000000000000000000000000000F8 +:20A050000000000000000000000000000000000000000000000000000000000000000000F0 +:20A058000000000000000000000000000000000000000000000000000000000000000000E8 +:20A060000000000000000000000000000000000000000000000000000000000000000000E0 +:20A068000000000000000000000000000000000000000000000000000000000000000000D8 +:20A070000000000000000000000000000000000000000000000000000000000000000000D0 +:20A078000000000000000000000000000000000000000000000000000000000000000000C8 +:20A080000000000000000000000000000000000000000000000000000000000000000000C0 +:20A088000000000000000000000000000000000000000000000000000000000000000000B8 +:20A090000000000000000000000000000000000000000000000000000000000000000000B0 +:20A098000000000000000000000000000000000000000000000000000000000000000000A8 +:20A0A0000000000000000000000000000000000000000000000000000000000000000000A0 +:20A0A800000000000000000000000000000000000000000000000000000000000000000098 +:20A0B000000000000000000000000000000000000000000000000000000000000000000090 +:20A0B800000000000000000000000000000000000000000000000000000000000000000088 +:20A0C000000000000000000000000000000000000000000000000000000000000000000080 +:20A0C800000000000000000000000000000000000000000000000000000000000000000078 +:20A0D000000000000000000000000000000000000000000000000000000000000000000070 +:20A0D800000000000000000000000000000000000000000000000000000000000000000068 +:20A0E000000000000000000000000000000000000000000000000000000000000000000060 +:20A0E800000000000000000000000000000000000000000000000000000000000000000058 +:20A0F000000000000000000000000000000000000000000000000000000000000000000050 +:20A0F800000000000000000000000000000000000000000000000000000000000000000048 +:20A1000000000000000000000000000000000000000000000000000000000000000000003F +:20A10800000000000000000000000000000000000000000000000000000000000000000037 +:20A1100000000000000000000000000000000000000000000000000000000000000000002F +:20A11800000000000000000000000000000000000000000000000000000000000000000027 +:20A1200000000000000000000000000000000000000000000000000000000000000000001F +:20A12800000000000000000000000000000000000000000000000000000000000000000017 +:20A1300000000000000000000000000000000000000000000000000000000000000000000F +:20A13800000000000000000000000000000000000000000000000000000000000000000007 +:20A140000000000000000000000000000000000000000000000000000000000000000000FF +:20A148000000000000000000000000000000000000000000000000000000000000000000F7 +:20A150000000000000000000000000000000000000000000000000000000000000000000EF +:20A158000000000000000000000000000000000000000000000000000000000000000000E7 +:20A160000000000000000000000000000000000000000000000000000000000000000000DF +:20A168000000000000000000000000000000000000000000000000000000000000000000D7 +:20A170000000000000000000000000000000000000000000000000000000000000000000CF +:20A178000000000000000000000000000000000000000000000000000000000000000000C7 +:20A180000000000000000000000000000000000000000000000000000000000000000000BF +:20A188000000000000000000000000000000000000000000000000000000000000000000B7 +:20A190000000000000000000000000000000000000000000000000000000000000000000AF +:20A198000000000000000000000000000000000000000000000000000000000000000000A7 +:20A1A00000000000000000000000000000000000000000000000000000000000000000009F +:20A1A800000000000000000000000000000000000000000000000000000000000000000097 +:20A1B00000000000000000000000000000000000000000000000000000000000000000008F +:20A1B800000000000000000000000000000000000000000000000000000000000000000087 +:20A1C00000000000000000000000000000000000000000000000000000000000000000007F +:20A1C800000000000000000000000000000000000000000000000000000000000000000077 +:20A1D00000000000000000000000000000000000000000000000000000000000000000006F +:20A1D800000000000000000000000000000000000000000000000000000000000000000067 +:20A1E00000000000000000000000000000000000000000000000000000000000000000005F +:20A1E800000000000000000000000000000000000000000000000000000000000000000057 +:20A1F00000000000000000000000000000000000000000000000000000000000000000004F +:20A1F800000000000000000000000000000000000000000000000000000000000000000047 +:20A2000000000000000000000000000000000000000000000000000000000000000000003E +:20A20800000000000000000000000000000000000000000000000000000000000000000036 +:20A2100000000000000000000000000000000000000000000000000000000000000000002E +:20A21800000000000000000000000000000000000000000000000000000000000000000026 +:20A2200000000000000000000000000000000000000000000000000000000000000000001E +:20A22800000000000000000000000000000000000000000000000000000000000000000016 +:20A2300000000000000000000000000000000000000000000000000000000000000000000E +:20A23800000000000000000000000000000000000000000000000000000000000000000006 +:20A240000000000000000000000000000000000000000000000000000000000000000000FE +:20A248000000000000000000000000000000000000000000000000000000000000000000F6 +:20A250000000000000000000000000000000000000000000000000000000000000000000EE +:20A258000000000000000000000000000000000000000000000000000000000000000000E6 +:20A260000000000000000000000000000000000000000000000000000000000000000000DE +:20A268000000000000000000000000000000000000000000000000000000000000000000D6 +:20A270000000000000000000000000000000000000000000000000000000000000000000CE +:20A278000000000000000000000000000000000000000000000000000000000000000000C6 +:20A280000000000000000000000000000000000000000000000000000000000000000000BE +:20A288000000000000000000000000000000000000000000000000000000000000000000B6 +:20A290000000000000000000000000000000000000000000000000000000000000000000AE +:20A298000000000000000000000000000000000000000000000000000000000000000000A6 +:20A2A00000000000000000000000000000000000000000000000000000000000000000009E +:20A2A800000000000000000000000000000000000000000000000000000000000000000096 +:20A2B00000000000000000000000000000000000000000000000000000000000000000008E +:20A2B800000000000000000000000000000000000000000000000000000000000000000086 +:20A2C00000000000000000000000000000000000000000000000000000000000000000007E +:20A2C800000000000000000000000000000000000000000000000000000000000000000076 +:20A2D00000000000000000000000000000000000000000000000000000000000000000006E +:20A2D800000000000000000000000000000000000000000000000000000000000000000066 +:20A2E00000000000000000000000000000000000000000000000000000000000000000005E +:20A2E800000000000000000000000000000000000000000000000000000000000000000056 +:20A2F00000000000000000000000000000000000000000000000000000000000000000004E +:20A2F800000000000000000000000000000000000000000000000000000000000000000046 +:20A3000000000000000000000000000000000000000000000000000000000000000000003D +:20A30800000000000000000000000000000000000000000000000000000000000000000035 +:20A3100000000000000000000000000000000000000000000000000000000000000000002D +:20A31800000000000000000000000000000000000000000000000000000000000000000025 +:20A3200000000000000000000000000000000000000000000000000000000000000000001D +:20A32800000000000000000000000000000000000000000000000000000000000000000015 +:20A3300000000000000000000000000000000000000000000000000000000000000000000D +:20A33800000000000000000000000000000000000000000000000000000000000000000005 +:20A340000000000000000000000000000000000000000000000000000000000000000000FD +:20A348000000000000000000000000000000000000000000000000000000000000000000F5 +:20A350000000000000000000000000000000000000000000000000000000000000000000ED +:20A358000000000000000000000000000000000000000000000000000000000000000000E5 +:20A360000000000000000000000000000000000000000000000000000000000000000000DD +:20A368000000000000000000000000000000000000000000000000000000000000000000D5 +:20A370000000000000000000000000000000000000000000000000000000000000000000CD +:20A378000000000000000000000000000000000000000000000000000000000000000000C5 +:20A380000000000000000000000000000000000000000000000000000000000000000000BD +:20A388000000000000000000000000000000000000000000000000000000000000000000B5 +:20A390000000000000000000000000000000000000000000000000000000000000000000AD +:20A398000000000000000000000000000000000000000000000000000000000000000000A5 +:20A3A00000000000000000000000000000000000000000000000000000000000000000009D +:20A3A800000000000000000000000000000000000000000000000000000000000000000095 +:20A3B00000000000000000000000000000000000000000000000000000000000000000008D +:20A3B800000000000000000000000000000000000000000000000000000000000000000085 +:20A3C00000000000000000000000000000000000000000000000000000000000000000007D +:20A3C800000000000000000000000000000000000000000000000000000000000000000075 +:20A3D00000000000000000000000000000000000000000000000000000000000000000006D +:20A3D800000000000000000000000000000000000000000000000000000000000000000065 +:20A3E00000000000000000000000000000000000000000000000000000000000000000005D +:20A3E800000000000000000000000000000000000000000000000000000000000000000055 +:20A3F00000000000000000000000000000000000000000000000000000000000000000004D +:20A3F800000000000000000000000000000000000000000000000000000000000000000045 +:20A4000000000000000000000000000000000000000000000000000000000000000000003C +:20A40800000000000000000000000000000000000000000000000000000000000000000034 +:20A4100000000000000000000000000000000000000000000000000000000000000000002C +:20A41800000000000000000000000000000000000000000000000000000000000000000024 +:20A4200000000000000000000000000000000000000000000000000000000000000000001C +:20A42800000000000000000000000000000000000000000000000000000000000000000014 +:20A4300000000000000000000000000000000000000000000000000000000000000000000C +:20A43800000000000000000000000000000000000000000000000000000000000000000004 +:20A440000000000000000000000000000000000000000000000000000000000000000000FC +:20A448000000000000000000000000000000000000000000000000000000000000000000F4 +:20A450000000000000000000000000000000000000000000000000000000000000000000EC +:20A458000000000000000000000000000000000000000000000000000000000000000000E4 +:20A460000000000000000000000000000000000000000000000000000000000000000000DC +:20A468000000000000000000000000000000000000000000000000000000000000000000D4 +:20A470000000000000000000000000000000000000000000000000000000000000000000CC +:20A478000000000000000000000000000000000000000000000000000000000000000000C4 +:20A480000000000000000000000000000000000000000000000000000000000000000000BC +:20A488000000000000000000000000000000000000000000000000000000000000000000B4 +:20A490000000000000000000000000000000000000000000000000000000000000000000AC +:20A498000000000000000000000000000000000000000000000000000000000000000000A4 +:20A4A00000000000000000000000000000000000000000000000000000000000000000009C +:20A4A800000000000000000000000000000000000000000000000000000000000000000094 +:20A4B00000000000000000000000000000000000000000000000000000000000000000008C +:20A4B800000000000000000000000000000000000000000000000000000000000000000084 +:20A4C00000000000000000000000000000000000000000000000000000000000000000007C +:20A4C800000000000000000000000000000000000000000000000000000000000000000074 +:20A4D00000000000000000000000000000000000000000000000000000000000000000006C +:20A4D800000000000000000000000000000000000000000000000000000000000000000064 +:20A4E00000000000000000000000000000000000000000000000000000000000000000005C +:20A4E800000000000000000000000000000000000000000000000000000000000000000054 +:20A4F00000000000000000000000000000000000000000000000000000000000000000004C +:20A4F800000000000000000000000000000000000000000000000000000000000000000044 +:20A5000000000000000000000000000000000000000000000000000000000000000000003B +:20A50800000000000000000000000000000000000000000000000000000000000000000033 +:20A5100000000000000000000000000000000000000000000000000000000000000000002B +:20A51800000000000000000000000000000000000000000000000000000000000000000023 +:20A5200000000000000000000000000000000000000000000000000000000000000000001B +:20A52800000000000000000000000000000000000000000000000000000000000000000013 +:20A5300000000000000000000000000000000000000000000000000000000000000000000B +:20A53800000000000000000000000000000000000000000000000000000000000000000003 +:20A540000000000000000000000000000000000000000000000000000000000000000000FB +:20A548000000000000000000000000000000000000000000000000000000000000000000F3 +:20A550000000000000000000000000000000000000000000000000000000000000000000EB +:20A558000000000000000000000000000000000000000000000000000000000000000000E3 +:20A560000000000000000000000000000000000000000000000000000000000000000000DB +:20A568000000000000000000000000000000000000000000000000000000000000000000D3 +:20A570000000000000000000000000000000000000000000000000000000000000000000CB +:20A578000000000000000000000000000000000000000000000000000000000000000000C3 +:20A580000000000000000000000000000000000000000000000000000000000000000000BB +:20A588000000000000000000000000000000000000000000000000000000000000000000B3 +:20A590000000000000000000000000000000000000000000000000000000000000000000AB +:20A598000000000000000000000000000000000000000000000000000000000000000000A3 +:20A5A00000000000000000000000000000000000000000000000000000000000000000009B +:20A5A800000000000000000000000000000000000000000000000000000000000000000093 +:20A5B00000000000000000000000000000000000000000000000000000000000000000008B +:20A5B800000000000000000000000000000000000000000000000000000000000000000083 +:20A5C00000000000000000000000000000000000000000000000000000000000000000007B +:20A5C800000000000000000000000000000000000000000000000000000000000000000073 +:20A5D00000000000000000000000000000000000000000000000000000000000000000006B +:20A5D800000000000000000000000000000000000000000000000000000000000000000063 +:20A5E00000000000000000000000000000000000000000000000000000000000000000005B +:20A5E800000000000000000000000000000000000000000000000000000000000000000053 +:20A5F00000000000000000000000000000000000000000000000000000000000000000004B +:20A5F800000000000000000000000000000000000000000000000000000000000000000043 +:20A6000000000000000000000000000000000000000000000000000000000000000000003A +:20A60800000000000000000000000000000000000000000000000000000000000000000032 +:20A6100000000000000000000000000000000000000000000000000000000000000000002A +:20A61800000000000000000000000000000000000000000000000000000000000000000022 +:20A6200000000000000000000000000000000000000000000000000000000000000000001A +:20A62800000000000000000000000000000000000000000000000000000000000000000012 +:20A6300000000000000000000000000000000000000000000000000000000000000000000A +:20A63800000000000000000000000000000000000000000000000000000000000000000002 +:20A640000000000000000000000000000000000000000000000000000000000000000000FA +:20A648000000000000000000000000000000000000000000000000000000000000000000F2 +:20A650000000000000000000000000000000000000000000000000000000000000000000EA +:20A658000000000000000000000000000000000000000000000000000000000000000000E2 +:20A660000000000000000000000000000000000000000000000000000000000000000000DA +:20A668000000000000000000000000000000000000000000000000000000000000000000D2 +:20A670000000000000000000000000000000000000000000000000000000000000000000CA +:20A678000000000000000000000000000000000000000000000000000000000000000000C2 +:20A680000000000000000000000000000000000000000000000000000000000000000000BA +:20A688000000000000000000000000000000000000000000000000000000000000000000B2 +:20A690000000000000000000000000000000000000000000000000000000000000000000AA +:20A698000000000000000000000000000000000000000000000000000000000000000000A2 +:20A6A00000000000000000000000000000000000000000000000000000000000000000009A +:20A6A800000000000000000000000000000000000000000000000000000000000000000092 +:20A6B00000000000000000000000000000000000000000000000000000000000000000008A +:20A6B800000000000000000000000000000000000000000000000000000000000000000082 +:20A6C00000000000000000000000000000000000000000000000000000000000000000007A +:20A6C800000000000000000000000000000000000000000000000000000000000000000072 +:20A6D00000000000000000000000000000000000000000000000000000000000000000006A +:20A6D800000000000000000000000000000000000000000000000000000000000000000062 +:20A6E00000000000000000000000000000000000000000000000000000000000000000005A +:20A6E800000000000000000000000000000000000000000000000000000000000000000052 +:20A6F00000000000000000000000000000000000000000000000000000000000000000004A +:20A6F800000000000000000000000000000000000000000000000000000000000000000042 +:20A70000000000000000000000000000000000000000000000000000000000000000000039 +:20A70800000000000000000000000000000000000000000000000000000000000000000031 +:20A71000000000000000000000000000000000000000000000000000000000000000000029 +:20A71800000000000000000000000000000000000000000000000000000000000000000021 +:20A72000000000000000000000000000000000000000000000000000000000000000000019 +:20A72800000000000000000000000000000000000000000000000000000000000000000011 +:20A73000000000000000000000000000000000000000000000000000000000000000000009 +:20A73800000000000000000000000000000000000000000000000000000000000000000001 +:20A740000000000000000000000000000000000000000000000000000000000000000000F9 +:20A748000000000000000000000000000000000000000000000000000000000000000000F1 +:20A750000000000000000000000000000000000000000000000000000000000000000000E9 +:20A758000000000000000000000000000000000000000000000000000000000000000000E1 +:20A760000000000000000000000000000000000000000000000000000000000000000000D9 +:20A768000000000000000000000000000000000000000000000000000000000000000000D1 +:20A770000000000000000000000000000000000000000000000000000000000000000000C9 +:20A778000000000000000000000000000000000000000000000000000000000000000000C1 +:20A780000000000000000000000000000000000000000000000000000000000000000000B9 +:20A788000000000000000000000000000000000000000000000000000000000000000000B1 +:20A790000000000000000000000000000000000000000000000000000000000000000000A9 +:20A798000000000000000000000000000000000000000000000000000000000000000000A1 +:20A7A000000000000000000000000000000000000000000000000000000000000000000099 +:20A7A800000000000000000000000000000000000000000000000000000000000000000091 +:20A7B000000000000000000000000000000000000000000000000000000000000000000089 +:20A7B800000000000000000000000000000000000000000000000000000000000000000081 +:20A7C000000000000000000000000000000000000000000000000000000000000000000079 +:20A7C800000000000000000000000000000000000000000000000000000000000000000071 +:20A7D000000000000000000000000000000000000000000000000000000000000000000069 +:20A7D800000000000000000000000000000000000000000000000000000000000000000061 +:20A7E000000000000000000000000000000000000000000000000000000000000000000059 +:20A7E800000000000000000000000000000000000000000000000000000000000000000051 +:20A7F000000000000000000000000000000000000000000000000000000000000000000049 +:20A7F800000000000000000000000000000000000000000000000000000000000000000041 +:20A80000000000000000000000000000000000000000000000000000000000000000000038 +:20A80800000000000000000000000000000000000000000000000000000000000000000030 +:20A81000000000000000000000000000000000000000000000000000000000000000000028 +:20A81800000000000000000000000000000000000000000000000000000000000000000020 +:20A82000000000000000000000000000000000000000000000000000000000000000000018 +:20A82800000000000000000000000000000000000000000000000000000000000000000010 +:20A83000000000000000000000000000000000000000000000000000000000000000000008 +:20A83800000000000000000000000000000000000000000000000000000000000000000000 +:20A840000000000000000000000000000000000000000000000000000000000000000000F8 +:20A848000000000000000000000000000000000000000000000000000000000000000000F0 +:20A850000000000000000000000000000000000000000000000000000000000000000000E8 +:20A858000000000000000000000000000000000000000000000000000000000000000000E0 +:20A860000000000000000000000000000000000000000000000000000000000000000000D8 +:20A868000000000000000000000000000000000000000000000000000000000000000000D0 +:20A870000000000000000000000000000000000000000000000000000000000000000000C8 +:20A878000000000000000000000000000000000000000000000000000000000000000000C0 +:20A880000000000000000000000000000000000000000000000000000000000000000000B8 +:20A888000000000000000000000000000000000000000000000000000000000000000000B0 +:20A890000000000000000000000000000000000000000000000000000000000000000000A8 +:20A898000000000000000000000000000000000000000000000000000000000000000000A0 +:20A8A000000000000000000000000000000000000000000000000000000000000000000098 +:20A8A800000000000000000000000000000000000000000000000000000000000000000090 +:20A8B000000000000000000000000000000000000000000000000000000000000000000088 +:20A8B800000000000000000000000000000000000000000000000000000000000000000080 +:20A8C000000000000000000000000000000000000000000000000000000000000000000078 +:20A8C800000000000000000000000000000000000000000000000000000000000000000070 +:20A8D000000000000000000000000000000000000000000000000000000000000000000068 +:20A8D800000000000000000000000000000000000000000000000000000000000000000060 +:20A8E000000000000000000000000000000000000000000000000000000000000000000058 +:20A8E800000000000000000000000000000000000000000000000000000000000000000050 +:20A8F000000000000000000000000000000000000000000000000000000000000000000048 +:20A8F800000000000000000000000000000000000000000000000000000000000000000040 +:20A90000000000000000000000000000000000000000000000000000000000000000000037 +:20A9080000000000000000000000000000000000000000000000000000000000000000002F +:20A91000000000000000000000000000000000000000000000000000000000000000000027 +:20A9180000000000000000000000000000000000000000000000000000000000000000001F +:20A92000000000000000000000000000000000000000000000000000000000000000000017 +:20A9280000000000000000000000000000000000000000000000000000000000000000000F +:20A93000000000000000000000000000000000000000000000000000000000000000000007 +:20A938000000000000000000000000000000000000000000000000000000000000000000FF +:20A940000000000000000000000000000000000000000000000000000000000000000000F7 +:20A948000000000000000000000000000000000000000000000000000000000000000000EF +:20A950000000000000000000000000000000000000000000000000000000000000000000E7 +:20A958000000000000000000000000000000000000000000000000000000000000000000DF +:20A960000000000000000000000000000000000000000000000000000000000000000000D7 +:20A968000000000000000000000000000000000000000000000000000000000000000000CF +:20A970000000000000000000000000000000000000000000000000000000000000000000C7 +:20A978000000000000000000000000000000000000000000000000000000000000000000BF +:20A980000000000000000000000000000000000000000000000000000000000000000000B7 +:20A988000000000000000000000000000000000000000000000000000000000000000000AF +:20A990000000000000000000000000000000000000000000000000000000000000000000A7 +:20A9980000000000000000000000000000000000000000000000000000000000000000009F +:20A9A000000000000000000000000000000000000000000000000000000000000000000097 +:20A9A80000000000000000000000000000000000000000000000000000000000000000008F +:20A9B000000000000000000000000000000000000000000000000000000000000000000087 +:20A9B80000000000000000000000000000000000000000000000000000000000000000007F +:20A9C000000000000000000000000000000000000000000000000000000000000000000077 +:20A9C80000000000000000000000000000000000000000000000000000000000000000006F +:20A9D000000000000000000000000000000000000000000000000000000000000000000067 +:20A9D80000000000000000000000000000000000000000000000000000000000000000005F +:20A9E000000000000000000000000000000000000000000000000000000000000000000057 +:20A9E80000000000000000000000000000000000000000000000000000000000000000004F +:20A9F000000000000000000000000000000000000000000000000000000000000000000047 +:20A9F80000000000000000000000000000000000000000000000000000000000000000003F +:20AA0000000000000000000000000000000000000000000000000000000000000000000036 +:20AA080000000000000000000000000000000000000000000000000000000000000000002E +:20AA1000000000000000000000000000000000000000000000000000000000000000000026 +:20AA180000000000000000000000000000000000000000000000000000000000000000001E +:20AA2000000000000000000000000000000000000000000000000000000000000000000016 +:20AA280000000000000000000000000000000000000000000000000000000000000000000E +:20AA3000000000000000000000000000000000000000000000000000000000000000000006 +:20AA38000000000000000000000000000000000000000000000000000000000000000000FE +:20AA40000000000000000000000000000000000000000000000000000000000000000000F6 +:20AA48000000000000000000000000000000000000000000000000000000000000000000EE +:20AA50000000000000000000000000000000000000000000000000000000000000000000E6 +:20AA58000000000000000000000000000000000000000000000000000000000000000000DE +:20AA60000000000000000000000000000000000000000000000000000000000000000000D6 +:20AA68000000000000000000000000000000000000000000000000000000000000000000CE +:20AA70000000000000000000000000000000000000000000000000000000000000000000C6 +:20AA78000000000000000000000000000000000000000000000000000000000000000000BE +:20AA80000000000000000000000000000000000000000000000000000000000000000000B6 +:20AA88000000000000000000000000000000000000000000000000000000000000000000AE +:20AA90000000000000000000000000000000000000000000000000000000000000000000A6 +:20AA980000000000000000000000000000000000000000000000000000000000000000009E +:20AAA000000000000000000000000000000000000000000000000000000000000000000096 +:20AAA80000000000000000000000000000000000000000000000000000000000000000008E +:20AAB000000000000000000000000000000000000000000000000000000000000000000086 +:20AAB80000000000000000000000000000000000000000000000000000000000000000007E +:20AAC000000000000000000000000000000000000000000000000000000000000000000076 +:20AAC80000000000000000000000000000000000000000000000000000000000000000006E +:20AAD000000000000000000000000000000000000000000000000000000000000000000066 +:20AAD80000000000000000000000000000000000000000000000000000000000000000005E +:20AAE000000000000000000000000000000000000000000000000000000000000000000056 +:20AAE80000000000000000000000000000000000000000000000000000000000000000004E +:20AAF000000000000000000000000000000000000000000000000000000000000000000046 +:20AAF80000000000000000000000000000000000000000000000000000000000000000003E +:20AB0000000000000000000000000000000000000000000000000000000000000000000035 +:20AB080000000000000000000000000000000000000000000000000000000000000000002D +:20AB1000000000000000000000000000000000000000000000000000000000000000000025 +:20AB180000000000000000000000000000000000000000000000000000000000000000001D +:20AB2000000000000000000000000000000000000000000000000000000000000000000015 +:20AB280000000000000000000000000000000000000000000000000000000000000000000D +:20AB3000000000000000000000000000000000000000000000000000000000000000000005 +:20AB38000000000000000000000000000000000000000000000000000000000000000000FD +:20AB40000000000000000000000000000000000000000000000000000000000000000000F5 +:20AB48000000000000000000000000000000000000000000000000000000000000000000ED +:20AB50000000000000000000000000000000000000000000000000000000000000000000E5 +:20AB58000000000000000000000000000000000000000000000000000000000000000000DD +:20AB60000000000000000000000000000000000000000000000000000000000000000000D5 +:20AB68000000000000000000000000000000000000000000000000000000000000000000CD +:20AB70000000000000000000000000000000000000000000000000000000000000000000C5 +:20AB78000000000000000000000000000000000000000000000000000000000000000000BD +:20AB80000000000000000000000000000000000000000000000000000000000000000000B5 +:20AB88000000000000000000000000000000000000000000000000000000000000000000AD +:20AB90000000000000000000000000000000000000000000000000000000000000000000A5 +:20AB980000000000000000000000000000000000000000000000000000000000000000009D +:20ABA000000000000000000000000000000000000000000000000000000000000000000095 +:20ABA80000000000000000000000000000000000000000000000000000000000000000008D +:20ABB000000000000000000000000000000000000000000000000000000000000000000085 +:20ABB80000000000000000000000000000000000000000000000000000000000000000007D +:20ABC000000000000000000000000000000000000000000000000000000000000000000075 +:20ABC80000000000000000000000000000000000000000000000000000000000000000006D +:20ABD000000000000000000000000000000000000000000000000000000000000000000065 +:20ABD80000000000000000000000000000000000000000000000000000000000000000005D +:20ABE000000000000000000000000000000000000000000000000000000000000000000055 +:20ABE80000000000000000000000000000000000000000000000000000000000000000004D +:20ABF000000000000000000000000000000000000000000000000000000000000000000045 +:20ABF80000000000000000000000000000000000000000000000000000000000000000003D +:20AC0000000000000000000000000000000000000000000000000000000000000000000034 +:20AC080000000000000000000000000000000000000000000000000000000000000000002C +:20AC1000000000000000000000000000000000000000000000000000000000000000000024 +:20AC180000000000000000000000000000000000000000000000000000000000000000001C +:20AC2000000000000000000000000000000000000000000000000000000000000000000014 +:20AC280000000000000000000000000000000000000000000000000000000000000000000C +:20AC3000000000000000000000000000000000000000000000000000000000000000000004 +:20AC38000000000000000000000000000000000000000000000000000000000000000000FC +:20AC40000000000000000000000000000000000000000000000000000000000000000000F4 +:20AC48000000000000000000000000000000000000000000000000000000000000000000EC +:20AC50000000000000000000000000000000000000000000000000000000000000000000E4 +:20AC58000000000000000000000000000000000000000000000000000000000000000000DC +:20AC60000000000000000000000000000000000000000000000000000000000000000000D4 +:20AC68000000000000000000000000000000000000000000000000000000000000000000CC +:20AC70000000000000000000000000000000000000000000000000000000000000000000C4 +:20AC78000000000000000000000000000000000000000000000000000000000000000000BC +:20AC80000000000000000000000000000000000000000000000000000000000000000000B4 +:20AC88000000000000000000000000000000000000000000000000000000000000000000AC +:20AC90000000000000000000000000000000000000000000000000000000000000000000A4 +:20AC980000000000000000000000000000000000000000000000000000000000000000009C +:20ACA000000000000000000000000000000000000000000000000000000000000000000094 +:20ACA80000000000000000000000000000000000000000000000000000000000000000008C +:20ACB000000000000000000000000000000000000000000000000000000000000000000084 +:20ACB80000000000000000000000000000000000000000000000000000000000000000007C +:20ACC000000000000000000000000000000000000000000000000000000000000000000074 +:20ACC80000000000000000000000000000000000000000000000000000000000000000006C +:20ACD000000000000000000000000000000000000000000000000000000000000000000064 +:20ACD80000000000000000000000000000000000000000000000000000000000000000005C +:20ACE000000000000000000000000000000000000000000000000000000000000000000054 +:20ACE80000000000000000000000000000000000000000000000000000000000000000004C +:20ACF000000000000000000000000000000000000000000000000000000000000000000044 +:20ACF80000000000000000000000000000000000000000000000000000000000000000003C +:20AD0000000000000000000000000000000000000000000000000000000000000000000033 +:20AD080000000000000000000000000000000000000000000000000000000000000000002B +:20AD1000000000000000000000000000000000000000000000000000000000000000000023 +:20AD180000000000000000000000000000000000000000000000000000000000000000001B +:20AD2000000000000000000000000000000000000000000000000000000000000000000013 +:20AD280000000000000000000000000000000000000000000000000000000000000000000B +:20AD3000000000000000000000000000000000000000000000000000000000000000000003 +:20AD38000000000000000000000000000000000000000000000000000000000000000000FB +:20AD40000000000000000000000000000000000000000000000000000000000000000000F3 +:20AD48000000000000000000000000000000000000000000000000000000000000000000EB +:20AD50000000000000000000000000000000000000000000000000000000000000000000E3 +:20AD58000000000000000000000000000000000000000000000000000000000000000000DB +:20AD60000000000000000000000000000000000000000000000000000000000000000000D3 +:20AD68000000000000000000000000000000000000000000000000000000000000000000CB +:20AD70000000000000000000000000000000000000000000000000000000000000000000C3 +:20AD78000000000000000000000000000000000000000000000000000000000000000000BB +:20AD80000000000000000000000000000000000000000000000000000000000000000000B3 +:20AD88000000000000000000000000000000000000000000000000000000000000000000AB +:20AD90000000000000000000000000000000000000000000000000000000000000000000A3 +:20AD980000000000000000000000000000000000000000000000000000000000000000009B +:20ADA000000000000000000000000000000000000000000000000000000000000000000093 +:20ADA80000000000000000000000000000000000000000000000000000000000000000008B +:20ADB000000000000000000000000000000000000000000000000000000000000000000083 +:20ADB80000000000000000000000000000000000000000000000000000000000000000007B +:20ADC000000000000000000000000000000000000000000000000000000000000000000073 +:20ADC80000000000000000000000000000000000000000000000000000000000000000006B +:20ADD000000000000000000000000000000000000000000000000000000000000000000063 +:20ADD80000000000000000000000000000000000000000000000000000000000000000005B +:20ADE000000000000000000000000000000000000000000000000000000000000000000053 +:20ADE80000000000000000000000000000000000000000000000000000000000000000004B +:20ADF000000000000000000000000000000000000000000000000000000000000000000043 +:20ADF80000000000000000000000000000000000000000000000000000000000000000003B +:20AE0000000000000000000000000000000000000000000000000000000000000000000032 +:20AE080000000000000000000000000000000000000000000000000000000000000000002A +:20AE1000000000000000000000000000000000000000000000000000000000000000000022 +:20AE180000000000000000000000000000000000000000000000000000000000000000001A +:20AE2000000000000000000000000000000000000000000000000000000000000000000012 +:20AE280000000000000000000000000000000000000000000000000000000000000000000A +:20AE3000000000000000000000000000000000000000000000000000000000000000000002 +:20AE38000000000000000000000000000000000000000000000000000000000000000000FA +:20AE40000000000000000000000000000000000000000000000000000000000000000000F2 +:20AE48000000000000000000000000000000000000000000000000000000000000000000EA +:20AE50000000000000000000000000000000000000000000000000000000000000000000E2 +:20AE58000000000000000000000000000000000000000000000000000000000000000000DA +:20AE60000000000000000000000000000000000000000000000000000000000000000000D2 +:20AE68000000000000000000000000000000000000000000000000000000000000000000CA +:20AE70000000000000000000000000000000000000000000000000000000000000000000C2 +:20AE78000000000000000000000000000000000000000000000000000000000000000000BA +:20AE80000000000000000000000000000000000000000000000000000000000000000000B2 +:20AE88000000000000000000000000000000000000000000000000000000000000000000AA +:20AE90000000000000000000000000000000000000000000000000000000000000000000A2 +:20AE980000000000000000000000000000000000000000000000000000000000000000009A +:20AEA000000000000000000000000000000000000000000000000000000000000000000092 +:20AEA80000000000000000000000000000000000000000000000000000000000000000008A +:20AEB000000000000000000000000000000000000000000000000000000000000000000082 +:20AEB80000000000000000000000000000000000000000000000000000000000000000007A +:20AEC000000000000000000000000000000000000000000000000000000000000000000072 +:20AEC80000000000000000000000000000000000000000000000000000000000000000006A +:20AED000000000000000000000000000000000000000000000000000000000000000000062 +:20AED80000000000000000000000000000000000000000000000000000000000000000005A +:20AEE000000000000000000000000000000000000000000000000000000000000000000052 +:20AEE80000000000000000000000000000000000000000000000000000000000000000004A +:20AEF000000000000000000000000000000000000000000000000000000000000000000042 +:20AEF80000000000000000000000000000000000000000000000000000000000000000003A +:20AF0000000000000000000000000000000000000000000000000000000000000000000031 +:20AF0800000000000000000000000000000000000000000000000000000000000000000029 +:20AF1000000000000000000000000000000000000000000000000000000000000000000021 +:20AF1800000000000000000000000000000000000000000000000000000000000000000019 +:20AF2000000000000000000000000000000000000000000000000000000000000000000011 +:20AF2800000000000000000000000000000000000000000000000000000000000000000009 +:20AF3000000000000000000000000000000000000000000000000000000000000000000001 +:20AF38000000000000000000000000000000000000000000000000000000000000000000F9 +:20AF40000000000000000000000000000000000000000000000000000000000000000000F1 +:20AF48000000000000000000000000000000000000000000000000000000000000000000E9 +:20AF50000000000000000000000000000000000000000000000000000000000000000000E1 +:20AF58000000000000000000000000000000000000000000000000000000000000000000D9 +:20AF60000000000000000000000000000000000000000000000000000000000000000000D1 +:20AF68000000000000000000000000000000000000000000000000000000000000000000C9 +:20AF70000000000000000000000000000000000000000000000000000000000000000000C1 +:20AF78000000000000000000000000000000000000000000000000000000000000000000B9 +:20AF80000000000000000000000000000000000000000000000000000000000000000000B1 +:20AF88000000000000000000000000000000000000000000000000000000000000000000A9 +:20AF90000000000000000000000000000000000000000000000000000000000000000000A1 +:20AF9800000000000000000000000000000000000000000000000000000000000000000099 +:20AFA000000000000000000000000000000000000000000000000000000000000000000091 +:20AFA800000000000000000000000000000000000000000000000000000000000000000089 +:20AFB000000000000000000000000000000000000000000000000000000000000000000081 +:20AFB800000000000000000000000000000000000000000000000000000000000000000079 +:20AFC000000000000000000000000000000000000000000000000000000000000000000071 +:20AFC800000000000000000000000000000000000000000000000000000000000000000069 +:20AFD000000000000000000000000000000000000000000000000000000000000000000061 +:20AFD800000000000000000000000000000000000000000000000000000000000000000059 +:20AFE000000000000000000000000000000000000000000000000000000000000000000051 +:20AFE800000000000000000000000000000000000000000000000000000000000000000049 +:20AFF000000000000000000000000000000000000000000000000000000000000000000041 +:20AFF800000000000000000000000000000000000000000000000000000000000000000039 +:20B00000000000000000000000000000000000000000000000000000000000000000000030 +:20B00800000000000000000000000000000000000000000000000000000000000000000028 +:20B01000000000000000000000000000000000000000000000000000000000000000000020 +:20B01800000000000000000000000000000000000000000000000000000000000000000018 +:20B02000000000000000000000000000000000000000000000000000000000000000000010 +:20B02800000000000000000000000000000000000000000000000000000000000000000008 +:20B03000000000000000000000000000000000000000000000000000000000000000000000 +:20B038000000000000000000000000000000000000000000000000000000000000000000F8 +:20B040000000000000000000000000000000000000000000000000000000000000000000F0 +:20B048000000000000000000000000000000000000000000000000000000000000000000E8 +:20B050000000000000000000000000000000000000000000000000000000000000000000E0 +:20B058000000000000000000000000000000000000000000000000000000000000000000D8 +:20B060000000000000000000000000000000000000000000000000000000000000000000D0 +:20B068000000000000000000000000000000000000000000000000000000000000000000C8 +:20B070000000000000000000000000000000000000000000000000000000000000000000C0 +:20B078000000000000000000000000000000000000000000000000000000000000000000B8 +:20B080000000000000000000000000000000000000000000000000000000000000000000B0 +:20B088000000000000000000000000000000000000000000000000000000000000000000A8 +:20B090000000000000000000000000000000000000000000000000000000000000000000A0 +:20B09800000000000000000000000000000000000000000000000000000000000000000098 +:20B0A000000000000000000000000000000000000000000000000000000000000000000090 +:20B0A800000000000000000000000000000000000000000000000000000000000000000088 +:20B0B000000000000000000000000000000000000000000000000000000000000000000080 +:20B0B800000000000000000000000000000000000000000000000000000000000000000078 +:20B0C000000000000000000000000000000000000000000000000000000000000000000070 +:20B0C800000000000000000000000000000000000000000000000000000000000000000068 +:20B0D000000000000000000000000000000000000000000000000000000000000000000060 +:20B0D800000000000000000000000000000000000000000000000000000000000000000058 +:20B0E000000000000000000000000000000000000000000000000000000000000000000050 +:20B0E800000000000000000000000000000000000000000000000000000000000000000048 +:20B0F000000000000000000000000000000000000000000000000000000000000000000040 +:20B0F800000000000000000000000000000000000000000000000000000000000000000038 +:20B1000000000000000000000000000000000000000000000000000000000000000000002F +:20B10800000000000000000000000000000000000000000000000000000000000000000027 +:20B1100000000000000000000000000000000000000000000000000000000000000000001F +:20B11800000000000000000000000000000000000000000000000000000000000000000017 +:20B1200000000000000000000000000000000000000000000000000000000000000000000F +:20B12800000000000000000000000000000000000000000000000000000000000000000007 +:20B130000000000000000000000000000000000000000000000000000000000000000000FF +:20B138000000000000000000000000000000000000000000000000000000000000000000F7 +:20B140000000000000000000000000000000000000000000000000000000000000000000EF +:20B148000000000000000000000000000000000000000000000000000000000000000000E7 +:20B150000000000000000000000000000000000000000000000000000000000000000000DF +:20B158000000000000000000000000000000000000000000000000000000000000000000D7 +:20B160000000000000000000000000000000000000000000000000000000000000000000CF +:20B168000000000000000000000000000000000000000000000000000000000000000000C7 +:20B170000000000000000000000000000000000000000000000000000000000000000000BF +:20B178000000000000000000000000000000000000000000000000000000000000000000B7 +:20B180000000000000000000000000000000000000000000000000000000000000000000AF +:20B188000000000000000000000000000000000000000000000000000000000000000000A7 +:20B1900000000000000000000000000000000000000000000000000000000000000000009F +:20B19800000000000000000000000000000000000000000000000000000000000000000097 +:20B1A00000000000000000000000000000000000000000000000000000000000000000008F +:20B1A800000000000000000000000000000000000000000000000000000000000000000087 +:20B1B00000000000000000000000000000000000000000000000000000000000000000007F +:20B1B800000000000000000000000000000000000000000000000000000000000000000077 +:20B1C00000000000000000000000000000000000000000000000000000000000000000006F +:20B1C800000000000000000000000000000000000000000000000000000000000000000067 +:20B1D00000000000000000000000000000000000000000000000000000000000000000005F +:20B1D800000000000000000000000000000000000000000000000000000000000000000057 +:20B1E00000000000000000000000000000000000000000000000000000000000000000004F +:20B1E800000000000000000000000000000000000000000000000000000000000000000047 +:20B1F00000000000000000000000000000000000000000000000000000000000000000003F +:20B1F800000000000000000000000000000000000000000000000000000000000000000037 +:20B2000000000000000000000000000000000000000000000000000000000000000000002E +:20B20800000000000000000000000000000000000000000000000000000000000000000026 +:20B2100000000000000000000000000000000000000000000000000000000000000000001E +:20B21800000000000000000000000000000000000000000000000000000000000000000016 +:20B2200000000000000000000000000000000000000000000000000000000000000000000E +:20B22800000000000000000000000000000000000000000000000000000000000000000006 +:20B230000000000000000000000000000000000000000000000000000000000000000000FE +:20B238000000000000000000000000000000000000000000000000000000000000000000F6 +:20B240000000000000000000000000000000000000000000000000000000000000000000EE +:20B248000000000000000000000000000000000000000000000000000000000000000000E6 +:20B250000000000000000000000000000000000000000000000000000000000000000000DE +:20B258000000000000000000000000000000000000000000000000000000000000000000D6 +:20B260000000000000000000000000000000000000000000000000000000000000000000CE +:20B268000000000000000000000000000000000000000000000000000000000000000000C6 +:20B270000000000000000000000000000000000000000000000000000000000000000000BE +:20B278000000000000000000000000000000000000000000000000000000000000000000B6 +:20B280000000000000000000000000000000000000000000000000000000000000000000AE +:20B288000000000000000000000000000000000000000000000000000000000000000000A6 +:20B2900000000000000000000000000000000000000000000000000000000000000000009E +:20B29800000000000000000000000000000000000000000000000000000000000000000096 +:20B2A00000000000000000000000000000000000000000000000000000000000000000008E +:20B2A800000000000000000000000000000000000000000000000000000000000000000086 +:20B2B00000000000000000000000000000000000000000000000000000000000000000007E +:20B2B800000000000000000000000000000000000000000000000000000000000000000076 +:20B2C00000000000000000000000000000000000000000000000000000000000000000006E +:20B2C800000000000000000000000000000000000000000000000000000000000000000066 +:20B2D00000000000000000000000000000000000000000000000000000000000000000005E +:20B2D800000000000000000000000000000000000000000000000000000000000000000056 +:20B2E00000000000000000000000000000000000000000000000000000000000000000004E +:20B2E800000000000000000000000000000000000000000000000000000000000000000046 +:20B2F00000000000000000000000000000000000000000000000000000000000000000003E +:20B2F800000000000000000000000000000000000000000000000000000000000000000036 +:20B3000000000000000000000000000000000000000000000000000000000000000000002D +:20B30800000000000000000000000000000000000000000000000000000000000000000025 +:20B3100000000000000000000000000000000000000000000000000000000000000000001D +:20B31800000000000000000000000000000000000000000000000000000000000000000015 +:20B3200000000000000000000000000000000000000000000000000000000000000000000D +:20B32800000000000000000000000000000000000000000000000000000000000000000005 +:20B330000000000000000000000000000000000000000000000000000000000000000000FD +:20B338000000000000000000000000000000000000000000000000000000000000000000F5 +:20B340000000000000000000000000000000000000000000000000000000000000000000ED +:20B348000000000000000000000000000000000000000000000000000000000000000000E5 +:20B350000000000000000000000000000000000000000000000000000000000000000000DD +:20B358000000000000000000000000000000000000000000000000000000000000000000D5 +:20B360000000000000000000000000000000000000000000000000000000000000000000CD +:20B368000000000000000000000000000000000000000000000000000000000000000000C5 +:20B370000000000000000000000000000000000000000000000000000000000000000000BD +:20B378000000000000000000000000000000000000000000000000000000000000000000B5 +:20B380000000000000000000000000000000000000000000000000000000000000000000AD +:20B388000000000000000000000000000000000000000000000000000000000000000000A5 +:20B3900000000000000000000000000000000000000000000000000000000000000000009D +:20B39800000000000000000000000000000000000000000000000000000000000000000095 +:20B3A00000000000000000000000000000000000000000000000000000000000000000008D +:20B3A800000000000000000000000000000000000000000000000000000000000000000085 +:20B3B00000000000000000000000000000000000000000000000000000000000000000007D +:20B3B800000000000000000000000000000000000000000000000000000000000000000075 +:20B3C00000000000000000000000000000000000000000000000000000000000000000006D +:20B3C800000000000000000000000000000000000000000000000000000000000000000065 +:20B3D00000000000000000000000000000000000000000000000000000000000000000005D +:20B3D800000000000000000000000000000000000000000000000000000000000000000055 +:20B3E00000000000000000000000000000000000000000000000000000000000000000004D +:20B3E800000000000000000000000000000000000000000000000000000000000000000045 +:20B3F00000000000000000000000000000000000000000000000000000000000000000003D +:20B3F800000000000000000000000000000000000000000000000000000000000000000035 +:20B4000000000000000000000000000000000000000000000000000000000000000000002C +:20B40800000000000000000000000000000000000000000000000000000000000000000024 +:20B4100000000000000000000000000000000000000000000000000000000000000000001C +:20B41800000000000000000000000000000000000000000000000000000000000000000014 +:20B4200000000000000000000000000000000000000000000000000000000000000000000C +:20B42800000000000000000000000000000000000000000000000000000000000000000004 +:20B430000000000000000000000000000000000000000000000000000000000000000000FC +:20B438000000000000000000000000000000000000000000000000000000000000000000F4 +:20B440000000000000000000000000000000000000000000000000000000000000000000EC +:20B448000000000000000000000000000000000000000000000000000000000000000000E4 +:20B450000000000000000000000000000000000000000000000000000000000000000000DC +:20B458000000000000000000000000000000000000000000000000000000000000000000D4 +:20B460000000000000000000000000000000000000000000000000000000000000000000CC +:20B468000000000000000000000000000000000000000000000000000000000000000000C4 +:20B470000000000000000000000000000000000000000000000000000000000000000000BC +:20B478000000000000000000000000000000000000000000000000000000000000000000B4 +:20B480000000000000000000000000000000000000000000000000000000000000000000AC +:20B488000000000000000000000000000000000000000000000000000000000000000000A4 +:20B4900000000000000000000000000000000000000000000000000000000000000000009C +:20B49800000000000000000000000000000000000000000000000000000000000000000094 +:20B4A00000000000000000000000000000000000000000000000000000000000000000008C +:20B4A800000000000000000000000000000000000000000000000000000000000000000084 +:20B4B00000000000000000000000000000000000000000000000000000000000000000007C +:20B4B800000000000000000000000000000000000000000000000000000000000000000074 +:20B4C00000000000000000000000000000000000000000000000000000000000000000006C +:20B4C800000000000000000000000000000000000000000000000000000000000000000064 +:20B4D00000000000000000000000000000000000000000000000000000000000000000005C +:20B4D800000000000000000000000000000000000000000000000000000000000000000054 +:20B4E00000000000000000000000000000000000000000000000000000000000000000004C +:20B4E800000000000000000000000000000000000000000000000000000000000000000044 +:20B4F00000000000000000000000000000000000000000000000000000000000000000003C +:20B4F800000000000000000000000000000000000000000000000000000000000000000034 +:20B5000000000000000000000000000000000000000000000000000000000000000000002B +:20B50800000000000000000000000000000000000000000000000000000000000000000023 +:20B5100000000000000000000000000000000000000000000000000000000000000000001B +:20B51800000000000000000000000000000000000000000000000000000000000000000013 +:20B5200000000000000000000000000000000000000000000000000000000000000000000B +:20B52800000000000000000000000000000000000000000000000000000000000000000003 +:20B530000000000000000000000000000000000000000000000000000000000000000000FB +:20B538000000000000000000000000000000000000000000000000000000000000000000F3 +:20B540000000000000000000000000000000000000000000000000000000000000000000EB +:20B548000000000000000000000000000000000000000000000000000000000000000000E3 +:20B550000000000000000000000000000000000000000000000000000000000000000000DB +:20B558000000000000000000000000000000000000000000000000000000000000000000D3 +:20B560000000000000000000000000000000000000000000000000000000000000000000CB +:20B568000000000000000000000000000000000000000000000000000000000000000000C3 +:20B570000000000000000000000000000000000000000000000000000000000000000000BB +:20B578000000000000000000000000000000000000000000000000000000000000000000B3 +:20B580000000000000000000000000000000000000000000000000000000000000000000AB +:20B588000000000000000000000000000000000000000000000000000000000000000000A3 +:20B5900000000000000000000000000000000000000000000000000000000000000000009B +:20B59800000000000000000000000000000000000000000000000000000000000000000093 +:20B5A00000000000000000000000000000000000000000000000000000000000000000008B +:20B5A800000000000000000000000000000000000000000000000000000000000000000083 +:20B5B00000000000000000000000000000000000000000000000000000000000000000007B +:20B5B800000000000000000000000000000000000000000000000000000000000000000073 +:20B5C00000000000000000000000000000000000000000000000000000000000000000006B +:20B5C800000000000000000000000000000000000000000000000000000000000000000063 +:20B5D00000000000000000000000000000000000000000000000000000000000000000005B +:20B5D800000000000000000000000000000000000000000000000000000000000000000053 +:20B5E00000000000000000000000000000000000000000000000000000000000000000004B +:20B5E800000000000000000000000000000000000000000000000000000000000000000043 +:20B5F00000000000000000000000000000000000000000000000000000000000000000003B +:20B5F800000000000000000000000000000000000000000000000000000000000000000033 +:20B6000000000000000000000000000000000000000000000000000000000000000000002A +:20B60800000000000000000000000000000000000000000000000000000000000000000022 +:20B6100000000000000000000000000000000000000000000000000000000000000000001A +:20B61800000000000000000000000000000000000000000000000000000000000000000012 +:20B6200000000000000000000000000000000000000000000000000000000000000000000A +:20B62800000000000000000000000000000000000000000000000000000000000000000002 +:20B630000000000000000000000000000000000000000000000000000000000000000000FA +:20B638000000000000000000000000000000000000000000000000000000000000000000F2 +:20B640000000000000000000000000000000000000000000000000000000000000000000EA +:20B648000000000000000000000000000000000000000000000000000000000000000000E2 +:20B650000000000000000000000000000000000000000000000000000000000000000000DA +:20B658000000000000000000000000000000000000000000000000000000000000000000D2 +:20B660000000000000000000000000000000000000000000000000000000000000000000CA +:20B668000000000000000000000000000000000000000000000000000000000000000000C2 +:20B670000000000000000000000000000000000000000000000000000000000000000000BA +:20B678000000000000000000000000000000000000000000000000000000000000000000B2 +:20B680000000000000000000000000000000000000000000000000000000000000000000AA +:20B688000000000000000000000000000000000000000000000000000000000000000000A2 +:20B6900000000000000000000000000000000000000000000000000000000000000000009A +:20B69800000000000000000000000000000000000000000000000000000000000000000092 +:20B6A00000000000000000000000000000000000000000000000000000000000000000008A +:20B6A800000000000000000000000000000000000000000000000000000000000000000082 +:20B6B00000000000000000000000000000000000000000000000000000000000000000007A +:20B6B800000000000000000000000000000000000000000000000000000000000000000072 +:20B6C00000000000000000000000000000000000000000000000000000000000000000006A +:20B6C800000000000000000000000000000000000000000000000000000000000000000062 +:20B6D00000000000000000000000000000000000000000000000000000000000000000005A +:20B6D800000000000000000000000000000000000000000000000000000000000000000052 +:20B6E00000000000000000000000000000000000000000000000000000000000000000004A +:20B6E800000000000000000000000000000000000000000000000000000000000000000042 +:20B6F00000000000000000000000000000000000000000000000000000000000000000003A +:20B6F800000000000000000000000000000000000000000000000000000000000000000032 +:20B70000000000000000000000000000000000000000000000000000000000000000000029 +:20B70800000000000000000000000000000000000000000000000000000000000000000021 +:20B71000000000000000000000000000000000000000000000000000000000000000000019 +:20B71800000000000000000000000000000000000000000000000000000000000000000011 +:20B72000000000000000000000000000000000000000000000000000000000000000000009 +:20B72800000000000000000000000000000000000000000000000000000000000000000001 +:20B730000000000000000000000000000000000000000000000000000000000000000000F9 +:20B738000000000000000000000000000000000000000000000000000000000000000000F1 +:20B740000000000000000000000000000000000000000000000000000000000000000000E9 +:20B748000000000000000000000000000000000000000000000000000000000000000000E1 +:20B750000000000000000000000000000000000000000000000000000000000000000000D9 +:20B758000000000000000000000000000000000000000000000000000000000000000000D1 +:20B760000000000000000000000000000000000000000000000000000000000000000000C9 +:20B768000000000000000000000000000000000000000000000000000000000000000000C1 +:20B770000000000000000000000000000000000000000000000000000000000000000000B9 +:20B778000000000000000000000000000000000000000000000000000000000000000000B1 +:20B780000000000000000000000000000000000000000000000000000000000000000000A9 +:20B788000000000000000000000000000000000000000000000000000000000000000000A1 +:20B79000000000000000000000000000000000000000000000000000000000000000000099 +:20B79800000000000000000000000000000000000000000000000000000000000000000091 +:20B7A000000000000000000000000000000000000000000000000000000000000000000089 +:20B7A800000000000000000000000000000000000000000000000000000000000000000081 +:20B7B000000000000000000000000000000000000000000000000000000000000000000079 +:20B7B800000000000000000000000000000000000000000000000000000000000000000071 +:20B7C000000000000000000000000000000000000000000000000000000000000000000069 +:20B7C800000000000000000000000000000000000000000000000000000000000000000061 +:20B7D000000000000000000000000000000000000000000000000000000000000000000059 +:20B7D800000000000000000000000000000000000000000000000000000000000000000051 +:20B7E000000000000000000000000000000000000000000000000000000000000000000049 +:20B7E800000000000000000000000000000000000000000000000000000000000000000041 +:20B7F000000000000000000000000000000000000000000000000000000000000000000039 +:20B7F800000000000000000000000000000000000000000000000000000000000000000031 +:20B80000000000000000000000000000000000000000000000000000000000000000000028 +:20B80800000000000000000000000000000000000000000000000000000000000000000020 +:20B81000000000000000000000000000000000000000000000000000000000000000000018 +:20B81800000000000000000000000000000000000000000000000000000000000000000010 +:20B82000000000000000000000000000000000000000000000000000000000000000000008 +:20B82800000000000000000000000000000000000000000000000000000000000000000000 +:20B830000000000000000000000000000000000000000000000000000000000000000000F8 +:20B838000000000000000000000000000000000000000000000000000000000000000000F0 +:20B840000000000000000000000000000000000000000000000000000000000000000000E8 +:20B848000000000000000000000000000000000000000000000000000000000000000000E0 +:20B850000000000000000000000000000000000000000000000000000000000000000000D8 +:20B858000000000000000000000000000000000000000000000000000000000000000000D0 +:20B860000000000000000000000000000000000000000000000000000000000000000000C8 +:20B868000000000000000000000000000000000000000000000000000000000000000000C0 +:20B870000000000000000000000000000000000000000000000000000000000000000000B8 +:20B878000000000000000000000000000000000000000000000000000000000000000000B0 +:20B880000000000000000000000000000000000000000000000000000000000000000000A8 +:20B888000000000000000000000000000000000000000000000000000000000000000000A0 +:20B89000000000000000000000000000000000000000000000000000000000000000000098 +:20B89800000000000000000000000000000000000000000000000000000000000000000090 +:20B8A000000000000000000000000000000000000000000000000000000000000000000088 +:20B8A800000000000000000000000000000000000000000000000000000000000000000080 +:20B8B000000000000000000000000000000000000000000000000000000000000000000078 +:20B8B800000000000000000000000000000000000000000000000000000000000000000070 +:20B8C000000000000000000000000000000000000000000000000000000000000000000068 +:20B8C800000000000000000000000000000000000000000000000000000000000000000060 +:20B8D000000000000000000000000000000000000000000000000000000000000000000058 +:20B8D800000000000000000000000000000000000000000000000000000000000000000050 +:20B8E000000000000000000000000000000000000000000000000000000000000000000048 +:20B8E800000000000000000000000000000000000000000000000000000000000000000040 +:20B8F000000000000000000000000000000000000000000000000000000000000000000038 +:20B8F800000000000000000000000000000000000000000000000000000000000000000030 +:20B90000000000000000000000000000000000000000000000000000000000000000000027 +:20B9080000000000000000000000000000000000000000000000000000000000000000001F +:20B91000000000000000000000000000000000000000000000000000000000000000000017 +:20B9180000000000000000000000000000000000000000000000000000000000000000000F +:20B92000000000000000000000000000000000000000000000000000000000000000000007 +:20B928000000000000000000000000000000000000000000000000000000000000000000FF +:20B930000000000000000000000000000000000000000000000000000000000000000000F7 +:20B938000000000000000000000000000000000000000000000000000000000000000000EF +:20B940000000000000000000000000000000000000000000000000000000000000000000E7 +:20B948000000000000000000000000000000000000000000000000000000000000000000DF +:20B950000000000000000000000000000000000000000000000000000000000000000000D7 +:20B958000000000000000000000000000000000000000000000000000000000000000000CF +:20B960000000000000000000000000000000000000000000000000000000000000000000C7 +:20B968000000000000000000000000000000000000000000000000000000000000000000BF +:20B970000000000000000000000000000000000000000000000000000000000000000000B7 +:20B978000000000000000000000000000000000000000000000000000000000000000000AF +:20B980000000000000000000000000000000000000000000000000000000000000000000A7 +:20B9880000000000000000000000000000000000000000000000000000000000000000009F +:20B99000000000000000000000000000000000000000000000000000000000000000000097 +:20B9980000000000000000000000000000000000000000000000000000000000000000008F +:20B9A000000000000000000000000000000000000000000000000000000000000000000087 +:20B9A80000000000000000000000000000000000000000000000000000000000000000007F +:20B9B000000000000000000000000000000000000000000000000000000000000000000077 +:20B9B80000000000000000000000000000000000000000000000000000000000000000006F +:20B9C000000000000000000000000000000000000000000000000000000000000000000067 +:20B9C80000000000000000000000000000000000000000000000000000000000000000005F +:20B9D000000000000000000000000000000000000000000000000000000000000000000057 +:20B9D80000000000000000000000000000000000000000000000000000000000000000004F +:20B9E000000000000000000000000000000000000000000000000000000000000000000047 +:20B9E80000000000000000000000000000000000000000000000000000000000000000003F +:20B9F000000000000000000000000000000000000000000000000000000000000000000037 +:20B9F80000000000000000000000000000000000000000000000000000000000000000002F +:20BA0000000000000000000000000000000000000000000000000000000000000000000026 +:20BA080000000000000000000000000000000000000000000000000000000000000000001E +:20BA1000000000000000000000000000000000000000000000000000000000000000000016 +:20BA180000000000000000000000000000000000000000000000000000000000000000000E +:20BA2000000000000000000000000000000000000000000000000000000000000000000006 +:20BA28000000000000000000000000000000000000000000000000000000000000000000FE +:20BA30000000000000000000000000000000000000000000000000000000000000000000F6 +:20BA38000000000000000000000000000000000000000000000000000000000000000000EE +:20BA40000000000000000000000000000000000000000000000000000000000000000000E6 +:20BA48000000000000000000000000000000000000000000000000000000000000000000DE +:20BA50000000000000000000000000000000000000000000000000000000000000000000D6 +:20BA58000000000000000000000000000000000000000000000000000000000000000000CE +:20BA60000000000000000000000000000000000000000000000000000000000000000000C6 +:20BA68000000000000000000000000000000000000000000000000000000000000000000BE +:20BA70000000000000000000000000000000000000000000000000000000000000000000B6 +:20BA78000000000000000000000000000000000000000000000000000000000000000000AE +:20BA80000000000000000000000000000000000000000000000000000000000000000000A6 +:20BA880000000000000000000000000000000000000000000000000000000000000000009E +:20BA9000000000000000000000000000000000000000000000000000000000000000000096 +:20BA980000000000000000000000000000000000000000000000000000000000000000008E +:20BAA000000000000000000000000000000000000000000000000000000000000000000086 +:20BAA80000000000000000000000000000000000000000000000000000000000000000007E +:20BAB000000000000000000000000000000000000000000000000000000000000000000076 +:20BAB80000000000000000000000000000000000000000000000000000000000000000006E +:20BAC000000000000000000000000000000000000000000000000000000000000000000066 +:20BAC80000000000000000000000000000000000000000000000000000000000000000005E +:20BAD000000000000000000000000000000000000000000000000000000000000000000056 +:20BAD80000000000000000000000000000000000000000000000000000000000000000004E +:20BAE000000000000000000000000000000000000000000000000000000000000000000046 +:20BAE80000000000000000000000000000000000000000000000000000000000000000003E +:20BAF000000000000000000000000000000000000000000000000000000000000000000036 +:20BAF80000000000000000000000000000000000000000000000000000000000000000002E +:20BB0000000000000000000000000000000000000000000000000000000000000000000025 +:20BB080000000000000000000000000000000000000000000000000000000000000000001D +:20BB1000000000000000000000000000000000000000000000000000000000000000000015 +:20BB180000000000000000000000000000000000000000000000000000000000000000000D +:20BB2000000000000000000000000000000000000000000000000000000000000000000005 +:20BB28000000000000000000000000000000000000000000000000000000000000000000FD +:20BB30000000000000000000000000000000000000000000000000000000000000000000F5 +:20BB38000000000000000000000000000000000000000000000000000000000000000000ED +:20BB40000000000000000000000000000000000000000000000000000000000000000000E5 +:20BB48000000000000000000000000000000000000000000000000000000000000000000DD +:20BB50000000000000000000000000000000000000000000000000000000000000000000D5 +:20BB58000000000000000000000000000000000000000000000000000000000000000000CD +:20BB60000000000000000000000000000000000000000000000000000000000000000000C5 +:20BB68000000000000000000000000000000000000000000000000000000000000000000BD +:20BB70000000000000000000000000000000000000000000000000000000000000000000B5 +:20BB78000000000000000000000000000000000000000000000000000000000000000000AD +:20BB80000000000000000000000000000000000000000000000000000000000000000000A5 +:20BB880000000000000000000000000000000000000000000000000000000000000000009D +:20BB9000000000000000000000000000000000000000000000000000000000000000000095 +:20BB980000000000000000000000000000000000000000000000000000000000000000008D +:20BBA000000000000000000000000000000000000000000000000000000000000000000085 +:20BBA80000000000000000000000000000000000000000000000000000000000000000007D +:20BBB000000000000000000000000000000000000000000000000000000000000000000075 +:20BBB80000000000000000000000000000000000000000000000000000000000000000006D +:20BBC000000000000000000000000000000000000000000000000000000000000000000065 +:20BBC80000000000000000000000000000000000000000000000000000000000000000005D +:20BBD000000000000000000000000000000000000000000000000000000000000000000055 +:20BBD80000000000000000000000000000000000000000000000000000000000000000004D +:20BBE000000000000000000000000000000000000000000000000000000000000000000045 +:20BBE80000000000000000000000000000000000000000000000000000000000000000003D +:20BBF000000000000000000000000000000000000000000000000000000000000000000035 +:20BBF80000000000000000000000000000000000000000000000000000000000000000002D +:20BC0000000000000000000000000000000000000000000000000000000000000000000024 +:20BC080000000000000000000000000000000000000000000000000000000000000000001C +:20BC1000000000000000000000000000000000000000000000000000000000000000000014 +:20BC180000000000000000000000000000000000000000000000000000000000000000000C +:20BC2000000000000000000000000000000000000000000000000000000000000000000004 +:20BC28000000000000000000000000000000000000000000000000000000000000000000FC +:20BC30000000000000000000000000000000000000000000000000000000000000000000F4 +:20BC38000000000000000000000000000000000000000000000000000000000000000000EC +:20BC40000000000000000000000000000000000000000000000000000000000000000000E4 +:20BC48000000000000000000000000000000000000000000000000000000000000000000DC +:20BC50000000000000000000000000000000000000000000000000000000000000000000D4 +:20BC58000000000000000000000000000000000000000000000000000000000000000000CC +:20BC60000000000000000000000000000000000000000000000000000000000000000000C4 +:20BC68000000000000000000000000000000000000000000000000000000000000000000BC +:20BC70000000000000000000000000000000000000000000000000000000000000000000B4 +:20BC78000000000000000000000000000000000000000000000000000000000000000000AC +:20BC80000000000000000000000000000000000000000000000000000000000000000000A4 +:20BC880000000000000000000000000000000000000000000000000000000000000000009C +:20BC9000000000000000000000000000000000000000000000000000000000000000000094 +:20BC980000000000000000000000000000000000000000000000000000000000000000008C +:20BCA000000000000000000000000000000000000000000000000000000000000000000084 +:20BCA80000000000000000000000000000000000000000000000000000000000000000007C +:20BCB000000000000000000000000000000000000000000000000000000000000000000074 +:20BCB80000000000000000000000000000000000000000000000000000000000000000006C +:20BCC000000000000000000000000000000000000000000000000000000000000000000064 +:20BCC80000000000000000000000000000000000000000000000000000000000000000005C +:20BCD000000000000000000000000000000000000000000000000000000000000000000054 +:20BCD80000000000000000000000000000000000000000000000000000000000000000004C +:20BCE000000000000000000000000000000000000000000000000000000000000000000044 +:20BCE80000000000000000000000000000000000000000000000000000000000000000003C +:20BCF000000000000000000000000000000000000000000000000000000000000000000034 +:20BCF80000000000000000000000000000000000000000000000000000000000000000002C +:20BD0000000000000000000000000000000000000000000000000000000000000000000023 +:20BD080000000000000000000000000000000000000000000000000000000000000000001B +:20BD1000000000000000000000000000000000000000000000000000000000000000000013 +:20BD180000000000000000000000000000000000000000000000000000000000000000000B +:20BD2000000000000000000000000000000000000000000000000000000000000000000003 +:20BD28000000000000000000000000000000000000000000000000000000000000000000FB +:20BD30000000000000000000000000000000000000000000000000000000000000000000F3 +:20BD38000000000000000000000000000000000000000000000000000000000000000000EB +:20BD40000000000000000000000000000000000000000000000000000000000000000000E3 +:20BD48000000000000000000000000000000000000000000000000000000000000000000DB +:20BD50000000000000000000000000000000000000000000000000000000000000000000D3 +:20BD58000000000000000000000000000000000000000000000000000000000000000000CB +:20BD60000000000000000000000000000000000000000000000000000000000000000000C3 +:20BD68000000000000000000000000000000000000000000000000000000000000000000BB +:20BD70000000000000000000000000000000000000000000000000000000000000000000B3 +:20BD78000000000000000000000000000000000000000000000000000000000000000000AB +:20BD80000000000000000000000000000000000000000000000000000000000000000000A3 +:20BD880000000000000000000000000000000000000000000000000000000000000000009B +:20BD9000000000000000000000000000000000000000000000000000000000000000000093 +:20BD980000000000000000000000000000000000000000000000000000000000000000008B +:20BDA000000000000000000000000000000000000000000000000000000000000000000083 +:20BDA80000000000000000000000000000000000000000000000000000000000000000007B +:20BDB000000000000000000000000000000000000000000000000000000000000000000073 +:20BDB80000000000000000000000000000000000000000000000000000000000000000006B +:20BDC000000000000000000000000000000000000000000000000000000000000000000063 +:20BDC80000000000000000000000000000000000000000000000000000000000000000005B +:20BDD000000000000000000000000000000000000000000000000000000000000000000053 +:20BDD80000000000000000000000000000000000000000000000000000000000000000004B +:20BDE000000000000000000000000000000000000000000000000000000000000000000043 +:20BDE80000000000000000000000000000000000000000000000000000000000000000003B +:20BDF000000000000000000000000000000000000000000000000000000000000000000033 +:20BDF80000000000000000000000000000000000000000000000000000000000000000002B +:20BE0000000000000000000000000000000000000000000000000000000000000000000022 +:20BE080000000000000000000000000000000000000000000000000000000000000000001A +:20BE1000000000000000000000000000000000000000000000000000000000000000000012 +:20BE180000000000000000000000000000000000000000000000000000000000000000000A +:20BE2000000000000000000000000000000000000000000000000000000000000000000002 +:20BE28000000000000000000000000000000000000000000000000000000000000000000FA +:20BE30000000000000000000000000000000000000000000000000000000000000000000F2 +:20BE38000000000000000000000000000000000000000000000000000000000000000000EA +:20BE40000000000000000000000000000000000000000000000000000000000000000000E2 +:20BE48000000000000000000000000000000000000000000000000000000000000000000DA +:20BE50000000000000000000000000000000000000000000000000000000000000000000D2 +:20BE58000000000000000000000000000000000000000000000000000000000000000000CA +:20BE60000000000000000000000000000000000000000000000000000000000000000000C2 +:20BE68000000000000000000000000000000000000000000000000000000000000000000BA +:20BE70000000000000000000000000000000000000000000000000000000000000000000B2 +:20BE78000000000000000000000000000000000000000000000000000000000000000000AA +:20BE80000000000000000000000000000000000000000000000000000000000000000000A2 +:20BE880000000000000000000000000000000000000000000000000000000000000000009A +:20BE9000000000000000000000000000000000000000000000000000000000000000000092 +:20BE980000000000000000000000000000000000000000000000000000000000000000008A +:20BEA000000000000000000000000000000000000000000000000000000000000000000082 +:20BEA80000000000000000000000000000000000000000000000000000000000000000007A +:20BEB000000000000000000000000000000000000000000000000000000000000000000072 +:20BEB80000000000000000000000000000000000000000000000000000000000000000006A +:20BEC000000000000000000000000000000000000000000000000000000000000000000062 +:20BEC80000000000000000000000000000000000000000000000000000000000000000005A +:20BED000000000000000000000000000000000000000000000000000000000000000000052 +:20BED80000000000000000000000000000000000000000000000000000000000000000004A +:20BEE000000000000000000000000000000000000000000000000000000000000000000042 +:20BEE80000000000000000000000000000000000000000000000000000000000000000003A +:20BEF000000000000000000000000000000000000000000000000000000000000000000032 +:20BEF80000000000000000000000000000000000000000000000000000000000000000002A +:20BF0000000000000000000000000000000000000000000000000000000000000000000021 +:20BF0800000000000000000000000000000000000000000000000000000000000000000019 +:20BF1000000000000000000000000000000000000000000000000000000000000000000011 +:20BF1800000000000000000000000000000000000000000000000000000000000000000009 +:20BF2000000000000000000000000000000000000000000000000000000000000000000001 +:20BF28000000000000000000000000000000000000000000000000000000000000000000F9 +:20BF30000000000000000000000000000000000000000000000000000000000000000000F1 +:20BF38000000000000000000000000000000000000000000000000000000000000000000E9 +:20BF40000000000000000000000000000000000000000000000000000000000000000000E1 +:20BF48000000000000000000000000000000000000000000000000000000000000000000D9 +:20BF50000000000000000000000000000000000000000000000000000000000000000000D1 +:20BF58000000000000000000000000000000000000000000000000000000000000000000C9 +:20BF60000000000000000000000000000000000000000000000000000000000000000000C1 +:20BF68000000000000000000000000000000000000000000000000000000000000000000B9 +:20BF70000000000000000000000000000000000000000000000000000000000000000000B1 +:20BF78000000000000000000000000000000000000000000000000000000000000000000A9 +:20BF80000000000000000000000000000000000000000000000000000000000000000000A1 +:20BF8800000000000000000000000000000000000000000000000000000000000000000099 +:20BF9000000000000000000000000000000000000000000000000000000000000000000091 +:20BF9800000000000000000000000000000000000000000000000000000000000000000089 +:20BFA000000000000000000000000000000000000000000000000000000000000000000081 +:20BFA800000000000000000000000000000000000000000000000000000000000000000079 +:20BFB000000000000000000000000000000000000000000000000000000000000000000071 +:20BFB800000000000000000000000000000000000000000000000000000000000000000069 +:20BFC000000000000000000000000000000000000000000000000000000000000000000061 +:20BFC800000000000000000000000000000000000000000000000000000000000000000059 +:20BFD000000000000000000000000000000000000000000000000000000000000000000051 +:20BFD800000000000000000000000000000000000000000000000000000000000000000049 +:20BFE000000000000000000000000000000000000000000000000000000000000000000041 +:20BFE800000000000000000000000000000000000000000000000000000000000000000039 +:20BFF000000000000000000000000000000000000000000000000000000000000000000031 +:20BFF800000000000000000000000000000000000000000000000000000000000000000029 +:20C00000000000000000000000000000000000000000000000000000000000000000000020 +:20C00800000000000000000000000000000000000000000000000000000000000000000018 +:20C01000000000000000000000000000000000000000000000000000000000000000000010 +:20C01800000000000000000000000000000000000000000000000000000000000000000008 +:20C02000000000000000000000000000000000000000000000000000000000000000000000 +:20C028000000000000000000000000000000000000000000000000000000000000000000F8 +:20C030000000000000000000000000000000000000000000000000000000000000000000F0 +:20C038000000000000000000000000000000000000000000000000000000000000000000E8 +:20C040000000000000000000000000000000000000000000000000000000000000000000E0 +:20C048000000000000000000000000000000000000000000000000000000000000000000D8 +:20C050000000000000000000000000000000000000000000000000000000000000000000D0 +:20C058000000000000000000000000000000000000000000000000000000000000000000C8 +:20C060000000000000000000000000000000000000000000000000000000000000000000C0 +:20C068000000000000000000000000000000000000000000000000000000000000000000B8 +:20C070000000000000000000000000000000000000000000000000000000000000000000B0 +:20C078000000000000000000000000000000000000000000000000000000000000000000A8 +:20C080000000000000000000000000000000000000000000000000000000000000000000A0 +:20C08800000000000000000000000000000000000000000000000000000000000000000098 +:20C09000000000000000000000000000000000000000000000000000000000000000000090 +:20C09800000000000000000000000000000000000000000000000000000000000000000088 +:20C0A000000000000000000000000000000000000000000000000000000000000000000080 +:20C0A800000000000000000000000000000000000000000000000000000000000000000078 +:20C0B000000000000000000000000000000000000000000000000000000000000000000070 +:20C0B800000000000000000000000000000000000000000000000000000000000000000068 +:20C0C000000000000000000000000000000000000000000000000000000000000000000060 +:20C0C800000000000000000000000000000000000000000000000000000000000000000058 +:20C0D000000000000000000000000000000000000000000000000000000000000000000050 +:20C0D800000000000000000000000000000000000000000000000000000000000000000048 +:20C0E000000000000000000000000000000000000000000000000000000000000000000040 +:20C0E800000000000000000000000000000000000000000000000000000000000000000038 +:20C0F000000000000000000000000000000000000000000000000000000000000000000030 +:20C0F800000000000000000000000000000000000000000000000000000000000000000028 +:20C1000000000000000000000000000000000000000000000000000000000000000000001F +:20C10800000000000000000000000000000000000000000000000000000000000000000017 +:20C1100000000000000000000000000000000000000000000000000000000000000000000F +:20C11800000000000000000000000000000000000000000000000000000000000000000007 +:20C120000000000000000000000000000000000000000000000000000000000000000000FF +:20C128000000000000000000000000000000000000000000000000000000000000000000F7 +:20C130000000000000000000000000000000000000000000000000000000000000000000EF +:20C138000000000000000000000000000000000000000000000000000000000000000000E7 +:20C140000000000000000000000000000000000000000000000000000000000000000000DF +:20C148000000000000000000000000000000000000000000000000000000000000000000D7 +:20C150000000000000000000000000000000000000000000000000000000000000000000CF +:20C158000000000000000000000000000000000000000000000000000000000000000000C7 +:20C160000000000000000000000000000000000000000000000000000000000000000000BF +:20C168000000000000000000000000000000000000000000000000000000000000000000B7 +:20C170000000000000000000000000000000000000000000000000000000000000000000AF +:20C178000000000000000000000000000000000000000000000000000000000000000000A7 +:20C1800000000000000000000000000000000000000000000000000000000000000000009F +:20C18800000000000000000000000000000000000000000000000000000000000000000097 +:20C1900000000000000000000000000000000000000000000000000000000000000000008F +:20C19800000000000000000000000000000000000000000000000000000000000000000087 +:20C1A00000000000000000000000000000000000000000000000000000000000000000007F +:20C1A800000000000000000000000000000000000000000000000000000000000000000077 +:20C1B00000000000000000000000000000000000000000000000000000000000000000006F +:20C1B800000000000000000000000000000000000000000000000000000000000000000067 +:20C1C00000000000000000000000000000000000000000000000000000000000000000005F +:20C1C800000000000000000000000000000000000000000000000000000000000000000057 +:20C1D00000000000000000000000000000000000000000000000000000000000000000004F +:20C1D800000000000000000000000000000000000000000000000000000000000000000047 +:20C1E00000000000000000000000000000000000000000000000000000000000000000003F +:20C1E800000000000000000000000000000000000000000000000000000000000000000037 +:20C1F00000000000000000000000000000000000000000000000000000000000000000002F +:20C1F800000000000000000000000000000000000000000000000000000000000000000027 +:20C2000000000000000000000000000000000000000000000000000000000000000000001E +:20C20800000000000000000000000000000000000000000000000000000000000000000016 +:20C2100000000000000000000000000000000000000000000000000000000000000000000E +:20C21800000000000000000000000000000000000000000000000000000000000000000006 +:20C220000000000000000000000000000000000000000000000000000000000000000000FE +:20C228000000000000000000000000000000000000000000000000000000000000000000F6 +:20C230000000000000000000000000000000000000000000000000000000000000000000EE +:20C238000000000000000000000000000000000000000000000000000000000000000000E6 +:20C240000000000000000000000000000000000000000000000000000000000000000000DE +:20C248000000000000000000000000000000000000000000000000000000000000000000D6 +:20C250000000000000000000000000000000000000000000000000000000000000000000CE +:20C258000000000000000000000000000000000000000000000000000000000000000000C6 +:20C260000000000000000000000000000000000000000000000000000000000000000000BE +:20C268000000000000000000000000000000000000000000000000000000000000000000B6 +:20C270000000000000000000000000000000000000000000000000000000000000000000AE +:20C278000000000000000000000000000000000000000000000000000000000000000000A6 +:20C2800000000000000000000000000000000000000000000000000000000000000000009E +:20C28800000000000000000000000000000000000000000000000000000000000000000096 +:20C2900000000000000000000000000000000000000000000000000000000000000000008E +:20C29800000000000000000000000000000000000000000000000000000000000000000086 +:20C2A00000000000000000000000000000000000000000000000000000000000000000007E +:20C2A800000000000000000000000000000000000000000000000000000000000000000076 +:20C2B00000000000000000000000000000000000000000000000000000000000000000006E +:20C2B800000000000000000000000000000000000000000000000000000000000000000066 +:20C2C00000000000000000000000000000000000000000000000000000000000000000005E +:20C2C800000000000000000000000000000000000000000000000000000000000000000056 +:20C2D00000000000000000000000000000000000000000000000000000000000000000004E +:20C2D800000000000000000000000000000000000000000000000000000000000000000046 +:20C2E00000000000000000000000000000000000000000000000000000000000000000003E +:20C2E800000000000000000000000000000000000000000000000000000000000000000036 +:20C2F00000000000000000000000000000000000000000000000000000000000000000002E +:20C2F800000000000000000000000000000000000000000000000000000000000000000026 +:20C3000000000000000000000000000000000000000000000000000000000000000000001D +:20C30800000000000000000000000000000000000000000000000000000000000000000015 +:20C3100000000000000000000000000000000000000000000000000000000000000000000D +:20C31800000000000000000000000000000000000000000000000000000000000000000005 +:20C320000000000000000000000000000000000000000000000000000000000000000000FD +:20C328000000000000000000000000000000000000000000000000000000000000000000F5 +:20C330000000000000000000000000000000000000000000000000000000000000000000ED +:20C338000000000000000000000000000000000000000000000000000000000000000000E5 +:20C340000000000000000000000000000000000000000000000000000000000000000000DD +:20C348000000000000000000000000000000000000000000000000000000000000000000D5 +:20C350000000000000000000000000000000000000000000000000000000000000000000CD +:20C358000000000000000000000000000000000000000000000000000000000000000000C5 +:20C360000000000000000000000000000000000000000000000000000000000000000000BD +:20C368000000000000000000000000000000000000000000000000000000000000000000B5 +:20C370000000000000000000000000000000000000000000000000000000000000000000AD +:20C378000000000000000000000000000000000000000000000000000000000000000000A5 +:20C3800000000000000000000000000000000000000000000000000000000000000000009D +:20C38800000000000000000000000000000000000000000000000000000000000000000095 +:20C3900000000000000000000000000000000000000000000000000000000000000000008D +:20C39800000000000000000000000000000000000000000000000000000000000000000085 +:20C3A00000000000000000000000000000000000000000000000000000000000000000007D +:20C3A800000000000000000000000000000000000000000000000000000000000000000075 +:20C3B00000000000000000000000000000000000000000000000000000000000000000006D +:20C3B800000000000000000000000000000000000000000000000000000000000000000065 +:20C3C00000000000000000000000000000000000000000000000000000000000000000005D +:20C3C800000000000000000000000000000000000000000000000000000000000000000055 +:20C3D00000000000000000000000000000000000000000000000000000000000000000004D +:20C3D800000000000000000000000000000000000000000000000000000000000000000045 +:20C3E00000000000000000000000000000000000000000000000000000000000000000003D +:20C3E800000000000000000000000000000000000000000000000000000000000000000035 +:20C3F00000000000000000000000000000000000000000000000000000000000000000002D +:20C3F800000000000000000000000000000000000000000000000000000000000000000025 +:20C4000000000000000000000000000000000000000000000000000000000000000000001C +:20C40800000000000000000000000000000000000000000000000000000000000000000014 +:20C4100000000000000000000000000000000000000000000000000000000000000000000C +:20C41800000000000000000000000000000000000000000000000000000000000000000004 +:20C420000000000000000000000000000000000000000000000000000000000000000000FC +:20C428000000000000000000000000000000000000000000000000000000000000000000F4 +:20C430000000000000000000000000000000000000000000000000000000000000000000EC +:20C438000000000000000000000000000000000000000000000000000000000000000000E4 +:20C440000000000000000000000000000000000000000000000000000000000000000000DC +:20C448000000000000000000000000000000000000000000000000000000000000000000D4 +:20C450000000000000000000000000000000000000000000000000000000000000000000CC +:20C458000000000000000000000000000000000000000000000000000000000000000000C4 +:20C460000000000000000000000000000000000000000000000000000000000000000000BC +:20C468000000000000000000000000000000000000000000000000000000000000000000B4 +:20C470000000000000000000000000000000000000000000000000000000000000000000AC +:20C478000000000000000000000000000000000000000000000000000000000000000000A4 +:20C4800000000000000000000000000000000000000000000000000000000000000000009C +:20C48800000000000000000000000000000000000000000000000000000000000000000094 +:20C4900000000000000000000000000000000000000000000000000000000000000000008C +:20C49800000000000000000000000000000000000000000000000000000000000000000084 +:20C4A00000000000000000000000000000000000000000000000000000000000000000007C +:20C4A800000000000000000000000000000000000000000000000000000000000000000074 +:20C4B00000000000000000000000000000000000000000000000000000000000000000006C +:20C4B800000000000000000000000000000000000000000000000000000000000000000064 +:20C4C00000000000000000000000000000000000000000000000000000000000000000005C +:20C4C800000000000000000000000000000000000000000000000000000000000000000054 +:20C4D00000000000000000000000000000000000000000000000000000000000000000004C +:20C4D800000000000000000000000000000000000000000000000000000000000000000044 +:20C4E00000000000000000000000000000000000000000000000000000000000000000003C +:20C4E800000000000000000000000000000000000000000000000000000000000000000034 +:20C4F00000000000000000000000000000000000000000000000000000000000000000002C +:20C4F800000000000000000000000000000000000000000000000000000000000000000024 +:20C5000000000000000000000000000000000000000000000000000000000000000000001B +:20C50800000000000000000000000000000000000000000000000000000000000000000013 +:20C5100000000000000000000000000000000000000000000000000000000000000000000B +:20C51800000000000000000000000000000000000000000000000000000000000000000003 +:20C520000000000000000000000000000000000000000000000000000000000000000000FB +:20C528000000000000000000000000000000000000000000000000000000000000000000F3 +:20C530000000000000000000000000000000000000000000000000000000000000000000EB +:20C538000000000000000000000000000000000000000000000000000000000000000000E3 +:20C540000000000000000000000000000000000000000000000000000000000000000000DB +:20C548000000000000000000000000000000000000000000000000000000000000000000D3 +:20C550000000000000000000000000000000000000000000000000000000000000000000CB +:20C558000000000000000000000000000000000000000000000000000000000000000000C3 +:20C560000000000000000000000000000000000000000000000000000000000000000000BB +:20C568000000000000000000000000000000000000000000000000000000000000000000B3 +:20C570000000000000000000000000000000000000000000000000000000000000000000AB +:20C578000000000000000000000000000000000000000000000000000000000000000000A3 +:20C5800000000000000000000000000000000000000000000000000000000000000000009B +:20C58800000000000000000000000000000000000000000000000000000000000000000093 +:20C5900000000000000000000000000000000000000000000000000000000000000000008B +:20C59800000000000000000000000000000000000000000000000000000000000000000083 +:20C5A00000000000000000000000000000000000000000000000000000000000000000007B +:20C5A800000000000000000000000000000000000000000000000000000000000000000073 +:20C5B00000000000000000000000000000000000000000000000000000000000000000006B +:20C5B800000000000000000000000000000000000000000000000000000000000000000063 +:20C5C00000000000000000000000000000000000000000000000000000000000000000005B +:20C5C800000000000000000000000000000000000000000000000000000000000000000053 +:20C5D00000000000000000000000000000000000000000000000000000000000000000004B +:20C5D800000000000000000000000000000000000000000000000000000000000000000043 +:20C5E00000000000000000000000000000000000000000000000000000000000000000003B +:20C5E800000000000000000000000000000000000000000000000000000000000000000033 +:20C5F00000000000000000000000000000000000000000000000000000000000000000002B +:20C5F800000000000000000000000000000000000000000000000000000000000000000023 +:20C6000000000000000000000000000000000000000000000000000000000000000000001A +:20C60800000000000000000000000000000000000000000000000000000000000000000012 +:20C6100000000000000000000000000000000000000000000000000000000000000000000A +:20C61800000000000000000000000000000000000000000000000000000000000000000002 +:20C620000000000000000000000000000000000000000000000000000000000000000000FA +:20C628000000000000000000000000000000000000000000000000000000000000000000F2 +:20C630000000000000000000000000000000000000000000000000000000000000000000EA +:20C638000000000000000000000000000000000000000000000000000000000000000000E2 +:20C640000000000000000000000000000000000000000000000000000000000000000000DA +:20C648000000000000000000000000000000000000000000000000000000000000000000D2 +:20C650000000000000000000000000000000000000000000000000000000000000000000CA +:20C658000000000000000000000000000000000000000000000000000000000000000000C2 +:20C660000000000000000000000000000000000000000000000000000000000000000000BA +:20C668000000000000000000000000000000000000000000000000000000000000000000B2 +:20C670000000000000000000000000000000000000000000000000000000000000000000AA +:20C678000000000000000000000000000000000000000000000000000000000000000000A2 +:20C6800000000000000000000000000000000000000000000000000000000000000000009A +:20C68800000000000000000000000000000000000000000000000000000000000000000092 +:20C6900000000000000000000000000000000000000000000000000000000000000000008A +:20C69800000000000000000000000000000000000000000000000000000000000000000082 +:20C6A00000000000000000000000000000000000000000000000000000000000000000007A +:20C6A800000000000000000000000000000000000000000000000000000000000000000072 +:20C6B00000000000000000000000000000000000000000000000000000000000000000006A +:20C6B800000000000000000000000000000000000000000000000000000000000000000062 +:20C6C00000000000000000000000000000000000000000000000000000000000000000005A +:20C6C800000000000000000000000000000000000000000000000000000000000000000052 +:20C6D00000000000000000000000000000000000000000000000000000000000000000004A +:20C6D800000000000000000000000000000000000000000000000000000000000000000042 +:20C6E00000000000000000000000000000000000000000000000000000000000000000003A +:20C6E800000000000000000000000000000000000000000000000000000000000000000032 +:20C6F00000000000000000000000000000000000000000000000000000000000000000002A +:20C6F800000000000000000000000000000000000000000000000000000000000000000022 +:20C70000000000000000000000000000000000000000000000000000000000000000000019 +:20C70800000000000000000000000000000000000000000000000000000000000000000011 +:20C71000000000000000000000000000000000000000000000000000000000000000000009 +:20C71800000000000000000000000000000000000000000000000000000000000000000001 +:20C720000000000000000000000000000000000000000000000000000000000000000000F9 +:20C728000000000000000000000000000000000000000000000000000000000000000000F1 +:20C730000000000000000000000000000000000000000000000000000000000000000000E9 +:20C738000000000000000000000000000000000000000000000000000000000000000000E1 +:20C740000000000000000000000000000000000000000000000000000000000000000000D9 +:20C748000000000000000000000000000000000000000000000000000000000000000000D1 +:20C750000000000000000000000000000000000000000000000000000000000000000000C9 +:20C758000000000000000000000000000000000000000000000000000000000000000000C1 +:20C760000000000000000000000000000000000000000000000000000000000000000000B9 +:20C768000000000000000000000000000000000000000000000000000000000000000000B1 +:20C770000000000000000000000000000000000000000000000000000000000000000000A9 +:20C778000000000000000000000000000000000000000000000000000000000000000000A1 +:20C78000000000000000000000000000000000000000000000000000000000000000000099 +:20C78800000000000000000000000000000000000000000000000000000000000000000091 +:20C79000000000000000000000000000000000000000000000000000000000000000000089 +:20C79800000000000000000000000000000000000000000000000000000000000000000081 +:20C7A000000000000000000000000000000000000000000000000000000000000000000079 +:20C7A800000000000000000000000000000000000000000000000000000000000000000071 +:20C7B000000000000000000000000000000000000000000000000000000000000000000069 +:20C7B800000000000000000000000000000000000000000000000000000000000000000061 +:20C7C000000000000000000000000000000000000000000000000000000000000000000059 +:20C7C800000000000000000000000000000000000000000000000000000000000000000051 +:20C7D000000000000000000000000000000000000000000000000000000000000000000049 +:20C7D800000000000000000000000000000000000000000000000000000000000000000041 +:20C7E000000000000000000000000000000000000000000000000000000000000000000039 +:20C7E800000000000000000000000000000000000000000000000000000000000000000031 +:20C7F000000000000000000000000000000000000000000000000000000000000000000029 +:20C7F800000000000000000000000000000000000000000000000000000000000000000021 +:00000001FF diff --git a/software/DE2_115_ASM3_release/obj/default/.force_relink b/software/DE2_115_ASM3_release/obj/default/.force_relink new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/.force_relink diff --git a/software/DE2_115_ASM3_release/obj/default/LCD.d b/software/DE2_115_ASM3_release/obj/default/LCD.d new file mode 100644 index 0000000..2bf9553 --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/LCD.d @@ -0,0 +1,14 @@ +obj/default/LCD.o: LCD.c ../DE2_115_ASM3_release_bsp//HAL/inc/io.h \ + ../DE2_115_ASM3_release_bsp//HAL/inc/alt_types.h \ + ../DE2_115_ASM3_release_bsp/system.h \ + ../DE2_115_ASM3_release_bsp/linker.h LCD.h + +../DE2_115_ASM3_release_bsp//HAL/inc/io.h: + +../DE2_115_ASM3_release_bsp//HAL/inc/alt_types.h: + +../DE2_115_ASM3_release_bsp/system.h: + +../DE2_115_ASM3_release_bsp/linker.h: + +LCD.h: diff --git a/software/DE2_115_ASM3_release/obj/default/LCD.o b/software/DE2_115_ASM3_release/obj/default/LCD.o new file mode 100644 index 0000000..233bdd5 --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/LCD.o Binary files differ diff --git a/software/DE2_115_ASM3_release/obj/default/hello_world_small.d b/software/DE2_115_ASM3_release/obj/default/hello_world_small.d new file mode 100644 index 0000000..96f5344 --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/hello_world_small.d @@ -0,0 +1,27 @@ +obj/default/hello_world_small.o: hello_world_small.c \ + ../DE2_115_ASM3_release_bsp//HAL/inc/sys/alt_stdio.h \ + ../DE2_115_ASM3_release_bsp/system.h \ + ../DE2_115_ASM3_release_bsp/linker.h hex_out.h lcd_out.h sys_register.h \ + sys_memory.h inst_decoder.h input_int.h sys_debug.h sys_prog.h + +../DE2_115_ASM3_release_bsp//HAL/inc/sys/alt_stdio.h: + +../DE2_115_ASM3_release_bsp/system.h: + +../DE2_115_ASM3_release_bsp/linker.h: + +hex_out.h: + +lcd_out.h: + +sys_register.h: + +sys_memory.h: + +inst_decoder.h: + +input_int.h: + +sys_debug.h: + +sys_prog.h: diff --git a/software/DE2_115_ASM3_release/obj/default/hello_world_small.o b/software/DE2_115_ASM3_release/obj/default/hello_world_small.o new file mode 100644 index 0000000..cd9e916 --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/hello_world_small.o Binary files differ diff --git a/software/DE2_115_ASM3_release/obj/default/hex_encoder.d b/software/DE2_115_ASM3_release/obj/default/hex_encoder.d new file mode 100644 index 0000000..d8948cd --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/hex_encoder.d @@ -0,0 +1,9 @@ +obj/default/hex_encoder.o: hex_encoder.c hex_encoder.h \ + ../DE2_115_ASM3_release_bsp/system.h \ + ../DE2_115_ASM3_release_bsp/linker.h + +hex_encoder.h: + +../DE2_115_ASM3_release_bsp/system.h: + +../DE2_115_ASM3_release_bsp/linker.h: diff --git a/software/DE2_115_ASM3_release/obj/default/hex_encoder.o b/software/DE2_115_ASM3_release/obj/default/hex_encoder.o new file mode 100644 index 0000000..b2ed14f --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/hex_encoder.o Binary files differ diff --git a/software/DE2_115_ASM3_release/obj/default/hex_out.d b/software/DE2_115_ASM3_release/obj/default/hex_out.d new file mode 100644 index 0000000..bc37dd5 --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/hex_out.d @@ -0,0 +1,13 @@ +obj/default/hex_out.o: hex_out.c hex_out.h hex_encoder.h \ + ../DE2_115_ASM3_release_bsp/system.h \ + ../DE2_115_ASM3_release_bsp/linker.h sys_except.h + +hex_out.h: + +hex_encoder.h: + +../DE2_115_ASM3_release_bsp/system.h: + +../DE2_115_ASM3_release_bsp/linker.h: + +sys_except.h: diff --git a/software/DE2_115_ASM3_release/obj/default/hex_out.o b/software/DE2_115_ASM3_release/obj/default/hex_out.o new file mode 100644 index 0000000..7e85f03 --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/hex_out.o Binary files differ diff --git a/software/DE2_115_ASM3_release/obj/default/input_int.d b/software/DE2_115_ASM3_release/obj/default/input_int.d new file mode 100644 index 0000000..0288388 --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/input_int.d @@ -0,0 +1,11 @@ +obj/default/input_int.o: input_int.c input_int.h \ + ../DE2_115_ASM3_release_bsp/system.h \ + ../DE2_115_ASM3_release_bsp/linker.h sys_register.h + +input_int.h: + +../DE2_115_ASM3_release_bsp/system.h: + +../DE2_115_ASM3_release_bsp/linker.h: + +sys_register.h: diff --git a/software/DE2_115_ASM3_release/obj/default/input_int.o b/software/DE2_115_ASM3_release/obj/default/input_int.o new file mode 100644 index 0000000..3a9935b --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/input_int.o Binary files differ diff --git a/software/DE2_115_ASM3_release/obj/default/inst_decoder.d b/software/DE2_115_ASM3_release/obj/default/inst_decoder.d new file mode 100644 index 0000000..760a64b --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/inst_decoder.d @@ -0,0 +1,12 @@ +obj/default/inst_decoder.o: inst_decoder.c inst_decoder.h sys_register.h \ + sys_memory.h hex_out.h sys_prog.h + +inst_decoder.h: + +sys_register.h: + +sys_memory.h: + +hex_out.h: + +sys_prog.h: diff --git a/software/DE2_115_ASM3_release/obj/default/inst_decoder.o b/software/DE2_115_ASM3_release/obj/default/inst_decoder.o new file mode 100644 index 0000000..176e2c4 --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/inst_decoder.o Binary files differ diff --git a/software/DE2_115_ASM3_release/obj/default/lcd_out.d b/software/DE2_115_ASM3_release/obj/default/lcd_out.d new file mode 100644 index 0000000..54a828b --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/lcd_out.d @@ -0,0 +1,11 @@ +obj/default/lcd_out.o: lcd_out.c lcd_out.h \ + ../DE2_115_ASM3_release_bsp/system.h \ + ../DE2_115_ASM3_release_bsp/linker.h LCD.h + +lcd_out.h: + +../DE2_115_ASM3_release_bsp/system.h: + +../DE2_115_ASM3_release_bsp/linker.h: + +LCD.h: diff --git a/software/DE2_115_ASM3_release/obj/default/lcd_out.o b/software/DE2_115_ASM3_release/obj/default/lcd_out.o new file mode 100644 index 0000000..e0b65ba --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/lcd_out.o Binary files differ diff --git a/software/DE2_115_ASM3_release/obj/default/sys_debug.d b/software/DE2_115_ASM3_release/obj/default/sys_debug.d new file mode 100644 index 0000000..2d0d0ae --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/sys_debug.d @@ -0,0 +1,15 @@ +obj/default/sys_debug.o: sys_debug.c sys_debug.h inst_decoder.h \ + sys_register.h lcd_out.h ../DE2_115_ASM3_release_bsp/system.h \ + ../DE2_115_ASM3_release_bsp/linker.h + +sys_debug.h: + +inst_decoder.h: + +sys_register.h: + +lcd_out.h: + +../DE2_115_ASM3_release_bsp/system.h: + +../DE2_115_ASM3_release_bsp/linker.h: diff --git a/software/DE2_115_ASM3_release/obj/default/sys_debug.o b/software/DE2_115_ASM3_release/obj/default/sys_debug.o new file mode 100644 index 0000000..ee2f77a --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/sys_debug.o Binary files differ diff --git a/software/DE2_115_ASM3_release/obj/default/sys_except.d b/software/DE2_115_ASM3_release/obj/default/sys_except.d new file mode 100644 index 0000000..726749a --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/sys_except.d @@ -0,0 +1,9 @@ +obj/default/sys_except.o: sys_except.c \ + ../DE2_115_ASM3_release_bsp/system.h \ + ../DE2_115_ASM3_release_bsp/linker.h hex_out.h + +../DE2_115_ASM3_release_bsp/system.h: + +../DE2_115_ASM3_release_bsp/linker.h: + +hex_out.h: diff --git a/software/DE2_115_ASM3_release/obj/default/sys_except.o b/software/DE2_115_ASM3_release/obj/default/sys_except.o new file mode 100644 index 0000000..e4bdb77 --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/sys_except.o Binary files differ diff --git a/software/DE2_115_ASM3_release/obj/default/sys_memory.d b/software/DE2_115_ASM3_release/obj/default/sys_memory.d new file mode 100644 index 0000000..32a357c --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/sys_memory.d @@ -0,0 +1,16 @@ +obj/default/sys_memory.o: sys_memory.c \ + ../DE2_115_ASM3_release_bsp/system.h \ + ../DE2_115_ASM3_release_bsp/linker.h sys_memory.h sys_register.h \ + inst_decoder.h sys_except.h + +../DE2_115_ASM3_release_bsp/system.h: + +../DE2_115_ASM3_release_bsp/linker.h: + +sys_memory.h: + +sys_register.h: + +inst_decoder.h: + +sys_except.h: diff --git a/software/DE2_115_ASM3_release/obj/default/sys_memory.o b/software/DE2_115_ASM3_release/obj/default/sys_memory.o new file mode 100644 index 0000000..8c3125a --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/sys_memory.o Binary files differ diff --git a/software/DE2_115_ASM3_release/obj/default/sys_prog.d b/software/DE2_115_ASM3_release/obj/default/sys_prog.d new file mode 100644 index 0000000..335afca --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/sys_prog.d @@ -0,0 +1,22 @@ +obj/default/sys_prog.o: sys_prog.c sys_prog.h sys_debug.h inst_decoder.h \ + sys_register.h sys_memory.h hex_out.h lcd_out.h \ + ../DE2_115_ASM3_release_bsp/system.h \ + ../DE2_115_ASM3_release_bsp/linker.h + +sys_prog.h: + +sys_debug.h: + +inst_decoder.h: + +sys_register.h: + +sys_memory.h: + +hex_out.h: + +lcd_out.h: + +../DE2_115_ASM3_release_bsp/system.h: + +../DE2_115_ASM3_release_bsp/linker.h: diff --git a/software/DE2_115_ASM3_release/obj/default/sys_prog.o b/software/DE2_115_ASM3_release/obj/default/sys_prog.o new file mode 100644 index 0000000..3d7b999 --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/sys_prog.o Binary files differ diff --git a/software/DE2_115_ASM3_release/obj/default/sys_register.d b/software/DE2_115_ASM3_release/obj/default/sys_register.d new file mode 100644 index 0000000..42e349a --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/sys_register.d @@ -0,0 +1,3 @@ +obj/default/sys_register.o: sys_register.c sys_register.h + +sys_register.h: diff --git a/software/DE2_115_ASM3_release/obj/default/sys_register.o b/software/DE2_115_ASM3_release/obj/default/sys_register.o new file mode 100644 index 0000000..9e9919c --- /dev/null +++ b/software/DE2_115_ASM3_release/obj/default/sys_register.o Binary files differ diff --git a/software/DE2_115_ASM3_release/readme.txt b/software/DE2_115_ASM3_release/readme.txt new file mode 100644 index 0000000..a949aa6 --- /dev/null +++ b/software/DE2_115_ASM3_release/readme.txt @@ -0,0 +1,26 @@ +Readme - Hello World Software Example + +DESCRIPTION: +Simple program that prints "Hello from Nios II" + +The memory footprint of this hosted application is intended to be small (under 100 kbytes) by default +using a standard reference deisgn. + +For an even smaller, reduced footprint version of this template, and an explanation of how +to reduce the memory footprint for a given application, see the +"small_hello_world" template. + + +PERIPHERALS USED: +This example exercises the following peripherals: +- STDOUT device (UART or JTAG UART) + +SOFTWARE SOURCE FILES: +This example includes the following software source files: +- hello_world.c: Everyone needs a Hello World program, right? + +BOARD/HOST REQUIREMENTS: +This example requires only a JTAG connection with a Nios Development board. If +the host communication settings are changed from JTAG UART (default) to use a +conventional UART, a serial cable between board DB-9 connector and the host is +required. diff --git a/software/DE2_115_ASM3_release/sys_debug.c b/software/DE2_115_ASM3_release/sys_debug.c new file mode 100644 index 0000000..190b908 --- /dev/null +++ b/software/DE2_115_ASM3_release/sys_debug.c @@ -0,0 +1,121 @@ +/* + * sys_debug.c + * + * Created on: 2016/12/02 + * Author: takayun + */ + +#include "sys_debug.h" +#include +#include "lcd_out.h" +#include + +void display_inst(struct InstRec inst, unsigned int pc) { + char inst_name[INST_NAME_ARRAY_LEN]; // ���ߖ� + char reg_name[REG_NAME_ARRAY_LEN]; // ���W�X�^�� + char buf[17]; + + // ���߂̖��O�̎擾 + convertInstName(inst_name, inst.inst); + // ���W�X�^�̖��O�̎擾 + convertRegName(reg_name, inst.regi); + + lcd_caret_reset(); + sprintf(buf, "PC:0x%02x -> %4s",pc,inst_name); + lcd_print(buf); + lcd_caret_reset2(); + sprintf(buf, "REG:%3s,MEM:0x%1x",reg_name,inst.memi); + lcd_print(buf); +} + +void display_mem(unsigned char memi, char memv) { + char buf[17]; + + lcd_caret_reset(); + sprintf(buf, "MEM:0x%1x",memi); + lcd_print(buf); + lcd_caret_reset2(); + sprintf(buf, "value:%d",memv); + lcd_print(buf); +} + +void convertRegName(char reg_name[REG_NAME_ARRAY_LEN], enum Register reg_code) { + switch(reg_code) { + case Szero: + sprintf(reg_name, STRING_REG_ZERO); + break; + case Spc: + sprintf(reg_name, STRING_REG_PC); + break; + case Ssp: + sprintf(reg_name, STRING_REG_SP); + break; + case Sgp0: + sprintf(reg_name, STRING_REG_GP0); + break; + case Sgp1: + sprintf(reg_name, STRING_REG_GP1); + break; + case Sacc: + sprintf(reg_name, STRING_REG_ACC); + break; + case Sflg: + sprintf(reg_name, STRING_REG_FLG); + break; + default: + sprintf(reg_name, "non"); + break; + } +} + + +void convertInstName(char inst_name[INST_NAME_ARRAY_LEN], unsigned char inst_code) { + switch(inst_code) { + case INST_END: + sprintf(inst_name, STRING_INST_END); + break; + case INST_JUMP: + sprintf(inst_name, STRING_INST_JUMP); + break; + case INST_OUTPUT: + sprintf(inst_name, STRING_INST_OUTPUT); + break; + case INST_LOAD: + sprintf(inst_name, STRING_INST_LOAD); + break; + case INST_STORE: + sprintf(inst_name, STRING_INST_STORE); + break; + case INST_DELAY: + sprintf(inst_name, STRING_INST_DELAY); + break; + case INST_ADD: + sprintf(inst_name, STRING_INST_ADD); + break; + case INST_SUB: + sprintf(inst_name, STRING_INST_SUB); + break; + case INST_COMP: + sprintf(inst_name, STRING_INST_COMP); + break; + case INST_JEQ: + sprintf(inst_name, STRING_INST_JEQ); + break; + case INST_JNE: + sprintf(inst_name, STRING_INST_JNE); + break; + case INST_JIEQ: + sprintf(inst_name, STRING_INST_JIEQ); + break; + case INST_JINE: + sprintf(inst_name, STRING_INST_JINE); + break; + default: + sprintf(inst_name, "NoOp"); + break; + } +} + +void delay10ms(unsigned int s) { + usleep(s*10000); +} diff --git a/software/DE2_115_ASM3_release/sys_debug.h b/software/DE2_115_ASM3_release/sys_debug.h new file mode 100644 index 0000000..bb1fb1c --- /dev/null +++ b/software/DE2_115_ASM3_release/sys_debug.h @@ -0,0 +1,62 @@ +/* + * sys_debug.h + * + * Created on: 2016/12/02 + * Author: takayun + */ + +#ifndef SYS_DEBUG_H_ +#define SYS_DEBUG_H_ + +#include "inst_decoder.h" +#include "sys_register.h" + +/************************************************** + * Defines + **************************************************/ + +#define INST_NAME_ARRAY_LEN 5 + +#define STRING_INST_END "END" +#define STRING_INST_JUMP "JUMP" +#define STRING_INST_OUTPUT "OUT" +#define STRING_INST_LOAD "LOAD" +#define STRING_INST_STORE "STOR" +#define STRING_INST_DELAY "DELY" +#define STRING_INST_ADD "ADD" +#define STRING_INST_COMP "COMP" +#define STRING_INST_JEQ "JEQ" +#define STRING_INST_JNE "JNE" +#define STRING_INST_JIEQ "JIEQ" +#define STRING_INST_JINE "JINE" +#define STRING_INST_SUB "SUB" + + +#define REG_NAME_ARRAY_LEN 4 + +#define STRING_REG_ZERO "ZE" +#define STRING_REG_PC "PC" +#define STRING_REG_SP "SP" +#define STRING_REG_GP0 "GP0" +#define STRING_REG_GP1 "GP1" +#define STRING_REG_ACC "ACC" +#define STRING_REG_FLG "FLG" + +/************************************************** + * Variables + **************************************************/ + + +/************************************************** + * Functions + **************************************************/ + +void convertInstName(char inst_name[INST_NAME_ARRAY_LEN], unsigned char inst_code); +void convertRegName(char reg_name[REG_NAME_ARRAY_LEN], enum Register reg_code); + +void display_inst(struct InstRec inst, unsigned int pc); +void display_mem(unsigned char memi, char memv); + +void delay10ms(unsigned int s); + +#endif /* SYS_DEBUG_H_ */ diff --git a/software/DE2_115_ASM3_release/sys_except.c b/software/DE2_115_ASM3_release/sys_except.c new file mode 100644 index 0000000..82420a4 --- /dev/null +++ b/software/DE2_115_ASM3_release/sys_except.c @@ -0,0 +1,14 @@ +/* + * sys_except.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "system.h" +#include "hex_out.h" + +void panic() { + clear_block(HEX0_3); + print_block("err ", 4, HEX0_3); +} + diff --git a/software/DE2_115_ASM3_release/sys_except.h b/software/DE2_115_ASM3_release/sys_except.h new file mode 100644 index 0000000..fa6f420 --- /dev/null +++ b/software/DE2_115_ASM3_release/sys_except.h @@ -0,0 +1,13 @@ +/* + * sys_except.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SYSTEM_H_ +#define SYSTEM_H_ + +void panic(); + +#endif /* SYSTEM_H_ */ diff --git a/software/DE2_115_ASM3_release/sys_memory.c b/software/DE2_115_ASM3_release/sys_memory.c new file mode 100644 index 0000000..71b9d69 --- /dev/null +++ b/software/DE2_115_ASM3_release/sys_memory.c @@ -0,0 +1,59 @@ +/* + * sys_memory.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "system.h" +#include "sys_memory.h" +#include "sys_register.h" +#include "sys_except.h" + +/************************************************** + * Public + **************************************************/ + +// �����������̂ǂ̃�������(0 < global_current_memory < MEMS_COUNT) +unsigned int global_current_memory = 0; + +/************************************************** + * Private + **************************************************/ + +// �����������̕ϐ� +static char memory[MEMS_COUNT][MEM_SIZE]; + +static struct InstRec inst_memory[MEMS_COUNT][MEM_SIZE]; + + +/************************************************** + * Impl + **************************************************/ + +void memory_init() { + int i, j; + for (i = 0; i < MEMS_COUNT; i++) + for (j = 0; j < MEM_SIZE; j++) { + memory[i][j] = 0; + } +} + +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec){ + inst_memory[global_current_memory][mem_addr] = inst_rec; +} +struct InstRec inst_memory_load(unsigned int mem_addr){ + return inst_memory[global_current_memory][mem_addr]; +} + +char memory_store(unsigned int mem_addr, enum Register reg) { + if (!(mem_addr < MEM_SIZE)) panic(); + memory[global_current_memory][mem_addr] = global_registers[reg]; + return memory[global_current_memory][mem_addr]; +} + +char memory_load(unsigned int mem_addr, enum Register reg) { + if (!(mem_addr < MEM_SIZE)) panic(); + global_registers[reg] = memory[global_current_memory][mem_addr]; + return global_registers[reg]; +} + diff --git a/software/DE2_115_ASM3_release/sys_memory.h b/software/DE2_115_ASM3_release/sys_memory.h new file mode 100644 index 0000000..f67c9a4 --- /dev/null +++ b/software/DE2_115_ASM3_release/sys_memory.h @@ -0,0 +1,67 @@ +/* + * sys_memory.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SYS_MEMORY_H_ +#define SYS_MEMORY_H_ + +#include "sys_register.h" +#include "inst_decoder.h" + +/************************************************** + * Defines + **************************************************/ + +// �������̐� +#define MEMS_COUNT 16 + +// 1�������̃T�C�Y +#define MEM_SIZE 16 + +/************************************************** + * Variables + **************************************************/ + +extern unsigned int global_current_memory; + +/************************************************** + * Functions + **************************************************/ + +/* Function: memory_init + * Sammary: + * ������������������(All 0) */ +void memory_init(); + +/* ���ߗp�������ɖ��߂̃X�g�A&���[�h */ + +/* Function: memory_store -> char + * Sammary: + * �������̎w��Ԓn�Ɏw�肵�����W�X�^����l���i�[���� + * Return: + * �������Ɋi�[���ꂽ�l */ +void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec); +struct InstRec inst_memory_load(unsigned int mem_addr); + + +/* ������-���W�X�^�Ԃ̑��� */ + +/* Function: memory_store -> char + * Sammary: + * �������̎w��Ԓn�Ɏw�肵�����W�X�^����l���i�[���� + * Return: + * �������Ɋi�[���ꂽ�l */ +char memory_store(unsigned int mem_addr, enum Register reg); + +/* Function: memory_store -> char + * Sammary: + * �w�肵�����W�X�^�Ƀ������̎w��Ԓn����l���i�[���� + * Return: + * ���W�X�^�Ɋi�[���ꂽ�l */ +char memory_load(unsigned int mem_addr, enum Register reg); + + +#endif /* SYS_MEMORY_H_ */ diff --git a/software/DE2_115_ASM3_release/sys_prog.c b/software/DE2_115_ASM3_release/sys_prog.c new file mode 100644 index 0000000..6530e74 --- /dev/null +++ b/software/DE2_115_ASM3_release/sys_prog.c @@ -0,0 +1,84 @@ +/* + * sys_prog.c + * + * Created on: 2016/12/15 + * Author: takayun + */ + +#include "sys_prog.h" +#include +#include "sys_debug.h" +#include "sys_register.h" +#include "sys_memory.h" +#include "hex_out.h" +#include "lcd_out.h" + +unsigned int inc_pc() { + if ((unsigned char)global_registers[Spc]+1 < MEM_SIZE*MEMS_COUNT - global_current_memory*MEM_SIZE ) { + global_registers[Spc] = (unsigned char)global_registers[Spc] + 1; + } else { + global_registers[Spc] = 0; + } + return 0; +} +unsigned int add_pc(unsigned int cnt) { + int i; + for (i = 0; i < cnt; i++) inc_pc(); + return 0; +} +unsigned int set_pc(unsigned int cnt) { + global_registers[Spc]=cnt; + return 0; +} +unsigned int get_pc() { + if ((unsigned char)global_registers[Spc] < MEM_SIZE*MEMS_COUNT - global_current_memory*MEM_SIZE ) { + return (unsigned int)((unsigned char)global_registers[Spc]); + } else { + return 0; + } +} + +enum RunMode run_proc(enum RunMode mode) { + volatile struct InstRec inst_rec; + + if (RUN_INIT == mode) { + lcd_caret_reset(); + lcd_print("Run...now"); + + global_registers[Spc] = 0; + clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); + + // �v���O�������s���֑J�� + return RUN_PROC; + } + + if (RUN_PROC == mode) { + // ���߃t�F�b�` + inst_rec = inst_fetch(); + // ���߃f�R�[�h���s + inst_decode(inst_rec); + // pc�\�� + { + char buf[5]; + sprintf(buf, "%02x", (unsigned char)global_registers[Spc]); + print_block("pc", 2, HEX6_7); + print_block(buf, 2, HEX4_5); + } + + // �f�o�b�N�p + if ( global_registers[Ssw_run] ) delay10ms(100U); + + // �v���O�����I������ + if (inst_rec.inst != INST_END) return RUN_PROC; + return RUN_TERM; + } + + if (RUN_TERM == mode) { + lcd_caret_reset(); + lcd_print("Run...Exit"); + return RUN_STOP; + } + + // Default + return RUN_STOP; +} diff --git a/software/DE2_115_ASM3_release/sys_prog.h b/software/DE2_115_ASM3_release/sys_prog.h new file mode 100644 index 0000000..b112e4c --- /dev/null +++ b/software/DE2_115_ASM3_release/sys_prog.h @@ -0,0 +1,34 @@ +/* + * sys_prog.h + * + * Created on: 2016/12/15 + * Author: takayun + */ + +#ifndef SYS_PROG_H_ +#define SYS_PROG_H_ + +/************************************************** + * Defines + **************************************************/ + +// �v���O�������s��� +enum RunMode { RUN_STOP, RUN_INIT, RUN_PROC, RUN_TERM }; + +/************************************************** + * Variables + **************************************************/ + +/************************************************** + * Functions + **************************************************/ + +// ���S��PC�̃J�E���g�A�b�v���s�� +unsigned int inc_pc(); +unsigned int add_pc(unsigned int); +unsigned int set_pc(unsigned int); +unsigned int get_pc(); + +enum RunMode run_proc(enum RunMode mode); + +#endif /* SYS_PROG_H_ */ diff --git a/software/DE2_115_ASM3_release/sys_register.c b/software/DE2_115_ASM3_release/sys_register.c new file mode 100644 index 0000000..26ba99b --- /dev/null +++ b/software/DE2_115_ASM3_release/sys_register.c @@ -0,0 +1,17 @@ +/* + * sys_register.c + * + * Created on: 2016/11/24 + * Author: takayun + */ +#include "sys_register.h" + +char global_registers[REG_MAX_COUNT]; + +void registers_init() { + int i; + for (i = 0; i < REG_MAX_COUNT; i++) global_registers[i] = 0; +} + + + diff --git a/software/DE2_115_ASM3_release/sys_register.h b/software/DE2_115_ASM3_release/sys_register.h new file mode 100644 index 0000000..2603f26 --- /dev/null +++ b/software/DE2_115_ASM3_release/sys_register.h @@ -0,0 +1,54 @@ +/* + * sys_register.h + * + * Created on: 2016/11/24 + * Author: takayun + */ + +#ifndef SYS_REGISTER_H_ +#define SYS_REGISTER_H_ + +/************************************************** + * Defines + **************************************************/ + +// ���W�X�^�̒�` +enum Register { + /* �ʏ�̃��W�X�^ */ + Szero, //�[�����W�X�^ + Spc, //�v���O�����J�E���^ + Ssp, //�X�^�b�N�|�C���^ + Sgp0, //�ėp���W�X�^0 + Sgp1, //�ėp���W�X�^1 + Sacc, //�A�L�������[�^ + Sflg, //�t���O���W�X�^ + /* �X�C�b�`�ǂݏo���p���W�X�^ */ + Ssw_data, //�f�[�^(8bit) + Ssw_inst, //����(4bit) + Ssw_regi, //���W�X�^�ԍ�(4bit) + Ssw_memi, //�������Ԓn(4bit) + Ssw_psel, //�v���O�����Z���N�^(4bit) + Ssw_rw, //�ǂݏ������[�h(1bit) + Ssw_run, //���s���[�h(1bit) + /* 7�Z�O�p���W�X�^ */ + Sseg, + + /* �z��錾�p */ + REG_MAX_COUNT +}; + +/************************************************** + * Variables + **************************************************/ + +// ���W�X�^�p�̕ϐ� +extern char global_registers[REG_MAX_COUNT]; + +/************************************************** + * Functions + **************************************************/ + +void registers_init(); + + +#endif /* SYS_REGISTER_H_ */ diff --git a/software/DE2_115_ASM3_release_bsp/.cproject b/software/DE2_115_ASM3_release_bsp/.cproject new file mode 100644 index 0000000..180f8e0 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/.cproject @@ -0,0 +1,481 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/software/DE2_115_ASM3_release_bsp/.project b/software/DE2_115_ASM3_release_bsp/.project new file mode 100644 index 0000000..601fad7 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/.project @@ -0,0 +1,85 @@ + + + DE2_115_ASM3_release_bsp + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + ?name? + + + + org.eclipse.cdt.make.core.append_environment + true + + + org.eclipse.cdt.make.core.autoBuildTarget + all + + + org.eclipse.cdt.make.core.buildArguments + + + + org.eclipse.cdt.make.core.buildCommand + make + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc://DE2_115_ASM3_release_bsp} + + + org.eclipse.cdt.make.core.cleanBuildTarget + clean + + + org.eclipse.cdt.make.core.contents + org.eclipse.cdt.make.core.activeConfigSettings + + + org.eclipse.cdt.make.core.enableAutoBuild + false + + + org.eclipse.cdt.make.core.enableCleanBuild + true + + + org.eclipse.cdt.make.core.enableFullBuild + true + + + org.eclipse.cdt.make.core.fullBuildTarget + all + + + org.eclipse.cdt.make.core.stopOnError + true + + + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + com.altera.sbtgui.project.SBTGUINature + com.altera.sbtgui.project.SBTGUIBspNature + + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/alt_types.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/alt_types.h new file mode 100644 index 0000000..8eb438f --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/alt_types.h @@ -0,0 +1,54 @@ +#ifndef __ALT_TYPES_H__ +#define __ALT_TYPES_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Don't declare these typedefs if this file is included by assembly source. + */ +#ifndef ALT_ASM_SRC +typedef signed char alt_8; +typedef unsigned char alt_u8; +typedef signed short alt_16; +typedef unsigned short alt_u16; +typedef signed long alt_32; +typedef unsigned long alt_u32; +typedef long long alt_64; +typedef unsigned long long alt_u64; +#endif + +#define ALT_INLINE __inline__ +#define ALT_ALWAYS_INLINE __attribute__ ((always_inline)) +#define ALT_WEAK __attribute__((weak)) + +#endif /* __ALT_TYPES_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/altera_nios2_qsys_irq.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/altera_nios2_qsys_irq.h new file mode 100644 index 0000000..910c91c --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/altera_nios2_qsys_irq.h @@ -0,0 +1,80 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * Support for the Nios II internal interrupt controller. + */ + +#ifndef __ALT_NIOS2_QSYS_IRQ_H__ +#define __ALT_NIOS2_QSYS_IRQ_H__ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The macro ALTERA_NIOS2_IRQ_INSTANCE is used by the alt_irq_init() + * function in the auto-generated file alt_sys_init.c to create an + * instance of this interrupt controller device driver state if this + * module contains an interrupt controller. + * Only one instance of a Nios II is allowed so this macro is just empty. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INSTANCE(name, state) + +/* + * altera_nios2_irq_init() is called by the auto-generated function + * alt_irq_init() once for the Nios II if it contains an interrupt controller. + * The altera_nios2_irq_init() routine is called using the + * ALTERA_NIOS2_IRQ_INIT macro given below. + * + * This function initializes the internal interrupt controller + * so is not called if the Nios II contains an external interrupt + * controller port (because the internal interrupt controller + * is removed if this port is present). + */ + +extern void altera_nios2_qsys_irq_init( void ); + +/* + * The macro ALTERA_NIOS2_IRQ_INIT is used by the alt_irq_init() routine + * in the auto-generated file alt_sys_init.c to initialize an instance + * of the interrupt controller device driver state. + */ + +#define ALTERA_NIOS2_QSYS_IRQ_INIT(name, state) altera_nios2_qsys_irq_init() + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_NIOS2_QSYS_IRQ_H__ */ + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/io.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/io.h new file mode 100644 index 0000000..867e87d --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/io.h @@ -0,0 +1,81 @@ +#ifndef __IO_H__ +#define __IO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* IO Header file for Nios II Toolchain */ + +#include "alt_types.h" +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#ifndef SYSTEM_BUS_WIDTH +#error SYSTEM_BUS_WIDTH undefined +#endif + +/* Dynamic bus access functions */ + +#define __IO_CALC_ADDRESS_DYNAMIC(BASE, OFFSET) \ + ((void *)(((alt_u8*)BASE) + (OFFSET))) + +#define IORD_32DIRECT(BASE, OFFSET) \ + __builtin_ldwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_16DIRECT(BASE, OFFSET) \ + __builtin_ldhuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) +#define IORD_8DIRECT(BASE, OFFSET) \ + __builtin_ldbuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) + +#define IOWR_32DIRECT(BASE, OFFSET, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_16DIRECT(BASE, OFFSET, DATA) \ + __builtin_sthio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) +#define IOWR_8DIRECT(BASE, OFFSET, DATA) \ + __builtin_stbio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) + +/* Native bus access functions */ + +#define __IO_CALC_ADDRESS_NATIVE(BASE, REGNUM) \ + ((void *)(((alt_u8*)BASE) + ((REGNUM) * (SYSTEM_BUS_WIDTH/8)))) + +#define IORD(BASE, REGNUM) \ + __builtin_ldwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM))) +#define IOWR(BASE, REGNUM, DATA) \ + __builtin_stwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM)), (DATA)) + +#ifdef __cplusplus +} +#endif + +#endif /* __IO_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/nios2.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/nios2.h new file mode 100644 index 0000000..eec4e35 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/nios2.h @@ -0,0 +1,230 @@ +#ifndef __NIOS2_H__ +#define __NIOS2_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This header provides processor specific macros for accessing the Nios2 + * control registers. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros for accessing selected processor registers + */ + +#define NIOS2_READ_ET(et) \ + do { __asm ("mov %0, et" : "=r" (et) ); } while (0) + +#define NIOS2_WRITE_ET(et) \ + do { __asm volatile ("mov et, %z0" : : "rM" (et)); } while (0) + +#define NIOS2_READ_SP(sp) \ + do { __asm ("mov %0, sp" : "=r" (sp) ); } while (0) + +/* + * Macros for useful processor instructions + */ + +#define NIOS2_BREAK() \ + do { __asm volatile ("break"); } while (0) + +#define NIOS2_REPORT_STACK_OVERFLOW() \ + do { __asm volatile("break 3"); } while (0) + +/* + * Macros for accessing the control registers. + */ + +#define NIOS2_READ_STATUS(dest) \ + do { dest = __builtin_rdctl(0); } while (0) + +#define NIOS2_WRITE_STATUS(src) \ + do { __builtin_wrctl(0, src); } while (0) + +#define NIOS2_READ_ESTATUS(dest) \ + do { dest = __builtin_rdctl(1); } while (0) + +#define NIOS2_READ_BSTATUS(dest) \ + do { dest = __builtin_rdctl(2); } while (0) + +#define NIOS2_READ_IENABLE(dest) \ + do { dest = __builtin_rdctl(3); } while (0) + +#define NIOS2_WRITE_IENABLE(src) \ + do { __builtin_wrctl(3, src); } while (0) + +#define NIOS2_READ_IPENDING(dest) \ + do { dest = __builtin_rdctl(4); } while (0) + +#define NIOS2_READ_CPUID(dest) \ + do { dest = __builtin_rdctl(5); } while (0) + + +/* + * Macros for accessing extra exception registers. These + * are always enabled wit the MPU or MMU, and optionally + * with other advanced exception types/ + */ +#define NIOS2_READ_EXCEPTION(dest) \ + do { dest = __builtin_rdctl(7); } while (0) + +#define NIOS2_READ_BADADDR(dest) \ + do { dest = __builtin_rdctl(12); } while (0) + + +/* + * Macros for accessing control registers for MPU + * operation. These should not be used unless the + * MPU is enabled. + * + * The config register may be augmented for future + * enhancements. For now, only MPU support is provided. + */ +/* Config register */ +#define NIOS2_WRITE_CONFIG(src) \ + do { __builtin_wrctl(13, src); } while (0) + +#define NIOS2_READ_CONFIG(dest) \ + do { dest = __builtin_rdctl(13); } while (0) + +/* MPU Base Address Register */ +#define NIOS2_WRITE_MPUBASE(src) \ + do { __builtin_wrctl(14, src); } while (0) + +#define NIOS2_READ_MPUBASE(dest) \ + do { dest = __builtin_rdctl(14); } while (0) + +/* MPU Access Register */ +#define NIOS2_WRITE_MPUACC(src) \ + do { __builtin_wrctl(15, src); } while (0) + +#define NIOS2_READ_MPUACC(dest) \ + do { dest = __builtin_rdctl(15); } while (0) + + +/* + * Nios II control registers that are always present + */ +#define NIOS2_STATUS status +#define NIOS2_ESTATUS estatus +#define NIOS2_BSTATUS bstatus +#define NIOS2_IENABLE ienable +#define NIOS2_IPENDING ipending +#define NIOS2_CPUID cpuid + +/* + * STATUS, BSTATUS, ESTATUS, and SSTATUS fields. + * The presence of fields is a function of the Nios II configuration. + */ +#define NIOS2_STATUS_PIE_MSK (0x00000001) +#define NIOS2_STATUS_PIE_OFST (0) +#define NIOS2_STATUS_U_MSK (0x00000002) +#define NIOS2_STATUS_U_OFST (1) +#define NIOS2_STATUS_EH_MSK (0x00000004) +#define NIOS2_STATUS_EH_OFST (2) +#define NIOS2_STATUS_IH_MSK (0x00000008) +#define NIOS2_STATUS_IH_OFST (3) +#define NIOS2_STATUS_IL_MSK (0x000003f0) +#define NIOS2_STATUS_IL_OFST (4) +#define NIOS2_STATUS_CRS_MSK (0x0000fc00) +#define NIOS2_STATUS_CRS_OFST (10) +#define NIOS2_STATUS_PRS_MSK (0x003f0000) +#define NIOS2_STATUS_PRS_OFST (16) +#define NIOS2_STATUS_NMI_MSK (0x00400000) +#define NIOS2_STATUS_NMI_OFST (22) +#define NIOS2_STATUS_RSIE_MSK (0x00800000) +#define NIOS2_STATUS_RSIE_OFST (23) +#define NIOS2_STATUS_SRS_MSK (0x80000000) +#define NIOS2_STATUS_SRS_OFST (31) + +/* + * Bit masks & offsets available with extra exceptions support + */ + +/* Exception register */ +#define NIOS2_EXCEPTION_REG_CAUSE_MASK (0x0000007c) +#define NIOS2_EXCEPTION_REG_CAUSE_OFST (2) + +/* + * Bit masks & offsets for MPU support + * + * All bit-masks are expressed relative to the position + * of the data with a register. To read data that is LSB- + * aligned, the register read data should be masked, then + * right-shifted by the designated "OFST" macro value. The + * opposite should be used for register writes when starting + * with LSB-aligned data. + */ + +/* Config register */ +#define NIOS2_CONFIG_REG_PE_MASK (0x00000001) +#define NIOS2_CONFIG_REG_PE_OFST (0) +#define NIOS2_CONFIG_REG_ANI_MASK (0x00000002) +#define NIOS2_CONFIG_REG_ANI_OFST (1) + +/* MPU Base Address Register */ +#define NIOS2_MPUBASE_D_MASK (0x00000001) +#define NIOS2_MPUBASE_D_OFST (0) +#define NIOS2_MPUBASE_INDEX_MASK (0x0000003e) +#define NIOS2_MPUBASE_INDEX_OFST (1) +#define NIOS2_MPUBASE_BASE_ADDR_MASK (0xffffffc0) +#define NIOS2_MPUBASE_BASE_ADDR_OFST (6) + +/* MPU Access Register */ +#define NIOS2_MPUACC_LIMIT_MASK (0xffffffc0) +#define NIOS2_MPUACC_LIMIT_OFST (6) +#define NIOS2_MPUACC_MASK_MASK (0xffffffc0) +#define NIOS2_MPUACC_MASK_OFST (6) +#define NIOS2_MPUACC_C_MASK (0x00000020) +#define NIOS2_MPUACC_C_OFST (5) +#define NIOS2_MPUACC_PERM_MASK (0x0000001c) +#define NIOS2_MPUACC_PERM_OFST (2) +#define NIOS2_MPUACC_RD_MASK (0x00000002) +#define NIOS2_MPUACC_RD_OFST (1) +#define NIOS2_MPUACC_WR_MASK (0x00000001) +#define NIOS2_MPUACC_WR_OFST (0) + +/* + * Number of available IRQs in internal interrupt controller. + */ +#define NIOS2_NIRQ 32 + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __NIOS2_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/os/alt_flag.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/os/alt_flag.h new file mode 100644 index 0000000..86493c2 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/os/alt_flag.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLAG_H__ +#define __ALT_FLAG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * uc/OS-II style event flags. These macros can be used in both a uC/OS-II based + * environment, and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_FLAG_GRP - Create a flag group instance. + * ALT_EXTERN_FLAG_GRP - Create a reference to an external flag group instance. + * ALT_STATIC_FLAG_GRP - Create a static flag group instance. + * ALT_FLAG_CREATE - Initialise a flag group. + * ALT_FLAG_PEND - Pend on a flag group. + * ALT_FLAG_POST - Set a flag condition. + + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_FLAG_GRP, + * ALT_EXTERN_FLAG_GRP, and ALT_STATIC_FLAG_GRP. In these three cases the + * semi-colon is included in the macro definition; so, for example, you should + * use: + * + * ALT_FLAG_GRP(mygroup) + * + * not: + * + * ALT_FLAG_GRP(mygroup); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_FLAG_GRP(group) +#define ALT_EXTERN_FLAG_GRP(group) +#define ALT_STATIC_FLAG_GRP(group) + +#define ALT_FLAG_CREATE(group, flags) alt_no_error () +#define ALT_FLAG_PEND(group, flags, wait_type, timeout) alt_no_error () +#define ALT_FLAG_POST(group, flags, opt) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_FLAG_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/os/alt_hooks.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/os/alt_hooks.h new file mode 100644 index 0000000..ba1100e --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/os/alt_hooks.h @@ -0,0 +1,61 @@ +#ifndef __ALT_HOOKS_H__ +#define __ALT_HOOKS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides "do-nothing" macro definitions for operating system + * hooks within the HAL. The O/S component can override these to provide it's + * own implementation. + */ + +#define ALT_OS_TIME_TICK() while(0) +#define ALT_OS_INIT() while(0) +#define ALT_OS_STOP() while(0) + +/* Call from assembly code */ +#define ALT_OS_INT_ENTER_ASM +#define ALT_OS_INT_EXIT_ASM + +/* Call from C code */ +#define ALT_OS_INT_ENTER() while(0) +#define ALT_OS_INT_EXIT() while(0) + + +#endif /* __ALT_HOOKS_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/os/alt_sem.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/os/alt_sem.h new file mode 100644 index 0000000..ed0f4a8 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/os/alt_sem.h @@ -0,0 +1,96 @@ +#ifndef __ALT_SEM_H__ +#define __ALT_SEM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This header provides macro definitions that can be used to create and use + * semaphores. These macros can be used in both a uC/OS-II based environment, + * and a single threaded HAL based environment. + * + * The motivation for these macros is to allow code to be developed which is + * thread safe under uC/OS-II, but incurs no additional overhead when used in a + * single threaded HAL environment. + * + * In the case of a single threaded HAL environment, they compile to + * "do nothing" directives, which ensures they do not contribute to the final + * executable. + * + * The following macros are available: + * + * ALT_SEM - Create a semaphore instance. + * ALT_EXTERN_SEM - Create a reference to an external semaphore instance. + * ALT_STATIC_SEM - Create a static semaphore instance. + * ALT_SEM_CREATE - Initialise a semaphore. + * ALT_SEM_PEND - Pend on a semaphore. + * ALT_SEM_POST - Increment a semaphore. + * + * Input arguments and return codes are all consistant with the equivalent + * uC/OS-II function. + * + * It's important to be careful in the use of the macros: ALT_SEM, + * ALT_EXTERN_SEM, and ALT_STATIC_SEM. In these three cases the semi-colon is + * included in the macro definition; so, for example, you should use: + * + * ALT_SEM(mysem) + * + * not: + * + * ALT_SEM(mysem); + * + * The inclusion of the semi-colon has been necessary to ensure the macros can + * compile with no warnings when used in a single threaded HAL environment. + * + */ + +#include "priv/alt_no_error.h" + +#define ALT_SEM(sem) +#define ALT_EXTERN_SEM(sem) +#define ALT_STATIC_SEM(sem) + +#define ALT_SEM_CREATE(sem, value) alt_no_error () +#define ALT_SEM_PEND(sem, timeout) alt_no_error () +#define ALT_SEM_POST(sem) alt_no_error () + +#ifndef ALT_SINGLE_THREADED +#define ALT_SINGLE_THREADED +#endif + +#endif /* __ALT_SEM_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/os/alt_syscall.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/os/alt_syscall.h new file mode 100644 index 0000000..2b1165a --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/os/alt_syscall.h @@ -0,0 +1,75 @@ +#ifndef __ALT_SYSCALL_H__ +#define __ALT_SYSCALL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The macros defined in this file are used to provide the function names used + * for the HAL 'UNIX style' interface, e.g. read(), write() etc. + * + * Operating systems which are ported to the HAL can provide their own + * version of this file, which will be used in preference. This allows + * the operating system to provide it's own implementation of the top level + * system calls, while retaining the HAL functions under a different name, + * for example, alt_read(), alt_write() etc. + */ + +#define ALT_CLOSE close +#define ALT_ENVIRON environ +#define ALT_EXECVE execve +#define ALT_EXIT _exit +#define ALT_FCNTL fcntl +#define ALT_FORK fork +#define ALT_FSTAT fstat +#define ALT_GETPID getpid +#define ALT_GETTIMEOFDAY gettimeofday +#define ALT_IOCTL ioctl +#define ALT_ISATTY isatty +#define ALT_KILL kill +#define ALT_LINK link +#define ALT_LSEEK lseek +#define ALT_OPEN open +#define ALT_READ read +#define ALT_RENAME _rename +#define ALT_SBRK sbrk +#define ALT_SETTIMEOFDAY settimeofday +#define ALT_STAT stat +#define ALT_UNLINK unlink +#define ALT_USLEEP usleep +#define ALT_WAIT wait +#define ALT_WRITE write +#define ALT_TIMES times + +/* + * + */ + +#endif /* __ALT_SYSCALL_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_alarm.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_alarm.h new file mode 100644 index 0000000..ae687bb --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_alarm.h @@ -0,0 +1,101 @@ +#ifndef __ALT_PRIV_ALARM_H__ +#define __ALT_PRIV_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required by the public + * interface alt_alarm.h. These variables and structures are not guaranteed to + * exist in future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm_s" is a structure type used to maintain lists of alarm callback + * functions. + */ + +struct alt_alarm_s +{ + alt_llist llist; /* linked list */ + alt_u32 time; /* time in system ticks of the callback */ + alt_u32 (*callback) (void* context); /* callback function. The return + * value is the period for the next callback; where + * zero indicates that the alarm should be removed + * from the list. + */ + alt_u8 rollover; /* set when desired alarm time + current time causes + overflow, to prevent premature alarm */ + void* context; /* Argument for the callback */ +}; + +/* + * "_alt_tick_rate" is a global variable used to store the system clock rate + * in ticks per second. This is initialised to zero, which coresponds to there + * being no system clock available. + * + * It is then set to it's final value by the system clock driver through a call + * to alt_sysclk_init(). + */ + +extern alt_u32 _alt_tick_rate; + +/* + * "_alt_nticks" is a global variable which records the elapsed number of + * system clock ticks since the last call to settimeofday() or since reset if + * settimeofday() has not been called. + */ + +extern volatile alt_u32 _alt_nticks; + +/* The list of registered alarms. */ + +extern alt_llist alt_alarm_list; + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_PRIV_ALARM_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_busy_sleep.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_busy_sleep.h new file mode 100644 index 0000000..a165e93 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_busy_sleep.h @@ -0,0 +1,35 @@ +#ifndef __ALT_BUSY_SLEEP_H +#define __ALT_BUSY_SLEEP_H + +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +/* + * The function alt_busy_sleep provides a busy loop implementation of usleep. + * This is used to provide usleep for the standalone HAL, or when the timer is + * unavailable in uC/OS-II. + */ + +extern unsigned int alt_busy_sleep (unsigned int us); + +#endif /* __ALT_BUSY_SLEEP_H */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_dev_llist.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_dev_llist.h new file mode 100644 index 0000000..0ab7a28 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_dev_llist.h @@ -0,0 +1,77 @@ +#ifndef __ALT_DEV_LLIST_H__ +#define __ALT_DEV_LLIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_llist.h" +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The alt_dev_llist is an internal structure used to form a common base + * class for all device types. The use of this structure allows common code + * to be used to manipulate the various device lists. + */ + +typedef struct { + alt_llist llist; + const char* name; +} alt_dev_llist; + +/* + * + */ + +extern int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_LLIST_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_exception_handler_registry.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_exception_handler_registry.h new file mode 100644 index 0000000..4502ea7 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_exception_handler_registry.h @@ -0,0 +1,39 @@ +#ifndef __ALT_EXCEPTION_HANDLER_REGISTRY_H__ +#define __ALT_EXCEPTION_HANDLER_REGISTRY_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "sys/alt_exceptions.h" + +/* Function pointer to exception callback routine */ +extern alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32); + +#endif /* __ALT_EXCEPTION_HANDLER_REGISTRY_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_file.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_file.h new file mode 100644 index 0000000..94007a6 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_file.h @@ -0,0 +1,179 @@ +#ifndef __ALT_FILE_H__ +#define __ALT_FILE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "sys/alt_llist.h" +#include "os/alt_sem.h" + +#include "alt_types.h" + +/* + * This header provides the internal defenitions required to control file + * access. These variables and functions are not guaranteed to exist in + * future implementations of the HAL. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_find_dev() is used to search the device list "list" to + * locate a device named "name". If a match is found, then a pointer to the + * device is returned, otherwise NULL is returned. + */ + +extern alt_dev* alt_find_dev (const char* name, alt_llist* list); + +/* + * alt_find_file() is used to search the list of registered file systems to + * find the filesystem that the file named "name" belongs to. If a match is + * found, then a pointer to the filesystems alt_dev structure is returned, + * otherwise NULL is returned. + * + * Note that a match does not indicate that the file exists, only that a + * filesystem exists that is registered for a partition that could contain + * the file. The filesystems open() function would need to be called in order + * to determine if the file exists. + */ + +extern alt_dev* alt_find_file (const char* name); + +/* + * alt_get_fd() is used to allocate a file descriptor for the device or + * filesystem "dev". A negative return value indicates an error, otherwise the + * return value is the index of the file descriptor within the file descriptor + * pool. + */ + +extern int alt_get_fd (alt_dev* dev); + +/* + * alt_release_fd() is called to free the file descriptor with index "fd". + */ + +extern void alt_release_fd (int fd); + +/* + * alt_fd_lock() is called by ioctl() to mark the file descriptor "fd" as + * being open for exclusive access. Subsequent calls to open() for the device + * associated with "fd" will fail. A device is unlocked by either calling + * close() for "fd", or by an alternate call to ioctl() (see ioctl.c for + * details). + */ + +extern int alt_fd_lock (alt_fd* fd); + +/* + * alt_fd_unlock() is called by ioctl() to unlock a descriptor previously + * locked by a call to alt_fd_lock(). + */ + +extern int alt_fd_unlock (alt_fd* fd); + +/* + * "alt_fd_list" is the pool of file descriptors. + */ + +extern alt_fd alt_fd_list[]; + +/* + * flags used by alt_fd. + * + * ALT_FD_EXCL is used to mark a file descriptor as locked for exclusive + * access, i.e. further calls to open() for the associated device should + * fail. + * + * ALT_FD_DEV marks a dile descriptor as belonging to a device as oposed to a + * filesystem. + */ + +#define ALT_FD_EXCL 0x80000000 +#define ALT_FD_DEV 0x40000000 + +#define ALT_FD_FLAGS_MASK (ALT_FD_EXCL | ALT_FD_DEV) + +/* + * "alt_dev_list" is the head of the linked list of registered devices. + */ + +extern alt_llist alt_dev_list; + +/* + * "alt_fs_list" is the head of the linked list of registered filesystems. + */ + +extern alt_llist alt_fs_list; + +/* + * "alt_fd_list_lock" is a semaphore used to ensure that access to the pool + * of file descriptors is thread safe. + */ + +ALT_EXTERN_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is a 'high water mark'. It indicates the highest file + * descriptor allocated. Use of this can save searching the entire pool + * for active file descriptors, which helps avoid contention on access + * to the file descriptor pool. + */ + +extern alt_32 alt_max_fd; + +/* + * alt_io_redirect() is called at startup to redirect stdout, stdin, and + * stderr to the devices named in the input arguments. By default these streams + * are directed at /dev/null, and are then redirected using this function once + * all of the devices have been registered within the system. + */ + +extern void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev); + + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FILE_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_iic_isr_register.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_iic_isr_register.h new file mode 100644 index 0000000..6c53c86 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_iic_isr_register.h @@ -0,0 +1,39 @@ +#ifndef __ALT_IIC_ISR_REGISTER_H_ +#define __ALT_IIC_ISR_REGISTER_H_ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "sys/alt_irq.h" + +extern int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags); + +#endif /* __ALT_IIC_ISR_REGISTER_H_ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_irq_table.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_irq_table.h new file mode 100644 index 0000000..5b4a787 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_irq_table.h @@ -0,0 +1,59 @@ +#ifndef __ALT_IRQ_TABLE_H__ +#define __ALT_IRQ_TABLE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definition of a table describing each interrupt handler. The index into + * the array is the interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + * + * The table is physically created in alt_irq_handler.c + */ +extern struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +#endif diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_legacy_irq.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_legacy_irq.h new file mode 100644 index 0000000..0e19af2 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_legacy_irq.h @@ -0,0 +1,158 @@ +#ifndef __ALT_LEGACY_IRQ_H__ +#define __ALT_LEGACY_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides prototypes and inline implementations of certain routines + * used by the legacy interrupt API. Do not include this in your driver or + * application source files, use "sys/alt_irq.h" instead to access the proper + * public API. + */ + +#include +#include "system.h" + +#ifndef NIOS2_EIC_PRESENT + +#include "nios2.h" +#include "alt_types.h" + +#include "sys/alt_irq.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_irq_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler); + +/* + * alt_irq_disable() disables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_disable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active &= ~(1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +/* + * alt_irq_enable() enables the individual interrupt indicated by "id". + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enable (alt_u32 id) +{ + alt_irq_context status; + extern volatile alt_u32 alt_irq_active; + + status = alt_irq_disable_all (); + + alt_irq_active |= (1 << id); + NIOS2_WRITE_IENABLE (alt_irq_active); + + alt_irq_enable_all(status); + + return 0; +} + +#ifndef ALT_EXCEPTION_STACK +/* + * alt_irq_initerruptable() should only be called from within an ISR. It is used + * to allow higer priority interrupts to interrupt the current ISR. The input + * argument, "priority", is the priority, i.e. interrupt number of the current + * interrupt. + * + * If this function is called, then the ISR is required to make a call to + * alt_irq_non_interruptible() before returning. The input argument to + * alt_irq_non_interruptible() is the return value from alt_irq_interruptible(). + * + * Care should be taken when using this pair of functions, since they increasing + * the system overhead associated with interrupt handling. + * + * If you are using an exception stack then nested interrupts won't work, so + * these functions are not available in that case. + */ +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_interruptible (alt_u32 priority) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + alt_u32 old_priority; + + old_priority = alt_priority_mask; + alt_priority_mask = (1 << priority) - 1; + + NIOS2_WRITE_IENABLE (alt_irq_active & alt_priority_mask); + + NIOS2_WRITE_STATUS (1); + + return old_priority; +} + +/* + * See Comments above for alt_irq_interruptible() for an explanation of the use of this + * function. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE alt_irq_non_interruptible (alt_u32 mask) +{ + extern volatile alt_u32 alt_priority_mask; + extern volatile alt_u32 alt_irq_active; + + NIOS2_WRITE_STATUS (0); + + alt_priority_mask = mask; + + NIOS2_WRITE_IENABLE (mask & alt_irq_active); +} +#endif /* ALT_EXCEPTION_STACK */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* NIOS2_EIC_PRESENT */ + +#endif /* __ALT_LEGACY_IRQ_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_no_error.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_no_error.h new file mode 100644 index 0000000..06a036c --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/alt_no_error.h @@ -0,0 +1,77 @@ +#ifndef __ALT_NO_ERROR_H__ +#define __ALT_NO_ERROR_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_no_error() is a dummy function used by alt_sem.h and alt_flag.h. It + * substitutes for functions that have a return code by creating a function + * that always returns zero. + * + * This may seem a little obscure, but what happens is that the compiler can + * then optomise away the call to this function, and any code written which + * handles the error path (i.e. non zero return values). + * + * This allows code to be written which correctly use the uC/OS-II semaphore + * and flag utilities, without the use of those utilities impacting on + * excutables built for a single threaded HAL environment. + * + * This function is considered to be part of the internal implementation of + * the HAL, and should not be called directly by application code or device + * drivers. It is not guaranteed to be preserved in future versions of the + * HAL. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void) +{ + return 0; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_NO_ERROR_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/nios2_gmon_data.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/nios2_gmon_data.h new file mode 100644 index 0000000..4bc058d --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/priv/nios2_gmon_data.h @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#ifndef NIOS2_GMON_DATA_H +#define NIOS2_GMON_DATA_H + +#define GMON_DATA_SIG 0 +#define GMON_DATA_WORDS 1 +#define GMON_DATA_PROFILE_DATA 2 +#define GMON_DATA_PROFILE_LOWPC 3 +#define GMON_DATA_PROFILE_HIGHPC 4 +#define GMON_DATA_PROFILE_BUCKET 5 +#define GMON_DATA_PROFILE_RATE 6 +#define GMON_DATA_MCOUNT_START 7 +#define GMON_DATA_MCOUNT_LIMIT 8 + +#define GMON_DATA_SIZE 9 + +extern unsigned int alt_gmon_data[GMON_DATA_SIZE]; + +#endif diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_alarm.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_alarm.h new file mode 100644 index 0000000..9093080 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_alarm.h @@ -0,0 +1,126 @@ +#ifndef __ALT_ALARM_H__ +#define __ALT_ALARM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_llist.h" +#include "alt_types.h" + +#include "priv/alt_alarm.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * "alt_alarm" is a structure type used by applications to register an alarm + * callback function. An instance of this type must be passed as an input + * argument to alt_alarm_start(). The user is not responsible for initialising + * the contents of the instance. This is done by alt_alarm_start(). + */ + +typedef struct alt_alarm_s alt_alarm; + +/* + * alt_alarm_start() can be called by an application/driver in order to register + * a function for periodic callback at the system clock frequency. Be aware that + * this callback is likely to occur in interrupt context. + */ + +extern int alt_alarm_start (alt_alarm* the_alarm, + alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context); + +/* + * alt_alarm_stop() is used to unregister a callback. Alternatively the callback + * can return zero to unregister. + */ + +extern void alt_alarm_stop (alt_alarm* the_alarm); + +/* + * Obtain the system clock rate in ticks/s. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void) +{ + return _alt_tick_rate; +} + +/* + * alt_sysclk_init() is intended to be only used by the system clock driver + * in order to initialise the value of the clock frequency. + */ + +static ALT_INLINE int ALT_ALWAYS_INLINE alt_sysclk_init (alt_u32 nticks) +{ + if (! _alt_tick_rate) + { + _alt_tick_rate = nticks; + return 0; + } + else + { + return -1; + } +} + +/* + * alt_nticks() returns the elapsed number of system clock ticks since reset. + */ + +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_nticks (void) +{ + return _alt_nticks; +} + +/* + * alt_tick() should only be called by the system clock driver. This is used + * to notify the system that the system timer period has expired. + */ + +extern void alt_tick (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_ALARM_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_cache.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_cache.h new file mode 100644 index 0000000..44d976c --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_cache.h @@ -0,0 +1,117 @@ +#ifndef __ALT_CACHE_H__ +#define __ALT_CACHE_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003, 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include + +#include "alt_types.h" + +/* + * alt_cache.h defines the processor specific functions for manipulating the + * cache. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +extern void alt_icache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are written back to memory. + */ + +extern void alt_dcache_flush (void* start, alt_u32 len); + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * Any dirty lines in the data cache are NOT written back to memory. + */ + +extern void alt_dcache_flush_no_writeback (void* start, alt_u32 len); + +/* + * Flush the entire instruction cache. + */ + +extern void alt_icache_flush_all (void); + +/* + * Flush the entire data cache. + */ + +extern void alt_dcache_flush_all (void); + +/* + * Allocate a block of uncached memory. + */ + +extern volatile void* alt_uncached_malloc (size_t size); + +/* + * Free a block of uncached memory. + */ + +extern void alt_uncached_free (volatile void* ptr); + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +extern volatile void* alt_remap_uncached (void* ptr, alt_u32 len); + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +extern void* alt_remap_cached (volatile void* ptr, alt_u32 len); + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_CACHE_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_debug.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_debug.h new file mode 100644 index 0000000..af509d8 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_debug.h @@ -0,0 +1,45 @@ +#ifndef __ALT_DEBUG_H__ +#define __ALT_DEBUG_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * The ALT_DEVUG_ASSERT macro can be used to generate a debugger break + * from within software. The break is generated if "condition" evaluates to + * false. + */ + +#define ALT_DEBUG_ASSERT(condition) if (!condition) \ +{ \ + __asm__ volatile ("break"); \ +} + +#endif /* __ALT_DEBUG_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_dev.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_dev.h new file mode 100644 index 0000000..d96327e --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_dev.h @@ -0,0 +1,115 @@ +#ifndef __ALT_DEV_H__ +#define __ALT_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "system.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The value ALT_IRQ_NOT_CONNECTED is used to represent an unconnected + * interrupt line. It cannot evaluate to a valid interrupt number. + */ + +#define ALT_IRQ_NOT_CONNECTED (-1) + +typedef struct alt_dev_s alt_dev; + +struct stat; + +/* + * The file descriptor structure definition. + */ + +typedef struct alt_fd_s +{ + alt_dev* dev; + alt_u8* priv; + int fd_flags; +} alt_fd; + +/* + * The device structure definition. + */ + +struct alt_dev_s { + alt_llist llist; /* for internal use */ + const char* name; + int (*open) (alt_fd* fd, const char* name, int flags, int mode); + int (*close) (alt_fd* fd); + int (*read) (alt_fd* fd, char* ptr, int len); + int (*write) (alt_fd* fd, const char* ptr, int len); + int (*lseek) (alt_fd* fd, int ptr, int dir); + int (*fstat) (alt_fd* fd, struct stat* buf); + int (*ioctl) (alt_fd* fd, int req, void* arg); +}; + +/* + * Functions used to register device for access through the C standard + * library. + * + * The only difference between alt_dev_reg() and alt_fs_reg() is the + * interpretation that open() places on the device name. In the case of + * alt_dev_reg the device is assumed to be a particular character device, + * and so there must be an exact match in the name for open to succeed. + * In the case of alt_fs_reg() the name of the device is treated as the + * mount point for a directory, and so any call to open() where the name + * is the root of the device filename will succeed. + */ + +extern int alt_fs_reg (alt_dev* dev); + +static ALT_INLINE int alt_dev_reg (alt_dev* dev) +{ + extern alt_llist alt_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) dev, &alt_dev_list); +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_DEV_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_dma.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_dma.h new file mode 100644 index 0000000..88dcda0 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_dma.h @@ -0,0 +1,226 @@ +#ifndef __ALT_DMA_H__ +#define __ALT_DMA_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "sys/alt_dma_dev.h" +#include "alt_types.h" + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the application side interface for accessing DMA + * resources. See alt_dma_dev.h for the dma device driver interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * The application can supply data for transmit using an "alt_dma_txchan" + * descriptor. Alternatively an "alt_dma_rxchan" descriptor can be used to + * receive data. + */ + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_txchan alt_dma_txchan_open (const char* name); + +/* + * alt_dma_txchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA transmit channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_txchan_close (alt_dma_txchan dma) +{ + return 0; +} + +/* + * alt_dma_txchan_send() posts a transmit request to a DMA transmit channel. + * The input arguments are: + * + * dma: the channel to use. + * from: a pointer to the start of the data to send. + * length: the length of the data to send in bytes. + * done: callback function that will be called once the data has been sent. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_txchan_send (alt_dma_txchan dma, + const void* from, + alt_u32 length, + alt_txchan_done* done, + void* handle) +{ + return dma ? dma->dma_send (dma, + from, + length, + done, + handle) : -ENODEV; +} + +/* + * alt_dma_txchan_space() returns the number of tranmit requests that can be + * posted to the specified DMA transmit channel. + * + * A negative value indicates that the value could not be determined. + */ + +static ALT_INLINE int alt_dma_txchan_space (alt_dma_txchan dma) +{ + return dma ? dma->space (dma) : -ENODEV; +} + +/* + * alt_dma_txchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA transmit channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_txchan_ioctl (alt_dma_txchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_open() is used to obtain an "alt_dma_rxchan" descriptor for + * a DMA receive channel. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +extern alt_dma_rxchan alt_dma_rxchan_open (const char* dev); + +/* + * alt_dma_rxchan_close() is provided so that an application can notify the + * system that it has finished with a given DMA receive channel. This is only + * provided for completness. + */ + +static ALT_INLINE int alt_dma_rxchan_close (alt_dma_rxchan dma) +{ + return 0; +} + +/* + * + */ + +/* + * alt_dma_rxchan_prepare() posts a receive request to a DMA receive channel. + * + * The input arguments are: + * + * dma: the channel to use. + * data: a pointer to the location that data is to be received to. + * len: the maximum length of the data to receive. + * done: callback function that will be called once the data has been + * received. + * handle: opaque value passed to "done". + * + * The return value will be negative if the request cannot be posted, and + * zero otherwise. + */ + +static ALT_INLINE int alt_dma_rxchan_prepare (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle) +{ + return dma ? dma->prepare (dma, data, len, done, handle) : -ENODEV; +} + +/* + * alt_dma_rxchan_ioctl() can be used to perform device specific I/O + * operations on the indicated DMA receive channel. For example some drivers + * support options to control the width of the transfer operations. See + * alt_dma_dev.h for the list of generic requests. + * + * A negative return value indicates failure, otherwise the interpretation + * of the return value is request specific. + */ + +static ALT_INLINE int alt_dma_rxchan_ioctl (alt_dma_rxchan dma, + int req, + void* arg) +{ + return dma ? dma->ioctl (dma, req, arg) : -ENODEV; +} + +/* + * alt_dma_rxchan_depth() returns the depth of the receive FIFO used to store + * receive requests. + */ + +static ALT_INLINE alt_u32 alt_dma_rxchan_depth(alt_dma_rxchan dma) +{ + return dma->depth; +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_dma_dev.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_dma_dev.h new file mode 100644 index 0000000..65063bd --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_dma_dev.h @@ -0,0 +1,200 @@ +#ifndef __ALT_DMA_DEV_H__ +#define __ALT_DMA_DEV_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This header contains the device driver interface for accessing DMA + * resources. See alt_dma.h for the DMA application side interface. + * + * The interface model treats a DMA transaction as being composed of two + * halves (read and write). + * + * An "alt_dma_txchan_dev" is used to describe the device associated with a + * DMA transmit channel. An "alt_dma_rxchan_dev" is used to describe the + * device associated with a DMA receive channel. + */ + +/* + * List of generic ioctl requests that may be supported by a DMA device. + * + * ALT_DMA_RX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the receiver is under software control. + * The other side reads continously from a single + * location. The address to read is the argument to + * this request. + * ALT_DMA_RX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_TX_ONLY_ON: This causes a DMA channel to operate in a mode + * where only the transmitter is under software control. + * The other side writes continously to a single + * location. The address to write to is the argument to + * this request. + * ALT_DMA_TX_ONLY_OFF: Return to the default mode where both the receive + * and transmit sides of the DMA can be under software + * control. + * ALT_DMA_SET_MODE_8: Transfer data in units of 8 bits. + * ALT_DMA_SET_MODE_16: Transfer data in units of 16 bits. + * ALT_DMA_SET_MODE_32: Transfer data in units of 32 bits. + * ALT_DMA_SET_MODE_64: Transfer data in units of 64 bits. + * ALT_DMA_SET_MODE_128: Transfer data in units of 128 bits. + * ALT_DMA_GET_MODE: Get the current transfer mode. + * + * The use of the macros: ALT_DMA_TX_STREAM_ON, ALT_DMA_TX_STREAM_OFF + * ALT_DMA_RX_STREAM_OFF and ALT_DMA_RX_STREAM_ON are depreciated. You should + * instead use the macros: ALT_DMA_RX_ONLY_ON, ALT_DMA_RX_ONLY_OFF, + * ALT_DMA_TX_ONLY_ON and ALT_DMA_TX_ONLY_OFF. + */ + +#define ALT_DMA_TX_STREAM_ON (0x1) +#define ALT_DMA_TX_STREAM_OFF (0x2) +#define ALT_DMA_RX_STREAM_ON (0x3) +#define ALT_DMA_RX_STREAM_OFF (0x4) +#define ALT_DMA_SET_MODE_8 (0x5) +#define ALT_DMA_SET_MODE_16 (0x6) +#define ALT_DMA_SET_MODE_32 (0x7) +#define ALT_DMA_SET_MODE_64 (0x8) +#define ALT_DMA_SET_MODE_128 (0x9) +#define ALT_DMA_GET_MODE (0xa) + +#define ALT_DMA_RX_ONLY_ON ALT_DMA_TX_STREAM_ON +#define ALT_DMA_RX_ONLY_OFF ALT_DMA_TX_STREAM_OFF +#define ALT_DMA_TX_ONLY_ON ALT_DMA_RX_STREAM_ON +#define ALT_DMA_TX_ONLY_OFF ALT_DMA_RX_STREAM_OFF + +/* + * + */ + +typedef struct alt_dma_txchan_dev_s alt_dma_txchan_dev; +typedef struct alt_dma_rxchan_dev_s alt_dma_rxchan_dev; + +typedef alt_dma_txchan_dev* alt_dma_txchan; +typedef alt_dma_rxchan_dev* alt_dma_rxchan; + +typedef void (alt_txchan_done)(void* handle); +typedef void (alt_rxchan_done)(void* handle, void* data); + +/* + * devices that provide a DMA transmit channel are required to provide an + * instance of the "alt_dma_txchan_dev" structure. + */ + +struct alt_dma_txchan_dev_s { + alt_llist llist; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + int (*space) (alt_dma_txchan dma); /* returns the maximum number of + * transmit requests that can be posted + */ + int (*dma_send) (alt_dma_txchan dma, + const void* from, + alt_u32 len, + alt_txchan_done* done, + void* handle); /* post a transmit request */ + int (*ioctl) (alt_dma_txchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * devices that provide a DMA receive channel are required to provide an + * instance of the "alt_dma_rxchan_dev" structure. + */ + +struct alt_dma_rxchan_dev_s { + alt_llist list; /* for internal use */ + const char* name; /* name of the device instance + * (e.g. "/dev/dma_0"). + */ + alt_u32 depth; /* maximum number of receive requests that + * can be posted. + */ + int (*prepare) (alt_dma_rxchan dma, + void* data, + alt_u32 len, + alt_rxchan_done* done, + void* handle); /* post a receive request */ + int (*ioctl) (alt_dma_rxchan dma, int req, void* arg); /* perform device + * specific I/O control. + */ +}; + +/* + * Register a DMA transmit channel with the system. + */ + +static ALT_INLINE int alt_dma_txchan_reg (alt_dma_txchan_dev* dev) +{ + extern alt_llist alt_dma_txchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_txchan_list); +} + +/* + * Register a DMA receive channel with the system. + */ + +static ALT_INLINE int alt_dma_rxchan_reg (alt_dma_rxchan_dev* dev) +{ + extern alt_llist alt_dma_rxchan_list; + + return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_rxchan_list); +} + +/* + * + */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_DMA_DEV_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_driver.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_driver.h new file mode 100644 index 0000000..ca7aea1 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_driver.h @@ -0,0 +1,168 @@ +#ifndef __ALT_DRIVER_H__ +#define __ALT_DRIVER_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * Macros used to access a driver without HAL file descriptors. + */ + +/* + * ALT_MODULE_CLASS + * + * This macro returns the module class name for the specified module instance. + * It uses information in the system.h file. + * Neither the instance name or class name are quoted (so that they can + * be used with other pre-processor macros). + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_MODULE_CLASS(uart1) returns altera_avalon_uart. + */ + +#define ALT_MODULE_CLASS(instance) ALT_MODULE_CLASS_ ## instance + + +/* + * ALT_DRIVER_FUNC_NAME + * + * --> instance Instance name. + * --> func Function name. + * + * This macro returns the device driver function name of the specified + * module instance for the specified function name. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_FUNC_NAME(uart1, write) returns + * altera_avalon_uart_write. + */ + +#define ALT_DRIVER_FUNC_NAME(instance, func) \ + ALT_DRIVER_FUNC_NAME1(ALT_MODULE_CLASS(instance), func) +#define ALT_DRIVER_FUNC_NAME1(module_class, func) \ + ALT_DRIVER_FUNC_NAME2(module_class, func) +#define ALT_DRIVER_FUNC_NAME2(module_class, func) \ + module_class ## _ ## func + +/* + * ALT_DRIVER_STATE_STRUCT + * + * --> instance Instance name. + * + * This macro returns the device driver state type name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE_STRUCT(uart1) returns: + * struct altera_avalon_uart_state_s + * + * Note that the ALT_DRIVER_FUNC_NAME macro is used even though "state" isn't + * really a function but it does match the required naming convention. + */ +#define ALT_DRIVER_STATE_STRUCT(instance) \ + struct ALT_DRIVER_FUNC_NAME(instance, state_s) + +/* + * ALT_DRIVER_STATE + * + * --> instance Instance name. + * + * This macro returns the device driver state name of the specified + * module instance. + * + * Example: + * Assume the design has an instance of an altera_avalon_uart called uart1. + * Calling ALT_DRIVER_STATE(uart1) returns uart1. + */ +#define ALT_DRIVER_STATE(instance) instance + +/* + * ALT_DRIVER_WRITE + * + * --> instance Instance name. + * --> buffer Write buffer. + * --> len Length of write buffer data. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "write" function of the specified driver instance. + */ + +#define ALT_DRIVER_WRITE_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, write) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_WRITE(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, write)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + + +/* + * ALT_DRIVER_READ + * + * --> instance Instance name. + * <-- buffer Read buffer. + * --> len Length of read buffer. + * --> flags Control flags (e.g. O_NONBLOCK) + * + * This macro calls the "read" function of the specified driver instance. + */ + +#define ALT_DRIVER_READ_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, read) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); + +#define ALT_DRIVER_READ(instance, buffer, len, flags) \ + ALT_DRIVER_FUNC_NAME(instance, read)(&ALT_DRIVER_STATE(instance), buffer, len, flags) + +/* + * ALT_DRIVER_IOCTL + * + * --> instance Instance name. + * --> req ioctl request (e.g. TIOCSTIMEOUT) + * --> arg Optional argument (void*) + * + * This macro calls the "ioctl" function of the specified driver instance + */ + +#define ALT_DRIVER_IOCTL_EXTERNS(instance) \ + extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ + extern int ALT_DRIVER_FUNC_NAME(instance, ioctl) \ + (ALT_DRIVER_STATE_STRUCT(instance) *, int, void*); + +#define ALT_DRIVER_IOCTL(instance, req, arg) \ + ALT_DRIVER_FUNC_NAME(instance, ioctl)(&ALT_DRIVER_STATE(instance), req, arg) + +#endif /* __ALT_DRIVER_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_errno.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_errno.h new file mode 100644 index 0000000..23e3096 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_errno.h @@ -0,0 +1,87 @@ +#ifndef __ALT_ERRNO_H__ +#define __ALT_ERRNO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * errno is defined in so that it uses the thread local version + * stored in the location pointed to by "_impure_ptr". This means that the + * accesses to errno within the HAL library can cause the entirety of + * of the structure pointed to by "_impure_ptr" to be added to the + * users application. This can be undesirable in very small footprint systems. + * + * To avoid this happening, the HAL uses the macro ALT_ERRNO, defined below, + * to access errno, rather than accessing it directly. This macro will only + * use the thread local version if some other code has already caused it to be + * included into the system, otherwise it will use the global errno value. + * + * This causes a slight increases in code size where errno is accessed, but + * can lead to significant overall benefits in very small systems. The + * increase is inconsequential when compared to the size of the structure + * pointed to by _impure_ptr. + * + * Note that this macro accesses __errno() using an externally declared + * function pointer (alt_errno). This is done so that the function call uses the + * subroutine call instruction via a register rather than an immediate address. + * This is important in the case that the code has been linked for a high + * address, but __errno() is not being used. In this case the weak linkage + * would have resulted in the instruction: "call 0" which would fail to link. + */ + +extern int* (*alt_errno) (void); + +/* Must define this so that values such as EBADFD are defined in errno.h. */ +#define __LINUX_ERRNO_EXTENSIONS__ + +#include + +#include "alt_types.h" + +#undef errno + +extern int errno; + +static ALT_INLINE int* alt_get_errno(void) +{ + return ((alt_errno) ? alt_errno() : &errno); +} + +#define ALT_ERRNO *alt_get_errno() + +#endif /* __ALT_ERRNO_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_exceptions.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_exceptions.h new file mode 100644 index 0000000..b6b82e2 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_exceptions.h @@ -0,0 +1,127 @@ +#ifndef __ALT_EXCEPTIONS_H__ +#define __ALT_EXCEPTIONS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * This file defines instruction-generated exception handling and registry + * API, exception type enumeration, and handler return value enumeration for + * Nios II. + */ + +/* + * The following enumeration describes the value in the CPU EXCEPTION + * register CAUSE bit field. Not all exception types will cause the + * processor to go to the exception vector; these are provided for + * reference. + */ +enum alt_exception_cause_e { + /* Exeption causes that will cause jump to exception vector */ + NIOS2_EXCEPTION_INTERRUPT = 2, + NIOS2_EXCEPTION_TRAP_INST = 3, + NIOS2_EXCEPTION_UNIMPLEMENTED_INST = 4, + NIOS2_EXCEPTION_ILLEGAL_INST = 5, + NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR = 6, + NIOS2_EXCEPTION_MISALIGNED_TARGET_PC = 7, + NIOS2_EXCEPTION_DIVISION_ERROR = 8, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST_ADDR = 9, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST = 10, + NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR = 11, + NIOS2_EXCEPTION_TLB_MISS = 12, + NIOS2_EXCEPTION_TLB_EXECUTE_PERM_VIOLATION = 13, + NIOS2_EXCEPTION_MPU_INST_REGION_VIOLATION = 16, + + /* Exception causes that will NOT cause a jump to exception vector */ + NIOS2_EXCEPTION_RESET = 0, + NIOS2_EXCEPTION_CPU_ONLY_RESET_REQUEST = 1, + NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION = 14, + NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION = 15, + NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION = 17, + /* + * This value is passed to an exception handler's cause argument if + * "extra exceptions" information (EXECPTION) register is not + * present in the processor hardware configuration. + */ + NIOS2_EXCEPTION_CAUSE_NOT_PRESENT = -1 +}; +typedef enum alt_exception_cause_e alt_exception_cause; + +/* + * These define valid return values for a user-defined instruction-generated + * exception handler. The handler should return one of these to indicate + * whether to re-issue the instruction that triggered the exception, or to + * skip it. + */ +enum alt_exception_result_e { + NIOS2_EXCEPTION_RETURN_REISSUE_INST = 0, + NIOS2_EXCEPTION_RETURN_SKIP_INST = 1 +}; +typedef enum alt_exception_result_e alt_exception_result; + +/* + * alt_instruction_exception_register() can be used to register an exception + * handler for instruction-generated exceptions that are not handled by the + * built-in exception handler (i.e. for interrupts). + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ); +#endif /*ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * alt_exception_cause_generated_bad_addr() indicates whether a particular + * exception cause value was from an exception-type that generated a valid + * address in the BADADDR register. The contents of BADADDR is passed to + * a user-registered exception handler in all cases, whether valid or not. + * This routine should be called to validate the bad_addr argument to + * your exception handler. + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_EXCEPTIONS_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_flash.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_flash.h new file mode 100644 index 0000000..7e903a8 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_flash.h @@ -0,0 +1,166 @@ +#ifndef __ALT_FLASH_H__ +#define __ALT_FLASH_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.h - User interface for flash code * +* * +* Use this interface to avoid being exposed to the internals of the device * +* driver architecture. If you chose to use the flash driver internal * +* structures we don't guarantee not to change them * +* * +* Author PRR * +* * +******************************************************************************/ + + + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +#include "alt_types.h" +#include "alt_flash_types.h" +#include "alt_flash_dev.h" +#include "sys/alt_cache.h" + +alt_flash_fd* alt_flash_open_dev(const char* name); +void alt_flash_close_dev(alt_flash_fd* fd ); + +/* + * alt_write_flash + * + * Program a buffer into flash. + * + * This routine erases all the affected erase blocks (if necessary) + * and then programs the data. However it does not read the data out first + * and preserve and none overwritten data, because this would require very + * large buffers on the target. If you need + * that functionality use the functions below. + */ +static __inline__ int __attribute__ ((always_inline)) alt_write_flash( + alt_flash_fd* fd, + int offset, + const void* src_addr, + int length ) +{ + return fd->write( fd, offset, src_addr, length ); +} + +/* + * alt_read_flash + * + * Read a block of flash for most flashes this is just memcpy + * it's here for completeness in case we need it for some serial flash device + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_read_flash( + alt_flash_fd* fd, int offset, + void* dest_addr, int length ) +{ + return fd->read( fd, offset, dest_addr, length ); +} + +/* + * alt_get_flash_info + * + * Return the information on the flash sectors. + * + */ +static __inline__ int __attribute__ ((always_inline)) alt_get_flash_info( + alt_flash_fd* fd, flash_region** info, + int* number_of_regions) +{ + return fd->get_info( fd, info, number_of_regions); +} + +/* + * alt_erase_flash_block + * + * Erase a particular erase block, pass in the offset to the start of + * the block and it's size + */ +static __inline__ int __attribute__ ((always_inline)) alt_erase_flash_block( + alt_flash_fd* fd, int offset, int length) +{ + int ret_code; + ret_code = fd->erase_block( fd, offset ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + offset, length); + + return ret_code; +} + +/* + * alt_write_flash_block + * + * Write a particular flash block, block_offset is the offset + * (from the base of flash) to start of the block + * data_offset is the offset (from the base of flash) + * where you wish to start programming + * + * NB this function DOES NOT check that you are only writing a single + * block of data as that would slow down this function. + * + * Use alt_write_flash if you want that level of error checking. + */ + +static __inline__ int __attribute__ ((always_inline)) alt_write_flash_block( + alt_flash_fd* fd, int block_offset, + int data_offset, + const void *data, int length) +{ + + int ret_code; + ret_code = fd->write_block( fd, block_offset, data_offset, data, length ); + + if(!ret_code) + alt_dcache_flush((alt_u8*)fd->base_addr + data_offset, length); + + return ret_code; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_FLASH_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_flash_dev.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_flash_dev.h new file mode 100644 index 0000000..1c5692e --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_flash_dev.h @@ -0,0 +1,98 @@ +#ifndef __ALT_FLASH_DEV_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_dev.h - Generic Flash device interfaces * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_DEV_H__ + +#include "alt_flash_types.h" +#include "sys/alt_llist.h" +#include "priv/alt_dev_llist.h" + +#include "alt_types.h" + +typedef struct alt_flash_dev alt_flash_dev; +typedef alt_flash_dev alt_flash_fd; + +static ALT_INLINE int alt_flash_device_register( alt_flash_fd* fd) +{ + extern alt_llist alt_flash_dev_list; + + return alt_dev_llist_insert ((alt_dev_llist*) fd, &alt_flash_dev_list); +} + +typedef alt_flash_dev* (*alt_flash_open)(alt_flash_dev* flash, + const char* name ); +typedef int (*alt_flash_close)(alt_flash_dev* flash_info); + +typedef int (*alt_flash_write)( alt_flash_dev* flash, int offset, + const void* src_addr, int length ); + +typedef int (*alt_flash_get_flash_info)( alt_flash_dev* flash, flash_region** info, + int* number_of_regions); +typedef int (*alt_flash_write_block)( alt_flash_dev* flash, int block_offset, + int data_offset, const void* data, + int length); +typedef int (*alt_flash_erase_block)( alt_flash_dev* flash, int offset); +typedef int (*alt_flash_read)(alt_flash_dev* flash, int offset, + void* dest_addr, int length ); + +struct alt_flash_dev +{ + alt_llist llist; + const char* name; + alt_flash_open open; + alt_flash_close close; + alt_flash_write write; + alt_flash_read read; + alt_flash_get_flash_info get_info; + alt_flash_erase_block erase_block; + alt_flash_write_block write_block; + void* base_addr; + int length; + int number_of_regions; + flash_region region_info[ALT_MAX_NUMBER_OF_FLASH_REGIONS]; +}; + +#endif /* __ALT_FLASH_DEV_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_flash_types.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_flash_types.h new file mode 100644 index 0000000..10f1f01 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_flash_types.h @@ -0,0 +1,64 @@ +#ifndef __ALT_FLASH_TYPES_H__ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash_types.h - Some generic types and defines used by the flash code * +* * +* Author PRR * +* * +******************************************************************************/ +#define __ALT_FLASH_TYPES_H__ + +#ifndef ALT_MAX_NUMBER_OF_FLASH_REGIONS +#define ALT_MAX_NUMBER_OF_FLASH_REGIONS 8 +#endif /* ALT_MAX_NUMBER_OF_FLASH_REGIONS */ + +/* + * Description of a single Erase region + */ +typedef struct flash_region +{ + int offset; + int region_size; + int number_of_blocks; + int block_size; +}flash_region; + +#endif /* __ALT_FLASH_TYPES_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_irq.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_irq.h new file mode 100644 index 0000000..96c010d --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_irq.h @@ -0,0 +1,245 @@ +#ifndef __ALT_IRQ_H__ +#define __ALT_IRQ_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_irq.h is the Nios II specific implementation of the interrupt controller + * interface. + * + * Nios II includes optional support for an external interrupt controller. + * When an external controller is present, the "Enhanced" interrupt API + * must be used to manage individual interrupts. The enhanced API also + * supports the processor's internal interrupt controller. Certain API + * members are accessible from either the "legacy" or "enhanced" interrpt + * API. + * + * Regardless of which API is in use, this file should be included by + * application code and device drivers that register ISRs or manage interrpts. + */ +#include + +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Macros used by alt_irq_enabled + */ +#define ALT_IRQ_ENABLED 1 +#define ALT_IRQ_DISABLED 0 + +/* + * Number of available interrupts in internal interrupt controller. + */ +#define ALT_NIRQ NIOS2_NIRQ + +/* + * Used by alt_irq_disable_all() and alt_irq_enable_all(). + */ +typedef int alt_irq_context; + +/* ISR Prototype */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +typedef void (*alt_isr_func)(void* isr_context); +#else +typedef void (*alt_isr_func)(void* isr_context, alt_u32 id); +#endif + +/* + * The following protypes and routines are supported by both + * the enhanced and legacy interrupt APIs + */ + +/* + * alt_irq_enabled can be called to determine if the processor's global + * interrupt enable is asserted. The return value is zero if interrupts + * are disabled, and non-zero otherwise. + * + * Whether the internal or external interrupt controller is present, + * individual interrupts may still be disabled. Use the other API to query + * a specific interrupt. + */ +static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enabled (void) +{ + int status; + + NIOS2_READ_STATUS (status); + + return status & NIOS2_STATUS_PIE_MSK; +} + +/* + * alt_irq_disable_all() + * + * This routine inhibits all interrupts by negating the status register PIE + * bit. It returns the previous contents of the CPU status register (IRQ + * context) which can be used to restore the status register PIE bit to its + * state before this routine was called. + */ +static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE + alt_irq_disable_all (void) +{ + alt_irq_context context; + + NIOS2_READ_STATUS (context); + + NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); + + return context; +} + +/* + * alt_irq_enable_all() + * + * Enable all interrupts that were previously disabled by alt_irq_disable_all() + * + * This routine accepts a context to restore the CPU status register PIE bit + * to the state prior to a call to alt_irq_disable_all(). + + * In the case of nested calls to alt_irq_disable_all()/alt_irq_enable_all(), + * this means that alt_irq_enable_all() does not necessarily re-enable + * interrupts. + * + * This routine will perform a read-modify-write sequence to restore only + * status.PIE if the processor is configured with options that add additional + * writeable status register bits. These include the MMU, MPU, the enhanced + * interrupt controller port, and shadow registers. Otherwise, as a performance + * enhancement, status is overwritten with the prior context. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_enable_all (alt_irq_context context) +{ +#if (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) || (defined NIOS2_EIC_PRESENT) || \ + (defined NIOS2_MMU_PRESENT) || (defined NIOS2_MPU_PRESENT) + alt_irq_context status; + + NIOS2_READ_STATUS (status); + + status &= ~NIOS2_STATUS_PIE_MSK; + status |= (context & NIOS2_STATUS_PIE_MSK); + + NIOS2_WRITE_STATUS (status); +#else + NIOS2_WRITE_STATUS (context); +#endif +} + +/* + * The function alt_irq_init() is defined within the auto-generated file + * alt_sys_init.c. This function calls the initilization macros for all + * interrupt controllers in the system at config time, before any other + * non-interrupt controller driver is initialized. + * + * The "base" parameter is ignored and only present for backwards-compatibility. + * It is recommended that NULL is passed in for the "base" parameter. + */ +extern void alt_irq_init (const void* base); + +/* + * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. + */ +static ALT_INLINE void ALT_ALWAYS_INLINE + alt_irq_cpu_enable_interrupts () +{ + NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK +#if defined(NIOS2_EIC_PRESENT) && (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) + | NIOS2_STATUS_RSIE_MSK +#endif + ); +} + + +/* + * Prototypes for the enhanced interrupt API. + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +/* + * alt_ic_isr_register() can be used to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. + */ +extern int alt_ic_isr_register(alt_u32 ic_id, + alt_u32 irq, + alt_isr_func isr, + void *isr_context, + void *flags); + +/* + * alt_ic_irq_enable() and alt_ic_irq_disable() enable/disable a specific + * interrupt by using IRQ port and interrupt controller instance. + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq); +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq); + + /* + * alt_ic_irq_enabled() indicates whether a specific interrupt, as + * specified by IRQ port and interrupt controller instance is enabled. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq); + +#else +/* + * Prototypes for the legacy interrupt API. + */ +#include "priv/alt_legacy_irq.h" +#endif + + +/* + * alt_irq_pending() returns a bit list of the current pending interrupts. + * This is used by alt_irq_handler() to determine which registered interrupt + * handlers should be called. + * + * This routine is only available for the Nios II internal interrupt + * controller. + */ +#ifndef NIOS2_EIC_PRESENT +static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void) +{ + alt_u32 active; + + NIOS2_READ_IPENDING (active); + + return active; +} +#endif + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_IRQ_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_irq_entry.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_irq_entry.h new file mode 100644 index 0000000..549811c --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_irq_entry.h @@ -0,0 +1,39 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file pulls in the IRQ entry assembler and C code, which is only + * required if there are any interruptes in the system. + */ + +__asm__( "\n\t.globl alt_irq_entry" ); + +__asm__( "\n\t.globl alt_irq_handler" ); + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h new file mode 100644 index 0000000..1d1f16f --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h @@ -0,0 +1,77 @@ +#ifndef __ALT_LICENSE_REMINDER_UCOSII_H__ +#define __ALT_LICENSE_REMINDER_UCOSII_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include + +#define ALT_LICENSE_REMINDER_UCOSII_STRING \ + "============== Software License Reminder ===============\n" \ + "\n" \ + "uC/OS-II is provided in source form for FREE evaluation,\n" \ + "for educational use, or for peaceful research. If you\n" \ + "plan on using uC/OS-II in a commercial product you need\n" \ + "to contact Micrium to properly license its use in your\n" \ + "product. Micrium provides ALL the source code on the\n" \ + "Altera distribution for your convenience and to help you\n" \ + "experience uC/OS-II. The fact that the source is provided\n" \ + "does NOT mean that you can use it without paying a\n" \ + "licensing fee. Please help us continue to provide the\n" \ + "Embedded community with the finest software available.\n" \ + "Your honesty is greatly appreciated.\n" \ + "\n" \ + "Please contact:\n" \ + "\n" \ + "M I C R I U M\n" \ + "949 Crestview Circle\n" \ + "Weston, FL 33327-1848\n" \ + "U.S.A.\n" \ + "\n" \ + "Phone : +1 954 217 2036\n" \ + "FAX : +1 954 217 2037\n" \ + "WEB : www.micrium.com\n" \ + "E-mail: Sales@Micrium.com\n" \ + "\n" \ + "========================================================\n" + +#define alt_license_reminder_ucosii() puts(ALT_LICENSE_REMINDER_UCOSII_STRING) + + +#endif /* __ALT_LICENSE_REMINDER_UCOSII_H__ */ + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_llist.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_llist.h new file mode 100644 index 0000000..84cb051 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_llist.h @@ -0,0 +1,123 @@ +#ifndef __ALT_LIST_H__ +#define __ALT_LIST_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" + +/* + * alt_llist.h defines structures and functions for use in manipulating linked + * lists. A list is considered to be constructed from a chain of objects of + * type alt_llist, with one object being defined to be the head element. + * + * A list is considered to be empty if it only contains the head element. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * alt_llist is the structure used to represent an element within a linked + * list. + */ + +typedef struct alt_llist_s alt_llist; + +struct alt_llist_s { + alt_llist* next; /* Pointer to the next element in the list. */ + alt_llist* previous; /* Pointer to the previous element in the list. */ +}; + +/* + * ALT_LLIST_HEAD is a macro that can be used to create the head of a new + * linked list. This is named "head". The head element is initialised to + * represent an empty list. + */ + +#define ALT_LLIST_HEAD(head) alt_llist head = {&head, &head} + +/* + * ALT_LLIST_ENTRY is a macro used to define an uninitialised linked list + * entry. This is used to reserve space in structure initialisation for + * structures that inherit form alt_llist. + */ + +#define ALT_LLIST_ENTRY {0, 0} + +/* + * alt_llist_insert() insert adds the linked list entry "entry" as the + * first entry in the linked list "list". "list" is the list head element. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, + alt_llist* entry) +{ + entry->previous = list; + entry->next = list->next; + + list->next->previous = entry; + list->next = entry; +} + +/* + * alt_llist_remove() is called to remove an element from a linked list. The + * input argument is the element to remove. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_remove(alt_llist* entry) +{ + entry->next->previous = entry->previous; + entry->previous->next = entry->next; + + /* + * Set the entry to point to itself, so that any further calls to + * alt_llist_remove() are harmless. + */ + + entry->previous = entry; + entry->next = entry; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_LLIST_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_load.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_load.h new file mode 100644 index 0000000..e4c4c46 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_load.h @@ -0,0 +1,78 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "alt_types.h" + +/* + * This macro is used to load code/data from its load address to its + * execution address for a given section. The section name is the input + * argument. Note that a leading '.' is assumed in the name. For example + * to load the section .onchip_ram, use: + * + * ALT_LOAD_SECTION_BY_NAME(onchip_ram); + * + * This requires that the apropriate linker symbols have been generated + * for the section in question. This will be the case if you are using the + * default linker script. + */ + +#define ALT_LOAD_SECTION_BY_NAME(name) \ + { \ + extern void _alt_partition_##name##_start; \ + extern void _alt_partition_##name##_end; \ + extern void _alt_partition_##name##_load_addr; \ + \ + alt_load_section(&_alt_partition_##name##_load_addr, \ + &_alt_partition_##name##_start, \ + &_alt_partition_##name##_end); \ + } + +/* + * Function used to load an individual section from flash to RAM. + * + * There is an implicit assumption here that the linker script will ensure + * that all sections are word aligned. + * + */ + +static void ALT_INLINE alt_load_section (alt_u32* from, + alt_u32* to, + alt_u32* end) +{ + if (to != from) + { + while( to != end ) + { + *to++ = *from++; + } + } +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_log_printf.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_log_printf.h new file mode 100644 index 0000000..9890091 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_log_printf.h @@ -0,0 +1,349 @@ +/* alt_log_printf.h + * + * ALT_LOG is designed to provide extra logging/debugging messages from HAL + * through a different port than stdout. It is enabled by the ALT_LOG_ENABLE + * define, which needs to supplied at compile time. When logging is turned off, + * code size is unaffected. Thus, this should be transparent to the user + * when it is not actively turned on, and should not affect projects in any way. + * + * There are macros sprinkled within different components, such as the jtag uart + * and timer, in the HAL code. They are always named ALT_LOG_, and can be + * safely ignored if ALT_LOG is turned off. + * + * To turn on ALT_LOG, ALT_LOG_ENABLE must be defined, and ALT_LOG_PORT_TYPE and + * ALT_LOG_PORT_BASE must be set in system.h. This is done through editing + * .ptf, by editing the alt_log_port_type & alt_log_port_base settings. + * See the documentation html file for examples. + * + * When it is turned on, it will output extra HAL messages to a port specified + * in system.h. This can be a UART or JTAG UART port. By default it will + * output boot messages, detailing every step of the boot process. + * + * Extra logging is designed to be enabled by flags, which are defined in + * alt_log_printf.c. The default value is that all flags are off, so only the + * boot up logging messages show up. ALT_LOG_FLAGS can be set to enable certain + * groupings of flags, and that grouping is done in this file. Each flag can + * also be overridden with a -D at compile time. + * + * This header file includes the necessary prototypes for using the alt_log + * functions. It also contains all the macros that are used to remove the code + * from alt log is turned off. Also, the macros in other HAL files are defined + * here at the bottom. These macros all call some C function that is in + * alt_log_printf.c. + * + * The logging has functions for printing in C (ALT_LOG_PRINTF) and in assembly + * (ALT_LOG_PUTS). This was needed because the assembly printing occurs before + * the device is initialized. The assembly function corrupts register R4-R7, + * which are not used in the normal boot process. For this reason, do not call + * the assembly function in C. + * + * author: gkwan + */ + + +#ifndef __ALT_LOG_PRINTF_H__ +#define __ALT_LOG_PRINTF_H__ + +#include + +/* Global switch to turn on logging functions */ +#ifdef ALT_LOG_ENABLE + + /* ALT_LOG_PORT_TYPE values as defined in system.h. They are defined as + * numbers here first becasue the C preprocessor does not handle string + * comparisons. */ + #define ALTERA_AVALON_JTAG_UART 1 + #define ALTERA_AVALON_UART 0 + + /* If this .h file is included by an assembly file, skip over include files + * that won't compile in assembly. */ + #ifndef ALT_ASM_SRC + #include + #include "sys/alt_alarm.h" + #include "sys/alt_dev.h" + #ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #endif + #endif /* ALT_ASM_SRC */ + + /* These are included for the port register offsets and masks, needed + * to write to the port. Only include if the port type is set correctly, + * otherwise error. If alt_log is turned on and the port to output to is + * incorrect or does not exist, then should exit. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #ifdef __ALTERA_AVALON_JTAG_UART + #include + #else + #error ALT_LOG: JTAG_UART port chosen, but no JTAG_UART in system. + #endif + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #ifdef __ALTERA_AVALON_UART + #include + #else + #error ALT_LOG: UART Port chosen, but no UART in system. + #endif + #else + #error ALT_LOG: alt_log_port_type declaration invalid! + #endif + + /* ALT_LOG_ENABLE turns on the basic printing function */ + #define ALT_LOG_PRINTF(...) do {alt_log_printf_proc(__VA_ARGS__);} while (0) + + /* Assembly macro for printing in assembly, calls tx_log_str + * which is in alt_log_macro.S. + * If alt_log_boot_on_flag is 0, skips the printing */ + #define ALT_LOG_PUTS(str) movhi r4, %hiadj(alt_log_boot_on_flag) ; \ + addi r4, r4, %lo(alt_log_boot_on_flag) ; \ + ldwio r5, 0(r4) ; \ + beq r0, r5, 0f ; \ + movhi r4, %hiadj(str) ; \ + addi r4, r4, %lo(str) ; \ + call tx_log_str ; \ + 0: + + /* These defines are here to faciliate the use of one output function + * (alt_log_txchar) to print to both the JTAG UART or the UART. Depending + * on the port type, the status register, read mask, and output register + * are set to the appropriate value for the port. */ + #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_JTAG_UART_CONTROL + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_JTAG_UART_DATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_JTAG_UART_CONTROL_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_JTAG_UART_DATA_REG*0x4) + #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART + #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_UART_STATUS + #define ALT_LOG_PRINT_MSK ALTERA_AVALON_UART_STATUS_TRDY_MSK + #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_UART_TXDATA + #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_UART_STATUS_REG*0x4) + #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_UART_TXDATA_REG*0x4) + #endif /* ALT_LOG_PORT */ + + /* Grouping of flags via ALT_LOG_FLAGS. Each specific flag can be set via + * -D at compile time, or else they'll be set to a default value according + * to ALT_LOG_FLAGS. ALT_LOG_FLAGS = 0 or not set is the default, where + * only the boot messages will be printed. As ALT_LOG_FLAGS increase, they + * increase in intrusiveness to the program, and will affect performance. + * + * Flag Level 1 - turns on system clock and JTAG UART startup status + * 2 - turns on write echo and JTAG_UART alarm (periodic report) + * 3 - turns on JTAG UART ISR logging - will slow performance + * significantly. + * -1 - All logging output is off, but if ALT_LOG_ENABLE is + * defined all logging function is built and code size + * remains constant + * + * Flag settings - 1 = on, 0 = off. */ + + /* This flag turns on "boot" messages for printing. This includes messages + * during crt0.S, then alt_main, and finally alt_exit. */ + #ifndef ALT_LOG_BOOT_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 + #endif + #endif /* ALT_LOG_BOOT_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_SYS_CLK_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_SYS_CLK_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_WRITE_ON_FLAG_SETTING + #if ALT_LOG_FLAGS == 1 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_WRITE_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_STARTUP_INFO_FLAG_SETTING */ + + #ifndef ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING + #ifndef __ALTERA_AVALON_JTAG_UART + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 1 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 2 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #elif ALT_LOG_FLAGS == 3 + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x1 + #elif ALT_LOG_FLAGS == -1 /* silent mode */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #else /* default setting */ + #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 + #endif + #endif /* ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING */ + +#ifndef ALT_ASM_SRC + /* Function Prototypes */ + void alt_log_txchar(int c,char *uartBase); + void alt_log_private_printf(const char *fmt,int base,va_list args); + void alt_log_repchar(char c,int r,int base); + int alt_log_printf_proc(const char *fmt, ... ); + void alt_log_system_clock(); + #ifdef __ALTERA_AVALON_JTAG_UART + alt_u32 altera_avalon_jtag_uart_report_log(void * context); + void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base); + void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, \ + int base, const char* header); + void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev); + #endif + void alt_log_write(const void *ptr, size_t len); + + /* extern all global variables */ + extern volatile alt_u32 alt_log_boot_on_flag; + extern volatile alt_u8 alt_log_write_on_flag; + extern volatile alt_u8 alt_log_sys_clk_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_alarm_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_isr_on_flag; + extern volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag; + extern volatile int alt_log_sys_clk_count; + extern volatile int alt_system_clock_in_sec; + extern alt_alarm alt_log_jtag_uart_alarm_1; +#endif /* ALT_ASM_SRC */ + + + /* Below are the MACRO defines used in various HAL files. They check + * if their specific flag is turned on; if it is, then it executes its + * code. + * + * To keep this file reasonable, most of these macros calls functions, + * which are defined in alt_log_printf.c. Look there for implementation + * details. */ + + /* Boot Messages Logging */ + #define ALT_LOG_PRINT_BOOT(...) \ + do { if (alt_log_boot_on_flag==1) {ALT_LOG_PRINTF(__VA_ARGS__);} \ + } while (0) + + /* JTAG UART Logging */ + /* number of ticks before alarm runs logging function */ + #ifndef ALT_LOG_JTAG_UART_TICKS_DIVISOR + #define ALT_LOG_JTAG_UART_TICKS_DIVISOR 10 + #endif + #ifndef ALT_LOG_JTAG_UART_TICKS + #define ALT_LOG_JTAG_UART_TICKS \ + (alt_ticks_per_second()/ALT_LOG_JTAG_UART_TICKS_DIVISOR) + #endif + + /* if there's a JTAG UART defined, then enable these macros */ + #ifdef __ALTERA_AVALON_JTAG_UART + + /* Macro in altera_avalon_jtag_uart.c, to register the alarm function. + * Also, the startup register info is also printed here, as this is + * called within the device driver initialization. */ + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) \ + do { if (alt_log_jtag_uart_alarm_on_flag==1) { \ + alt_alarm_start(&alt_log_jtag_uart_alarm_1, \ + ALT_LOG_JTAG_UART_TICKS, &altera_avalon_jtag_uart_report_log,\ + dev);} \ + if (alt_log_jtag_uart_startup_info_on_flag==1) {\ + alt_log_jtag_uart_startup_info(dev, base);} \ + } while (0) + + /* JTAG UART IRQ Logging (when buffer is empty) + * Inserted in the ISR in altera_avalon_jtag_uart.c */ + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) \ + do { alt_log_jtag_uart_isr_proc(base, dev); } while (0) + /* else, define macros to nothing. Or else the jtag_uart specific types + * will throw compiler errors */ + #else + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #endif + + /* System clock logging + * How often (in seconds) the system clock logging prints. + * The default value is every 1 second */ + #ifndef ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER + #define ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER 1 + #endif + #ifndef ALT_LOG_SYS_CLK_INTERVAL + #define ALT_LOG_SYS_CLK_INTERVAL \ + (alt_ticks_per_second()*ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER) + #endif + + /* System clock logging - prints a message every interval (set above) + * to show that the system clock is alive. + * This macro is used in altera_avalon_timer_sc.c */ + #define ALT_LOG_SYS_CLK_HEARTBEAT() \ + do { alt_log_system_clock(); } while (0) + + /* alt_write_logging - echos a message every time write() is called, + * displays the first ALT_LOG_WRITE_ECHO_LEN characters. + * This macro is used in alt_write.c */ + #ifndef ALT_LOG_WRITE_ECHO_LEN + #define ALT_LOG_WRITE_ECHO_LEN 15 + #endif + + #define ALT_LOG_WRITE_FUNCTION(ptr,len) \ + do { alt_log_write(ptr,len); } while (0) + +#else /* ALT_LOG_ENABLE not defined */ + + /* logging is off, set all relevant macros to null */ + #define ALT_LOG_PRINT_BOOT(...) + #define ALT_LOG_PRINTF(...) + #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) + #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) + #define ALT_LOG_SYS_CLK_HEARTBEAT() + #define ALT_LOG_PUTS(str) + #define ALT_LOG_WRITE_FUNCTION(ptr,len) + +#endif /* ALT_LOG_ENABLE */ + +#endif /* __ALT_LOG_PRINTF_H__ */ + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_set_args.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_set_args.h new file mode 100644 index 0000000..a9372c5 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_set_args.h @@ -0,0 +1,71 @@ +#ifndef __ALT_SET_ARGS_H__ +#define __ALT_SET_ARGS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_set_args() is provided in order to define the input + * arguments to main(). If this function is not called before main() then the + * argument list passed to main() will be empty. + * + * It is expected that this function will only be used by the ihost/iclient + * utility. + */ + +static inline void alt_set_args (int argc, char** argv, char** envp) +{ + extern int alt_argc; + extern char** alt_argv; + extern char** alt_envp; + + alt_argc = argc; + alt_argv = argv; + alt_envp = envp; +} + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SET_ARGS_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_sim.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_sim.h new file mode 100644 index 0000000..63afad9 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_sim.h @@ -0,0 +1,91 @@ +#ifndef __ALT_SIM_H__ +#define __ALT_SIM_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" +#include "alt_types.h" + +/* + * Instructions that might mean something special to a simulator. + * These have no special effect on real hardware (they are just nops). + */ +#define ALT_SIM_FAIL() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc1"); } while (0) + +#define ALT_SIM_PASS() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc2"); } while (0) + +#define ALT_SIM_IN_TOP_OF_HOT_LOOP() \ + do { __asm volatile ("cmpltui r0, r0, 0xabc3"); } while (0) + +/* + * Routine called on exit. + */ +static ALT_ALWAYS_INLINE void alt_sim_halt(int exit_code) +{ + int r2 = exit_code; + +#if defined(NIOS2_HAS_DEBUG_STUB) && (defined(ALT_BREAK_ON_EXIT) || defined(ALT_PROVIDE_GMON)) + + int r3 = (1 << 2); + +#ifdef ALT_PROVIDE_GMON + extern unsigned int alt_gmon_data[]; + int r4 = (int)alt_gmon_data; + r3 |= (1 << 4); +#define ALT_GMON_DATA ,"D04"(r4) +#else +#define ALT_GMON_DATA +#endif /* ALT_PROVIDE_GMON */ + + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } + + __asm__ volatile ("\n0:\n\taddi %0,%0, -1\n\tbgt %0,zero,0b" : : "r" (ALT_CPU_FREQ/100) ); /* Delay for >30ms */ + + __asm__ volatile ("break 2" : : "D02"(r2), "D03"(r3) ALT_GMON_DATA ); + +#else /* !DEBUG_STUB */ + if (r2) { + ALT_SIM_FAIL(); + } else { + ALT_SIM_PASS(); + } +#endif /* DEBUG_STUB */ +} + +#define ALT_SIM_HALT(exit_code) \ + alt_sim_halt(exit_code) + +#endif /* __ALT_SIM_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_stack.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_stack.h new file mode 100644 index 0000000..ebcad7a --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_stack.h @@ -0,0 +1,126 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_STACK_H__ +#define __ALT_STACK_H__ + +/* + * alt_stack.h is the nios2 specific implementation of functions used by the + * stack overflow code. + */ + +#include "nios2.h" + +#include "alt_types.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + + +extern char * alt_stack_limit_value; + +#ifdef ALT_EXCEPTION_STACK +extern char __alt_exception_stack_pointer[]; /* set by the linker */ +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_stack_limit can be called to determine the current value of the stack + * limit register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_limit (void) +{ + char * limit; + NIOS2_READ_ET(limit); + + return limit; +} + +/* + * alt_stack_pointer can be called to determine the current value of the stack + * pointer register. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_pointer (void) +{ + char * pointer; + NIOS2_READ_SP(pointer); + + return pointer; +} + + +#ifdef ALT_EXCEPTION_STACK + +/* + * alt_exception_stack_pointer returns the normal stack pointer from + * where it is stored on the exception stack (uppermost 4 bytes). This + * is really only useful during exception processing, and is only + * available if a separate exception stack has been configured. + */ + +static ALT_INLINE char * ALT_ALWAYS_INLINE alt_exception_stack_pointer (void) +{ + return (char *) *(alt_u32 *)(__alt_exception_stack_pointer - sizeof(alt_u32)); +} + +#endif /* ALT_EXCEPTION_STACK */ + + +/* + * alt_set_stack_limit can be called to update the current value of the stack + * limit register. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_set_stack_limit (char * limit) +{ + alt_stack_limit_value = limit; + NIOS2_WRITE_ET(limit); +} + +/* + * alt_report_stack_overflow reports that a stack overflow happened. + */ + +static ALT_INLINE void ALT_ALWAYS_INLINE alt_report_stack_overflow (void) +{ + NIOS2_REPORT_STACK_OVERFLOW(); +} + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_STACK_H__ */ + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_stdio.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_stdio.h new file mode 100644 index 0000000..7ae05d4 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_stdio.h @@ -0,0 +1,62 @@ +#ifndef __ALT_STDIO_H__ +#define __ALT_STDIO_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * Definitions for ALT stdio routines. + */ + +#include + + +#ifdef __cplusplus +extern "C" { +#endif + +int alt_getchar(); +int alt_putchar(int c); +int alt_putstr(const char* str); +void alt_printf(const char *fmt, ...); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_STDIO_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_sys_init.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_sys_init.h new file mode 100644 index 0000000..3b18059 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_sys_init.h @@ -0,0 +1,62 @@ +#ifndef __ALT_SYS_INIT_H__ +#define __ALT_SYS_INIT_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The function alt_sys_init() is defined within the auto-generated file: + * alt_sys_init.c. This function calls the initilisation macros for all + * devices, file systems, and software components within the system. + * + * The list of initilisation macros to use is constructed using the PTF and + * STF files associated with the system. + */ + +extern void alt_sys_init (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_SYS_INIT_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_sys_wrappers.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_sys_wrappers.h new file mode 100644 index 0000000..eea552d --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_sys_wrappers.h @@ -0,0 +1,100 @@ +#ifndef __ALT_SYS_WRAPPERS_H__ +#define __ALT_SYS_WRAPPERS_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * This file provides the prototypes for the HAL 'UNIX style functions. The + * names of these functions are defined in alt_syscall.h. THese are defined to + * be the standard names when running the standalone HAL, e.g. open(), close() + * etc., but the names may be redefined as a part of an operating system port + * in order to avoid name clashes. + */ + +#include "os/alt_syscall.h" + +#include +#include +#include +#include +#include +#include + +extern int ALT_CLOSE (int __fd); +extern int ALT_EXECVE (const char *__path, + char * const __argv[], + char * const __envp[]); +extern void ALT_EXIT (int __status); +extern int ALT_FSTAT (int file, struct stat *st); +extern int ALT_FCNTL (int file, int cmd, ...); +extern pid_t ALT_FORK (void); +extern pid_t ALT_GETPID (void); + +#if defined (__GNUC__) && __GNUC__ >= 4 +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + void *ptimezone); +#else +extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, + struct timezone *ptimezone); +#endif + +extern int ALT_IOCTL (int file, int req, void* arg); +extern int ALT_ISATTY (int file); +extern int ALT_KILL (int pid, int sig); +extern int ALT_LINK (const char *existing, const char *new); +extern off_t ALT_LSEEK (int file, off_t ptr, int dir); +extern int ALT_OPEN (const char* file, int flags, ...); +extern int ALT_READ (int file, void *ptr, size_t len); +extern int ALT_RENAME (char *existing, char *new); +extern void* ALT_SBRK (ptrdiff_t incr); +extern int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz); +extern int ALT_STAT (const char *file, struct stat *st); +extern clock_t ALT_TIMES (struct tms *buf); +extern int ALT_UNLINK (const char *name); + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us); +#else +unsigned int ALT_USLEEP (unsigned int us); +#endif + +extern int ALT_WAIT (int *status); +extern int ALT_WRITE (int file, const void *ptr, size_t len); + + +extern char** ALT_ENVIRON; + +/* + * + */ + +#endif /* __ALT_SYS_WRAPPERS_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_timestamp.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_timestamp.h new file mode 100644 index 0000000..ec704ba --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_timestamp.h @@ -0,0 +1,60 @@ +#ifndef __ALT_TIMESTAMP_H__ +#define __ALT_TIMESTAMP_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "altera_avalon_timer.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +extern int alt_timestamp_start (void); + +extern alt_timestamp_type alt_timestamp (void); + +extern alt_u32 alt_timestamp_freq (void); + +#ifdef __cplusplus +} +#endif + +#endif /* __ALT_TIMESTAMP_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_warning.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_warning.h new file mode 100644 index 0000000..01318bd --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/alt_warning.h @@ -0,0 +1,75 @@ +#ifndef __WARNING_H__ +#define __WARNING_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* + * alt_warning.h provides macro definitions that can be used to generate link + * time warnings. + */ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The symbol "__alt_invalid" is used to force a link error. There should be + * no corresponding implementation of this function. + */ + +extern void __alt_invalid (void); + +#define ALT_LINK_WARNING(symbol, msg) \ + __asm__(".ifndef __evoke_link_warning_" #symbol \ + "\n\t .section .gnu.warning." #symbol \ + "\n__evoke_link_warning_" #symbol ":\n\t .string \x22" msg "\x22 \n\t .previous" \ + "\n .endif"); + +/* A canned warning for sysdeps/stub functions. */ + +#define ALT_STUB_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is not implemented and will always fail") + +#define ALT_OBSOLETE_FUNCTION_WARNING(name) \ + ALT_LINK_WARNING (name, \ + "warning: " #name " is a deprecated function") + +#define ALT_LINK_ERROR(msg) \ + ALT_LINK_WARNING (__alt_invalid, msg); \ + __alt_invalid() + +#ifdef __cplusplus +} +#endif + +#endif /* __WARNING_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/ioctl.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/ioctl.h new file mode 100644 index 0000000..453283b --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/ioctl.h @@ -0,0 +1,90 @@ +#ifndef __IOCTL_H__ +#define __IOCTL_H__ + +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The ioctl() system call be used to initiate a variety of control operations + * on a file descriptor. For the most part this simply translates to a call to + * the ioctl() function of the associated device driver (TIOCEXCL and + * TIOCNXCL are notable exceptions - see ioctl.c for details). + * + * The interpretation of the ioctl requests are therefore device specific. + * + * This function is equivalent to the standard Posix ioctl() call. + */ + +extern int ioctl (int fd, int req, void* arg); + +/* + * list of ioctl calls handled by the system ioctl implementation. + */ + +#define TIOCEXCL 0x740d /* exclusive use of the device */ +#define TIOCNXCL 0x740e /* allow multiple use of the device */ + +/* + * ioctl calls which can be handled by device drivers. + */ + +#define TIOCOUTQ 0x7472 /* get output queue size */ +#define TIOCMGET 0x741d /* get termios flags */ +#define TIOCMSET 0x741a /* set termios flags */ + +/* + * ioctl calls specific to JTAG UART. + */ + +#define TIOCSTIMEOUT 0x6a01 /* Set Timeout before assuming no host present */ +#define TIOCGCONNECTED 0x6a02 /* Get indication of whether host is connected */ + +/* + * + */ + +#ifdef __cplusplus +} +#endif + +#endif /* __IOCTL_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/termios.h b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/termios.h new file mode 100644 index 0000000..d271387 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/inc/sys/termios.h @@ -0,0 +1,181 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * +* * +******************************************************************************/ + +/* + * This is the termios.h file provided with newlib. The only modification has + * been to the baud rate macro definitions, and an increase in the size of the + * termios structure to accomodate this. + */ + + +#ifndef _SYS_TERMIOS_H +# define _SYS_TERMIOS_H + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +# define _XCGETA (('x'<<8)|1) +# define _XCSETA (('x'<<8)|2) +# define _XCSETAW (('x'<<8)|3) +# define _XCSETAF (('x'<<8)|4) +# define _TCSBRK (('T'<<8)|5) +# define _TCFLSH (('T'<<8)|7) +# define _TCXONC (('T'<<8)|6) + +# define TCOOFF 0 +# define TCOON 1 +# define TCIOFF 2 +# define TCION 3 + +# define TCIFLUSH 0 +# define TCOFLUSH 1 +# define TCIOFLUSH 2 + +# define NCCS 13 + +# define TCSAFLUSH _XCSETAF +# define TCSANOW _XCSETA +# define TCSADRAIN _XCSETAW +# define TCSADFLUSH _XCSETAF + +# define IGNBRK 000001 +# define BRKINT 000002 +# define IGNPAR 000004 +# define INPCK 000020 +# define ISTRIP 000040 +# define INLCR 000100 +# define IGNCR 000200 +# define ICRNL 000400 +# define IXON 002000 +# define IXOFF 010000 + +# define OPOST 000001 +# define OCRNL 000004 +# define ONLCR 000010 +# define ONOCR 000020 +# define TAB3 014000 + +# define CLOCAL 004000 +# define CREAD 000200 +# define CSIZE 000060 +# define CS5 0 +# define CS6 020 +# define CS7 040 +# define CS8 060 +# define CSTOPB 000100 +# define HUPCL 002000 +# define PARENB 000400 +# define PAODD 001000 + +#define CCTS_OFLOW 010000 +#define CRTS_IFLOW 020000 +#define CRTSCTS (CCTS_OFLOW | CRTS_IFLOW) + +# define ECHO 0000010 +# define ECHOE 0000020 +# define ECHOK 0000040 +# define ECHONL 0000100 +# define ICANON 0000002 +# define IEXTEN 0000400 /* anybody know *what* this does?! */ +# define ISIG 0000001 +# define NOFLSH 0000200 +# define TOSTOP 0001000 + +# define VEOF 4 /* also VMIN -- thanks, AT&T */ +# define VEOL 5 /* also VTIME -- thanks again */ +# define VERASE 2 +# define VINTR 0 +# define VKILL 3 +# define VMIN 4 /* also VEOF */ +# define VQUIT 1 +# define VSUSP 10 +# define VTIME 5 /* also VEOL */ +# define VSTART 11 +# define VSTOP 12 + +# define B0 0 +# define B50 50 +# define B75 75 +# define B110 110 +# define B134 134 +# define B150 150 +# define B200 200 +# define B300 300 +# define B600 600 +# define B1200 1200 +# define B1800 1800 +# define B2400 2400 +# define B4800 4800 +# define B9600 9600 +# define B19200 19200 +# define B38400 38400 +# define B57600 57600 +# define B115200 115200 + +typedef unsigned char cc_t; +typedef unsigned short tcflag_t; +typedef unsigned long speed_t; + +struct termios { + tcflag_t c_iflag; + tcflag_t c_oflag; + tcflag_t c_cflag; + tcflag_t c_lflag; + char c_line; + cc_t c_cc[NCCS]; + speed_t c_ispeed; + speed_t c_ospeed; +}; + +# ifndef _NO_MACROS + +# define cfgetospeed(tp) ((tp)->c_ospeed) +# define cfgetispeed(tp) ((tp)->c_ispeed) +# define cfsetospeed(tp,s) (((tp)->c_ospeed = (s)), 0) +# define cfsetispeed(tp,s) (((tp)->c_ispeed = (s)), 0) +# define tcdrain(fd) _ioctl (fd, _TCSBRK, 1) +# endif /* _NO_MACROS */ + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_TERMIOS_H */ + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_alarm_start.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_alarm_start.c new file mode 100644 index 0000000..2bd672f --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_alarm_start.c @@ -0,0 +1,112 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_irq.h" + +/* + * alt_alarm_start is called to register an alarm with the system. The + * "alarm" structure passed as an input argument does not need to be + * initialised by the user. This is done within this function. + * + * The remaining input arguments are: + * + * nticks - The time to elapse until the alarm executes. This is specified in + * system clock ticks. + * callback - The function to run when the indicated time has elapsed. + * context - An opaque value, passed to the callback function. +* + * Care should be taken when defining the callback function since it is + * likely to execute in interrupt context. In particular, this mean that + * library calls like printf() should not be made, since they can result in + * deadlock. + * + * The interval to be used for the next callback is the return + * value from the callback function. A return value of zero indicates that the + * alarm should be unregistered. + * + * alt_alarm_start() will fail if the timer facility has not been enabled + * (i.e. there is no system clock). Failure is indicated by a negative return + * value. + */ + +int alt_alarm_start (alt_alarm* alarm, alt_u32 nticks, + alt_u32 (*callback) (void* context), + void* context) +{ + alt_irq_context irq_context; + alt_u32 current_nticks = 0; + + if (alt_ticks_per_second ()) + { + if (alarm) + { + alarm->callback = callback; + alarm->context = context; + + irq_context = alt_irq_disable_all (); + + current_nticks = alt_nticks(); + + alarm->time = nticks + current_nticks + 1; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < current_nticks) + { + alarm->rollover = 1; + } + else + { + alarm->rollover = 0; + } + + alt_llist_insert (&alt_alarm_list, &alarm->llist); + alt_irq_enable_all (irq_context); + + return 0; + } + else + { + return -EINVAL; + } + } + else + { + return -ENOTSUP; + } +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_busy_sleep.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_busy_sleep.c new file mode 100644 index 0000000..1b910a5 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_busy_sleep.c @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * alt_busy_sleep.c - Microsecond delay routine which uses a calibrated busy + * loop to perform the delay. This is used to implement + * usleep for both uC/OS-II and the standalone HAL. + * + * Author PRR + * + * Calibrated delay with no timer required + * + * The ASM instructions in the routine are equivalent to + * + * for (i=0;i +#include + +#include "system.h" +#include "alt_types.h" + +#include "priv/alt_busy_sleep.h" + +unsigned int alt_busy_sleep (unsigned int us) +{ +/* + * Only delay if ALT_SIM_OPTIMIZE is not defined; i.e., if software + * is built targetting ModelSim RTL simulation, the delay will be + * skipped to speed up simulation. + */ +#ifndef ALT_SIM_OPTIMIZE + int i; + int big_loops; + alt_u32 cycles_per_loop; + + if (!strcmp(NIOS2_CPU_IMPLEMENTATION,"tiny")) + { + cycles_per_loop = 9; + } + else + { + cycles_per_loop = 3; + } + + + big_loops = us / (INT_MAX/ + (ALT_CPU_FREQ/(cycles_per_loop * 1000000))); + + if (big_loops) + { + for(i=0;i + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_CLOSE (int fildes) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(close); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * close() is called by an application to release a file descriptor. If the + * associated file system/device has a close() callback function registered + * then this called. The file descriptor is then marked as free. + * + * ALT_CLOSE is mapped onto the close() system call in alt_syscall.h + */ + +int ALT_CLOSE (int fildes) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (fildes < 0) ? NULL : &alt_fd_list[fildes]; + + if (fd) + { + /* + * If the associated file system/device has a close function, call it so + * that any necessary cleanup code can run. + */ + + rval = (fd->dev->close) ? fd->dev->close(fd) : 0; + + /* Free the file descriptor structure and return. */ + + alt_release_fd (fildes); + if (rval < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return 0; + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dcache_flush.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dcache_flush.c new file mode 100644 index 0000000..8afe062 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dcache_flush.c @@ -0,0 +1,97 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * Nios II version 1.2 and newer supports the "flush by address" instruction, in + * addition to the "flush by line" instruction provided by older versions of + * the core. This newer instruction is used by preference when it is + * available. + */ + +#ifdef NIOS2_FLUSHDA_SUPPORTED +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushda (%0)" :: "r" (i)); +#else +#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushd (%0)" :: "r" (i)); +#endif /* NIOS2_FLUSHDA_SUPPORTED */ + +/* + * alt_dcache_flush() is called to flush the data cache for a memory + * region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are written back to memory. + */ + +void alt_dcache_flush (void* start, alt_u32 len) +{ +#if NIOS2_DCACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + * + * SPR 196942, 2006.01.13: The cache flush loop below will use the + * 'flushda' instruction if its available; in that case each line + * must be flushed individually, and thus 'len' cannot be trimmed. + */ + #ifndef NIOS2_FLUSHDA_SUPPORTED + if (len > NIOS2_DCACHE_SIZE) + { + len = NIOS2_DCACHE_SIZE; + } + #endif + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA(i); + } + +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dcache_flush_all.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dcache_flush_all.c new file mode 100644 index 0000000..80735b7 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dcache_flush_all.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_dcache_flush_all() is called to flush the entire data cache. + */ + +void alt_dcache_flush_all (void) +{ +#if NIOS2_DCACHE_SIZE > 0 + char* i; + + for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) + { + __asm__ volatile ("flushd (%0)" :: "r" (i)); + } +#endif /* NIOS2_DCACHE_SIZE > 0 */ +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dcache_flush_no_writeback.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dcache_flush_no_writeback.c new file mode 100644 index 0000000..3b277d2 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dcache_flush_no_writeback.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * The INITDA instruction was added to Nios II in the 8.0 release. + * + * The INITDA instruction has one of the following possible behaviors + * depending on the processor configuration: + * 1) Flushes a line by address but does NOT write back dirty data. + * Occurs when a data cache is present that supports INITDA. + * The macro NIOS2_INITDA_SUPPORTED is defined in system.h. + * 2) Takes an unimplemented instruction exception. + * Occurs when a data cache is present that doesn't support INITDA. + * 3) Performs no operation + * Occurs when there is no data cache present. + * The macro NIOS2_DCACHE_SIZE is 0 in system.h. + */ + +#define ALT_FLUSH_DATA_NO_WRITEBACK(i) \ + __asm__ volatile ("initda (%0)" :: "r" (i)); + +/* + * alt_dcache_flush_no_writeback() is called to flush the data cache for a + * memory region of length "len" bytes, starting at address "start". + * + * Any dirty lines in the data cache are NOT written back to memory. + * Make sure you really want this behavior. If you aren't 100% sure, + * use the alt_dcache_flush() routine instead. + */ + +void alt_dcache_flush_no_writeback (void* start, alt_u32 len) +{ +#if defined(NIOS2_INITDA_SUPPORTED) + + char* i; + char* end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) + { + ALT_FLUSH_DATA_NO_WRITEBACK(i); + } + +#endif /* NIOS2_INITDA_SUPPORTED */ +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dev.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dev.c new file mode 100644 index 0000000..92f3f2a --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dev.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * This file contains the data constructs used to control access to device and + * filesytems. + */ + +/* + * "alt_fs_list" is the head of a linked list of registered filesystems. It is + * initialised as an empty list. New entries can be added using the + * alt_fs_reg() function. + */ + +ALT_LLIST_HEAD(alt_fs_list); + + +/* + * "alt_dev_list" is the head of a linked list of registered devices. It is + * configured at startup to include a single device, "alt_dev_null". This + * device is discussed below. + */ + +extern alt_dev alt_dev_null; /* forward declaration */ + +alt_llist alt_dev_list = {&alt_dev_null.llist, &alt_dev_null.llist}; + +/* + * alt_dev_null_write() is the implementation of the write() function used + * by the alt_dev_null device. It simple discards all data passed to it, and + * indicates that the data has been successfully transmitted. + */ + +static int alt_dev_null_write (alt_fd* fd, const char* ptr, int len) +{ + return len; +} + +/* + * "alt_dev_null" is used to allow output to be redirected to nowhere. It is + * the only device registered before the call to alt_sys_init(). At startup + * stin, stdout & stderr are all directed towards this device so that library + * calls like printf() will be safe but inefectual. + */ + +alt_dev alt_dev_null = { + { + &alt_dev_list, + &alt_dev_list + }, + "/dev/null", + NULL, /* open */ + NULL, /* close */ + NULL, /* write */ + alt_dev_null_write, /* write */ + NULL, /* lseek */ + NULL, /* fstat */ + NULL /* ioctl */ + }; + +/* + * "alt_fd_list_lock" is a semaphore used to control access to the file + * descriptor list. This is used to ensure that access to the list is thread + * safe. + */ + +ALT_SEM(alt_fd_list_lock) + +/* + * "alt_max_fd" is used to make access to the file descriptor list more + * efficent. It is set to be the value of the highest allocated file + * descriptor. This saves having to search the entire pool of unallocated + * file descriptors when looking for a match. + */ + +alt_32 alt_max_fd = -1; + +/* + * "alt_fd_list" is the file descriptor pool. The first three entries in the + * array are configured as standard in, standard out, and standard error. These + * are all initialised so that accesses are directed to the alt_dev_null + * device. The remaining file descriptors are initialised as unallocated. + * + * The maximum number of file descriptors within the system is specified by the + * user defined macro "ALT_MAX_FD". This is defined in "system.h", which is + * auto-genereated using the projects PTF and STF files. + */ + +alt_fd alt_fd_list[ALT_MAX_FD] = + { + { + &alt_dev_null, /* standard in */ + 0, + 0 + }, + { + &alt_dev_null, /* standard out */ + 0, + 0 + }, + { + &alt_dev_null, /* standard error */ + 0, + 0 + } + /* all other elements are set to zero */ + }; diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dev_llist_insert.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dev_llist_insert.c new file mode 100644 index 0000000..5e8a952 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dev_llist_insert.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "priv/alt_dev_llist.h" +#include "sys/alt_errno.h" + +/* + * + */ + +int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list) +{ + /* + * check that the device exists, and that it has a valid name. + */ + + if (!dev || !dev->name) + { + ALT_ERRNO = EINVAL; + return -EINVAL; + } + + /* + * register the device. + */ + + alt_llist_insert(list, &dev->llist); + + return 0; +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dma_rxchan_open.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dma_rxchan_open.c new file mode 100644 index 0000000..5d461d9 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dma_rxchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered DMA receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_rxchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_rxchan alt_dma_rxchan_open (const char* name) +{ + alt_dma_rxchan dev; + + dev = (alt_dma_rxchan) alt_find_dev (name, &alt_dma_rxchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dma_txchan_open.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dma_txchan_open.c new file mode 100644 index 0000000..99f9181 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_dma_txchan_open.c @@ -0,0 +1,63 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dma.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" + +/* + * The list of registered receive channels. + */ + +ALT_LLIST_HEAD(alt_dma_txchan_list); + +/* + * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for + * a DMA transmit device. The name is the name of the associated physical + * device (e.g. "/dev/dma_0"). + * + * The return value will be NULL on failure, and non-NULL otherwise. + */ + +alt_dma_txchan alt_dma_txchan_open (const char* name) +{ + alt_dma_txchan dev; + + dev = (alt_dma_txchan) alt_find_dev (name, &alt_dma_txchan_list); + + if (!dev) + { + ALT_ERRNO = ENODEV; + } + + return dev; +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_do_ctors.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_do_ctors.c new file mode 100644 index 0000000..be1c134 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_do_ctors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*constructor) (void); +extern constructor __CTOR_LIST__[]; +extern constructor __CTOR_END__[]; + +/* + * Run the C++ static constructors. + */ + +void _do_ctors(void) +{ + constructor* ctor; + + for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--) + (*ctor) (); +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_do_dtors.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_do_dtors.c new file mode 100644 index 0000000..b61166a --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_do_dtors.c @@ -0,0 +1,64 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * +* * +* Overriding HAL Functions * +* * +* To provide your own implementation of a HAL function, include the file in * +* your Nios II IDE application project. When building the executable, the * +* Nios II IDE finds your function first, and uses it in place of the HAL * +* version. * +* * +******************************************************************************/ + +/* + * + */ + +typedef void (*destructor) (void); +extern destructor __DTOR_LIST__[]; +extern destructor __DTOR_END__[]; + +/* + * Run the C++ static destructors. + */ + +void _do_dtors(void) +{ + destructor* dtor; + + for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--) + (*dtor) (); +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_env_lock.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_env_lock.c new file mode 100644 index 0000000..0c5d522 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_env_lock.c @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty env lock/unlock stubs required by newlib. These are + * used to make accesses to environment variables thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that environment variables are never manipulated by an interrupt + * service routine. + */ + +void __env_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __env_unlock ( struct _reent *_r ) +{ +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_environ.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_environ.c new file mode 100644 index 0000000..780635a --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_environ.c @@ -0,0 +1,42 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * These are the environment variables passed to the C code. By default there + * are no variables registered. An application can manipulate this list using + * getenv() and setenv(). + */ + +char *__env[1] = { 0 }; +char **ALT_ENVIRON = __env; diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_errno.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_errno.c new file mode 100644 index 0000000..4c5ca3e --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_errno.c @@ -0,0 +1,44 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file defines the alt_errno global variable. See comments in + * alt_errno.h for the use of this variable. + */ + + +#include "sys/alt_errno.h" +#include "alt_types.h" + +extern int ALT_WEAK *__errno (void); + +int* (*alt_errno) (void) = __errno; diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_exception_entry.S b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_exception_entry.S new file mode 100644 index 0000000..486465b --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_exception_entry.S @@ -0,0 +1,360 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the exception entry point code, which saves all the caller saved + * registers and then handles the appropriate exception. It should be pulled + * in using a .globl from all the exception handler routines. This scheme is + * used so that if an interrupt is never registered, then this code will not + * appear in the generated executable, thereby improving code footprint. + * + * If an external interrpt controller (EIC) is present, it will supply an + * interrupt vector address to the processor when an interrupt occurs. For + * The Altera Vectored Interrupt Controller (VIC) driver will establish a + * vector table and the processor will jump directly to the appropriate + * table entry, funnel routine, and then user ISR. This will bypass this code + * in entirety. This code might still be linked into a system with an EIC, + * but would then be used only for non-interrupt exceptions. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + + /* + * The top and bottom of the exception stack + */ +#ifdef ALT_EXCEPTION_STACK + + .globl __alt_exception_stack_pointer + +#ifdef ALT_STACK_CHECK + + .globl __alt_exception_stack_limit + + /* + * We need to store the value of the stack limit after interrupt somewhere. + */ + .globl alt_exception_old_stack_limit + +#endif +#endif + + .section .exceptions.entry.label, "xa" + + .globl alt_exception + .type alt_exception, @function +alt_exception: + + .section .exceptions.entry, "xa" + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + movhi et, %hiadj(__alt_exception_stack_pointer - 80) + addi et, et, %lo(__alt_exception_stack_pointer - 80) + stw sp, 76(et) + mov sp, et + +#ifdef ALT_STACK_CHECK + movhi et, %hiadj(__alt_exception_stack_limit) + addi et, et, %lo(__alt_exception_stack_limit) + stw et, %gprel(alt_stack_limit_value)(gp) +#endif + +#else + /* + * Process an exception. For all exceptions we must preserve all + * caller saved registers on the stack (See the Nios2 ABI + * documentation for details). + */ + + addi sp, sp, -76 + +#ifdef ALT_STACK_CHECK + + bltu sp, et, .Lstack_overflow + +#endif + +#endif + + stw ra, 0(sp) + + /* + * Leave a gap in the stack frame at 4(sp) for the muldiv handler to + * store zero into. + */ + + stw r1, 8(sp) + stw r2, 12(sp) + stw r3, 16(sp) + stw r4, 20(sp) + stw r5, 24(sp) + stw r6, 28(sp) + stw r7, 32(sp) + + rdctl r5, estatus + + stw r8, 36(sp) + stw r9, 40(sp) + stw r10, 44(sp) + stw r11, 48(sp) + stw r12, 52(sp) + stw r13, 56(sp) + stw r14, 60(sp) + stw r15, 64(sp) + + /* + * ea-4 contains the address of the instruction being executed + * when the exception occured. For interrupt exceptions, we will + * will be re-issue the isntruction. Store it in 72(sp) + */ + stw r5, 68(sp) /* estatus */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + + /* + * The interrupt testing code (.exceptions.irqtest) will be + * linked here. If the Internal Interrupt Controller (IIC) is + * present (an EIC is not present), the presense of an interrupt + * is determined by examining CPU control registers or an interrupt + * custom instruction, if present. + * + * If the IIC is used and an interrupt is active, the code linked + * here will call the HAL IRQ handler (alt_irq_handler()) which + * successively calls registered interrupt handler(s) until no + * interrupts remain pending. It then jumps to .exceptions.exit. If + * there is no interrupt then it continues to .exception.notirq, below. + */ + + .section .exceptions.notirq, "xa" + + /* + * Prepare to service unimplemtned instructions or traps, + * each of which is optionally inked into section .exceptions.soft, + * which will preceed .exceptions.unknown below. + * + * Unlike interrupts, we want to skip the exception-causing instructon + * upon completion, so we write ea (address of instruction *after* + * the one where the exception occured) into 72(sp). The actual + * instruction that caused the exception is written in r2, which these + * handlers will utilize. + */ + stw ea, 72(sp) /* Don't re-issue */ + ldw r2, -4(ea) /* Instruction that caused exception */ + + /* + * Other exception handling code, if enabled, will be linked here. + * This includes unimplemted (multiply/divide) instruction support + * (a BSP generaton option), and a trap handler (that would typically + * be augmented with user-specific code). These are not linked in by + * default. + */ + + /* + * In the context of linker sections, "unknown" are all exceptions + * not handled by the built-in handlers above (interupt, and trap or + * unimplemented instruction decoding, if enabled). + * + * Advanced exception types can be serviced by registering a handler. + * To do so, enable the "Enable Instruction-related Exception API" HAL + * BSP setting. If this setting is disabled, this handler code will + * either break (if the debug core is present) or enter an infinite + * loop because we don't how how to handle the exception. + */ + .section .exceptions.unknown +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + /* + * The C-based HAL routine alt_instruction_exception_entry() will + * attempt to service the exception by calling a user-registered + * exception handler using alt_instruction_exception_register(). + * If no handler was registered it will either break (if the + * debugger is present) or go into an infinite loop since the + * handling behavior is undefined; in that case we will not return here. + */ + + /* Load exception-causing address as first argument (r4) */ + addi r4, ea, -4 + + /* Call the instruction-exception entry */ + call alt_instruction_exception_entry + + /* + * If alt_instruction_exception_entry() returned, the exception was + * serviced by a user-registered routine. Its return code (now in r2) + * indicates whether to re-issue or skip the exception-causing + * instruction + * + * Return code was 0: Skip. The instruction after the exception is + * already stored in 72(sp). + */ + bne r2, r0, .Lexception_exit + + /* + * Otherwise, modify 72(sp) to re-issue the instruction that caused the + * exception. + */ + addi r15, ea, -4 /* instruction that caused exception */ + stw r15, 72(sp) + +#else /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API disabled */ + + /* + * We got here because an instruction-related exception occured, but the + * handler API was not compiled in. We do not presume to know how to + * handle it. If the debugger is present, break, otherwise hang. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious + * interrupts) + */ +#ifdef NIOS2_HAS_DEBUG_STUB + /* + * Either tell the user now (if there is a debugger attached) or go into + * the debug monitor which will loop until a debugger is attached. + */ + break +#else + /* + * If there is no debug stub then a BREAK will probably cause a reboot. + * An infinate loop will probably be more useful. + */ +0: + br 0b +#endif /* NIOS2_HAS_DEBUG_STUB */ + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + + .section .exceptions.exit.label +.Lexception_exit: + + .section .exceptions.exit, "xa" + + /* + * Restore the saved registers, so that all general purpose registers + * have been restored to their state at the time the interrupt occured. + */ + + ldw r5, 68(sp) + ldw ea, 72(sp) /* This becomes the PC once eret is executed */ + ldw ra, 0(sp) + + wrctl estatus, r5 + + ldw r1, 8(sp) + ldw r2, 12(sp) + ldw r3, 16(sp) + ldw r4, 20(sp) + ldw r5, 24(sp) + ldw r6, 28(sp) + ldw r7, 32(sp) + +#ifdef ALT_EXCEPTION_STACK +#ifdef ALT_STACK_CHECK + ldw et, %gprel(alt_exception_old_stack_limit)(gp) +#endif +#endif + + ldw r8, 36(sp) + ldw r9, 40(sp) + ldw r10, 44(sp) + ldw r11, 48(sp) + ldw r12, 52(sp) + ldw r13, 56(sp) + ldw r14, 60(sp) + ldw r15, 64(sp) + +#ifdef ALT_EXCEPTION_STACK + +#ifdef ALT_STACK_CHECK + stw et, %gprel(alt_stack_limit_value)(gp) + stw zero, %gprel(alt_exception_old_stack_limit)(gp) +#endif + + ldw sp, 76(sp) + +#else + addi sp, sp, 76 + +#endif + + /* + * Return to the interrupted instruction. + */ + + eret + +#ifdef ALT_STACK_CHECK + +.Lstack_overflow: + break 3 + +#endif + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_exception_muldiv.S b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_exception_muldiv.S new file mode 100644 index 0000000..6a794a3 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_exception_muldiv.S @@ -0,0 +1,583 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the software multiply/divide handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_muldiv +alt_exception_muldiv: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + + .section .exceptions.soft, "xa" + + + /* INSTRUCTION EMULATION + * --------------------- + * + * Nios II processors generate exceptions for unimplemented instructions. + * The routines below emulate these instructions. Depending on the + * processor core, the only instructions that might need to be emulated + * are div, divu, mul, muli, mulxss, mulxsu, and mulxuu. + * + * The emulations match the instructions, except for the following + * limitations: + * + * 1) The emulation routines do not emulate the use of the exception + * temporary register (et) as a source operand because the exception + * handler already has modified it. + * + * 2) The routines do not emulate the use of the stack pointer (sp) or the + * exception return address register (ea) as a destination because + * modifying these registers crashes the exception handler or the + * interrupted routine. + * + * 3) To save code size, the routines do not emulate the use of the + * breakpoint registers (ba and bt) as operands. + * + * Detailed Design + * --------------- + * + * The emulation routines expect the contents of integer registers r0-r31 + * to be on the stack at addresses sp, 4(sp), 8(sp), ... 124(sp). The + * routines retrieve source operands from the stack and modify the + * destination register's value on the stack prior to the end of the + * exception handler. Then all registers except the destination register + * are restored to their previous values. + * + * The instruction that causes the exception is found at address -4(ea). + * The instruction's OP and OPX fields identify the operation to be + * performed. + * + * One instruction, muli, is an I-type instruction that is identified by + * an OP field of 0x24. + * + * muli AAAAA,BBBBB,IIIIIIIIIIIIIIII,-0x24- + * 27 22 6 0 <-- LSB of field + * + * The remaining emulated instructions are R-type and have an OP field + * of 0x3a. Their OPX fields identify them. + * + * R-type AAAAA,BBBBB,CCCCC,XXXXXX,NNNNN,-0x3a- + * 27 22 17 11 6 0 <-- LSB of field + * + * + */ + + + /* + * Split the instruction into its fields. We need 4*A, 4*B, and 4*C as + * offsets to the stack pointer for access to the stored register values. + */ + /* r2 = AAAAA,BBBBB,IIIIIIIIIIIIIIII,PPPPPP */ + roli r3, r2, 7 /* r3 = BBB,IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BB */ + roli r4, r3, 3 /* r4 = IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB */ + roli r6, r4, 2 /* r6 = IIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB,II */ + srai r4, r4, 16 /* r4 = (sign-extended) IMM16 */ + xori r6, r6, 0x42 /* r6 = CCC,XXXXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cC */ + roli r7, r6, 5 /* r7 = XXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cCCCC,XX */ + andi r5, r2, 0x3f /* r5 = 00000000000000000000000000,PPPPPP */ + xori r3, r3, 0x40 + andi r3, r3, 0x7c /* r3 = 0000000000000000000000000,aAAAA,00 */ + andi r6, r6, 0x7c /* r6 = 0000000000000000000000000,bBBBB,00 */ + andi r7, r7, 0x7c /* r7 = 0000000000000000000000000,cCCCC,00 */ + + /* Now either + * r5 = OP + * r3 = 4*(A^16) + * r4 = IMM16 (sign extended) + * r6 = 4*(B^16) + * r7 = 4*(C^16) + * or + * r5 = OP + */ + + + /* + * Save everything on the stack to make it easy for the emulation routines + * to retrieve the source register operands. The exception entry code has + * already saved some of this so we don't need to do it all again. + */ + + addi sp, sp, -60 + stw zero, 64(sp) /* Save zero on stack to avoid special case for r0. */ + /* Register at and r2-r15 have already been saved. */ + + stw r16, 0(sp) + stw r17, 4(sp) + stw r18, 8(sp) + stw r19, 12(sp) + stw r20, 16(sp) + stw r21, 20(sp) + stw r22, 24(sp) + stw r23, 28(sp) + /* et @ 32 - Has already been changed.*/ + /* bt @ 36 - Usually isn't an operand. */ + stw gp, 40(sp) + stw sp, 44(sp) + stw fp, 48(sp) + /* ea @ 52 - Don't bother to save - it's already been changed */ + /* ba @ 56 - Breakpoint register usually isn't an operand */ + /* ra @ 60 - Has already been saved */ + + + /* + * Prepare for either multiplication or division loop. + * They both loop 32 times. + */ + movi r14, 32 + + + /* + * Get the operands. + * + * It is necessary to check for muli because it uses an I-type instruction + * format, while the other instructions are have an R-type format. + */ + add r3, r3, sp /* r3 = address of A-operand. */ + ldw r3, 0(r3) /* r3 = A-operand. */ + movi r15, 0x24 /* muli opcode (I-type instruction format) */ + beq r5, r15, .Lmul_immed /* muli doesn't use the B register as a source */ + + add r6, r6, sp /* r6 = address of B-operand. */ + ldw r6, 0(r6) /* r6 = B-operand. */ + /* r4 = SSSSSSSSSSSSSSSS,-----IMM16------ */ + /* IMM16 not needed, align OPX portion */ + /* r4 = SSSSSSSSSSSSSSSS,CCCCC,-OPX--,00000 */ + srli r4, r4, 5 /* r4 = 00000,SSSSSSSSSSSSSSSS,CCCCC,-OPX-- */ + andi r4, r4, 0x3f /* r4 = 00000000000000000000000000,-OPX-- */ + + /* Now + * r5 = OP + * r3 = src1 + * r6 = src2 + * r4 = OPX (no longer can be muli) + * r7 = 4*(C^16) + * r14 = loop counter + */ + + /* ILLEGAL-INSTRUCTION EXCEPTION + * ----------------------------- + * + * This code is for Nios II cores that generate exceptions when attempting + * to execute illegal instructions. Nios II cores that support an + * illegal-instruction exception are identified by the presence of the + * macro definition NIOS2_HAS_ILLEGAL_INSTRUCTION_EXCEPTION in system.h . + * + * Remember that illegal instructions are different than unimplemented + * instructions. Illegal instructions are instruction encodings that + * have not been defined by the Nios II ISA. Unimplemented instructions + * are legal instructions that must be emulated by some Nios II cores. + * + * If we get here, all instructions except multiplies and divides + * are illegal. + * + * This code assumes that OP is not muli (because muli was tested above). + * All other multiplies and divides are legal. Anything else is illegal. + */ + + movi r8, 0x3a /* OP for R-type mul* and div* */ + bne r5, r8, .Lnot_muldiv + + /* r15 already is 0x24 */ /* OPX of divu */ + beq r4, r15, .Ldivide + + movi r15,0x27 /* OPX of mul */ + beq r4, r15, .Lmultiply + + movi r15,0x07 /* OPX of mulxuu */ + beq r4, r15, .Lmultiply + + movi r15,0x17 /* OPX of mulxsu */ + beq r4, r15, .Lmultiply + + movi r15,0x1f /* OPX of mulxss */ + beq r4, r15, .Lmultiply + + movi r15,0x25 /* OPX of div */ + bne r4, r15, .Lnot_muldiv + + + /* DIVISION + * + * Divide an unsigned dividend by an unsigned divisor using + * a shift-and-subtract algorithm. The example below shows + * 43 div 7 = 6 for 8-bit integers. This classic algorithm uses a + * single register to store both the dividend and the quotient, + * allowing both values to be shifted with a single instruction. + * + * remainder dividend:quotient + * --------- ----------------- + * initialize 00000000 00101011: + * shift 00000000 0101011:_ + * remainder >= divisor? no 00000000 0101011:0 + * shift 00000000 101011:0_ + * remainder >= divisor? no 00000000 101011:00 + * shift 00000001 01011:00_ + * remainder >= divisor? no 00000001 01011:000 + * shift 00000010 1011:000_ + * remainder >= divisor? no 00000010 1011:0000 + * shift 00000101 011:0000_ + * remainder >= divisor? no 00000101 011:00000 + * shift 00001010 11:00000_ + * remainder >= divisor? yes 00001010 11:000001 + * remainder -= divisor - 00000111 + * ---------- + * 00000011 11:000001 + * shift 00000111 1:000001_ + * remainder >= divisor? yes 00000111 1:0000011 + * remainder -= divisor - 00000111 + * ---------- + * 00000000 1:0000011 + * shift 00000001 :0000011_ + * remainder >= divisor? no 00000001 :00000110 + * + * The quotient is 00000110. + */ + +.Ldivide: + /* + * Prepare for division by assuming the result + * is unsigned, and storing its "sign" as 0. + */ + movi r17, 0 + + + /* Which division opcode? */ + xori r15, r4, 0x25 /* OPX of div */ + bne r15, zero, .Lunsigned_division + + + /* + * OPX is div. Determine and store the sign of the quotient. + * Then take the absolute value of both operands. + */ + xor r17, r3, r6 /* MSB contains sign of quotient */ + bge r3, zero, 0f + sub r3, zero, r3 /* -r3 */ +0: + bge r6, zero, 0f + sub r6, zero, r6 /* -r6 */ +0: + + +.Lunsigned_division: + /* Initialize the unsigned-division loop. */ + movi r13, 0 /* remainder = 0 */ + + /* Now + * r3 = dividend : quotient + * r4 = 0x25 for div, 0x24 for divu + * r6 = divisor + * r13 = remainder + * r14 = loop counter (already initialized to 32) + * r17 = MSB contains sign of quotient + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Ldivide_loop: + + /* + * Division: + * + * (remainder:dividend:quotient) <<= 1; + */ + slli r13, r13, 1 + cmplt r15, r3, zero /* r15 = MSB of r3 */ + or r13, r13, r15 + slli r3, r3, 1 + + + /* + * if (remainder >= divisor) + * { + * set LSB of quotient + * remainder -= divisor; + * } + */ + bltu r13, r6, .Ldiv_skip + ori r3, r3, 1 + sub r13, r13, r6 +.Ldiv_skip: + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Ldivide_loop + + mov r9, r3 + + + /* Now + * r9 = quotient + * r4 = 0x25 for div, 0x24 for divu + * r7 = 4*(C^16) + * r17 = MSB contains sign of quotient + */ + + + /* + * Conditionally negate signed quotient. If quotient is unsigned, + * the sign already is initialized to 0. + */ + bge r17, zero, .Lstore_result + sub r9, zero, r9 /* -r9 */ + + br .Lstore_result + + + + + /* MULTIPLICATION + * + * A "product" is the number that one gets by summing a "multiplicand" + * several times. The "multiplier" specifies the number of copies of the + * multiplicand that are summed. + * + * Actual multiplication algorithms don't use repeated addition, however. + * Shift-and-add algorithms get the same answer as repeated addition, and + * they are faster. To compute the lower half of a product (pppp below) + * one shifts the product left before adding in each of the partial products + * (a * mmmm) through (d * mmmm). + * + * To compute the upper half of a product (PPPP below), one adds in the + * partial products (d * mmmm) through (a * mmmm), each time following the + * add by a right shift of the product. + * + * mmmm + * * abcd + * ------ + * #### = d * mmmm + * #### = c * mmmm + * #### = b * mmmm + * #### = a * mmmm + * -------- + * PPPPpppp + * + * The example above shows 4 partial products. Computing actual Nios II + * products requires 32 partials. + * + * It is possible to compute the result of mulxsu from the result of mulxuu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rA. + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + * + * It is possible to compute the result of mulxss from the result of mulxsu + * because the only difference between the results of these two opcodes is + * the value of the partial product associated with the sign bit of rB. + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + * + */ + +.Lmul_immed: + /* Opcode is muli. Change it into mul for remainder of algorithm. */ + mov r7, r6 /* Field B is dest register, not field C. */ + mov r6, r4 /* Field IMM16 is src2, not field B. */ + movi r4, 0x27 /* OPX of mul is 0x27 */ + +.Lmultiply: + /* Initialize the multiplication loop. */ + movi r9, 0 /* mul_product = 0 */ + movi r10, 0 /* mulxuu_product = 0 */ + mov r11, r6 /* save original multiplier for mulxsu and mulxss */ + mov r12, r6 /* mulxuu_multiplier (will be shifted) */ + movi r16, 1 /* used to create "rori B,A,1" from "ror B,A,r16" */ + + /* Now + * r3 = multiplicand + * r6 = mul_multiplier + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r12 = mulxuu_multiplier + * r14 = loop counter (already initialized) + * r15 = temp + * r16 = 1 + */ + + + /* + * for (count = 32; count > 0; --count) + * { + */ +.Lmultiply_loop: + + /* + * mul_product <<= 1; + * lsb = multiplier & 1; + */ + slli r9, r9, 1 + andi r15, r12, 1 + + /* + * if (lsb == 1) + * { + * mulxuu_product += multiplicand; + * } + */ + beq r15, zero, .Lmulx_skip + add r10, r10, r3 + cmpltu r15, r10, r3 /* Save the carry from the MSB of mulxuu_product. */ + ror r15, r15, r16 /* r15 = 0x80000000 on carry, or else 0x00000000 */ +.Lmulx_skip: + + /* + * if (MSB of mul_multiplier == 1) + * { + * mul_product += multiplicand; + * } + */ + bge r6, zero, .Lmul_skip + add r9, r9, r3 +.Lmul_skip: + + /* + * mulxuu_product >>= 1; logical shift + * mul_multiplier <<= 1; done with MSB + * mulx_multiplier >>= 1; done with LSB + */ + srli r10, r10, 1 + or r10, r10, r15 /* OR in the saved carry bit. */ + slli r6, r6, 1 + srli r12, r12, 1 + + + /* + * } + */ + subi r14, r14, 1 + bne r14, zero, .Lmultiply_loop + + + /* + * Multiply emulation loop done. + */ + + /* Now + * r3 = multiplicand + * r4 = OPX + * r7 = 4 * dest_register (used later as offset to sp) + * r9 = mul_product + * r10 = mulxuu_product + * r11 = original multiplier + * r15 = temp + */ + + + /* + * Select/compute the result based on OPX. + */ + + + /* OPX == mul? Then store. */ + xori r15, r4, 0x27 + beq r15, zero, .Lstore_result + + /* It's one of the mulx.. opcodes. Move over the result. */ + mov r9, r10 + + /* OPX == mulxuu? Then store. */ + xori r15, r4, 0x07 + beq r15, zero, .Lstore_result + + /* Compute mulxsu + * + * mulxsu = mulxuu - ((rA < 0) ? rB : 0); + */ + bge r3, zero, .Lmulxsu_skip + sub r9, r9, r11 +.Lmulxsu_skip: + + /* OPX == mulxsu? Then store. */ + xori r15, r4, 0x17 + beq r15, zero, .Lstore_result + + /* Compute mulxss + * + * mulxss = mulxsu - ((rB < 0) ? rA : 0); + */ + bge r11, zero, .Lmulxss_skip + sub r9, r9, r3 +.Lmulxss_skip: + /* At this point, assume that OPX is mulxss, so store */ + + +.Lstore_result: + add r7, r7, sp + stw r9, 0(r7) + + ldw r16, 0(sp) + ldw r17, 4(sp) + ldw r18, 8(sp) + ldw r19, 12(sp) + ldw r20, 16(sp) + ldw r21, 20(sp) + ldw r22, 24(sp) + ldw r23, 28(sp) + + /* bt @ 32 - Breakpoint register usually isn't an operand. */ + /* et @ 36 - Don't corrupt et. */ + /* gp @ 40 - Don't corrupt gp. */ + /* sp @ 44 - Don't corrupt sp. */ + ldw fp, 48(sp) + /* ea @ 52 - Don't corrupt ea. */ + /* ba @ 56 - Breakpoint register usually isn't an operand. */ + + addi sp, sp, 60 + + br .Lexception_exit + + +.Lnot_muldiv: + + addi sp, sp, 60 + + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_exception_trap.S b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_exception_trap.S new file mode 100644 index 0000000..bd9a9f5 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_exception_trap.S @@ -0,0 +1,81 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This is the trap exception handler for Nios2. + */ + + /* + * Provide a label which can be used to pull this file in. + */ + + .section .exceptions.start + .globl alt_exception_trap +alt_exception_trap: + + /* + * Pull in the entry/exit code. + */ + .globl alt_exception + + .section .exceptions.soft, "xa" + +.Ltrap_handler: + + /* + * Did a trap instruction cause the exception? + * + * The instruction which the exception occurred on has been loaded + * into r2 by code in alt_exception_entry.S + * + */ + + movhi r3,0x003b /* upper half of trap opcode */ + ori r3,r3,0x683a /* lower half of trap opcode */ + bne r2,r3,.Lnot_trap + + /* + * There is no trap handler defined here, and so executing a trap + * instruction causes a software break. If you provide a trap handler, + * then you must replace the break instruction below with your handler. + * Your handler must preserve ea and the usual callee saved registers. + */ + + break + + br .Lexception_exit + +.Lnot_trap: + + + .section .exceptions.exit.label +.Lexception_exit: + + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_execve.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_execve.c new file mode 100644 index 0000000..51bfcc4 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_execve.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * execve() is used by newlib to launch new processes. This is unsupported in + * the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_EXECVE is mapped onto the execve() system call in alt_syscall.h + */ + +int ALT_EXECVE (char *name, char ** argv, char** env) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(execve); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_exit.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_exit.c new file mode 100644 index 0000000..46cbe18 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_exit.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_sim.h" +#include "os/alt_hooks.h" +#include "os/alt_syscall.h" + +#include "alt_types.h" +#include "sys/alt_log_printf.h" +/* + * _exit() is called by exit() in order to terminate the current process. + * Typically this is called when main() completes. It should never return. + * Since there is nowhere to go once this process completes, this + * implementation simply blocks forever. + * + * Note that interrupts are not disabled so that execution outside of this + * thread is allowed to continue. + * + * ALT_EXIT is mapped onto the _exit() system call in alt_syscall.h + */ + +void ALT_EXIT (int exit_code) +{ + /* ALT_LOG - please see HAL/inc/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_exit.c] Entering _exit() function.\r\n"); + ALT_LOG_PRINT_BOOT("[alt_exit.c] Exit code from main was %d.\r\n",exit_code); + /* Stop all other threads */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_OS_STOP().\r\n"); + ALT_OS_STOP(); + + /* Provide notification to the simulator that we've stopped */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_SIM_HALT().\r\n"); + ALT_SIM_HALT(exit_code); + + /* spin forever, since there's no where to go back to */ + + ALT_LOG_PRINT_BOOT("[alt_exit.c] Spinning forever.\r\n"); + while (1); +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_fcntl.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_fcntl.c new file mode 100644 index 0000000..382fa43 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_fcntl.c @@ -0,0 +1,101 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include +#include + +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#define ALT_FCNTL_FLAGS_MASK ((alt_u32) (O_APPEND | O_NONBLOCK)) + +/* + * fcntl() is a limited implementation of the standard fcntl() system call. + * It can be used to change the state of the flags associated with an open + * file descriptor. Normally these flags are set during the call to + * open(). It is anticipated that the main use of this function will be to + * change the state of a device from blocking to non-blocking (where this is + * supported). + * + * The input argument "fd" is the file descriptor to be manipulated. "cmd" + * is the command to execute. This can be either F_GETFL (return the + * current value of the flags) or F_SETFL (set the value of the flags). + * + * If "cmd" is F_SETFL then the argument "arg" is the new value of flags, + * otherwise "arg" is ignored. Only the flags: O_APPEND and O_NONBLOCK + * can be updated by a call to fcntl(). All other flags remain + * unchanged. + * + * ALT_FCNTL is mapped onto the fcntl() system call in alt_syscall.h + */ + +int ALT_FCNTL (int file, int cmd, ...) +{ + alt_fd* fd; + long flags; + va_list argp; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + switch (cmd) + { + case F_GETFL: + return fd->fd_flags & ~((alt_u32) ALT_FD_FLAGS_MASK); + case F_SETFL: + va_start(argp, cmd); + flags = va_arg(argp, long); + fd->fd_flags &= ~ALT_FCNTL_FLAGS_MASK; + fd->fd_flags |= (flags & ALT_FCNTL_FLAGS_MASK); + va_end(argp); + return 0; + default: + ALT_ERRNO = EINVAL; + return -1; + } + } + + ALT_ERRNO = EBADFD; + return -1; +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_fd_lock.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_fd_lock.c new file mode 100644 index 0000000..162295a --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_fd_lock.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_lock() is called as a consequence of an ioctl call to gain exclusive + * access to a device, i.e.: + * + * ioctl (fd, TIOCEXCL, NULL); + * + * If there are no other open file descriptors which reference the same + * device, then alt_fd_lock() will grant the lock. Further calls to open() + * for this device will fail until the lock is released. + * + * This is done by calling close() for this file descriptor, or by calling: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * The return value is zero for success, or negative in the case of failure. + */ + +int alt_fd_lock (alt_fd* fd) +{ + int i; + int rc = 0; + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + for (i = 0; i < alt_max_fd; i++) + { + if ((&alt_fd_list[i] != fd) && (alt_fd_list[i].dev == fd->dev)) + { + rc = -EACCES; + goto alt_fd_lock_exit; + } + } + fd->fd_flags |= ALT_FD_EXCL; + + alt_fd_lock_exit: + + ALT_SEM_POST(alt_fd_list_lock); + return rc; +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_fd_unlock.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_fd_unlock.c new file mode 100644 index 0000000..5f50386 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_fd_unlock.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "priv/alt_file.h" + +/* + * alt_fd_unlock() is the inverse of alt_fd_lock(). It is called as a + * consequence of a TIOCNXCL ioctl request, e.g: + * + * ioctl (fd, TIOCNXCL, NULL); + * + * It enables multiple file descriptors to exist for the same device. This + * is normally the case, but it may have been disabled by a previous call to + * alt_fd_lock(). + * + * Return zero on sucess, and a negative value on failure. + * + * The current implementation always succeeds. + */ + +int alt_fd_unlock (alt_fd* fd) +{ + fd->fd_flags &= ~ALT_FD_EXCL; + return 0; +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_find_dev.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_find_dev.c new file mode 100644 index 0000000..964f63f --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_find_dev.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_dev() is used by open() in order to locate a previously registered + * device with the name "name". The input argument "llist" is a pointer to the + * head of the device list to search. + * + * The return value is a pointer to the matching device, or NULL if there is + * no match. + * + * "name" must be an exact match for the devices registered name for a match to + * be found. + */ + +alt_dev* alt_find_dev(const char* name, alt_llist* llist) +{ + alt_dev* next = (alt_dev*) llist->next; + alt_32 len; + + len = strlen(name) + 1; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) llist) + { + + /* + * memcmp() is used here rather than strcmp() in order to reduce the size + * of the executable. + */ + + if (!memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_find_file.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_find_file.c new file mode 100644 index 0000000..ae30e93 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_find_file.c @@ -0,0 +1,89 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +/* + * alt_find_file() is used by open() in order to locate a previously registered + * filesystem that owns that mount point that contains the file named "name". + * + * The return value is a pointer to the matching filesystem, or NULL if there is + * no match. + * + * A match is considered to have been found if the filesystem name followed by + * either '/' or '\0' is the prefix of the filename. For example the filename: + * "/myfilesystem/junk.txt" would match: "/myfilesystem", but not: "/myfile". + */ + +alt_dev* alt_find_file (const char* name) +{ + alt_dev* next = (alt_dev*) alt_fs_list.next; + + alt_32 len; + + /* + * Check each list entry in turn, until a match is found, or we reach the + * end of the list (i.e. next winds up pointing back to the list head). + */ + + while (next != (alt_dev*) &alt_fs_list) + { + len = strlen(next->name); + + if (next->name[len-1] == '/') + { + len -= 1; + } + + if (((name[len] == '/') || (name[len] == '\0')) && + !memcmp (next->name, name, len)) + { + /* match found */ + + return next; + } + next = (alt_dev*) next->llist.next; + } + + /* No match found */ + + return NULL; +} + + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_flash_dev.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_flash_dev.c new file mode 100644 index 0000000..0acffc7 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_flash_dev.c @@ -0,0 +1,69 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/****************************************************************************** +* * +* Alt_flash.c - Functions to register a flash device to the "generic" flash * +* interface * +* * +* Author PRR * +* * +******************************************************************************/ + +#include +#include "sys/alt_llist.h" +#include "sys/alt_flash_dev.h" +#include "priv/alt_file.h" + +ALT_LLIST_HEAD(alt_flash_dev_list); + +alt_flash_fd* alt_flash_open_dev(const char* name) +{ + alt_flash_dev* dev = (alt_flash_dev*)alt_find_dev(name, &alt_flash_dev_list); + + if ((dev) && dev->open) + { + return dev->open(dev, name); + } + + return dev; +} + +void alt_flash_close_dev(alt_flash_fd* fd) +{ + if (fd && fd->close) + { + fd->close(fd); + } + return; +} + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_fork.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_fork.c new file mode 100644 index 0000000..b6edbb5 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_fork.c @@ -0,0 +1,57 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * The fork() system call is used by newlib to create a duplicate copy of the + * curent process. This is unsupported in the HAL environment. However a + * "do-nothing" implementation is still provied for newlib compatability. + * + * ALT_FORK is mapped onto the fork() system call in alt_syscall.h + */ + +int ALT_FORK (void) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(fork); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_fs_reg.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_fs_reg.c new file mode 100644 index 0000000..e88a340 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_fs_reg.c @@ -0,0 +1,75 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * The alt_fs_reg() function is used to register a file system. Once registered + * a device can be accessed using the standard posix calls: open(), read(), + * write() etc. + * + * System behaviour is undefined in the event that a file system is registered + * with a name that conflicts with an existing device or file system. + * + * alt_fs_reg() is not thread safe in the sense that there should be no other + * thread using the file system list at the time that alt_dev_reg() is called. In + * practice this means that alt_fs_reg() should only be called while operating + * in a single threaded mode. The expectation is that it will only be called + * by the file system initilisation functions invoked by alt_sys_init(), which in + * turn should only be called by the single threaded C startup code. + * + * A return value of zero indicates success. A negative return value indicates + * failure. + */ + +int alt_fs_reg (alt_dev* dev) +{ + /* + * check that the device has a name. + */ + + if (!dev->name) + { + return -ENODEV; + } + + /* + * register the file system. + */ + + alt_llist_insert(&alt_fs_list, &dev->llist); + + return 0; +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_fstat.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_fstat.c new file mode 100644 index 0000000..3248764 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_fstat.c @@ -0,0 +1,128 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The fstat() system call is used to obtain information about the capabilities + * of an open file descriptor. By default file descriptors are marked as + * being character devices. If a device or file system wishes to advertise + * alternative capabilities then they can register an fstat() function within + * their associated alt_dev structure. This will be called to fill in the + * entries in the imput "st" structure. + * + * This function is provided for compatability with newlib. + * + * ALT_FSTAT is mapped onto the fstat() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as character devices for provided stdio devices. + */ +int ALT_FSTAT (int file, struct stat *st) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + st->st_mode = _IFCHR; + return 0; + default: + return -1; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(fstat); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_FSTAT (int file, struct stat *st) +{ + alt_fd* fd; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* Call the drivers fstat() function to fill out the "st" structure. */ + + if (fd->dev->fstat) + { + return fd->dev->fstat(fd, st); + } + + /* + * If no function is provided, mark the fd as belonging to a character + * device. + */ + + else + { + st->st_mode = _IFCHR; + return 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return -1; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_get_fd.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_get_fd.c new file mode 100644 index 0000000..f42944b --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_get_fd.c @@ -0,0 +1,105 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +#include "alt_types.h" + +#include "system.h" + +/* + * alt_get_fd() is called to allocate a new file descriptor from the file + * descriptor pool. If a file descriptor is succesfully allocated, it is + * configured to refer to device "dev". + * + * The return value is the index of the file descriptor structure (i.e. + * the offset of the file descriptor within the file descriptor array). A + * negative value indicates failure. + */ + +int alt_get_fd (alt_dev* dev) +{ + alt_32 i; + int rc = -EMFILE; + + /* + * Take the alt_fd_list_lock semaphore in order to avoid races when + * accessing the file descriptor pool. + */ + + ALT_SEM_PEND(alt_fd_list_lock, 0); + + /* + * Search through the list of file descriptors, and allocate the first + * free descriptor that's found. + * + * If a free descriptor is found, then the value of "alt_max_fd" is + * updated accordingly. "alt_max_fd" is a 'highwater mark' which + * indicates the highest file descriptor ever allocated. This is used to + * improve efficency when searching the file descriptor list, and + * therefore reduce contention on the alt_fd_list_lock semaphore. + */ + + for (i = 0; i < ALT_MAX_FD; i++) + { + if (!alt_fd_list[i].dev) + { + alt_fd_list[i].dev = dev; + if (i > alt_max_fd) + { + alt_max_fd = i; + } + rc = i; + goto alt_get_fd_exit; + } + } + + alt_get_fd_exit: + + /* + * Release the alt_fd_list_lock semaphore now that we are done with the + * file descriptor pool. + */ + + ALT_SEM_POST(alt_fd_list_lock); + + return rc; +} + + + + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_getchar.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_getchar.c new file mode 100644 index 0000000..3e7df79 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_getchar.c @@ -0,0 +1,61 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#include "priv/alt_file.h" +#include "unistd.h" +#endif + +/* + * Uses the ALT_DRIVER_READ() macro to call directly to driver if available. + * Otherwise, uses newlib provided getchar() routine. + */ +int +alt_getchar(void) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); + char c; + + if (ALT_DRIVER_READ(ALT_STDIN_DEV, &c, 1, alt_fd_list[STDIN_FILENO].fd_flags) <= 0) { + return -1; + } + return c; +#else + return getchar(); +#endif +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_getpid.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_getpid.c new file mode 100644 index 0000000..b63ec33 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_getpid.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "os/alt_syscall.h" + +/* + * The getpid() system call is used by newlib to obtain the current process + * id. Since there is only ever a single process in the HAL environment, + * this just returns a constant. + * + * ALT_GETPID is mapped onto the getpid() system call in alt_syscall.h + */ + +int ALT_GETPID (void) +{ + return 0; +} + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_gettod.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_gettod.c new file mode 100644 index 0000000..46b12c2 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_gettod.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include + +#include "sys/alt_alarm.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +struct timezone alt_timezone = {0, 0}; +struct timeval alt_resettime = {0, 0}; + +/* + * gettimeofday() can be called to obtain a time structure which indicates the + * current "wall clock" time. This is calculated using the elapsed number of + * system clock ticks, and the value of "alt_resettime" and "alt_timezone" set + * through the last call to settimeofday(). + * + * Warning: if this function is called concurrently with a call to + * settimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_GETTIMEOFDAY is mapped onto the gettimeofday() system call in + * alt_syscall.h + */ + + +#if defined (__GNUC__) && (__GNUC__ >= 4) +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, void *ptimezone_vptr) +{ + struct timezone *ptimezone = (struct timezone*)ptimezone_vptr; +#else +int ALT_GETTIMEOFDAY (struct timeval *ptimeval, struct timezone *ptimezone) +{ +#endif + + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* + * Check to see if the system clock is running. This is indicated by a + * non-zero system clock rate. If the system clock is not running, an error + * is generated and the contents of "ptimeval" and "ptimezone" are not + * updated. + */ + + if (tick_rate) + { + ptimeval->tv_sec = alt_resettime.tv_sec + nticks/tick_rate; + ptimeval->tv_usec = alt_resettime.tv_usec + + (alt_u32)(((alt_u64)nticks*(ALT_US/tick_rate))%ALT_US); + + while(ptimeval->tv_usec < 0) { + if (ptimeval->tv_sec <= 0) + { + ptimeval->tv_sec = 0; + ptimeval->tv_usec = 0; + break; + } + else + { + ptimeval->tv_sec--; + ptimeval->tv_usec += ALT_US; + } + } + + while(ptimeval->tv_usec >= ALT_US) { + ptimeval->tv_sec++; + ptimeval->tv_usec -= ALT_US; + } + + if (ptimezone) + { + ptimezone->tz_minuteswest = alt_timezone.tz_minuteswest; + ptimezone->tz_dsttime = alt_timezone.tz_dsttime; + } + + return 0; + } + + return -ENOTSUP; +} + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_gmon.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_gmon.c new file mode 100644 index 0000000..fce7587 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_gmon.c @@ -0,0 +1,272 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include + +#include "priv/nios2_gmon_data.h" + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" + + +/* Macros */ + +/* How large should the bins be which we use to generate the histogram */ +#define PCSAMPLE_BYTES_PER_BUCKET 32 + +#define NIOS2_READ_EA(dest) __asm__ ("mov %0, ea" : "=r" (dest)) + +/* The compiler inserts calls to mcount() at the start of + * every function call. The structure mcount_fn_arc records t + * he return address of the function called (in from_pc) + * and the return address of the mcount function + * (in self_pc). The number of times this arc is executed is + * recorded in the field count. + */ +struct mcount_fn_arc +{ + struct mcount_fn_arc * next; + void * from_pc; + unsigned int count; +}; + +/* We need to maintain a list of pointers to the heads of each adjacency + * list so that we can find them when writing out the gmon.out file. Since + * we don't know at the start of program execution how many functions will + * be called we use a list structure to do this. + */ +struct mcount_fn_entry +{ + struct mcount_fn_entry * next; + void * self_pc; + struct mcount_fn_arc * arc_head; +}; + +/* function prototypes */ + +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) __attribute__ ((no_instrument_function)); + +static __inline__ void * mcount_allocate(unsigned int size) __attribute__ ((no_instrument_function)); +static int nios2_pcsample_init(void) __attribute__ ((no_instrument_function)); +static alt_u32 nios2_pcsample(void* alarm) __attribute__ ((no_instrument_function)); + +/* global variables */ + +/* stext and etext are defined in the linker script */ +extern char stext[]; +extern char etext[]; + +/* Is the PC sampling stuff enabled yet? */ +static int pcsample_need_init = 1; + +#define HASH_BUCKETS 64 /* Must be a power of 2 */ + +/* This points to the list of adjacency list pointers. */ +struct mcount_fn_entry * __mcount_fn_head[HASH_BUCKETS]; + +/* pointer to the in-memory buffer containing the histogram */ +static unsigned short* s_pcsamples = 0; + +/* the address of the start and end of text section */ +static const unsigned int s_low_pc = (unsigned int)stext; +static const unsigned int s_high_pc = (unsigned int)etext; + +/* the alarm structure to register for pc sampling */ +static alt_alarm s_nios2_pcsample_alarm; + +unsigned int alt_gmon_data[GMON_DATA_SIZE] = +{ + 0x6e6f6d67, /* "gmon" */ + GMON_DATA_SIZE, + 0, + (unsigned int)stext, + (unsigned int)etext, + PCSAMPLE_BYTES_PER_BUCKET, + 0, + (unsigned int)__mcount_fn_head, + (unsigned int)(__mcount_fn_head + HASH_BUCKETS) +}; + +/* This holds the current slab of memory we're allocating out of */ +static char * mcount_slab_ptr = 0; +static int mcount_slab_size = 0; + +#define MCOUNT_SLAB_INCREMENT 1020 + + +/* + * We can't use malloc to allocate memory because that's too complicated, and + * can't be called at interrupt time. Use the lower level allocator instead + * because that's interrupt safe (and because we never free anything). + * + * For speed, we allocate a block of data at once. + */ +static __inline__ void * mcount_allocate(unsigned int size) +{ + void * data; + + if (size > mcount_slab_size) + { + mcount_slab_ptr = sbrk(MCOUNT_SLAB_INCREMENT); + mcount_slab_size = MCOUNT_SLAB_INCREMENT; + } + + data = mcount_slab_ptr; + mcount_slab_ptr += size; + mcount_slab_size -= size; + + return data; +} + + +/* + * Add the arc with the values of frompc and topc given to the graph. + * This function might be called at interrupt time so must be able to + * cope with reentrancy. + * + * The fast case, where we have already allocated a function arc, has been + * handled by the assmebler code. + */ +void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) +{ + alt_irq_context context; + struct mcount_fn_arc * arc_entry; + + /* Keep trying to start up the PC sampler until it is running. + * (It can't start until the timer is going). + */ + if (pcsample_need_init) + { + pcsample_need_init = 0; + pcsample_need_init = nios2_pcsample_init(); + } + + /* + * We must disable interrupts around the allocation and the list update to + * prevent corruption if the instrumented function is re-entrant. + * + * It's safe for the code above to be stepping through the chain and be + * interrupted by this code modifying it - there is an edge case which will + * leave two copies of the same arc on the list (both with count=1), but + * this is dealt with on the host. + */ + context = alt_irq_disable_all(); + + if (fn_entry == NULL) + { + /* Add it to the list of functions we must output later. */ + fn_entry = (struct mcount_fn_entry *)mcount_allocate(sizeof(struct mcount_fn_entry)); + + fn_entry->self_pc = self_pc; + fn_entry->arc_head = NULL; + + fn_entry->next = *fn_head; + *fn_head = fn_entry; + } + + /* We will need a new list entry - if there was a list entry before + * then the assembler code would have handled it. */ + arc_entry = (struct mcount_fn_arc *)mcount_allocate(sizeof(struct mcount_fn_arc)); + + arc_entry->from_pc = from_pc; + arc_entry->count = 1; + + arc_entry->next = fn_entry->arc_head; + fn_entry->arc_head = arc_entry; + + alt_irq_enable_all(context); +} + + +/* + * nios2_pcsample_init starts profiling. + * It is called the first time mcount is called, and on subsequent calls to + * mcount until it returns zero. It initializes the pc histogram and turns on + * timer driven pc sampling. + */ +static int nios2_pcsample_init(void) +{ + unsigned int pcsamples_size; + + /* We sample the PC every tick */ + unsigned int prof_rate = alt_ticks_per_second(); + if (prof_rate == 0) + return 1; + + /* allocate the histogram buffer s_pcsamples */ + pcsamples_size = (s_high_pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples = (unsigned short*)sbrk(pcsamples_size * sizeof(unsigned short)); + + if (s_pcsamples != 0) + { + /* initialize the buffer to zero */ + memset(s_pcsamples, 0, pcsamples_size * sizeof(unsigned short)); + + alt_gmon_data[GMON_DATA_PROFILE_DATA] = (int)s_pcsamples; + alt_gmon_data[GMON_DATA_PROFILE_RATE] = prof_rate; + + /* Sample every tick (it's cheap) */ + alt_alarm_start(&s_nios2_pcsample_alarm, 1, nios2_pcsample, 0); + } + + return 0; +} + + +/* + * Sample the PC value and store it in the histogram + */ +static alt_u32 nios2_pcsample(void* context) +{ + unsigned int pc; + unsigned int bucket; + + /* read the exception return address - this will be + * inaccurate if there are nested interrupts but we + * assume that this is rare and the inaccuracy will + * not be great */ + NIOS2_READ_EA(pc); + + /* + * If we're within the profilable range then increment the relevant + * bucket in the histogram + */ + if (pc >= s_low_pc && pc < s_high_pc && s_pcsamples != 0) + { + bucket = (pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; + s_pcsamples[bucket]++; + } + + /* Sample every tick */ + return 1; +} + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_icache_flush.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_icache_flush.c new file mode 100644 index 0000000..1662991 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_icache_flush.c @@ -0,0 +1,84 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush() is called to flush the instruction cache for a memory + * region of length "len" bytes, starting at address "start". + */ + +void alt_icache_flush (void* start, alt_u32 len) +{ +#if NIOS2_ICACHE_SIZE > 0 + + char* i; + char* end; + + /* + * This is the most we would ever need to flush. + */ + + if (len > NIOS2_ICACHE_SIZE) + { + len = NIOS2_ICACHE_SIZE; + } + + end = ((char*) start) + len; + + for (i = start; i < end; i+= NIOS2_ICACHE_LINE_SIZE) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * For an unaligned flush request, we've got one more line left. + * Note that this is dependent on NIOS2_ICACHE_LINE_SIZE to be a + * multiple of 2 (which it always is). + */ + + if (((alt_u32) start) & (NIOS2_ICACHE_LINE_SIZE - 1)) + { + __asm__ volatile ("flushi %0" :: "r" (i)); + } + + /* + * Having flushed the cache, flush any stale instructions in the + * pipeline + */ + + __asm__ volatile ("flushp"); + +#endif /* NIOS2_ICACHE_SIZE > 0 */ +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_icache_flush_all.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_icache_flush_all.c new file mode 100644 index 0000000..dc40ea8 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_icache_flush_all.c @@ -0,0 +1,46 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "nios2.h" +#include "system.h" + +#include "alt_types.h" +#include "sys/alt_cache.h" + +/* + * alt_icache_flush_all() is called to flush the entire instruction cache. + */ + +void alt_icache_flush_all (void) +{ +#if NIOS2_ICACHE_SIZE > 0 + alt_icache_flush (0, NIOS2_ICACHE_SIZE); +#endif +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_iic.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_iic.c new file mode 100644 index 0000000..4821f25 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_iic.c @@ -0,0 +1,106 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ +#include "system.h" + +/* + * This file implements the HAL Enhanced interrupt API for Nios II processors + * with an internal interrupt controller (IIC). For most routines, this serves + * as a wrapper layer over the legacy interrupt API (which must be used with + * the IIC only). + * + * Use of the enhanced API is recommended so that application and device + * drivers are compatible with a Nios II system configured with an external + * interrupt controller (EIC), or IIC. This will afford maximum portability. + * + * If an EIC is present, the EIC device driver must provide these routines, + * because their operation will be specific to that EIC type. + */ +#ifndef NIOS2_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" +#include "priv/alt_legacy_irq.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + return alt_iic_isr_register(ic_id, irq, isr, isr_context, flags); +} + +/** @Function Description: This function enables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_enable(irq); +} + +/** @Function Description: This function disables a single interrupt. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return 0 if successful, else error (-1) + */ +int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq) +{ + return alt_irq_disable(irq); +} + +/** @Function Description: This function to determine if corresponding + * interrupt is enabled. + * @API Type: External + * @param ic_id Ignored. + * @param irq IRQ number + * @return Zero if corresponding interrupt is disabled and + * non-zero otherwise. + */ +alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq) +{ + alt_u32 irq_enabled; + + NIOS2_READ_IENABLE(irq_enabled); + + return (irq_enabled & (1 << irq)) ? 1: 0; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* NIOS2_EIC_PRESENT */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_iic_isr_register.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_iic_isr_register.c new file mode 100644 index 0000000..2e6bf5b --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_iic_isr_register.c @@ -0,0 +1,104 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * Provides an interrupt registry mechanism for the any CPUs internal interrupt + * controller (IIC) when the enhanced interrupt API is active. + */ +#ifndef ALT_CPU_EIC_PRESENT +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + +#include "alt_types.h" +#include "sys/alt_irq.h" +#include "priv/alt_iic_isr_register.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/** @Function Description: This function registers an interrupt handler. + * If the function is succesful, then the requested interrupt will be enabled + * upon return. Registering a NULL handler will disable the interrupt. + * + * @API Type: External + * @param ic_id Interrupt controller ID + * @param irq IRQ ID number + * @param isr Pointer to interrupt service routine + * @param isr_context Opaque pointer passed to ISR + * @param flags + * @return 0 if successful, else error (-1) + */ +int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, + void *isr_context, void *flags) +{ + int rc = -EINVAL; + int id = irq; /* IRQ interpreted as the interrupt ID. */ + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all(); + + alt_irq[id].handler = isr; + alt_irq[id].context = isr_context; + + rc = (isr) ? alt_ic_irq_enable(ic_id, id) : alt_ic_irq_disable(ic_id, id); + + alt_irq_enable_all(status); + } + + return rc; +} + +#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_instruction_exception_entry.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_instruction_exception_entry.c new file mode 100644 index 0000000..5cc8767 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_instruction_exception_entry.c @@ -0,0 +1,203 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "nios2.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. This handler could also be reached + * in the event of a spurious interrupt. + * + * The handler code is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* Function pointer to exception callback routine */ +alt_exception_result (*alt_instruction_exception_handler) + (alt_exception_cause, alt_u32, alt_u32) = 0x0; + +/* Link entry routine to .exceptions section */ +int alt_instruction_exception_entry (alt_u32 exception_pc) + __attribute__ ((section (".exceptions"))); + +/* + * This is the entry point for instruction-generated exceptions handling. + * This routine will be called by alt_exceptions_entry.S, after it determines + * that an exception could not be handled by handlers that preceed that + * of instruction-generated exceptions (such as interrupts). + * + * For this to function properly, you must register an exception handler + * using alt_instruction_exception_register(). This routine will call + * that handler if it has been registered. Absent a handler, it will + * break break or hang as discussed below. + */ +int alt_instruction_exception_entry (alt_u32 exception_pc) +{ + alt_u32 cause, badaddr; + +/* + * If the processor hardware has the optional EXCEPTIONS & BADADDR registers, + * read them and pass their content to the user handler. These are always + * present if the MMU or MPU is enabled, and optionally for other advanced + * exception types via the "Extra exceptions information" setting in the + * processor (hardware) configuration. + * + * If these registers are not present, the cause field will be set to + * NIOS2_EXCEPTION_CAUSE_NOT_PRESENT. Your handling routine should + * check the validity of the cause argument before proceeding. + */ +#ifdef NIOS2_HAS_EXTRA_EXCEPTION_INFO + /* Get exception cause & "badaddr" */ + NIOS2_READ_EXCEPTION(cause); + cause = ( (cause & NIOS2_EXCEPTION_REG_CAUSE_MASK) >> + NIOS2_EXCEPTION_REG_CAUSE_OFST ); + + NIOS2_READ_BADADDR(badaddr); +#else + cause = NIOS2_EXCEPTION_CAUSE_NOT_PRESENT; + badaddr = 0; +#endif /* NIOS2_HAS_EXTRA_EXCEPTION_INFO */ + + if(alt_instruction_exception_handler) { + /* + * Call handler. Its return value indicates whether the exception-causing + * instruction should be re-issued. The code that called us, + * alt_eceptions_entry.S, will look at this value and adjust the ea + * register as necessary + */ + return alt_instruction_exception_handler(cause, exception_pc, badaddr); + } + /* + * We got here because an instruction-generated exception occured, but no + * handler is present. We do not presume to know how to handle it. If the + * debugger is present, break, otherwise hang. + * + * If you've reached here in the debugger, consider examining the + * EXCEPTIONS register cause bit-field, which was read into the 'cause' + * variable above, and compare it against the exceptions-type enumeration + * in alt_exceptions.h. This register is availabe if the MMU or MPU is + * present, or if the "Extra exceptions information" hardware option is + * selected. + * + * If you get here then one of the following could have happened: + * + * - An instruction-generated exception occured, and the processor + * does not have the extra exceptions feature enabled, or you + * have not registered a handler using + * alt_instruction_exception_register() + * + * Some examples of instruction-generated exceptions and why they + * might occur: + * + * - Your program could have been compiled for a full-featured + * Nios II core, but it is running on a smaller core, and + * instruction emulation has been disabled by defining + * ALT_NO_INSTRUCTION_EMULATION. + * + * You can work around the problem by re-enabling instruction + * emulation, or you can figure out why your program is being + * compiled for a system other than the one that it is running on. + * + * - Your program has executed a trap instruction, but has not + * implemented a handler for this instruction. + * + * - Your program has executed an illegal instruction (one which is + * not defined in the instruction set). + * + * - Your processor includes an MMU or MPU, and you have enabled it + * before registering an exception handler to service exceptions it + * generates. + * + * The problem could also be hardware related: + * - If your hardware is broken and is generating spurious interrupts + * (a peripheral which negates its interrupt output before its + * interrupt handler has been executed will cause spurious interrupts) + */ + else { +#ifdef NIOS2_HAS_DEBUG_STUB + NIOS2_BREAK(); +#else + while(1) + ; +#endif /* NIOS2_HAS_DEBUG_STUB */ + } + + /* // We should not get here. Remove compiler warning. */ + return NIOS2_EXCEPTION_RETURN_REISSUE_INST; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ + +/* + * This routine indicates whether a particular exception cause will have + * set a valid address into the BADADDR register, which is included + * in the arguments to a user-registered instruction-generated exception + * handler. Many exception types do not set valid contents in BADADDR; + * this is a convenience routine to easily test the validity of that + * argument in your handler. + * + * Note that this routine will return false (0) for cause '12', + * TLB miss. This is because there are four exception types that + * share that cause, two of which do not have a valid BADADDR. You + * must determine BADADDR's validity for these. + * + * Arguments: + * cause: The 5-bit exception cause field of the EXCEPTIONS register, + * shifted to the LSB position. You may pass the 'cause' argument + * in a handler you registered directy to this routine. + * + * Return: 1: BADADDR (bad_addr argument to handler) is valid + * 0: BADADDR is not valid + */ +int alt_exception_cause_generated_bad_addr(alt_exception_cause cause) +{ + switch (cause) { + case NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR: + return 1; + case NIOS2_EXCEPTION_MISALIGNED_TARGET_PC: + return 1; + case NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION: + return 1; + case NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION: + return 1; + default: + return 0; + } +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_instruction_exception_register.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_instruction_exception_register.c new file mode 100644 index 0000000..395c644 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_instruction_exception_register.c @@ -0,0 +1,82 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include "sys/alt_exceptions.h" +#include "alt_types.h" +#include "system.h" + +/* + * This file implements support for calling user-registered handlers for + * instruction-generated exceptions. + * + * The registry API is optionally enabled through the "Enable + * Instruction-related Exception API" HAL BSP setting, which will + * define the macro below. + */ +#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + +/* + * The header, alt_exception_handler_registry.h contains a struct describing + * the registered exception handler + */ +#include "priv/alt_exception_handler_registry.h" + +/* + * Pull in the exception entry assembly code. This will not be linked in + * unless this object is linked into the executable (i.e. only if + * alt_instruction_exception_register() is called). + */ +__asm__( "\n\t.globl alt_exception" ); + +/* + * alt_instruction_exception_register() is called to register a handler to + * service instruction-generated exceptions that are not handled by the + * default exception handler code (interrupts, and optionally unimplemented + * instructions and traps). + * + * Passing null (0x0) in the handler argument will disable a previously- + * registered handler. + * + * Note that if no handler is registered, exceptions that are not processed + * using the built-in handler (interrupts, and optionally unimplemented + * instructions and traps) are treated as unknown exceptions, resulting + * in either a break or an infinite loop. + */ +void alt_instruction_exception_register ( + alt_exception_result (*exception_handler)( + alt_exception_cause cause, + alt_u32 exception_pc, + alt_u32 bad_addr) ) +{ + alt_instruction_exception_handler = exception_handler; +} + +#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_io_redirect.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_io_redirect.c new file mode 100644 index 0000000..049ed62 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_io_redirect.c @@ -0,0 +1,98 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + + +/* + * alt_open_fd() is similar to open() in that it is used to obtain a file + * descriptor for the file named "name". The "flags" and "mode" arguments are + * identical to the "flags" and "mode" arguments of open(). + * + * The distinction between the two functions is that the file descriptor + * structure to use is passed in as an argument, rather than allocated from the + * list of free file descriptors. + * + * This is used by alt_io_redirect() to redirect the stdin, stdout and stderr + * file descriptors to point to new devices. + * + * If the device can not be succesfully opened, then the input file descriptor + * remains unchanged. + */ + +static void alt_open_fd(alt_fd* fd, const char* name, int flags, int mode) +{ + int old; + + old = open (name, flags, mode); + + if (old >= 0) + { + fd->dev = alt_fd_list[old].dev; + fd->priv = alt_fd_list[old].priv; + fd->fd_flags = alt_fd_list[old].fd_flags; + + alt_release_fd (old); + } +} + +/* + * alt_io_redirect() is called once the device/filesystem lists have been + * initialised, but before main(). Its function is to redirect standard in, + * standard out and standard error so that they point to the devices selected by + * the user (as defined in system.h). + * + * Prior to the call to this function, io is directed towards /dev/null. If + * i/o can not be redirected to the requested device, for example if the device + * does not exist, then it remains directed at /dev/null. + */ + +void alt_io_redirect(const char* stdout_dev, + const char* stdin_dev, + const char* stderr_dev) +{ + /* Redirect the channels */ + + alt_open_fd (&alt_fd_list[STDOUT_FILENO], stdout_dev, O_WRONLY, 0777); + alt_open_fd (&alt_fd_list[STDIN_FILENO], stdin_dev, O_RDONLY, 0777); + alt_open_fd (&alt_fd_list[STDERR_FILENO], stderr_dev, O_WRONLY, 0777); +} + + + + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_ioctl.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_ioctl.c new file mode 100644 index 0000000..510b40d --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_ioctl.c @@ -0,0 +1,170 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/ioctl.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The ioctl() system call is provided so that application code can manipulate + * the i/o capabilities of a device in device specific ways. This is identical + * to the standard posix ioctl() function. + * + * In general this implementation simply vectors ioctl requests to the + * apropriate drivers ioctl function (as registered in the drivers alt_dev + * structure). + * + * However in the case of devices (as oposed to filesystem), the TIOCEXCL and + * TIOCNXCL requests are handled without reference to the driver. These + * requests are used to lock/release a device for exclusive access. + * + * Handling these requests centrally eases the task of device driver + * development. + * + * ALT_IOCTL is mapped onto the ioctl() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that calls ioctl routine of provided stdio devices. + */ +int ALT_IOCTL (int file, int req, void* arg) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDIN_DEV); +#endif +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_IOCTL_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(ioctl); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDIN_DEV, req, arg); +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDOUT_DEV, req, arg); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_IOCTL(ALT_STDERR_DEV, req, arg); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_IOCTL (int file, int req, void* arg) +{ + alt_fd* fd; + int rc; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + + /* + * In the case of device drivers (not file systems) handle the TIOCEXCL + * and TIOCNXCL requests as special cases. + */ + + if (fd->fd_flags & ALT_FD_DEV) + { + if (req == TIOCEXCL) + { + rc = alt_fd_lock (fd); + goto ioctl_done; + } + else if (req == TIOCNXCL) + { + rc = alt_fd_unlock (fd); + goto ioctl_done; + } + } + + /* + * If the driver provides an ioctl() function, call that to handle the + * request, otherwise set the return code to indicate that the request + * could not be processed. + */ + + if (fd->dev->ioctl) + { + rc = fd->dev->ioctl(fd, req, arg); + } + else + { + rc = -ENOTTY; + } + } + else + { + rc = -EBADFD; + } + +ioctl_done: + + if (rc < 0) + { + ALT_ERRNO = -rc; + } + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_irq_entry.S b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_irq_entry.S new file mode 100644 index 0000000..8ee89e1 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_irq_entry.S @@ -0,0 +1,108 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" + +/* + * This is the interrupt exception entry point code, which saves all the + * registers and calls the interrupt handler. It should be pulled in using + * a .globl from alt_irq_register.c. This scheme is used so that if an + * interrupt is never registered, then this code will not appear in the + * generated executable, thereby improving code footprint. + */ + + /* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the compiler. + */ + .set noat + + /* + * Pull in the exception handler register save code. + */ + .globl alt_exception + + .globl alt_irq_entry + .section .exceptions.entry.label, "xa" +alt_irq_entry: + + /* + * Section .exceptions.entry is in alt_exception_entry.S + * This saves all the caller saved registers and reads estatus into r5 + */ + + .section .exceptions.irqtest, "xa" + +#ifdef ALT_CI_INTERRUPT_VECTOR_N + /* + * Use the interrupt vector custom instruction if present to accelerate + * this code. + * If the interrupt vector custom instruction returns a negative + * value, there are no interrupts active (estatus.pie is 0 + * or ipending is 0) so assume it is a software exception. + */ + custom ALT_CI_INTERRUPT_VECTOR_N, r4, r0, r0 + blt r4, r0, .Lnot_irq +#else + /* + * Test to see if the exception was a software exception or caused + * by an external interrupt, and vector accordingly. + */ + rdctl r4, ipending + andi r2, r5, 1 + beq r2, zero, .Lnot_irq + beq r4, zero, .Lnot_irq +#endif /* ALT_CI_INTERRUPT_VECTOR_N */ + + .section .exceptions.irqhandler, "xa" + /* + * Now that all necessary registers have been preserved, call + * alt_irq_handler() to process the interrupts. + */ + + call alt_irq_handler + + .section .exceptions.irqreturn, "xa" + + br .Lexception_exit + + .section .exceptions.notirq.label, "xa" + +.Lnot_irq: + + /* + * Section .exceptions.exit is in alt_exception_entry.S + * This restores all the caller saved registers + */ + + .section .exceptions.exit.label +.Lexception_exit: + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_irq_handler.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_irq_handler.c new file mode 100644 index 0000000..bb52fc8 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_irq_handler.c @@ -0,0 +1,169 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include "system.h" + +/* + * This interrupt handler only works with an internal interrupt controller + * (IIC). Processors with an external interrupt controller (EIC) use an + * implementation provided by an EIC driver. + */ +#ifndef ALT_CPU_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * A table describing each interrupt handler. The index into the array is the + * interrupt id associated with the handler. + * + * When an interrupt occurs, the associated handler is called with + * the argument stored in the context member. + */ +struct ALT_IRQ_HANDLER +{ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + void (*handler)(void*); +#else + void (*handler)(void*, alt_u32); +#endif + void *context; +} alt_irq[ALT_NIRQ]; + +/* + * alt_irq_handler() is called by the interrupt exception handler in order to + * process any outstanding interrupts. + * + * It is defined here since it is linked in using weak linkage. + * This means that if there is never a call to alt_irq_register() (above) then + * this function will not get linked in to the executable. This is acceptable + * since if no handler is ever registered, then an interrupt can never occur. + * + * If Nios II interrupt vector custom instruction exists, use it to accelerate + * the dispatch of interrupt handlers. The Nios II interrupt vector custom + * instruction is present if the macro ALT_CI_INTERRUPT_VECTOR defined. + */ + +void alt_irq_handler (void) __attribute__ ((section (".exceptions"))); +void alt_irq_handler (void) +{ +#ifdef ALT_CI_INTERRUPT_VECTOR + alt_32 offset; + char* alt_irq_base = (char*)alt_irq; +#else + alt_u32 active; + alt_u32 mask; + alt_u32 i; +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that we are at interrupt level. + */ + + ALT_OS_INT_ENTER(); + +#ifdef ALT_CI_INTERRUPT_VECTOR + /* + * Call the interrupt vector custom instruction using the + * ALT_CI_INTERRUPT_VECTOR macro. + * It returns the offset into the vector table of the lowest-valued pending + * interrupt (corresponds to highest priority) or a negative value if none. + * The custom instruction assumes that each table entry is eight bytes. + */ + while ((offset = ALT_CI_INTERRUPT_VECTOR) >= 0) { + struct ALT_IRQ_HANDLER* handler_entry = + (struct ALT_IRQ_HANDLER*)(alt_irq_base + offset); +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + handler_entry->handler(handler_entry->context); +#else + handler_entry->handler(handler_entry->context, offset >> 3); +#endif + } +#else /* ALT_CI_INTERRUPT_VECTOR */ + /* + * Obtain from the interrupt controller a bit list of pending interrupts, + * and then process the highest priority interrupt. This process loops, + * loading the active interrupt list on each pass until alt_irq_pending() + * return zero. + * + * The maximum interrupt latency for the highest priority interrupt is + * reduced by finding out which interrupts are pending as late as possible. + * Consider the case where the high priority interupt is asserted during + * the interrupt entry sequence for a lower priority interrupt to see why + * this is the case. + */ + + active = alt_irq_pending (); + + do + { + i = 0; + mask = 1; + + /* + * Test each bit in turn looking for an active interrupt. Once one is + * found, the interrupt handler asigned by a call to alt_irq_register() is + * called to clear the interrupt condition. + */ + + do + { + if (active & mask) + { +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_irq[i].handler(alt_irq[i].context); +#else + alt_irq[i].handler(alt_irq[i].context, i); +#endif + break; + } + mask <<= 1; + i++; + + } while (1); + + active = alt_irq_pending (); + + } while (active); +#endif /* ALT_CI_INTERRUPT_VECTOR */ + + /* + * Notify the operating system that interrupt processing is complete. + */ + + ALT_OS_INT_EXIT(); +} + +#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_irq_register.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_irq_register.c new file mode 100644 index 0000000..cf7261e --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_irq_register.c @@ -0,0 +1,102 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ +#include +#include "system.h" + +/* + * This interrupt registry mechanism works with the Nios II internal interrupt + * controller (IIC) only. Systems with an external interrupt controller (EIC), + * or those with the IIC who are using the enhanced interrupt API will + * utilize the alt_ic_isr_register() routine to register an interrupt. + */ +#ifndef NIOS2_EIC_PRESENT + +#include "sys/alt_irq.h" +#include "priv/alt_legacy_irq.h" +#include "os/alt_hooks.h" + +#include "alt_types.h" + +/* + * The header, alt_irq_entry.h, contains the exception entry point, and is + * provided by the processor component. It is included here, so that the code + * will be added to the executable only if alt_irq_register() is present, i.e. + * if no interrupts are registered - there's no need to provide any + * interrupt handling. + */ + +#include "sys/alt_irq_entry.h" + +/* + * The header, alt_irq_table.h contains a table describing which function + * handles each interrupt. + */ + +#include "priv/alt_irq_table.h" + +/* + * alt_irq_handler() is called to register an interrupt handler. If the + * function is succesful, then the requested interrupt will be enabled upon + * return. Registering a NULL handler will disable the interrupt. + * + * The return value is 0 if the interrupt handler was registered and the + * interrupt was enabled, otherwise it is negative. + */ + +int alt_irq_register (alt_u32 id, + void* context, + alt_isr_func handler) +{ + int rc = -EINVAL; + alt_irq_context status; + + if (id < ALT_NIRQ) + { + /* + * interrupts are disabled while the handler tables are updated to ensure + * that an interrupt doesn't occur while the tables are in an inconsistant + * state. + */ + + status = alt_irq_disable_all (); + + alt_irq[id].handler = handler; + alt_irq[id].context = context; + + rc = (handler) ? alt_irq_enable (id): alt_irq_disable (id); + + alt_irq_enable_all(status); + } + return rc; +} +#endif /* NIOS2_EIC_PRESENT */ + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_irq_vars.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_irq_vars.c new file mode 100644 index 0000000..4f4d140 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_irq_vars.c @@ -0,0 +1,47 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" + +#include "system.h" + +/* + * These global variables are used to save the current list of enabled + * interrupts. See alt_irq.h for further details. + */ + +volatile alt_u32 alt_irq_active = 0; + +#ifndef ALT_EXCEPTION_STACK + +volatile alt_u32 alt_priority_mask = (alt_u32) -1; + +#endif + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_isatty.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_isatty.c new file mode 100644 index 0000000..73677dd --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_isatty.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" + +/* + * Provide minimal version that just describes all file descriptors + * as tty devices for provided stdio devices. + */ +int ALT_ISATTY (int file) +{ + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ +#endif /* ALT_STDIN_PRESENT */ +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ +#endif /* ALT_STDERR_PRESENT */ + return 1; + default: + return 0; + } + +#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(isatty); +#endif +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ +/* + * isatty() can be used to determine whether the input file descriptor "file" + * refers to a terminal device or not. If it is a terminal device then the + * return value is one, otherwise it is zero. + * + * ALT_ISATTY is mapped onto the isatty() system call in alt_syscall.h + */ + +int ALT_ISATTY (int file) +{ + alt_fd* fd; + struct stat stat; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If a device driver does not provide an fstat() function, then it is + * treated as a terminal device by default. + */ + + if (!fd->dev->fstat) + { + return 1; + } + + /* + * If a driver does provide an implementation of the fstat() function, then + * this is called so that the device can identify itself. + */ + + else + { + fstat (file, &stat); + return (stat.st_mode == _IFCHR) ? 1 : 0; + } + } + else + { + ALT_ERRNO = EBADFD; + return 0; + } +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_kill.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_kill.c new file mode 100644 index 0000000..58097d1 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_kill.c @@ -0,0 +1,121 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + + +/* + * kill() is used by newlib in order to send signals to processes. Since there + * is only a single process in the HAL, the only valid values for pid are + * either the current process id, or the broadcast values, i.e. pid must be + * less than or equal to zero. + * + * ALT_KILL is mapped onto the kill() system call in alt_syscall.h + */ + +int ALT_KILL (int pid, int sig) +{ + int status = 0; + + if (pid <= 0) + { + switch (sig) + { + case 0: + + /* The null signal is used to check that a pid is valid. */ + + break; + + case SIGABRT: + case SIGALRM: + case SIGFPE: + case SIGILL: + case SIGKILL: + case SIGPIPE: + case SIGQUIT: + case SIGSEGV: + case SIGTERM: + case SIGUSR1: + case SIGUSR2: + case SIGBUS: + case SIGPOLL: + case SIGPROF: + case SIGSYS: + case SIGTRAP: + case SIGVTALRM: + case SIGXCPU: + case SIGXFSZ: + + /* + * The Posix standard defines the default behaviour for all these signals + * as being eqivalent to a call to _exit(). No mechanism is provided to + * change this behaviour. + */ + + _exit(0); + case SIGCHLD: + case SIGURG: + + /* + * The Posix standard defines these signals to be ignored by default. No + * mechanism is provided to change this behaviour. + */ + + break; + default: + + /* Tried to send an unsupported signal */ + + status = EINVAL; + } + } + + else if (pid > 0) + { + /* Attempted to signal a non-existant process */ + + status = ESRCH; + } + + if (status) + { + ALT_ERRNO = status; + return -1; + } + + return 0; +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_link.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_link.c new file mode 100644 index 0000000..a57a5c4 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_link.c @@ -0,0 +1,56 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_warning.h" +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * link() is used by newlib to create a new link to an existing file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_LINK is mapped onto the link() system call in alt_syscall.h + */ + +int ALT_LINK ( char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(link); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_load.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_load.c new file mode 100644 index 0000000..27d492b --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_load.c @@ -0,0 +1,88 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_load.h" +#include "sys/alt_cache.h" + +/* + * Linker defined symbols. + */ + +extern void __flash_rwdata_start; +extern void __ram_rwdata_start; +extern void __ram_rwdata_end; +extern void __flash_rodata_start; +extern void __ram_rodata_start; +extern void __ram_rodata_end; +extern void __flash_exceptions_start; +extern void __ram_exceptions_start; +extern void __ram_exceptions_end; + +/* + * alt_load() is called when the code is executing from flash. In this case + * there is no bootloader, so this application is responsible for loading to + * RAM any sections that are required. + */ + +void alt_load (void) +{ + /* + * Copy the .rwdata section. + */ + + alt_load_section (&__flash_rwdata_start, + &__ram_rwdata_start, + &__ram_rwdata_end); + + /* + * Copy the exception handler. + */ + + alt_load_section (&__flash_exceptions_start, + &__ram_exceptions_start, + &__ram_exceptions_end); + + /* + * Copy the .rodata section. + */ + + alt_load_section (&__flash_rodata_start, + &__ram_rodata_start, + &__ram_rodata_end); + + /* + * Now ensure that the caches are in synch. + */ + + alt_dcache_flush_all(); + alt_icache_flush_all(); +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_log_macro.S b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_log_macro.S new file mode 100644 index 0000000..2e3cc26 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_log_macro.S @@ -0,0 +1,56 @@ +/* alt_log_macro.S + * + * Implements the function tx_log_str, called by the assembly macro + * ALT_LOG_PUTS(). The macro will be empty when logging is turned off, + * and this function will not be compiled. When logging is on, + * this function is used to print out the strings defined in the beginning + * of alt_log_printf.c, using port information taken from system.h and + * alt_log_printf.h. + * + * This routine only handles strings, and sends a character into the defined + * output device's output buffer when the device is ready. It's intended for + * debugging purposes, where messages can be set to print out at certain + * points in the boot code to indicate the progress of the program. + * + */ + +#ifndef __ALT_LOG_MACROS__ +#define __ALT_LOG_MACROS__ + +/* define this flag to skip assembly-incompatible parts + * of various include files. */ +#define ALT_ASM_SRC + +#ifdef ALT_LOG_ENABLE // only compile this function if this flag is defined. + + #include "system.h" + #include "sys/alt_log_printf.h" + + .global tx_log_str +tx_log_str: + /* load base uart / jtag uart address into r6 */ + movhi r6, %hiadj(ALT_LOG_PORT_BASE) + addi r6, r6, %lo(ALT_LOG_PORT_BASE) +tx_next_char: + /* if pointer points to null, return + * r4 is the pointer to the str to be printed, set by ALT_LOG_PUTS */ + ldb r7, (r4) + beq r0, r7, end_tx + + /* check device transmit ready */ +wait_tx_ready_loop: + ldwio r5, ALT_LOG_PRINT_REG_OFFSET(r6) + andi r5, r5, ALT_LOG_PRINT_MSK + beq r5, r0, wait_tx_ready_loop + /* write char */ + stwio r7, ALT_LOG_PRINT_TXDATA_REG_OFFSET (r6) + /* advance string pointer */ + addi r4, r4, 1 + br tx_next_char +end_tx: + ret + +#endif + +#endif /* __ALT_LOG_MACROS__ */ + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_log_printf.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_log_printf.c new file mode 100644 index 0000000..af0116f --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_log_printf.c @@ -0,0 +1,479 @@ + +/* alt_log_printf.c + * + * This file implements the various C functions used for the + * alt_log logging/debugging print functions. The functions + * sit as is here - the job of hiding them from the compiler + * if logging is disabled is accomplished in the .h file. + * + * All the global variables for alt_log are defined here. + * These include the various flags that turn on additional + * logging options; the strings for assembly printing; and + * other globals needed by different logging options. + * + * There are 4 functions that handle the actual printing: + * alt_log_txchar: Actual function that puts 1 char to UART/JTAG UART. + * alt_log_repchar: Calls alt_log_txchar 'n' times - used by + * alt_log_private_printf for formatting. + * alt_log_private_printf: + * Stripped down implementation of printf - no floats. + * alt_log_printf_proc: + * Wrapper function for private_printf. + * + * The rest of the functions are called by the macros which + * were called by code in the other components. Each function + * is preceded by a comment, about which file it gets called + * in, and what its purpose is. + * + * author: gkwan + */ + +/* skip all code if enable is off */ +#ifdef ALT_LOG_ENABLE + +#include +#include +#include +#ifdef __ALTERA_AVALON_JTAG_UART + #include "altera_avalon_jtag_uart.h" + #include +#endif +#include "sys/alt_log_printf.h" + +/* strings for assembly puts */ +char alt_log_msg_bss[] = "[crt0.S] Clearing BSS \r\n";; +char alt_log_msg_alt_main[] = "[crt0.S] Calling alt_main.\r\n"; +char alt_log_msg_stackpointer[] \ + = "[crt0.S] Setting up stack and global pointers.\r\n"; +char alt_log_msg_cache[] = "[crt0.S] Inst & Data Cache Initialized.\r\n"; +/* char array allocation for alt_write */ +char alt_log_write_buf[ALT_LOG_WRITE_ECHO_LEN+2]; + +/* global variables for all 'on' flags */ + +/* + * The boot message flag is linked into the data (rwdata) section + * because if it is zero, it would otherwise be placed in the bss section. + * alt_log examines this variable before the BSS is cleared in the boot-up + * process. + */ +volatile alt_u32 alt_log_boot_on_flag \ + __attribute__ ((section (".data"))) = ALT_LOG_BOOT_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_write_on_flag = ALT_LOG_WRITE_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_sys_clk_on_flag = ALT_LOG_SYS_CLK_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_alarm_on_flag = \ + ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_isr_on_flag = \ + ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING; + +volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag = \ + ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING; + +/* Global alarm object for recurrent JTAG UART status printing */ +alt_alarm alt_log_jtag_uart_alarm_1; + +/* Global ints for system clock printing and count */ +volatile int alt_log_sys_clk_count; +volatile int alt_system_clock_in_sec; + +/* enum used by alt_log_private_printf */ +enum +{ + pfState_chars, + pfState_firstFmtChar, + pfState_otherFmtChar +}; + + + + +/* Function to put one char onto the UART/JTAG UART txdata register. */ +void alt_log_txchar(int c,char *base) +{ + /* Wait until the device is ready for a character */ + while((ALT_LOG_PRINT_REG_RD(base) & ALT_LOG_PRINT_MSK) == 0) + ; + /* And pop the character into the register */ + ALT_LOG_PRINT_TXDATA_WR(base,c); +} + + +/* Called by alt_log_private_printf to print out characters repeatedly */ +void alt_log_repchar(char c,int r,int base) +{ + while(r-- > 0) + alt_log_txchar(c,(char*) base); +} + + +/* Stripped down printf function */ +void alt_log_private_printf(const char *fmt,int base,va_list args) + { + const char *w; + char c; + int state; + int fmtLeadingZero = 0; /* init these all to 0 for -W warnings. */ + int fmtLong = 0; + int fmtBeforeDecimal = 0; + int fmtAfterDecimal = 0; + int fmtBase = 0; + int fmtSigned = 0; + int fmtCase = 0; /* For hex format, if 1, A-F, else a-f. */ + + w = fmt; + state = pfState_chars; + + while(0 != (c = *w++)) + { + switch(state) + { + case pfState_chars: + if(c == '%') + { + fmtLeadingZero = 0; + fmtLong = 0; + fmtBase = 10; + fmtSigned = 1; + fmtCase = 0; /* Only %X sets this. */ + fmtBeforeDecimal = -1; + fmtAfterDecimal = -1; + state = pfState_firstFmtChar; + } + else + { + alt_log_txchar(c,(char*)base); + } + break; + + case pfState_firstFmtChar: + if(c == '0') + { + fmtLeadingZero = 1; + state = pfState_otherFmtChar; + } + else if(c == '%') + { + alt_log_txchar(c,(char*)base); + state = pfState_chars; + } + else + { + state = pfState_otherFmtChar; + goto otherFmtChar; + } + break; + + case pfState_otherFmtChar: +otherFmtChar: + if(c == '.') + { + fmtAfterDecimal = 0; + } + else if('0' <= c && c <= '9') + { + c -= '0'; + if(fmtAfterDecimal < 0) /* still before decimal */ + { + if(fmtBeforeDecimal < 0) + { + fmtBeforeDecimal = 0; + } + else + { + fmtBeforeDecimal *= 10; + } + fmtBeforeDecimal += c; + } + else + { + fmtAfterDecimal = (fmtAfterDecimal * 10) + c; + } + } + else if(c == 'l') + { + fmtLong = 1; + } + else /* we're up to the letter which determines type */ + { + switch(c) + { + case 'd': + case 'i': +doIntegerPrint: + { + unsigned long v; + unsigned long p; /* biggest power of fmtBase */ + unsigned long vShrink; /* used to count digits */ + int sign; + int digitCount; + + /* Get the value */ + if(fmtLong) + { + if (fmtSigned) + { + v = va_arg(args,long); + } + else + { + v = va_arg(args,unsigned long); + } + } + else + { + if (fmtSigned) + { + v = va_arg(args,int); + } + else + { + v = va_arg(args,unsigned int); + } + } + + /* Strip sign */ + sign = 0; + /* (assumes sign bit is #31) */ + if( fmtSigned && (v & (0x80000000)) ) + { + v = ~v + 1; + sign = 1; + } + + /* Count digits, and get largest place value */ + vShrink = v; + p = 1; + digitCount = 1; + while( (vShrink = vShrink / fmtBase) > 0 ) + { + digitCount++; + p *= fmtBase; + } + + /* Print leading characters & sign */ + fmtBeforeDecimal -= digitCount; + if(fmtLeadingZero) + { + if(sign) + { + alt_log_txchar('-',(char*)base); + fmtBeforeDecimal--; + } + alt_log_repchar('0',fmtBeforeDecimal,base); + } + else + { + if(sign) + { + fmtBeforeDecimal--; + } + alt_log_repchar(' ',fmtBeforeDecimal,base); + if(sign) + { + alt_log_txchar('-',(char*)base); + } + } + + /* Print numbery parts */ + while(p) + { + unsigned char d; + + d = v / p; + d += '0'; + if(d > '9') + { + d += (fmtCase ? 'A' : 'a') - '0' - 10; + } + alt_log_txchar(d,(char*)base); + + v = v % p; + p = p / fmtBase; + } + } + + state = pfState_chars; + break; + + case 'u': + fmtSigned = 0; + goto doIntegerPrint; + case 'o': + fmtSigned = 0; + fmtBase = 8; + goto doIntegerPrint; + case 'x': + fmtSigned = 0; + fmtBase = 16; + goto doIntegerPrint; + case 'X': + fmtSigned = 0; + fmtBase = 16; + fmtCase = 1; + goto doIntegerPrint; + + case 'c': + alt_log_repchar(' ',fmtBeforeDecimal-1,base); + alt_log_txchar(va_arg(args,int),(char*)base); + break; + + case 's': + { + char *s; + + s = va_arg(args,char *); + alt_log_repchar(' ',fmtBeforeDecimal-strlen(s),base); + + while(*s) + alt_log_txchar(*s++,(char*)base); + } + break; + } /* switch last letter of fmt */ + state=pfState_chars; + } + break; + } /* switch */ + } /* while chars left */ + } /* printf */ + +/* Main logging printf function */ +int alt_log_printf_proc(const char *fmt, ... ) +{ + va_list args; + + va_start (args, fmt); + alt_log_private_printf(fmt,ALT_LOG_PORT_BASE,args); + return (0); +} + +/* Below are the functions called by different macros in various components. */ + +/* If the system has a JTAG_UART, include JTAG_UART debugging functions */ +#ifdef __ALTERA_AVALON_JTAG_UART + +/* The alarm function in altera_avalon_jtag_uart.c. + * This function, when turned on, prints out the status + * of the JTAG UART Control register, every ALT_LOG_JTAG_UART_TICKS. + * If the flag is off, the alarm should never be registered, and this + * function should never run */ +alt_u32 altera_avalon_jtag_uart_report_log(void * context) +{ + if (alt_log_jtag_uart_alarm_on_flag) { + altera_avalon_jtag_uart_state* dev = (altera_avalon_jtag_uart_state*) context; + const char* header="JTAG Alarm:"; + alt_log_jtag_uart_print_control_reg(dev, dev->base, header); + return ALT_LOG_JTAG_UART_TICKS; + } + else + { + /* If flag is not on, return 0 to disable future alarms. + * Should never be here, alarm should not be enabled at all. */ + return 0; + } +} + +void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, int base, const char* header) +{ + unsigned int control, space, ac, wi, ri, we, re; + control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + we= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST; + re= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST; + ri= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST; + wi= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST; + ac= (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) >> + ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST; + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + ALT_LOG_PRINTF( + "%s HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,space,ac,wi,ri,we,re); +#else + ALT_LOG_PRINTF( + "%s SW CirBuf = %d, HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", + header,(dev->tx_out-dev->tx_in),space,ac,wi,ri,we,re); +#endif + + return; + +} + +/* In altera_avalon_jtag_uart.c + * Same output as the alarm function above, but this is called in the driver + * init function. Hence, it gives the status of the JTAG UART control register + * right at the initialization of the driver */ +void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base) +{ + const char* header="JTAG Startup Info:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + return; +} + +/* In altera_avalon_jtag_uart.c + * When turned on, this function will print out the status of the jtag uart + * control register every time there is a jtag uart "almost-empty" interrupt. */ +void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev) +{ + if (alt_log_jtag_uart_isr_on_flag) { + const char* header="JTAG IRQ:"; + alt_log_jtag_uart_print_control_reg(dev, base, header); + } + return; +} + +#endif /* __ALTERA_AVALON_JTAG_UART */ + +/* In alt_write.c + * When the alt_log_write_on_flag is turned on, this function gets called + * every time alt_write gets called. The first + * ALT_LOG_WRITE_ECHO_LEN characters of every printf command (or any command + * that eventually calls write()) gets echoed to the alt_log output. */ +void alt_log_write(const void *ptr, size_t len) +{ + if (alt_log_write_on_flag) { + int temp_cnt; + int length=(ALT_LOG_WRITE_ECHO_LEN>len) ? len : ALT_LOG_WRITE_ECHO_LEN; + + if (length < 2) return; + + strncpy (alt_log_write_buf,ptr,length); + alt_log_write_buf[length-1]='\n'; + alt_log_write_buf[length]='\r'; + alt_log_write_buf[length+1]='\0'; + + /* Escape Ctrl-D's. If the Ctrl-D gets sent it might kill the terminal + * connection of alt_log. It will get replaced by 'D'. */ + for (temp_cnt=0;temp_cnt < length; temp_cnt++) { + if (alt_log_write_buf[temp_cnt]== 0x4) { + alt_log_write_buf[temp_cnt]='D'; + } + } + ALT_LOG_PRINTF("Write Echo: %s",alt_log_write_buf); + } +} + +/* In altera_avalon_timer_sc + * This function prints out a system clock is alive message + * every ALT_LOG_SYS_CLK_INTERVAL (in ticks). */ +void alt_log_system_clock() +{ + if (alt_log_sys_clk_on_flag) { + alt_log_sys_clk_count++; + if (alt_log_sys_clk_count > ALT_LOG_SYS_CLK_INTERVAL) { + alt_log_sys_clk_count = 0; + ALT_LOG_PRINTF("System Clock On %u\r\n",alt_system_clock_in_sec++); + } + } +} + + +#endif diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_lseek.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_lseek.c new file mode 100644 index 0000000..a56dbfb --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_lseek.c @@ -0,0 +1,117 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(lseek); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +/* + * lseek() can be called to move the read/write pointer associated with the + * file descriptor "file". This function simply vectors the call to the lseek() + * function provided by the driver associated with the file descriptor. + * + * If the driver does not provide an implementation of lseek() an error is + * indicated. + * + * lseek() corresponds to the standard lseek() function. + * + * ALT_LSEEK is mapped onto the lseek() system call in alt_syscall.h + * + */ + +off_t ALT_LSEEK (int file, off_t ptr, int dir) +{ + alt_fd* fd; + off_t rc = 0; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the device driver provides an implementation of the lseek() function, + * then call that to process the request. + */ + + if (fd->dev->lseek) + { + rc = fd->dev->lseek(fd, ptr, dir); + } + /* + * Otherwise return an error. + */ + + else + { + rc = -ENOTSUP; + } + } + else + { + rc = -EBADFD; + } + + if (rc < 0) + { + ALT_ERRNO = -rc; + rc = -1; + } + + return rc; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_main.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_main.c new file mode 100644 index 0000000..33e3463 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_main.c @@ -0,0 +1,161 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include +#include +#include + +#include "sys/alt_dev.h" +#include "sys/alt_sys_init.h" +#include "sys/alt_irq.h" +#include "sys/alt_dev.h" + +#include "os/alt_hooks.h" + +#include "priv/alt_file.h" +#include "alt_types.h" + +#include "system.h" + +#include "sys/alt_log_printf.h" + +extern void _do_ctors(void); +extern void _do_dtors(void); + +/* + * Standard arguments for main. By default, no arguments are passed to main. + * However a device driver may choose to configure these arguments by calling + * alt_set_args(). The expectation is that this facility will only be used by + * the iclient/ihost utility. + */ + +int alt_argc = 0; +char** alt_argv = {NULL}; +char** alt_envp = {NULL}; + +/* + * Prototype for the entry point to the users application. + */ + +extern int main (int, char **, char **); + +/* + * alt_main is the C entry point for the HAL. It is called by the assembler + * startup code in the processor specific crt0.S. It is responsible for: + * completing the C runtime configuration; configuring all the + * devices/filesystems/components in the system; and call the entry point for + * the users application, i.e. main(). + */ + +void alt_main (void) +{ +#ifndef ALT_NO_EXIT + int result; +#endif + + /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); + /* Initialize the interrupt controller. */ + alt_irq_init (NULL); + + /* Initialize the operating system */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_irq_init, calling alt_os_init.\r\n"); + ALT_OS_INIT(); + + /* + * Initialize the semaphore used to control access to the file descriptor + * list. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); + ALT_SEM_CREATE (&alt_fd_list_lock, 1); + + /* Initialize the device drivers/software components. */ + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); + alt_sys_init(); + ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_sys_init.\r\n"); + +#if !defined(ALT_USE_DIRECT_DRIVERS) && (defined(ALT_STDIN_PRESENT) || defined(ALT_STDOUT_PRESENT) || defined(ALT_STDERR_PRESENT)) + + /* + * Redirect stdio to the apropriate devices now that the devices have + * been initialized. This is only done if the user has requested these + * devices be present (not equal to /dev/null) and if direct drivers + * aren't being used. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Redirecting IO.\r\n"); + alt_io_redirect(ALT_STDOUT, ALT_STDIN, ALT_STDERR); +#endif + +#ifndef ALT_NO_C_PLUS_PLUS + /* + * Call the C++ constructors + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling C++ constructors.\r\n"); + _do_ctors (); +#endif /* ALT_NO_C_PLUS_PLUS */ + +#if !defined(ALT_NO_C_PLUS_PLUS) && !defined(ALT_NO_CLEAN_EXIT) && !defined(ALT_NO_EXIT) + /* + * Set the C++ destructors to be called at system shutdown. This is only done + * if a clean exit has been requested (i.e. the exit() function has not been + * redefined as _exit()). This is in the interest of reducing code footprint, + * in that the atexit() overhead is removed when it's not needed. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling atexit.\r\n"); + atexit (_do_dtors); +#endif + + /* + * Finally, call main(). The return code is then passed to a subsequent + * call to exit() unless the application is never supposed to exit. + */ + + ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); + +#ifdef ALT_NO_EXIT + main (alt_argc, alt_argv, alt_envp); +#else + result = main (alt_argc, alt_argv, alt_envp); + close(STDOUT_FILENO); + exit (result); +#endif + + ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); +} + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_malloc_lock.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_malloc_lock.c new file mode 100644 index 0000000..89c2dd4 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_malloc_lock.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +/* + * These are the empty malloc lock/unlock stubs required by newlib. These are + * used to make newlib's malloc() function thread safe. The default HAL + * configuration is single threaded, so there is nothing to do here. Note that + * this requires that malloc is never called by an interrupt service routine. + */ + +void __malloc_lock ( struct _reent *_r ) +{ +} + +/* + * + */ + +void __malloc_unlock ( struct _reent *_r ) +{ +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_mcount.S b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_mcount.S new file mode 100644 index 0000000..cf510da --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_mcount.S @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2010 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* mcount or _mcount is inserted by GCC before the function prologue of every + * function when a program is compiled for profiling. At the start of mcount, + * we guarantee that: + * ra = self_pc (an address in the function which called mcount) + * r8 = from_pc (an address in the function which called mcount's caller) + * + * Because this is always called at the start of a function we can corrupt + * r2,r3 and r11-r15. We must not corrupt r4-r7 (because they might contain + * function arguments for the instrumented function) or r8 (which holds ra + * for the instrumented function). + */ + + .global __mcount_fn_head + + .global mcount + + /* _mcount is used by gcc4 */ + .global _mcount + +_mcount: +mcount: + /* Use a hash to speed up locating fn_entry. We use bits 5 upwards to choose + * the bucket because bits 1:0 will always be 0, and because the distribution + * of values for bits 4:2 won't be even (aligning on cache line boundaries + * will skew it). Higher bits should be fairly random. + */ + /* fn_head = mcount_fn_head + (((unsigned int)self_pc >> 5) & (HASH_BUCKETS - 1)); */ + + srli r2, ra, 3 + movhi r3, %hiadj(__mcount_fn_head) + addi r3, r3, %lo(__mcount_fn_head) + andi r2, r2, 0xFC + add r11, r2, r3 + + /* The fast case is where we have already allocated a function arc, and so + * also a function pointer. + */ + + /* First find the function being called (using self_pc) */ + mov r10, r11 +0: + ldw r10, 0(r10) + beq r10, zero, .Lnew_arc + ldw r2, 4(r10) + bne r2, ra, 0b + + /* Found a function entry for this PC. Now look for an arc with a matching + * from_pc value. There will always be at least one arc. */ + ldw r3, 8(r10) +0: + ldw r2, 4(r3) + beq r2, r8, .Lfound_arc + ldw r3, 0(r3) + bne r3, zero, 0b + +.Lnew_arc: + addi sp, sp, -24 + +.LCFI0: + stw ra, 0(sp) + stw r4, 4(sp) + stw r5, 8(sp) + stw r6, 12(sp) + stw r7, 16(sp) + stw r8, 20(sp) + +.LCFI1: + /* __mcount_record(orig_ra, orig_r8, fn_entry, *fn_head); */ + mov r4, ra + mov r5, r8 + mov r6, r10 + mov r7, r11 + call __mcount_record + + /* restore registers from the stack */ + ldw ra, 0(sp) + ldw r4, 4(sp) + ldw r5, 8(sp) + ldw r6, 12(sp) + ldw r7, 16(sp) + ldw r8, 20(sp) + + addi sp, sp, 24 + +.LCFI2: + ret + +.Lfound_arc: + /* We've found the correct arc record. Increment the count and return */ + ldw r2, 8(r3) + addi r2, r2, 1 + stw r2, 8(r3) + ret + +.Lmcount_end: + + + +/* + * Dwarf2 debug information for the function. This provides GDB with the + * information it needs to backtrace out of this function. + */ + + .section .debug_frame,"",@progbits +.LCIE: + .4byte 2f - 1f /* Length */ +1: + .4byte 0xffffffff /* CIE id */ + .byte 0x1 /* Version */ + .string "" /* Augmentation */ + .uleb128 0x1 /* Code alignment factor */ + .sleb128 -4 /* Data alignment factor */ + .byte 0x1f /* Return address register */ + + .byte 0xc /* Define CFA */ + .uleb128 0x1b /* Register 27 (sp) */ + .uleb128 0x0 /* Offset 0 */ + + .align 2 /* Padding */ +2: + +.LFDE_mcount: + .4byte 2f - 1f /* Length */ +1: + .4byte .LCIE /* Pointer to CIE */ + .4byte mcount /* Start of table entry */ + .4byte .Lmcount_end - mcount /* Size of table entry */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI0 - mcount /* to .LCFI0 */ + .byte 0xe /* Define CFA offset */ + .uleb128 24 /* to 24 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI1 - .LCFI0 /* to .LCFI1 */ + .byte 0x9f /* Store ra */ + .uleb128 0x6 /* at CFA-24 */ + .byte 0x84 /* Store r4 */ + .uleb128 0x5 /* at CFA-20 */ + .byte 0x85 /* Store r5 */ + .uleb128 0x4 /* at CFA-16 */ + .byte 0x86 /* Store r6 */ + .uleb128 0x3 /* at CFA-12 */ + .byte 0x87 /* Store r7 */ + .uleb128 0x2 /* at CFA-8 */ + .byte 0x88 /* Store r8 */ + .uleb128 0x1 /* at CFA-4 */ + + .byte 0x4 /* Advance location */ + .4byte .LCFI2 - .LCFI1 /* to .LCFI2 */ + .byte 0xe /* Define CFA offset */ + .uleb128 0 /* to 0 */ + .byte 0x8 /* Same value */ + .uleb128 31 /* for ra */ + .byte 0x8 /* Same value */ + .uleb128 4 /* for r4 */ + .byte 0x8 /* Same value */ + .uleb128 5 /* for r5 */ + .byte 0x8 /* Same value */ + .uleb128 6 /* for r6 */ + .byte 0x8 /* Same value */ + .uleb128 7 /* for r7 */ + .byte 0x8 /* Same value */ + .uleb128 8 /* for r8 */ + + .align 2 +2: + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_open.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_open.c new file mode 100644 index 0000000..d7040bc --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_open.c @@ -0,0 +1,173 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "alt_types.h" +#include "os/alt_syscall.h" + +#ifdef ALT_USE_DIRECT_DRIVERS + +int ALT_OPEN (const char* file, int flags, int mode) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(open); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +extern alt_llist alt_dev_list; + +/* + * alt_file_locked() is used by open() to ensure that a device has not been + * previously locked for exclusive access using ioctl(). This test is only + * performed for devices. Filesystems are required to handle the ioctl() call + * themselves, and report the error from the filesystems open() function. + */ + +static int alt_file_locked (alt_fd* fd) +{ + alt_u32 i; + + /* + * Mark the file descriptor as belonging to a device. + */ + + fd->fd_flags |= ALT_FD_DEV; + + /* + * Loop through all current file descriptors searching for one that's locked + * for exclusive access. If a match is found, generate an error. + */ + + for (i = 0; i <= alt_max_fd; i++) + { + if ((alt_fd_list[i].dev == fd->dev) && + (alt_fd_list[i].fd_flags & ALT_FD_EXCL) && + (&alt_fd_list[i] != fd)) + { + return -EACCES; + } + } + + /* The device is not locked */ + + return 0; +} + +/* + * open() is called in order to get a file descriptor that reference the file + * or device named "name". This descriptor can then be used to manipulate the + * file/device using the standard system calls, e.g. write(), read(), ioctl() + * etc. + * + * This is equivalent to the standard open() system call. + * + * ALT_OPEN is mapped onto the open() system call in alt_syscall.h + */ + +int ALT_OPEN (const char* file, int flags, int mode) +{ + alt_dev* dev; + alt_fd* fd; + int index = -1; + int status = -ENODEV; + int isafs = 0; + + /* + * Check the device list, to see if a device with a matching name is + * registered. + */ + + if (!(dev = alt_find_dev (file, &alt_dev_list))) + { + /* No matching device, so try the filesystem list */ + + dev = alt_find_file (file); + isafs = 1; + } + + /* + * If a matching device or filesystem is found, allocate a file descriptor. + */ + + if (dev) + { + if ((index = alt_get_fd (dev)) < 0) + { + status = index; + } + else + { + fd = &alt_fd_list[index]; + fd->fd_flags = (flags & ~ALT_FD_FLAGS_MASK); + + /* If this is a device, ensure it isn't already locked */ + + if (isafs || ((status = alt_file_locked (fd)) >= 0)) + { + /* + * If the device or filesystem provides an open() callback function, + * call it now to perform any device/filesystem specific operations. + */ + + status = (dev->open) ? dev->open(fd, file, flags, mode): 0; + } + } + } + else + { + status = -ENODEV; + } + + /* Allocation failed, so clean up and return an error */ + + if (status < 0) + { + alt_release_fd (index); + ALT_ERRNO = -status; + return -1; + } + + /* return the reference upon success */ + + return index; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_printf.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_printf.c new file mode 100644 index 0000000..fe5bcd3 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_printf.c @@ -0,0 +1,127 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +/* + * This file provides a very minimal printf implementation for use with very + * small applications. Only the following format strings are supported: + * %x + * %s + * %c + * %% + */ + +#include +#include "sys/alt_stdio.h" + +/* + * ALT printf function + */ +void +alt_printf(const char* fmt, ... ) +{ + va_list args; + va_start(args, fmt); + const char *w; + char c; + + /* Process format string. */ + w = fmt; + while ((c = *w++) != 0) + { + /* If not a format escape character, just print */ + /* character. Otherwise, process format string. */ + if (c != '%') + { + alt_putchar(c); + } + else + { + /* Get format character. If none */ + /* available, processing is complete. */ + if ((c = *w++) != 0) + { + if (c == '%') + { + /* Process "%" escape sequence. */ + alt_putchar(c); + } + else if (c == 'c') + { + int v = va_arg(args, int); + alt_putchar(v); + } + else if (c == 'x') + { + /* Process hexadecimal number format. */ + unsigned long v = va_arg(args, unsigned long); + unsigned long digit; + int digit_shift; + + /* If the number value is zero, just print and continue. */ + if (v == 0) + { + alt_putchar('0'); + continue; + } + + /* Find first non-zero digit. */ + digit_shift = 28; + while (!(v & (0xF << digit_shift))) + digit_shift -= 4; + + /* Print digits. */ + for (; digit_shift >= 0; digit_shift -= 4) + { + digit = (v & (0xF << digit_shift)) >> digit_shift; + if (digit <= 9) + c = '0' + digit; + else + c = 'a' + digit - 10; + alt_putchar(c); + } + } + else if (c == 's') + { + /* Process string format. */ + char *s = va_arg(args, char *); + + while(*s) + alt_putchar(*s++); + } + } + else + { + break; + } + } + } +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_putchar.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_putchar.c new file mode 100644 index 0000000..900bb9f --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_putchar.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided putchar() routine. + */ +int +alt_putchar(int c) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + char c1 = (char)(c & 0xff); + + if (ALT_DRIVER_WRITE(ALT_STDOUT_DEV, &c1, 1, 0) == -1) { + return -1; + } + return c; +#else + return putchar(c); +#endif +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_putstr.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_putstr.c new file mode 100644 index 0000000..131ba19 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_putstr.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#ifdef ALT_USE_DIRECT_DRIVERS +#include +#include "system.h" +#include "sys/alt_driver.h" +#include "sys/alt_stdio.h" +#endif + +/* + * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. + * Otherwise, uses newlib provided fputs() routine. + */ +int +alt_putstr(const char* str) +{ +#ifdef ALT_USE_DIRECT_DRIVERS + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, str, strlen(str), 0); +#else + return fputs(str, stdout); +#endif +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_read.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_read.c new file mode 100644 index 0000000..920ab13 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_read.c @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +/* + * The read() system call is used to read a block of data from a file or device. + * This function simply vectors the request to the device driver associated + * with the input file descriptor "file". + * + * ALT_READ is mapped onto the read() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just reads from the stdin device when provided. + */ + +int ALT_READ (int file, void *ptr, size_t len) +{ +#ifdef ALT_STDIN_PRESENT + ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); +#endif + +#if !defined(ALT_STDIN_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(read); +#endif + + switch (file) { +#ifdef ALT_STDIN_PRESENT + case 0: /* stdin file descriptor */ + return ALT_DRIVER_READ(ALT_STDIN_DEV, ptr, len, 0); +#endif /* ALT_STDIN_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_READ (int file, void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with read access, or if the driver does + * not provide an implementation of read(), generate an error. Otherwise + * call the drivers read() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_WRONLY) && + (fd->dev->read)) + { + if ((rval = fd->dev->read(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_release_fd.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_release_fd.c new file mode 100644 index 0000000..c22a97f --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_release_fd.c @@ -0,0 +1,54 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_dev.h" +#include "priv/alt_file.h" + +/* + * alt_release_fd() is called to free an allocated file descriptor. This is + * done by setting the device pointer in the file descriptor structure to zero. + * + * File descriptors correcponding to standard in, standard out and standard + * error cannont be released backed to the pool. They are always reserved. + */ + +void alt_release_fd (int fd) +{ + if (fd > 2) + { + alt_fd_list[fd].fd_flags = 0; + alt_fd_list[fd].dev = 0; + } +} + + + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_remap_cached.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_remap_cached.c new file mode 100644 index 0000000..6afc465 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_remap_cached.c @@ -0,0 +1,50 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of uncached memory, into a block of + * cached memory. + */ + +void* alt_remap_cached (volatile void* ptr, alt_u32 len) +{ + return (void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK); +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_remap_uncached.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_remap_uncached.c new file mode 100644 index 0000000..e533f94 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_remap_uncached.c @@ -0,0 +1,51 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Convert a pointer to a block of cached memory, into a block of + * uncached memory. + */ + +volatile void* alt_remap_uncached (void* ptr, alt_u32 len) +{ + alt_dcache_flush (ptr, len); + return (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK); +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_rename.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_rename.c new file mode 100644 index 0000000..26db44d --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_rename.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * _rename() is used by newlib to rename an existing file. This is unsupported + * in the HAL environment. However a "do-nothing" implementation is still + * provied for newlib compatability. + * + * ALT_RENAME is mapped onto the _rename() system call in alt_syscall.h + */ + +int ALT_RENAME (char *existing, char *new) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(_rename); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_sbrk.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_sbrk.c new file mode 100644 index 0000000..7ab3367 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_sbrk.c @@ -0,0 +1,136 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "os/alt_syscall.h" + +#include "sys/alt_irq.h" +#include "sys/alt_stack.h" + +#include "system.h" + +/* + * sbrk() is called to dynamically extend the data segment for the application. + * Thie input argument "incr" is the size of the block to allocate. + * + * This simple implementation does not perform any bounds checking. Memory will + * be allocated, even if the request region colides with the stack or overflows + * the available physical memory. + * + * ALT_SBRK is mapped onto the sbrk() system call in alt_syscall.h + * + * This function is called by the profiling code to allocate memory so must be + * safe if called from an interrupt context. It must also not be instrumented + * because that would lead to an infinate loop. + */ + +extern char __alt_heap_start[]; /* set by linker */ +extern char __alt_heap_limit[]; /* set by linker */ + +static char *heap_end = __alt_heap_start; + +#if defined(ALT_EXCEPTION_STACK) && defined(ALT_STACK_CHECK) +char * alt_exception_old_stack_limit = NULL; +#endif + +caddr_t ALT_SBRK (int incr) __attribute__ ((no_instrument_function )); + +caddr_t ALT_SBRK (int incr) +{ + alt_irq_context context; + char *prev_heap_end; + + context = alt_irq_disable_all(); + + /* Always return data aligned on a word boundary */ + heap_end = (char *)(((unsigned int)heap_end + 3) & ~3); + +#ifdef ALT_MAX_HEAP_BYTES + /* + * User specified a maximum heap size. Return -1 if it would + * be exceeded by this sbrk call. + */ + if (((heap_end + incr) - __alt_heap_start) > ALT_MAX_HEAP_BYTES) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#else + if ((heap_end + incr) > __alt_heap_limit) { + alt_irq_enable_all(context); + return (caddr_t)-1; + } +#endif + + prev_heap_end = heap_end; + heap_end += incr; + +#ifdef ALT_STACK_CHECK + /* + * If the stack and heap are contiguous then extending the heap reduces the + * space available for the stack. If we are still using the default stack + * then adjust the stack limit to note this, while checking for stack + * pointer overflow. + * If the stack limit isn't pointing at the top of the heap then the code + * is using a different stack so none of this needs to be done. + */ + + if (alt_stack_limit() == prev_heap_end) + { + if (alt_stack_pointer() <= heap_end) + alt_report_stack_overflow(); + + alt_set_stack_limit(heap_end); + } + +#ifdef ALT_EXCEPTION_STACK + /* + * If we are executing from the exception stack then compare against the + * stack we switched away from as well. The exception stack is a fixed + * size so doesn't need to be checked. + */ + + if (alt_exception_old_stack_limit == prev_heap_end) + { + if (alt_exception_old_stack_limit <= heap_end) + alt_report_stack_overflow(); + + alt_exception_old_stack_limit = heap_end; + } +#endif + +#endif + + alt_irq_enable_all(context); + + return (caddr_t) prev_heap_end; +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_settod.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_settod.c new file mode 100644 index 0000000..13349b8 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_settod.c @@ -0,0 +1,96 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * "alt_timezone" and "alt_resettime" are the values of the the reset time and + * time zone set through the last call to settimeofday(). By default they are + * zero initialised. + */ + +extern struct timezone alt_timezone; +extern struct timeval alt_resettime; + +/* + * Macro defining the number of micoseconds in a second. + */ + +#define ALT_US (1000000) + + +/* + * settimeofday() can be called to calibrate the system clock, so that + * subsequent calls to gettimeofday() will return the elapsed "wall clock" + * time. + * + * This is done by updating the global structures "alt_resettime" and + * "alt_timezone" so that an immediate call to gettimeofday() would return + * the value specified by "t" and "tz". + * + * Warning: if this function is called concurrently with a call to + * gettimeofday(), the value returned by gettimeofday() will be unreliable. + * + * ALT_SETTIMEOFDAY is mapped onto the settimeofday() system call in + * alt_syscall.h + */ + +int ALT_SETTIMEOFDAY (const struct timeval *t, + const struct timezone *tz) +{ + alt_u32 nticks = alt_nticks (); + alt_u32 tick_rate = alt_ticks_per_second (); + + /* If there is a system clock available, update the current time */ + + if (tick_rate) + { + alt_resettime.tv_sec = t->tv_sec - nticks/tick_rate; + alt_resettime.tv_usec = t->tv_usec - + ((nticks*(ALT_US/tick_rate))%ALT_US); + + alt_timezone.tz_minuteswest = tz->tz_minuteswest; + alt_timezone.tz_dsttime = tz->tz_dsttime; + + return 0; + } + + /* There's no system clock available */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_software_exception.S b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_software_exception.S new file mode 100644 index 0000000..0a9381e --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_software_exception.S @@ -0,0 +1,53 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + + /* + * This file provides the global symbol: software_exception. It is provided to + * support legacy code, and should not be used by new software. + * + * It is used by legacy code to invoke the software exception handler as + * defined by version 1.0 of the Nios II kit. It should only be used when you + * are providing your own interrupt entry point, i.e. you are not using + * alt_irq_entry. + */ + +#include "system.h" + + /* + * Pull in the exception handler. + */ + + .globl alt_exception + + .section .exceptions.entry.label, "xa" + + .globl software_exception + .type software_exception, @function +software_exception: diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_stat.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_stat.c new file mode 100644 index 0000000..c196d0c --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_stat.c @@ -0,0 +1,59 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include +#include +#include + +#include "os/alt_syscall.h" + +/* + * The stat() function is similar to the fstat() function in that it is used to + * obtain status information about a file. Instead of using an open file + * descriptor (like fstat()), stat() takes the name of a file as an input + * argument. + * + * ALT_STAT is mapped onto the stat() system call in alt_syscall.h + */ + +int ALT_STAT (const char *file, struct stat *st) +{ + int fd; + int rc; + + fd = open (file, 0); + rc = fstat (fd, st); + close (fd); + + return rc; +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_tick.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_tick.c new file mode 100644 index 0000000..23719b1 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_tick.c @@ -0,0 +1,149 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "os/alt_hooks.h" +#include "alt_types.h" + +/* + * "_alt_tick_rate" is used to store the value of the system clock frequency + * in ticks per second. It is initialised to zero, which corresponds to there + * being no system clock facility available. + */ + +alt_u32 _alt_tick_rate = 0; + +/* + * "_alt_nticks" is the number of system clock ticks that have elapsed since + * reset. + */ + +volatile alt_u32 _alt_nticks = 0; + +/* + * "alt_alarm_list" is the head of a linked list of registered alarms. This is + * initialised to be an empty list. + */ + +ALT_LLIST_HEAD(alt_alarm_list); + +/* + * alt_alarm_stop() is called to remove an alarm from the list of registered + * alarms. Alternatively an alarm can unregister itself by returning zero when + * the alarm executes. + */ + +void alt_alarm_stop (alt_alarm* alarm) +{ + alt_irq_context irq_context; + + irq_context = alt_irq_disable_all(); + alt_llist_remove (&alarm->llist); + alt_irq_enable_all (irq_context); +} + +/* + * alt_tick() is periodically called by the system clock driver in order to + * process the registered list of alarms. Each alarm is registed with a + * callback interval, and a callback function, "callback". + * + * The return value of the callback function indicates how many ticks are to + * elapse until the next callback. A return value of zero indicates that the + * alarm should be deactivated. + * + * alt_tick() is expected to run at interrupt level. + */ + +void alt_tick (void) +{ + alt_alarm* next; + alt_alarm* alarm = (alt_alarm*) alt_alarm_list.next; + + alt_u32 next_callback; + + /* update the tick counter */ + + _alt_nticks++; + + /* process the registered callbacks */ + + while (alarm != (alt_alarm*) &alt_alarm_list) + { + next = (alt_alarm*) alarm->llist.next; + + /* + * Upon the tick-counter rolling over it is safe to clear the + * roll-over flag; once the flag is cleared this (or subsequnt) + * tick events are enabled to generate an alarm event. + */ + if ((alarm->rollover) && (_alt_nticks == 0)) + { + alarm->rollover = 0; + } + + /* if the alarm period has expired, make the callback */ + if ((alarm->time <= _alt_nticks) && (alarm->rollover == 0)) + { + next_callback = alarm->callback (alarm->context); + + /* deactivate the alarm if the return value is zero */ + + if (next_callback == 0) + { + alt_alarm_stop (alarm); + } + else + { + alarm->time += next_callback; + + /* + * If the desired alarm time causes a roll-over, set the rollover + * flag. This will prevent the subsequent tick event from causing + * an alarm too early. + */ + if(alarm->time < _alt_nticks) + { + alarm->rollover = 1; + } + } + } + alarm = next; + } + + /* + * Update the operating system specific timer facilities. + */ + + ALT_OS_TIME_TICK(); +} + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_times.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_times.c new file mode 100644 index 0000000..6543164 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_times.c @@ -0,0 +1,71 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include + +#include "sys/alt_errno.h" +#include "sys/alt_alarm.h" +#include "os/alt_syscall.h" + +/* + * The times() function is used by newlib to obtain elapsed time information. + * The return value is the elapsed time since reset in system clock ticks. Note + * that this is distinct from the strict Posix version of times(), which should + * return the time since: 0 hours, 0 minutes, 0 seconds, January 1, 1970, GMT. + * + * The input structure is filled in with time accounting information. This + * implementation attributes all cpu time to the system. + * + * ALT_TIMES is mapped onto the times() system call in alt_syscall.h + */ + +clock_t ALT_TIMES (struct tms *buf) +{ + clock_t ticks = alt_nticks(); + + /* If there is no system clock present, generate an error */ + + if (!alt_ticks_per_second()) + { + ALT_ERRNO = ENOSYS; + return 0; + } + + /* Otherwise return the elapsed time */ + + buf->tms_utime = 0; + buf->tms_stime = ticks; + buf->tms_cutime = 0; + buf->tms_cstime = 0; + + return ticks; +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_uncached_free.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_uncached_free.c new file mode 100644 index 0000000..37f4ac1 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_uncached_free.c @@ -0,0 +1,49 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Free a block of uncached memory. + */ + +void alt_uncached_free (volatile void* ptr) +{ + free ((void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK)); +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_uncached_malloc.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_uncached_malloc.c new file mode 100644 index 0000000..325132e --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_uncached_malloc.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "sys/alt_cache.h" +#include "system.h" + +#ifdef NIOS2_MMU_PRESENT +/* Convert KERNEL region address to IO region address */ +#define BYPASS_DCACHE_MASK (0x1 << 29) +#else +/* Set bit 31 of address to bypass D-cache */ +#define BYPASS_DCACHE_MASK (0x1 << 31) +#endif + +/* + * Allocate a block of uncached memory. + */ + +volatile void* alt_uncached_malloc (size_t size) +{ + void* ptr; + + ptr = malloc (size); + + alt_dcache_flush (ptr, size); + + return ptr ? (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK) : NULL; +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_unlink.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_unlink.c new file mode 100644 index 0000000..606f019 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_unlink.c @@ -0,0 +1,55 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "os/alt_syscall.h" + +/* + * unlink() is used by newlib to delete an existing link to a file. This is + * unsupported in the HAL environment. However a "do-nothing" implementation + * is still provied for newlib compatability. + * + * ALT_UNLINK is mapped onto the unlink() system call in alt_syscall.h + */ + +int ALT_UNLINK (char *name) +{ + /* Generate a link time warning, should this function ever be called. */ + + ALT_STUB_WARNING(unlink); + + /* Indicate an error */ + + ALT_ERRNO = ENOSYS; + return -1; +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_usleep.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_usleep.c new file mode 100644 index 0000000..eea89cd --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_usleep.c @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * ------------ + * + * Altera does not recommend, suggest or require that this reference design + * file be used in conjunction or combination with any other product. + * + * usleep.c - Microsecond delay routine + */ + +#include + +#include "priv/alt_busy_sleep.h" +#include "os/alt_syscall.h" + +/* + * This function simply calls alt_busy_sleep() to perform the delay. This + * function implements the delay as a calibrated "busy loop". + * + * ALT_USLEEP is mapped onto the usleep() system call in alt_syscall.h + */ + + + +#if defined (__GNUC__) && __GNUC__ >= 4 +int ALT_USLEEP (useconds_t us) +#else +unsigned int ALT_USLEEP (unsigned int us) +#endif +{ + return alt_busy_sleep(us); +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_wait.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_wait.c new file mode 100644 index 0000000..dd768ad --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_wait.c @@ -0,0 +1,52 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include "sys/alt_errno.h" +#include "os/alt_syscall.h" + +/* + * wait() is used by newlib to wait for all child processes to exit. Since the + * HAL does not support spawning child processes, this returns immediately as + * there can't be anythign to wait for. + * + * ALT_WAIT is mapped onto the wait() system call in alt_syscall.h + */ + +int ALT_WAIT (int *status) +{ + *status = 0; + + ALT_ERRNO = ECHILD; + + return -1; +} + diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/alt_write.c b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_write.c new file mode 100644 index 0000000..d161cdf --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/alt_write.c @@ -0,0 +1,138 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +* Altera does not recommend, suggest or require that this reference design * +* file be used in conjunction or combination with any other product. * +******************************************************************************/ + +#include +#include + +#include "sys/alt_errno.h" +#include "sys/alt_warning.h" +#include "priv/alt_file.h" +#include "os/alt_syscall.h" + +#include "sys/alt_log_printf.h" + +/* + * The write() system call is used to write a block of data to a file or + * device. This function simply vectors the request to the device driver + * associated with the input file descriptor "file". + * + * ALT_WRITE is mapped onto the write() system call in alt_syscall.h + */ + +#ifdef ALT_USE_DIRECT_DRIVERS + +#include "system.h" +#include "sys/alt_driver.h" + +/* + * Provide minimal version that just writes to the stdout/stderr devices + * when provided. + */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ +#ifdef ALT_STDOUT_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); +#endif +#ifdef ALT_STDERR_PRESENT + ALT_DRIVER_WRITE_EXTERNS(ALT_STDERR_DEV); +#endif + +#if !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) + /* Generate a link time warning, should this function ever be called. */ + ALT_STUB_WARNING(write); +#endif + + switch (file) { +#ifdef ALT_STDOUT_PRESENT + case 1: /* stdout file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, ptr, len, 0); +#endif /* ALT_STDOUT_PRESENT */ +#ifdef ALT_STDERR_PRESENT + case 2: /* stderr file descriptor */ + return ALT_DRIVER_WRITE(ALT_STDERR_DEV, ptr, len, 0); +#endif /* ALT_STDERR_PRESENT */ + default: + ALT_ERRNO = EBADFD; + return -1; + } +} + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +int ALT_WRITE (int file, const void *ptr, size_t len) +{ + alt_fd* fd; + int rval; + + /* + * A common error case is that when the file descriptor was created, the call + * to open() failed resulting in a negative file descriptor. This is trapped + * below so that we don't try and process an invalid file descriptor. + */ + + fd = (file < 0) ? NULL : &alt_fd_list[file]; + + if (fd) + { + /* + * If the file has not been opened with write access, or if the driver does + * not provide an implementation of write(), generate an error. Otherwise + * call the drivers write() function to process the request. + */ + + if (((fd->fd_flags & O_ACCMODE) != O_RDONLY) && fd->dev->write) + { + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_WRITE_FUNCTION(ptr,len); + + if ((rval = fd->dev->write(fd, ptr, len)) < 0) + { + ALT_ERRNO = -rval; + return -1; + } + return rval; + } + else + { + ALT_ERRNO = EACCES; + } + } + else + { + ALT_ERRNO = EBADFD; + } + return -1; +} + +#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/altera_nios2_qsys_irq.c b/software/DE2_115_ASM3_release_bsp/HAL/src/altera_nios2_qsys_irq.c new file mode 100644 index 0000000..c719dbc --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/altera_nios2_qsys_irq.c @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2009 Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * altera_nios2_irq.c - Support for Nios II internal interrupt controller. + * + */ + +#include "sys/alt_irq.h" +#include "altera_nios2_qsys_irq.h" + +/* + * To initialize the internal interrupt controller, just clear the IENABLE + * register so that all possible IRQs are disabled. + */ +void altera_nios2_qsys_irq_init(void) +{ + NIOS2_WRITE_IENABLE(0); +} diff --git a/software/DE2_115_ASM3_release_bsp/HAL/src/crt0.S b/software/DE2_115_ASM3_release_bsp/HAL/src/crt0.S new file mode 100644 index 0000000..739e45e --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/HAL/src/crt0.S @@ -0,0 +1,456 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "system.h" +#include "nios2.h" + +/* Setup header files to work with assembler code. */ +#define ALT_ASM_SRC + +/* Debug logging facility */ +#include "sys/alt_log_printf.h" + +/*************************************************************************\ +| MACROS | +\*************************************************************************/ + +/* + * The new build tools explicitly define macros when alt_load() + * must be called. The define ALT_LOAD_EXPLICITLY_CONTROLLED tells us that + * those macros are controlling if alt_load() needs to be called. + */ +#ifdef ALT_LOAD_EXPLICITLY_CONTROLLED + +/* Need to call alt_load() if any of these sections are being copied. */ +#if defined(ALT_LOAD_COPY_RODATA) || defined(ALT_LOAD_COPY_RWDATA) || defined(ALT_LOAD_COPY_EXCEPTIONS) +#define CALL_ALT_LOAD +#endif + +#else /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * The legacy build tools use the following macros to detect when alt_load() + * needs to be called. + */ + +#define __ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + ((res##_BASE != rodata##_BASE) || \ + (res##_BASE != rwdata##_BASE) || \ + (res##_BASE != exc##_BASE)) + +#define _ALT_LOAD_SECTIONS(res, text, rodata, exc) \ + __ALT_LOAD_SECTIONS(res, text, rodata, exc) + +#define ALT_LOAD_SECTIONS _ALT_LOAD_SECTIONS(ALT_RESET_DEVICE, \ + ALT_RODATA_DEVICE, \ + ALT_RWDATA_DEVICE, \ + ALT_EXCEPTIONS_DEVICE) + +/* Call alt_load() if there is no bootloader and ALT_LOAD_SECTIONS isn't 0. */ +#if defined(ALT_NO_BOOTLOADER) && ALT_LOAD_SECTIONS +#define CALL_ALT_LOAD +#endif + +#endif /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ + +/* + * When the legacy build tools define a macro called ALT_NO_BOOTLOADER, + * it indicates that initialization code is allowed at the reset address. + * The new build tools define a macro called ALT_ALLOW_CODE_AT_RESET for + * the same purpose. + */ +#ifdef ALT_NO_BOOTLOADER +#define ALT_ALLOW_CODE_AT_RESET +#endif + +/*************************************************************************\ +| EXTERNAL REFERENCES | +\*************************************************************************/ + +/* + * The entry point for user code is either "main" in hosted mode, or + * "alt_main" in standalone mode. These are explicitly referenced here, + * to ensure they are built into the executable. This allows the user + * to build them into libraries, rather than supplying them in object + * files at link time. + */ + .globl main + .globl alt_main + +/* + * Create a reference to the software multiply/divide and trap handers, + * so that if they are provided, they will appear in the executable. + */ +#ifndef ALT_NO_INSTRUCTION_EMULATION + .globl alt_exception_muldiv +#endif +#ifdef ALT_TRAP_HANDLER + .globl alt_exception_trap +#endif + +/* + * Linker defined symbols used to initialize bss. + */ +.globl __bss_start +.globl __bss_end + +/*************************************************************************\ +| RESET SECTION (.entry) | +\*************************************************************************/ + +/* + * This is the reset entry point for Nios II. + * + * At reset, only the cache line which contain the reset vector is + * initialized by the hardware. The code within the first cache line + * initializes the remainder of the instruction cache. + */ + + .section .entry, "xa" + .align 5 + +/* + * Explicitly allow the use of r1 (the assembler temporary register) + * within this code. This register is normally reserved for the use of + * the assembler. + */ + .set noat + +/* + * Some tools want to know where the reset vector is. + * Code isn't always provided at the reset vector but at least the + * __reset label always contains the reset vector address because + * it is defined at the start of the .entry section. + */ + + .globl __reset + .type __reset, @function +__reset: + +/* + * Initialize the instruction cache if present (i.e. size > 0) and + * reset code is allowed unless optimizing for RTL simulation. + * RTL simulations can ensure the instruction cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_ICACHE_SIZE > 0 && defined(ALT_ALLOW_CODE_AT_RESET) && !defined(ALT_SIM_OPTIMIZE) + /* Assume the instruction cache size is always a power of two. */ +#if NIOS2_ICACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_ICACHE_SIZE) +#else + movui r2, NIOS2_ICACHE_SIZE +#endif + +0: + initi r2 + addi r2, r2, -NIOS2_ICACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 1, 1, 0b, 1b + .popsection +#endif /* Initialize Instruction Cache */ + +/* + * Jump to the _start entry point in the .text section if reset code + * is allowed or if optimizing for RTL simulation. + */ +#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) + /* Jump to the _start entry point in the .text section. */ + movhi r1, %hi(_start) + ori r1, r1, %lo(_start) + jmp r1 + + .size __reset, . - __reset +#endif /* Jump to _start */ + +/* + * When not using exit, provide an _exit symbol to prevent unresolved + * references to _exit from the linker script. + */ +#ifdef ALT_NO_EXIT + .globl _exit +_exit: +#endif + +/*************************************************************************\ +| TEXT SECTION (.text) | +\*************************************************************************/ + +/* + * Start of the .text section, and also the code entry point when + * the code is executed by a bootloader rather than directly from reset. + */ + .section .text + .align 2 + + .globl _start + .type _start, @function +_start: + +/* + * Initialize the data cache if present (i.e. size > 0) and not + * optimizing for RTL simulation. + * RTL simulations can ensure the data cache is already initialized + * so skipping this loop speeds up RTL simulation. + */ + +#if NIOS2_DCACHE_SIZE > 0 && !defined(ALT_SIM_OPTIMIZE) + + /* Assume the data cache size is always a power of two. */ +#if NIOS2_DCACHE_SIZE > 0x8000 + movhi r2, %hi(NIOS2_DCACHE_SIZE) +#else + movui r2, NIOS2_DCACHE_SIZE +#endif + +0: + initd 0(r2) + addi r2, r2, -NIOS2_DCACHE_LINE_SIZE + bgt r2, zero, 0b +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 2, 1, 0b, 1b + .popsection + +#endif /* Initialize Data Cache */ + + /* Log that caches have been initialized. */ + ALT_LOG_PUTS(alt_log_msg_cache) + + /* Log that the stack pointer is about to be setup. */ + ALT_LOG_PUTS(alt_log_msg_stackpointer) + +#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) + /* + * Now that the caches are initialized, set up the stack pointer. + * The value provided by the linker is assumed to be correctly aligned. + */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +#else /* NIOS2_NUM_OF_SHADOW_REG_SETS > 0 */ + + /* + * Set up the GP and SP in all shadow register sets. + */ + + /* + * Check current register set number, if CPU resets into a shadow register + * set, switch register set to 0 by writing zero to SSTATUS register and + * execute an ERET instruction that just jumps to the next PC address + * (use the NEXTPC instruction to get this). + */ + + rdctl r2, status + + /* Get the current register set number (STATUS.CRS). */ + andi r3, r2, NIOS2_STATUS_CRS_MSK + + /* Skip switch register set if STATUS.CRS is 0. */ + beq r3, zero, .Lskip_switch_reg_set + + .set nobreak + + /* Current register set is non-zero, set SSTATUS to 0. */ + mov sstatus, zero + + /* Get next pc and store in ea. */ + nextpc ea + + /* Point to instruction after eret. */ + addi ea, ea, 8 + + /* + * Execute ERET instruction that just jumps to the next PC address + */ + eret + +.Lskip_switch_reg_set: + mov r2, zero + + /* Reset STATUS register */ + wrctl status, r2 + + movui r3, NIOS2_NUM_OF_SHADOW_REG_SETS + + /* Set up the stack pointer in register set 0. */ + movhi sp, %hi(__alt_stack_pointer) + ori sp, sp, %lo(__alt_stack_pointer) + + /* Set up the global pointer in register set 0. */ + movhi gp, %hi(_gp) + ori gp, gp, %lo(_gp) + +.Lsetup_sp_and_gp_loop: + /* + * Setup GP and SP for shadow register set + * from NIOS2_NUM_OF_SHADOW_REG_SETS to 0 + */ + + /* Skip if number of register sets is 0. */ + beq r3, zero, .Lno_shadow_register_set + + + /* Add previous register set STATUS.PRS by 1 */ + movhi r4, 1 + add r2, r2, r4 + + /* Write STATUS */ + wrctl status, r2 + + /* Clear r0 in the shadow register set (not done by hardware) */ + wrprs r0, r0 + + /* Write the GP in previous register set */ + wrprs gp, gp + + /* Only write the SP in previous register set + * if using the seperate exception stack. For normal case (single stack), + * funnel code would read the SP from previous register set. + */ +#ifdef ALT_INTERRUPT_STACK + + movhi et, %hiadj(__alt_interrupt_stack_pointer) + addi et, et, %lo(__alt_interrupt_stack_pointer) + wrprs sp, et + +#endif /* ALT_INTERRUPT_STACK */ + + /* Decrease number of register set counter by 1 */ + addi r3, r3, -1 + + br .Lsetup_sp_and_gp_loop +.Lno_shadow_register_set: + +#endif /* NIOS2_NUM_OF_SHADOW_REG_SETS */ +/* + * Clear the BSS if not optimizing for RTL simulation. + * + * This uses the symbols: __bss_start and __bss_end, which are defined + * by the linker script. They mark the begining and the end of the bss + * region. The linker script guarantees that these values are word aligned. + */ +#ifndef ALT_SIM_OPTIMIZE + /* Log that the BSS is about to be cleared. */ + ALT_LOG_PUTS(alt_log_msg_bss) + + movhi r2, %hi(__bss_start) + ori r2, r2, %lo(__bss_start) + + movhi r3, %hi(__bss_end) + ori r3, r3, %lo(__bss_end) + + beq r2, r3, 1f + +0: + stw zero, (r2) + addi r2, r2, 4 + bltu r2, r3, 0b + +1: + + /* + * The following debug information tells the ISS not to run the loop above + * but to perform its actions using faster internal code. + */ + .pushsection .debug_alt_sim_info + .int 3, 1, 0b, 1b + .popsection +#endif /* ALT_SIM_OPTIMIZE */ + +/* + * The alt_load() facility is normally used when there is no bootloader. + * It copies some sections into RAM so it acts like a mini-bootloader. + */ +#ifdef CALL_ALT_LOAD + +#ifdef ALT_STACK_CHECK + /* + * If the user has selected stack checking then we need to set up a safe + * value in the stack limit register so that the relocation functions + * don't think the stack has overflowed (the contents of the rwdata + * section aren't defined until alt_load() has been called). + */ + mov et, zero +#endif + + call alt_load + +#endif /* CALL_ALT_LOAD */ + +#ifdef ALT_STACK_CHECK + /* + * Set up the stack limit (if required). The linker has set up the + * copy of the variable which is in memory. + */ + + ldw et, %gprel(alt_stack_limit_value)(gp) +#endif + + /* Log that alt_main is about to be called. */ + ALT_LOG_PUTS(alt_log_msg_alt_main) + + /* Call the C entry point. It should never return. */ + call alt_main + + /* Wait in infinite loop in case alt_main does return. */ +alt_after_alt_main: + br alt_after_alt_main + + .size _start, . - _start + +/* + * Add information about the stack base if stack overflow checking is enabled. + */ +#ifdef ALT_STACK_CHECK + .globl alt_stack_limit_value + .section .sdata,"aws",@progbits + .align 2 + .type alt_stack_limit_value, @object + .size alt_stack_limit_value, 4 +alt_stack_limit_value: + .long __alt_stack_limit +#endif diff --git a/software/DE2_115_ASM3_release_bsp/Makefile b/software/DE2_115_ASM3_release_bsp/Makefile new file mode 100644 index 0000000..0e63d38 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/Makefile @@ -0,0 +1,775 @@ +#------------------------------------------------------------------------------ +# BSP MAKEFILE +# +# This makefile was automatically generated by the nios2-bsp-generate-files +# command. Its purpose is to build a custom Board Support Package (BSP) +# targeting a specific Nios II processor in an SOPC Builder-based design. +# +# To create an application or library Makefile which uses this BSP, try the +# nios2-app-generate-makefile or nios2-lib-generate-makefile commands. +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# TOOLS +#------------------------------------------------------------------------------ + +MKDIR := mkdir -p +ECHO := echo +SPACE := $(empty) $(empty) + +#------------------------------------------------------------------------------ +# The adjust-path macro +# +# If COMSPEC is defined, Make is launched from Windows through +# Cygwin. This adjust-path macro will call 'cygpath -u' on all +# paths to ensure they are readable by Make. +# +# If COMSPEC is not defined, Make is launched from *nix, and no adjustment +# is necessary +#------------------------------------------------------------------------------ + +ifndef COMSPEC +ifdef ComSpec +COMSPEC = $(ComSpec) +endif # ComSpec +endif # !COMSPEC + +ifdef COMSPEC + adjust-path = $(subst $(SPACE),\$(SPACE),$(shell cygpath -u "$1")) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$(shell cygpath -m "$1")) +else + adjust-path = $(subst $(SPACE),\$(SPACE),$1) + adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$1) +endif + +#------------------------------------------------------------------------------ +# DEFAULT TARGET +# +# The default target, "all", must appear before any other target in the +# Makefile. Note that extra prerequisites are added to the "all" rule later. +#------------------------------------------------------------------------------ +.PHONY: all +all: + @$(ECHO) [BSP build complete] + + +#------------------------------------------------------------------------------ +# PATHS & DIRECTORY NAMES +# +# Explicitly locate absolute path of the BSP root +#------------------------------------------------------------------------------ + +BSP_ROOT_DIR := . + +# Define absolute path to the root of the BSP. +ABS_BSP_ROOT := $(call adjust-path-mixed,$(shell pwd)) + +# Stash all BSP object files here +OBJ_DIR := ./obj + +NEWLIB_DIR = $(BSP_ROOT_DIR)/newlib + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +# +# Note that most variable assignments in this section have a corresponding BSP +# setting that can be changed by using the nios2-bsp-create-settings or +# nios2-bsp-update-settings command before nios2-bsp-generate-files; if you +# want any variable set to a specific value when this Makefile is re-generated +# (to prevent hand-edits from being over-written), use the BSP settings +# facilities above. +#------------------------------------------------------------------------------ + +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PRIVATE_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +SETTINGS_FILE := settings.bsp +SOPC_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + +#------------------------------------------------------------------------------- +# TOOL & COMMAND DEFINITIONS +# +# The base command for each build operation are expressed here. Additional +# switches may be expressed here. They will run for all instances of the +# utility. +#------------------------------------------------------------------------------- + +# Archiver command. Creates library files. +AR = nios2-elf-ar + +# Assembler command. Note that CC is used for .S files. +AS = nios2-elf-gcc + +# Custom flags only passed to the archiver. This content of this variable is +# directly passed to the archiver rather than the more standard "ARFLAGS". The +# reason for this is that GNU Make assumes some default content in ARFLAGS. +# This setting defines the value of BSP_ARFLAGS in Makefile. +BSP_ARFLAGS = -src + +# Custom flags only passed to the assembler. This setting defines the value of +# BSP_ASFLAGS in Makefile. +BSP_ASFLAGS = -Wa,-gdwarf2 + +# C/C++ compiler debug level. '-g' provides the default set of debug symbols +# typically required to debug a typical application. Omitting '-g' removes +# debug symbols from the ELF. This setting defines the value of +# BSP_CFLAGS_DEBUG in Makefile. +BSP_CFLAGS_DEBUG = -g + +# C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" +# optimization, etc. "-O0" is recommended for code that you want to debug since +# compiler optimization can remove variables and produce non-sequential +# execution of code while debugging. This setting defines the value of +# BSP_CFLAGS_OPTIMIZATION in Makefile. +BSP_CFLAGS_OPTIMIZATION = -O0 + +# C/C++ compiler warning level. "-Wall" is commonly used.This setting defines +# the value of BSP_CFLAGS_WARNINGS in Makefile. +BSP_CFLAGS_WARNINGS = -Wall + +# C compiler command. +CC = nios2-elf-gcc -xc + +# C++ compiler command. +CXX = nios2-elf-gcc -xc++ + +# Command used to remove files during 'clean' target. +RM = rm -f + + +#------------------------------------------------------------------------------- +# BUILD PRE & POST PROCESS COMMANDS +# +# The following variables are treated as shell commands in the rule +# definitions for each file-type associated with the BSP build, as well as +# commands run at the beginning and end of the entire BSP build operation. +# Pre-process commands are executed before the relevant command (for example, +# a command defined in the "CC_PRE_PROCESS" variable executes before the C +# compiler for building .c files), while post-process commands are executed +# immediately afterwards. +# +# You can view each pre/post-process command in the "Build Rules: All & +# Clean", "Pattern Rules to Build Objects", and "Library Rules" sections of +# this Makefile. +#------------------------------------------------------------------------------- + + +#------------------------------------------------------------------------------- +# BSP SOURCE BUILD SETTINGS (FLAG GENERATION) +# +# Software build settings such as compiler optimization, debug level, warning +# flags, etc., may be defined in the following variables. The variables below +# are concatenated together in the 'Flags' section of this Makefile to form +# final variables of flags passed to the build tools. +# +# These settings are considered private to the BSP and apply to all library & +# driver files in it; they do NOT automatically propagate to, for example, the +# build settings for an application. +# # For additional detail and syntax requirements, please refer to GCC help +# (example: "nios2-elf-gcc --help --verbose"). +# +# Unless indicated otherwise, multiple entries in each variable should be +# space-separated. +#------------------------------------------------------------------------------- + +# Altera HAL alt_sys_init.c generated source file +GENERATED_C_FILES := $(ABS_BSP_ROOT)/alt_sys_init.c +GENERATED_C_LIB_SRCS += alt_sys_init.c + + +#------------------------------------------------------------------------------- +# BSP SOURCE FILE LISTING +# +# All source files that comprise the BSP are listed here, along with path +# information to each file expressed relative to the BSP root. The precise +# list and location of each file is derived from the driver, operating system, +# or software package source file declarations. +# +# Following specification of the source files for each component, driver, etc., +# each source file type (C, assembly, etc.) is concatenated together and used +# to construct a list of objects. Pattern rules to build each object are then +# used to build each file. +#------------------------------------------------------------------------------- + +# altera_avalon_jtag_uart_driver sources root +altera_avalon_jtag_uart_driver_SRCS_ROOT := drivers + +# altera_avalon_jtag_uart_driver sources +altera_avalon_jtag_uart_driver_C_LIB_SRCS := \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_init.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_read.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_write.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_ioctl.c \ + $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_fd.c + +# altera_avalon_lcd_16207_driver sources root +altera_avalon_lcd_16207_driver_SRCS_ROOT := drivers + +# altera_avalon_lcd_16207_driver sources +altera_avalon_lcd_16207_driver_C_LIB_SRCS := \ + $(altera_avalon_lcd_16207_driver_SRCS_ROOT)/src/altera_avalon_lcd_16207.c \ + $(altera_avalon_lcd_16207_driver_SRCS_ROOT)/src/altera_avalon_lcd_16207_fd.c + +# altera_avalon_pio_driver sources root +altera_avalon_pio_driver_SRCS_ROOT := drivers + +# altera_avalon_pio_driver sources +# altera_nios2_qsys_hal_driver sources root +altera_nios2_qsys_hal_driver_SRCS_ROOT := HAL + +# altera_nios2_qsys_hal_driver sources +altera_nios2_qsys_hal_driver_C_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/altera_nios2_qsys_irq.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_usleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_busy_sleep.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_vars.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_all.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_no_writeback.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_instruction_exception_entry.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_register.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_iic.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_cached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_uncached.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_free.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_malloc.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_ctors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_dtors.c \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_gmon.c + +altera_nios2_qsys_hal_driver_ASM_LIB_SRCS := \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_trap.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_muldiv.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_entry.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_software_exception.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_mcount.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_log_macro.S \ + $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/crt0.S + +# hal sources root +hal_SRCS_ROOT := HAL + +# hal sources +hal_C_LIB_SRCS := \ + $(hal_SRCS_ROOT)/src/alt_alarm_start.c \ + $(hal_SRCS_ROOT)/src/alt_close.c \ + $(hal_SRCS_ROOT)/src/alt_dev.c \ + $(hal_SRCS_ROOT)/src/alt_dev_llist_insert.c \ + $(hal_SRCS_ROOT)/src/alt_dma_rxchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_dma_txchan_open.c \ + $(hal_SRCS_ROOT)/src/alt_environ.c \ + $(hal_SRCS_ROOT)/src/alt_env_lock.c \ + $(hal_SRCS_ROOT)/src/alt_errno.c \ + $(hal_SRCS_ROOT)/src/alt_execve.c \ + $(hal_SRCS_ROOT)/src/alt_exit.c \ + $(hal_SRCS_ROOT)/src/alt_fcntl.c \ + $(hal_SRCS_ROOT)/src/alt_fd_lock.c \ + $(hal_SRCS_ROOT)/src/alt_fd_unlock.c \ + $(hal_SRCS_ROOT)/src/alt_find_dev.c \ + $(hal_SRCS_ROOT)/src/alt_find_file.c \ + $(hal_SRCS_ROOT)/src/alt_flash_dev.c \ + $(hal_SRCS_ROOT)/src/alt_fork.c \ + $(hal_SRCS_ROOT)/src/alt_fs_reg.c \ + $(hal_SRCS_ROOT)/src/alt_fstat.c \ + $(hal_SRCS_ROOT)/src/alt_get_fd.c \ + $(hal_SRCS_ROOT)/src/alt_getchar.c \ + $(hal_SRCS_ROOT)/src/alt_getpid.c \ + $(hal_SRCS_ROOT)/src/alt_gettod.c \ + $(hal_SRCS_ROOT)/src/alt_iic_isr_register.c \ + $(hal_SRCS_ROOT)/src/alt_instruction_exception_register.c \ + $(hal_SRCS_ROOT)/src/alt_ioctl.c \ + $(hal_SRCS_ROOT)/src/alt_io_redirect.c \ + $(hal_SRCS_ROOT)/src/alt_irq_handler.c \ + $(hal_SRCS_ROOT)/src/alt_isatty.c \ + $(hal_SRCS_ROOT)/src/alt_kill.c \ + $(hal_SRCS_ROOT)/src/alt_link.c \ + $(hal_SRCS_ROOT)/src/alt_load.c \ + $(hal_SRCS_ROOT)/src/alt_log_printf.c \ + $(hal_SRCS_ROOT)/src/alt_lseek.c \ + $(hal_SRCS_ROOT)/src/alt_main.c \ + $(hal_SRCS_ROOT)/src/alt_malloc_lock.c \ + $(hal_SRCS_ROOT)/src/alt_open.c \ + $(hal_SRCS_ROOT)/src/alt_printf.c \ + $(hal_SRCS_ROOT)/src/alt_putchar.c \ + $(hal_SRCS_ROOT)/src/alt_putstr.c \ + $(hal_SRCS_ROOT)/src/alt_read.c \ + $(hal_SRCS_ROOT)/src/alt_release_fd.c \ + $(hal_SRCS_ROOT)/src/alt_rename.c \ + $(hal_SRCS_ROOT)/src/alt_sbrk.c \ + $(hal_SRCS_ROOT)/src/alt_settod.c \ + $(hal_SRCS_ROOT)/src/alt_stat.c \ + $(hal_SRCS_ROOT)/src/alt_tick.c \ + $(hal_SRCS_ROOT)/src/alt_times.c \ + $(hal_SRCS_ROOT)/src/alt_unlink.c \ + $(hal_SRCS_ROOT)/src/alt_wait.c \ + $(hal_SRCS_ROOT)/src/alt_write.c + + +# Assemble all component C source files +COMPONENT_C_LIB_SRCS += \ + $(altera_avalon_jtag_uart_driver_C_LIB_SRCS) \ + $(altera_avalon_lcd_16207_driver_C_LIB_SRCS) \ + $(altera_nios2_qsys_hal_driver_C_LIB_SRCS) \ + $(hal_C_LIB_SRCS) + +# Assemble all component assembly source files +COMPONENT_ASM_LIB_SRCS += \ + $(altera_nios2_qsys_hal_driver_ASM_LIB_SRCS) + +# Assemble all component C++ source files +COMPONENT_CPP_LIB_SRCS += \ + +#END MANAGED + +#------------------------------------------------------------------------------ +# PUBLIC.MK +# +# The generated public.mk file contains BSP information that is shared with +# other external makefiles, such as a Nios II application makefile. System- +# dependent information such as hardware-specific compiler flags and +# simulation file generation are stored here. +# +# In addition, public.mk contains include paths that various software, +# such as a device driver, may need for the C compiler. These paths are +# written to public.mk with respect to the BSP root. In public.mk, each +# path is prefixed with a special variable, $(ALT_LIBRARY_ROOT_DIR). The +# purpose of this variable is to allow an external Makefile to append on +# path information to precisely locate paths expressed in public.mk +# Since this is the BSP Makefile, we set ALT_LIBRARY_ROOT_DIR to point right +# here ("."), at the BSP root. +# +# ALT_LIBRARY_ROOT_DIR must always be set before public.mk is included. +#------------------------------------------------------------------------------ +ALT_LIBRARY_ROOT_DIR := . +include public.mk + + +#------------------------------------------------------------------------------ +# FLAGS +# +# Include paths for BSP files are written into the public.mk file and must +# be added to the existing list of pre-processor flags. In addition, "hooks" +# for standard flags left intentionally empty (CFLAGS, CPPFLAGS, ASFLAGS, +# and CXXFLAGS) are provided for conveniently adding to the relevant flags +# on the command-line or via script that calls make. +#------------------------------------------------------------------------------ +# Assemble final list of compiler flags from generated content +BSP_CFLAGS += \ + $(BSP_CFLAGS_DEFINED_SYMBOLS) \ + $(BSP_CFLAGS_UNDEFINED_SYMBOLS) \ + $(BSP_CFLAGS_OPTIMIZATION) \ + $(BSP_CFLAGS_DEBUG) \ + $(BSP_CFLAGS_WARNINGS) \ + $(BSP_CFLAGS_USER_FLAGS) \ + $(ALT_CFLAGS) \ + $(CFLAGS) + +# Make ready the final list of include directories and other C pre-processor +# flags. Each include path is made ready by prefixing it with "-I". +BSP_CPPFLAGS += \ + $(addprefix -I, $(BSP_INC_DIRS)) \ + $(addprefix -I, $(ALT_INCLUDE_DIRS)) \ + $(ALT_CPPFLAGS) \ + $(CPPFLAGS) + +# Finish off assembler flags with any user-provided flags +BSP_ASFLAGS += $(ASFLAGS) + +# Finish off C++ flags with any user-provided flags +BSP_CXXFLAGS += $(CXXFLAGS) + +# And finally, the ordered list +C_SRCS += $(GENERATED_C_LIB_SRCS) \ + $(COMPONENT_C_LIB_SRCS) + +CXX_SRCS += $(GENERATED_CPP_LIB_SRCS) \ + $(COMPONENT_CPP_LIB_SRCS) + +ASM_SRCS += $(GENERATED_ASM_LIB_SRCS) \ + $(COMPONENT_ASM_LIB_SRCS) + + +#------------------------------------------------------------------------------ +# LIST OF GENERATED FILES +# +# A Nios II BSP relies on the generation of several source files used +# by both the BSP and any applications referencing the BSP. +#------------------------------------------------------------------------------ + + +GENERATED_H_FILES := $(ABS_BSP_ROOT)/system.h + +GENERATED_LINKER_SCRIPT := $(ABS_BSP_ROOT)/linker.x + +GENERATED_FILES += $(GENERATED_H_FILES) \ + $(GENERATED_LINKER_SCRIPT) + + +#------------------------------------------------------------------------------ +# SETUP TO BUILD OBJECTS +# +# List of object files which are to be built. This is constructed from the input +# list of C source files (C_SRCS), C++ source files (CXX_SRCS), and assembler +# source file (ASM_SRCS). The permitted file extensions are: +# +# .c .C - for C files +# .cxx .cc .cpp .CXX .CC .CPP - for C++ files +# .S .s - for assembly files +# +# Extended description: The list of objects is a sorted list (duplicates +# removed) of all possible objects, placed beneath the ./obj directory, +# including any path information stored in the "*_SRCS" variable. The +# "patsubst" commands are used to concatenate together multiple file suffix +# types for common files (i.e. c++ as .cxx, .cc, .cpp). +# +# File extensions are case-insensitive in build rules with the exception of +# assembly sources. Nios II assembly sources with the ".S" extension are first +# run through the C preprocessor. Sources with the ".s" extension are not. +#------------------------------------------------------------------------------ +OBJS = $(sort $(addprefix $(OBJ_DIR)/, \ + $(patsubst %.c, %.o, $(patsubst %.C, %.o, $(C_SRCS))) \ + $(patsubst %.cxx, %.o, $(patsubst %.CXX, %.o, \ + $(patsubst %.cc, %.o, $(patsubst %.CC, %.o, \ + $(patsubst %.cpp, %.o, $(patsubst %.CPP, %.o, \ + $(CXX_SRCS) )))))) \ + $(patsubst %.S, %.o, $(patsubst %.s, %.o, $(ASM_SRCS))) )) + +# List of dependancy files for each object file. +DEPS = $(OBJS:.o=.d) + + +# Rules to force your project to rebuild or relink +# .force_relink file will cause any application that depends on this project to relink +# .force_rebuild file will cause this project to rebuild object files +# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files + +FORCE_RELINK_DEP := .force_relink +FORCE_REBUILD_DEP := .force_rebuild +FORCE_REBUILD_ALL_DEP := .force_rebuild_all +FORCE_REBUILD_DEP_LIST := $(FORCE_RELINK_DEP) $(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) + +$(FORCE_REBUILD_DEP_LIST): + +$(OBJS): $(wildcard $(FORCE_REBUILD_DEP)) $(wildcard $(FORCE_REBUILD_ALL_DEP)) + + +#------------------------------------------------------------------------------ +# BUILD RULES: ALL & CLEAN +#------------------------------------------------------------------------------ +.DELETE_ON_ERROR: + +.PHONY: all +all: build_pre_process +all: Makefile $(GENERATED_FILES) $(BSP_LIB) $(NEWLIB_DIR) +all: build_post_process + + +# clean: remove .o/.a/.d +.PHONY: clean +clean: + @$(RM) -r $(BSP_LIB) $(OBJ_DIR) $(FORCE_REBUILD_DEP_LIST) +ifneq ($(wildcard $(NEWLIB_DIR)),) + @$(RM) -r $(NEWLIB_DIR) +endif + @$(ECHO) [BSP clean complete] + + +#------------------------------------------------------------------------------ +# BUILD PRE/POST PROCESS +#------------------------------------------------------------------------------ +build_pre_process : + $(BUILD_PRE_PROCESS) + +build_post_process : + $(BUILD_POST_PROCESS) + +.PHONY: build_pre_process build_post_process + + + +#------------------------------------------------------------------------------ +# MAKEFILE UP TO DATE? +# +# Is this very Makefile up to date? Someone may have changed the BSP settings +# file or the associated target hardware. +#------------------------------------------------------------------------------ +# Skip this check when clean is the only target +ifneq ($(MAKECMDGOALS),clean) + +ifneq ($(wildcard $(SETTINGS_FILE)),$(SETTINGS_FILE)) +$(warning Warning: BSP Settings File $(SETTINGS_FILE) could not be found.) +endif + +Makefile: $(wildcard $(SETTINGS_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SETTINGS_FILE) has been modified since the BSP Makefile was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +ifneq ($(wildcard $(SOPC_FILE)),$(SOPC_FILE)) +$(warning Warning: SOPC File $(SOPC_FILE) could not be found.) +endif + +public.mk: $(wildcard $(SOPC_FILE)) + @$(ECHO) Makefile not up to date. + @$(ECHO) $(SOPC_FILE) has been modified since the BSP was generated. + @$(ECHO) + @$(ECHO) Generate the BSP to update the Makefile, and then build again. + @$(ECHO) + @$(ECHO) To generate from Eclipse: + @$(ECHO) " 1. Right-click the BSP project." + @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." + @$(ECHO) + @$(ECHO) To generate from the command line: + @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" + @$(ECHO) + @exit 1 + +endif # $(MAKECMDGOALS) != clean + +#------------------------------------------------------------------------------ +# PATTERN RULES TO BUILD OBJECTS +#------------------------------------------------------------------------------ +$(OBJ_DIR)/%.o: %.c + @$(ECHO) Compiling $( + +/* + * Device headers + */ + +#include "altera_nios2_qsys_irq.h" +#include "altera_avalon_jtag_uart.h" +#include "altera_avalon_lcd_16207.h" + +/* + * Allocate the device storage + */ + +ALTERA_NIOS2_QSYS_IRQ_INSTANCE ( NIOS2_PROCESSOR, nios2_processor); +ALTERA_AVALON_JTAG_UART_INSTANCE ( JTAG_UART, jtag_uart); +ALTERA_AVALON_LCD_16207_INSTANCE ( LCD_16207_0, lcd_16207_0); + +/* + * Initialize the interrupt controller devices + * and then enable interrupts in the CPU. + * Called before alt_sys_init(). + * The "base" parameter is ignored and only + * present for backwards-compatibility. + */ + +void alt_irq_init ( const void* base ) +{ + ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); + alt_irq_cpu_enable_interrupts(); +} + +/* + * Initialize the non-interrupt controller devices. + * Called after alt_irq_init(). + */ + +void alt_sys_init( void ) +{ + ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); + ALTERA_AVALON_LCD_16207_INIT ( LCD_16207_0, lcd_16207_0); +} diff --git a/software/DE2_115_ASM3_release_bsp/create-this-bsp b/software/DE2_115_ASM3_release_bsp/create-this-bsp new file mode 100644 index 0000000..1228b16 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/create-this-bsp @@ -0,0 +1,49 @@ +#!/bin/bash +# +# This script creates the ucosii_net_zipfs Board Support Package (BSP). + +BSP_TYPE=hal +BSP_DIR=. +SOPC_DIR=../../ +SOPC_FILE=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo +NIOS2_BSP_ARGS="" +CPU_NAME= + + +# Don't run make if create-this-app script is called with --no-make arg +SKIP_MAKE= +while [ $# -gt 0 ] +do + case "$1" in + --no-make) + SKIP_MAKE=1 + ;; + *) + NIOS2_BSP_ARGS="$NIOS2_BSP_ARGS $1" + ;; + esac + shift +done + + +# Run nios2-bsp utility to create a hal BSP in this directory +# for the system with a .sopc file in $SOPC_FILE. +# Deprecating $SOPC_DIR in 10.1. Multiple .sopcinfo files in a directory may exist. + +if [ -z "$SOPC_FILE" ]; then + echo "WARNING: Use of a directory for locating a .sopcinfo file is deprecated in 10.1. Multiple .sopcinfo files may exist. You must specify the full .sopcinfo path." + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_DIR $NIOS2_BSP_ARGS $CPU_NAME" +else + cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_FILE $NIOS2_BSP_ARGS $CPU_NAME" +fi + + +echo "create-this-bsp: Running \"$cmd\"" +$cmd || { + echo "$cmd failed" + exit 1 +} +if [ -z "$SKIP_MAKE" ]; then + echo "create-this-bsp: Running make" + make +fi diff --git a/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_jtag_uart.h b/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_jtag_uart.h new file mode 100644 index 0000000..3168183 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_jtag_uart.h @@ -0,0 +1,198 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_H__ +#define __ALT_AVALON_JTAG_UART_H__ + +#include + +#include "sys/alt_alarm.h" +#include "sys/alt_warning.h" + +#include "os/alt_sem.h" +#include "os/alt_flag.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * If the user wants all drivers to be small rather than fast then make sure + * this one is marked as needing to be small. + */ +#if defined ALT_USE_SMALL_DRIVERS && !defined ALTERA_AVALON_JTAG_UART_SMALL +#define ALTERA_AVALON_JTAG_UART_SMALL +#endif + +/* + * If the user wants to ignore FIFO full error after timeout + */ +#if defined ALT_JTAG_UART_IGNORE_FIFO_FULL_ERROR && !defined ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#define ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR +#endif + +/* + * Constants that can be overriden. + */ +#ifndef ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT +#define ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT 10 +#endif + +#ifndef ALTERA_AVALON_JTAG_UART_BUF_LEN +#define ALTERA_AVALON_JTAG_UART_BUF_LEN 2048 +#endif + +/* + * ALT_JTAG_UART_READ_RDY and ALT_JTAG_UART_WRITE_RDY are the bitmasks + * that define uC/OS-II event flags that are releated to this device. + * + * ALT_JTAG_UART_READ_RDY indicates that there is read data in the buffer + * ready to be processed. ALT_JTAG_UART_WRITE_RDY indicates that the transmitter is + * ready for more data. + */ +#define ALT_JTAG_UART_READ_RDY 0x1 +#define ALT_JTAG_UART_WRITE_RDY 0x2 +#define ALT_JTAG_UART_TIMEOUT 0x4 + +/* + * State structure definition. Each instance of the driver uses one + * of these structures to hold its associated state. + */ + +typedef struct altera_avalon_jtag_uart_state_s +{ + unsigned int base; + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + + unsigned int timeout; /* Timeout until host is assumed inactive */ + alt_alarm alarm; + unsigned int irq_enable; + unsigned int host_inactive; + + ALT_SEM (read_lock) + ALT_SEM (write_lock) + ALT_FLAG_GRP (events) + + /* The variables below are volatile because they are modified by the + * interrupt routine. Making them volatile and reading them atomically + * means that we don't need any large critical sections. + */ + volatile unsigned int rx_in; + unsigned int rx_out; + unsigned int tx_in; + volatile unsigned int tx_out; + char rx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + char tx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +} altera_avalon_jtag_uart_state; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility isn't used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + } + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ + altera_avalon_jtag_uart_state state = \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } + +/* + * Externally referenced routines + */ +extern void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq); + +#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) \ + { \ + if (name##_IRQ == ALT_IRQ_NOT_CONNECTED) \ + { \ + ALT_LINK_ERROR ("Error: Interrupt not connected for " #name ". " \ + "You have selected the interrupt driven version of " \ + "the ALTERA Avalon JTAG UART driver, but the " \ + "interrupt is not connected for this device. You can " \ + "select a polled mode driver by checking the 'small " \ + "driver' option in the HAL configuration window, or " \ + "by using the -DALTERA_AVALON_JTAG_UART_SMALL " \ + "preprocessor flag."); \ + } \ + else \ + altera_avalon_jtag_uart_init(&state, \ + name##_IRQ_INTERRUPT_CONTROLLER_ID, \ + name##_IRQ); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +/* + * Include in case non-direct version of driver required. + */ +#include "altera_avalon_jtag_uart_fd.h" + +/* + * Map alt_sys_init macros to direct or non-direct versions. + */ +#ifdef ALT_USE_DIRECT_DRIVERS + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) +#define ALTERA_AVALON_JTAG_UART_INIT(name, state) \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, dev) +#define ALTERA_AVALON_JTAG_UART_INIT(name, dev) \ + ALTERA_AVALON_JTAG_UART_DEV_INIT(name, dev) + +#endif /* ALT_USE_DIRECT_DRIVERS */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h b/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h new file mode 100644 index 0000000..183bd3f --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h @@ -0,0 +1,125 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALT_AVALON_JTAG_UART_FD_H__ +#define __ALT_AVALON_JTAG_UART_FD_H__ + +#include "sys/alt_dev.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Externally referenced routines + */ +extern int altera_avalon_jtag_uart_read_fd (alt_fd* fd, char* ptr, int len); +extern int altera_avalon_jtag_uart_write_fd (alt_fd* fd, const char* ptr, + int len); + +/* + * Device structure definition. This is needed by alt_sys_init in order to + * reserve memory for the device instance. + */ + +typedef struct altera_avalon_jtag_uart_dev_s +{ + alt_dev dev; + altera_avalon_jtag_uart_state state; +} altera_avalon_jtag_uart_dev; + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility is used. + */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + NULL, /* close */ \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + NULL, /* ioctl */ \ + }, \ + { \ + name##_BASE, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) alt_dev_reg (&d.dev) + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +extern int altera_avalon_jtag_uart_close_fd(alt_fd* fd); +extern int altera_avalon_jtag_uart_ioctl_fd (alt_fd* fd, int req, void* arg); + +#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ + static altera_avalon_jtag_uart_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + altera_avalon_jtag_uart_close_fd, \ + altera_avalon_jtag_uart_read_fd, \ + altera_avalon_jtag_uart_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + altera_avalon_jtag_uart_ioctl_fd, \ + }, \ + { \ + name##_BASE, \ + ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ + } \ + } + +#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) \ + { \ + ALTERA_AVALON_JTAG_UART_STATE_INIT(name, d.state); \ + \ + /* make the device available to the system */ \ + alt_dev_reg(&d.dev); \ + } + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALT_AVALON_JTAG_UART_FD_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h b/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h new file mode 100644 index 0000000..8fe6b80 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h @@ -0,0 +1,73 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_JTAG_UART_REGS_H__ +#define __ALTERA_AVALON_JTAG_UART_REGS_H__ + +#include + +#define ALTERA_AVALON_JTAG_UART_DATA_REG 0 +#define IOADDR_ALTERA_AVALON_JTAG_UART_DATA(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_DATA(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_DATA_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_DATA_REG, data) + +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK (0x000000FF) +#define ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST (0) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK (0x00008000) +#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_OFST (15) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST (16) + + +#define ALTERA_AVALON_JTAG_UART_CONTROL_REG 1 +#define IOADDR_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ + IORD(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) +#define IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, data) \ + IOWR(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG, data) + +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK (0x00000001) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST (0) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK (0x00000002) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST (1) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK (0x00000100) +#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST (8) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK (0x00000200) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST (9) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK (0x00000400) +#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST (10) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK (0xFFFF0000) +#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST (16) + +#endif /* __ALTERA_AVALON_JTAG_UART_REGS_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_lcd_16207.h b/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_lcd_16207.h new file mode 100644 index 0000000..526ef17 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_lcd_16207.h @@ -0,0 +1,158 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_LCD_16207_H__ +#define __ALTERA_AVALON_LCD_16207_H__ + +#include + +#include "sys/alt_alarm.h" +#include "os/alt_sem.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * The altera_avalon_lcd_16207_dev structure is used to hold device specific + * data. This includes the transmit and receive buffers. + * + * An instance of this structure is created in the auto-generated + * alt_sys_init.c file for each UART listed in the systems PTF file. This is + * done using the ALTERA_AVALON_LCD_16207_STATE_INSTANCE macro given below. + */ + +#define ALT_LCD_HEIGHT 2 +#define ALT_LCD_WIDTH 16 +#define ALT_LCD_VIRTUAL_WIDTH 80 + +typedef struct altera_avalon_lcd_16207_state_s +{ + int base; + + alt_alarm alarm; + int period; + + char broken; + + unsigned char x; + unsigned char y; + char address; + char esccount; + + char scrollpos; + char scrollmax; + char active; /* If non-zero then the foreground routines are + * active so the timer call must not update the + * display. */ + + char escape[8]; + + struct + { + char visible[ALT_LCD_WIDTH]; + char data[ALT_LCD_VIRTUAL_WIDTH+1]; + char width; + unsigned char speed; + + } line[ALT_LCD_HEIGHT]; + + ALT_SEM (write_lock)/* Semaphore used to control access to the + * write buffer in multi-threaded mode */ +} altera_avalon_lcd_16207_state; + +/* + * Called by alt_sys_init.c to initialize the driver. + */ +extern void altera_avalon_lcd_16207_init(altera_avalon_lcd_16207_state* sp); + +/* + * The LCD panel driver is not trivial, so leave it out in the small + * drivers case. Also leave it out in simulation because there is no + * simulated hardware for the LCD panel. These two can be overridden + * by defining ALT_USE_LCE_16207 if you really want it. + */ + +#if (!defined(ALT_USE_SMALL_DRIVERS) && !defined(ALT_SIM_OPTIMIZE)) || defined ALT_USE_LCD_16207 + +/* + * Used by the auto-generated file + * alt_sys_init.c to create an instance of this device driver. + */ +#define ALTERA_AVALON_LCD_16207_STATE_INSTANCE(name, state) \ + altera_avalon_lcd_16207_state state = \ + { \ + name##_BASE \ + } + +/* + * The macro ALTERA_AVALON_LCD_16207_INIT is used by the auto-generated file + * alt_sys_init.c to initialize an instance of the device driver. + */ +#define ALTERA_AVALON_LCD_16207_STATE_INIT(name, state) \ + altera_avalon_lcd_16207_init(&state) + +#else /* exclude driver */ + +#define ALTERA_AVALON_LCD_16207_STATE_INSTANCE(name, state) extern int alt_no_storage +#define ALTERA_AVALON_LCD_16207_STATE_INIT(name, state) while (0) + +#endif /* exclude driver */ + +/* + * Include in case non-direct version of driver required. + */ +#include "altera_avalon_lcd_16207_fd.h" + +/* + * Map alt_sys_init macros to direct or non-direct versions. + */ +#ifdef ALT_USE_DIRECT_DRIVERS + +#define ALTERA_AVALON_LCD_16207_INSTANCE(name, state) \ + ALTERA_AVALON_LCD_16207_STATE_INSTANCE(name, state) +#define ALTERA_AVALON_LCD_16207_INIT(name, state) \ + ALTERA_AVALON_LCD_16207_STATE_INIT(name, state) + +#else /* !ALT_USE_DIRECT_DRIVERS */ + +#define ALTERA_AVALON_LCD_16207_INSTANCE(name, dev) \ + ALTERA_AVALON_LCD_16207_DEV_INSTANCE(name, dev) +#define ALTERA_AVALON_LCD_16207_INIT(name, dev) \ + ALTERA_AVALON_LCD_16207_DEV_INIT(name, dev) + +#endif /* ALT_USE_DIRECT_DRIVERS */ + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALTERA_AVALON_LCD_16207_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_lcd_16207_fd.h b/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_lcd_16207_fd.h new file mode 100644 index 0000000..88436c0 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_lcd_16207_fd.h @@ -0,0 +1,108 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_LCD_16207_FD_H__ +#define __ALTERA_AVALON_LCD_16207_FD_H__ + +#include "sys/alt_dev.h" + +#ifdef __cplusplus +extern "C" +{ +#endif /* __cplusplus */ + +/* + * Externally referenced routines + */ +extern int altera_avalon_lcd_16207_write_fd(alt_fd* fd, const char* ptr, + int len); + +/* + * Device structure definition. This is needed by alt_sys_init in order to + * reserve memory for the device instance. + */ + +typedef struct altera_avalon_lcd_16207_dev_s +{ + alt_dev dev; + altera_avalon_lcd_16207_state state; +} altera_avalon_lcd_16207_dev; + +/* + * The LCD panel driver is not trivial, so leave it out in the small + * drivers case. Also leave it out in simulation because there is no + * simulated hardware for the LCD panel. These two can be overridden + * by defining ALT_USE_LCE_16207 if you really want it. + */ + +#if (!defined(ALT_USE_SMALL_DRIVERS) && !defined(ALT_SIM_OPTIMIZE)) || defined ALT_USE_LCD_16207 + +/* + * Macros used by alt_sys_init when the ALT file descriptor facility is used. + */ +#define ALTERA_AVALON_LCD_16207_DEV_INSTANCE(name, d) \ + static altera_avalon_lcd_16207_dev d = \ + { \ + { \ + ALT_LLIST_ENTRY, \ + name##_NAME, \ + NULL, /* open */ \ + NULL, /* close */ \ + NULL, /* read */ \ + altera_avalon_lcd_16207_write_fd, \ + NULL, /* lseek */ \ + NULL, /* fstat */ \ + NULL, /* ioctl */ \ + }, \ + { \ + name##_BASE \ + }, \ + } + +#define ALTERA_AVALON_LCD_16207_DEV_INIT(name, d) \ + { \ + ALTERA_AVALON_LCD_16207_STATE_INIT(name, d.state); \ + \ + /* make the device available to the system */ \ + alt_dev_reg(&d.dev); \ + } + +#else /* exclude driver */ + +#define ALTERA_AVALON_LCD_16207_DEV_INSTANCE(name, d) extern int alt_no_storage +#define ALTERA_AVALON_LCD_16207_DEV_INIT(name, d) while (0) + +#endif + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ALTERA_AVALON_LCD_16207_FD_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_lcd_16207_regs.h b/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_lcd_16207_regs.h new file mode 100644 index 0000000..bc35f1a --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_lcd_16207_regs.h @@ -0,0 +1,83 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_LCD_16207_REGS_H__ +#define __ALTERA_AVALON_LCD_16207_REGS_H__ + +/* +/////////////////////////////////////////////////////////////////////////// +// +// ALTERA_AVALON_LCD_16207 PERIPHERAL +// +// Provides a hardware interface that allows software to +// access the two (2) internal 8-bit registers in an Optrex +// model 16207 (or equivalent) character LCD display (the kind +// shipped with the Nios Development Kit, 2 rows x 16 columns). +// +// Because the interface to the LCD module is "not quite Avalon," +// the hardware in this module ends-up mapping the module's +// two physical read-write registers into four Avalon-visible +// registers: Two read-only registers and two write-only registers. +// A picture is worth a thousand words: +// +// THE REGISTER MAP +// +// 7 6 5 4 3 2 1 0 Offset +// +-----+-----+-----+-----+-----+-----+-----+-----+ +// RS = 0 | Command Register (WRITE-Only) | 0 +// +-----+-----+-----+-----+-----+-----+-----+-----+ +// RS = 0 | Status Register (READ -Only) | 1 +// +-----+-----+-----+-----+-----+-----+-----+-----+ +// RS = 1 | Data Register (WRITE-Only) | 2 +// +-----+-----+-----+-----+-----+-----+-----+-----+ +// RS = 1 | Data Register (READ -Only) | 3 +// +-----+-----+-----+-----+-----+-----+-----+-----+ +// +/////////////////////////////////////////////////////////////////////////// +*/ + +#include + +#define IOADDR_ALTERA_AVALON_LCD_16207_COMMAND(base) __IO_CALC_ADDRESS_NATIVE(base, 0) +#define IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, data) IOWR(base, 0, data) + +#define IOADDR_ALTERA_AVALON_LCD_16207_STATUS(base) __IO_CALC_ADDRESS_NATIVE(base, 1) +#define IORD_ALTERA_AVALON_LCD_16207_STATUS(base) IORD(base, 1) + +#define ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK (0x00000080u) +#define ALTERA_AVALON_LCD_16207_STATUS_BUSY_OFST (7) + +#define IOADDR_ALTERA_AVALON_LCD_16207_DATA_WR(base) __IO_CALC_ADDRESS_NATIVE(base, 2) +#define IOWR_ALTERA_AVALON_LCD_16207_DATA(base, data) IOWR(base, 2, data) + +#define IOADDR_ALTERA_AVALON_LCD_16207_DATA_RD(base) __IO_CALC_ADDRESS_NATIVE(base, 3) +#define IORD_ALTERA_AVALON_LCD_16207_DATA(base) IORD(base, 3) + +#endif diff --git a/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_pio_regs.h b/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_pio_regs.h new file mode 100644 index 0000000..a829ddd --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/drivers/inc/altera_avalon_pio_regs.h @@ -0,0 +1,67 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#ifndef __ALTERA_AVALON_PIO_REGS_H__ +#define __ALTERA_AVALON_PIO_REGS_H__ + +#include + +#define IOADDR_ALTERA_AVALON_PIO_DATA(base) __IO_CALC_ADDRESS_NATIVE(base, 0) +#define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0) +#define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data) + +#define IOADDR_ALTERA_AVALON_PIO_DIRECTION(base) __IO_CALC_ADDRESS_NATIVE(base, 1) +#define IORD_ALTERA_AVALON_PIO_DIRECTION(base) IORD(base, 1) +#define IOWR_ALTERA_AVALON_PIO_DIRECTION(base, data) IOWR(base, 1, data) + +#define IOADDR_ALTERA_AVALON_PIO_IRQ_MASK(base) __IO_CALC_ADDRESS_NATIVE(base, 2) +#define IORD_ALTERA_AVALON_PIO_IRQ_MASK(base) IORD(base, 2) +#define IOWR_ALTERA_AVALON_PIO_IRQ_MASK(base, data) IOWR(base, 2, data) + +#define IOADDR_ALTERA_AVALON_PIO_EDGE_CAP(base) __IO_CALC_ADDRESS_NATIVE(base, 3) +#define IORD_ALTERA_AVALON_PIO_EDGE_CAP(base) IORD(base, 3) +#define IOWR_ALTERA_AVALON_PIO_EDGE_CAP(base, data) IOWR(base, 3, data) + + +#define IOADDR_ALTERA_AVALON_PIO_SET_BIT(base) __IO_CALC_ADDRESS_NATIVE(base, 4) +#define IORD_ALTERA_AVALON_PIO_SET_BITS(base) IORD(base, 4) +#define IOWR_ALTERA_AVALON_PIO_SET_BITS(base, data) IOWR(base, 4, data) + +#define IOADDR_ALTERA_AVALON_PIO_CLEAR_BITS(base) __IO_CALC_ADDRESS_NATIVE(base, 5) +#define IORD_ALTERA_AVALON_PIO_CLEAR_BITS(base) IORD(base, 5) +#define IOWR_ALTERA_AVALON_PIO_CLEAR_BITS(base, data) IOWR(base, 5, data) + + + +/* Defintions for direction-register operation with bi-directional PIOs */ +#define ALTERA_AVALON_PIO_DIRECTION_INPUT 0 +#define ALTERA_AVALON_PIO_DIRECTION_OUTPUT 1 + +#endif /* __ALTERA_AVALON_PIO_REGS_H__ */ diff --git a/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_jtag_uart_fd.c b/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_jtag_uart_fd.c new file mode 100644 index 0000000..c2a882a --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_jtag_uart_fd.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "sys/alt_dev.h" +#include "altera_avalon_jtag_uart.h" + +extern int altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags); +extern int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char* ptr, int count, int flags); +extern int altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, + int req, void* arg); +extern int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, + int flags); + +/* ----------------------------------------------------------------------- */ +/* --------------------- WRAPPERS FOR ALT FD SUPPORT --------------------- */ +/* + * + */ + +int +altera_avalon_jtag_uart_read_fd(alt_fd* fd, char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_read(&dev->state, buffer, space, + fd->fd_flags); +} + +int +altera_avalon_jtag_uart_write_fd(alt_fd* fd, const char* buffer, int space) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_write(&dev->state, buffer, space, + fd->fd_flags); +} + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +int +altera_avalon_jtag_uart_close_fd(alt_fd* fd) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_close(&dev->state, fd->fd_flags); +} + +int +altera_avalon_jtag_uart_ioctl_fd(alt_fd* fd, int req, void* arg) +{ + altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; + + return altera_avalon_jtag_uart_ioctl(&dev->state, req, arg); +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_jtag_uart_init.c b/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_jtag_uart_init.c new file mode 100644 index 0000000..16376e3 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_jtag_uart_init.c @@ -0,0 +1,256 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context); +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id); +#endif +static alt_u32 altera_avalon_jtag_uart_timeout(void* context); + +/* + * Driver initialization code. Register interrupts and start a timer + * which we can use to check whether the host is there. + * Return 1 on sucessful IRQ register and 0 on failure. + */ + +void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, + int irq_controller_id, int irq) +{ + ALT_FLAG_CREATE(&sp->events, 0); + ALT_SEM_CREATE(&sp->read_lock, 1); + ALT_SEM_CREATE(&sp->write_lock, 1); + + /* enable read interrupts at the device */ + sp->irq_enable = ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* register the interrupt handler */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT + alt_ic_isr_register(irq_controller_id, irq, altera_avalon_jtag_uart_irq, + sp, NULL); +#else + alt_irq_register(irq, sp, altera_avalon_jtag_uart_irq); +#endif + + /* Register an alarm to go off every second to check for presence of host */ + sp->host_inactive = 0; + + if (alt_alarm_start(&sp->alarm, alt_ticks_per_second(), + &altera_avalon_jtag_uart_timeout, sp) < 0) + { + /* If we can't set the alarm then record "don't know if host present" + * and behave as though the host is present. + */ + sp->timeout = INT_MAX; + } + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ALARM_REGISTER(sp, sp->base); +} + +/* + * Interrupt routine + */ +#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT +static void altera_avalon_jtag_uart_irq(void* context) +#else +static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id) +#endif +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state*) context; + unsigned int base = sp->base; + + /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ + ALT_LOG_JTAG_UART_ISR_FUNCTION(base, sp); + + for ( ; ; ) + { + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + + /* Return once nothing more to do */ + if ((control & (ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK | ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)) == 0) + break; + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) + { + /* process a read irq. Start by assuming that there is data in the + * receive FIFO (otherwise why would we have been interrupted?) + */ + unsigned int data = 1 << ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST; + + for ( ; ; ) + { + /* Check whether there is space in the buffer. If not then we must not + * read any characters from the buffer as they will be lost. + */ + unsigned int next = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + if (next == sp->rx_out) + break; + + /* Try to remove a character from the FIFO and find out whether there + * are any more characters remaining. + */ + data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if ((data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) == 0) + break; + + sp->rx_buf[sp->rx_in] = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + sp->rx_in = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_read that a character has been read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_READ_RDY, OS_FLAG_SET); + } + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK) + { + /* If there is still data available here then the buffer is full + * so turn off receive interrupts until some space becomes available. + */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) + { + /* process a write irq */ + unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; + + while (space > 0 && sp->tx_out != sp->tx_in) + { + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, sp->tx_buf[sp->tx_out]); + + sp->tx_out = (sp->tx_out + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + + /* Post an event to notify jtag_uart_write that a character has been written */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET); + + space--; + } + + if (space > 0) + { + /* If we don't have any more data available then turn off the TX interrupt */ + sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + + /* Dummy read to ensure IRQ is cleared prior to ISR completion */ + IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); + } + } + } +} + +/* + * Timeout routine is called every second + */ + +static alt_u32 +altera_avalon_jtag_uart_timeout(void* context) +{ + altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state *) context; + + unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base); + + if (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) + { + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable | ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK); + sp->host_inactive = 0; + } + else if (sp->host_inactive < INT_MAX - 2) { + sp->host_inactive++; + + if (sp->host_inactive >= sp->timeout) { + /* Post an event to indicate host is inactive (for jtag_uart_read */ + ALT_FLAG_POST (sp->events, ALT_JTAG_UART_TIMEOUT, OS_FLAG_SET); + } + } + + return alt_ticks_per_second(); +} + +/* + * The close() routine is implemented to drain the JTAG UART transmit buffer + * when not in "small" mode. This routine will wait for transimt data to be + * emptied unless a timeout from host-activity occurs. If the driver flags + * have been set to non-blocking mode, this routine will exit immediately if + * any data remains. This routine should be called indirectly (i.e. though + * the C library close() routine) so that the file descriptor associated + * with the relevant stream (i.e. stdout) can be closed as well. This routine + * does not manage file descriptors. + * + * The close routine is not implemented for the small driver; instead it will + * map to null. This is because the small driver simply waits while characters + * are transmitted; there is no interrupt-serviced buffer to empty + */ +int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, int flags) +{ + /* + * Wait for all transmit data to be emptied by the JTAG UART ISR, or + * for a host-inactivity timeout, in which case transmit data will be lost + */ + while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) { + if (flags & O_NONBLOCK) { + return -EWOULDBLOCK; + } + } + + return 0; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c b/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c new file mode 100644 index 0000000..15d97a6 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c @@ -0,0 +1,86 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifndef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, int req, + void* arg) +{ + int rc = -ENOTTY; + + switch (req) + { + case TIOCSTIMEOUT: + /* Set the time to wait until assuming host is not connected */ + if (sp->timeout != INT_MAX) + { + int timeout = *((int *)arg); + sp->timeout = (timeout >= 2 && timeout < INT_MAX) ? timeout : INT_MAX - 1; + rc = 0; + } + break; + + case TIOCGCONNECTED: + /* Find out whether host is connected */ + if (sp->timeout != INT_MAX) + { + *((int *)arg) = (sp->host_inactive < sp->timeout) ? 1 : 0; + rc = 0; + } + break; + + default: + break; + } + + return rc; +} + +#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_jtag_uart_read.c b/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_jtag_uart_read.c new file mode 100644 index 0000000..f97baa8 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_jtag_uart_read.c @@ -0,0 +1,205 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ----------------------- SMALL DRIVER ---------------------- */ +/* ----------------------------------------------------------- */ + +/* Read routine. The small version blocks until it has at least one byte + * available, it then returns as much as is immediately available without + * waiting any more. It's performance will be very poor without + * interrupts. + */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char* buffer, int space, int flags) +{ + unsigned int base = sp->base; + + char * ptr = buffer; + char * end = buffer + space; + + while (ptr < end) + { + unsigned int data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); + + if (data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) + *ptr++ = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; + else if (ptr != buffer) + break; + else if(flags & O_NONBLOCK) + break; + + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ----------------------- FAST DRIVER ----------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, + char * buffer, int space, int flags) +{ + char * ptr = buffer; + + alt_irq_context context; + unsigned int n; + + /* + * When running in a multi threaded environment, obtain the "read_lock" + * semaphore. This ensures that reading from the device is thread-safe. + */ + ALT_SEM_PEND (sp->read_lock, 0); + + while (space > 0) + { + unsigned int in, out; + + /* Read as much data as possible */ + do + { + in = sp->rx_in; + out = sp->rx_out; + + if (in >= out) + n = in - out; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - out; + + if (n == 0) + break; /* No more data available */ + + if (n > space) + n = space; + + memcpy(ptr, sp->rx_buf + out, n); + ptr += n; + space -= n; + + sp->rx_out = (out + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + while (space > 0); + + /* If we read any data then return it */ + if (ptr != buffer) + break; + + /* If in non-blocking mode then return error */ + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the read event + * flag set and timeout event flag set in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something more + * profitable elsewhere. + */ + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_READ_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* Spin until more data arrives or until host disconnects */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; + } +#else + /* No OS: Always spin */ + while (in == sp->rx_in && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (in == sp->rx_in) + break; + } + + /* + * Now that access to the circular buffer is complete, release the read + * semaphore so that other threads can access the buffer. + */ + + ALT_SEM_POST (sp->read_lock); + + if (ptr != buffer) + { + /* If we read any data then there is space in the buffer so enable interrupts */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + } + + if (ptr != buffer) + return ptr - buffer; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; + else + return -EIO; +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_jtag_uart_write.c b/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_jtag_uart_write.c new file mode 100644 index 0000000..9562562 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_jtag_uart_write.c @@ -0,0 +1,217 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include +#include +#include +#include + +#include + +#include "sys/alt_irq.h" +#include "sys/alt_alarm.h" +#include "sys/ioctl.h" +#include "alt_types.h" + +#include "altera_avalon_jtag_uart_regs.h" +#include "altera_avalon_jtag_uart.h" + +#include "sys/alt_log_printf.h" + +#ifdef __ucosii__ +#include "includes.h" +#endif /* __ucosii__ */ + +#ifdef ALTERA_AVALON_JTAG_UART_SMALL + +/* ----------------------------------------------------------- */ +/* ------------------------ SMALL DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +/* Write routine. The small version blocks when there is no space to write + * into, so it's performance will be very bad if you are writing more than + * one FIFOs worth of data. But you said you didn't want to use interrupts :-) + */ + +int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + unsigned int base = sp->base; + + const char * end = ptr + count; + + while (ptr < end) + if ((IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) != 0) + IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, *ptr++); + + return count; +} + +#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ + +/* ----------------------------------------------------------- */ +/* ------------------------- FAST DRIVER --------------------- */ +/* ----------------------------------------------------------- */ + +int +altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, + const char * ptr, int count, int flags) +{ + /* Remove warning at optimisation level 03 by seting out to 0 */ + unsigned int in, out=0; + unsigned int n; + alt_irq_context context; + + const char * start = ptr; + + /* + * When running in a multi threaded environment, obtain the "write_lock" + * semaphore. This ensures that writing to the device is thread-safe. + */ + ALT_SEM_PEND (sp->write_lock, 0); + + do + { + /* Copy as much as we can into the transmit buffer */ + while (count > 0) + { + /* We need a stable value of the out pointer to calculate the space available */ + in = sp->tx_in; + out = sp->tx_out; + + if (in < out) + n = out - 1 - in; + else if (out > 0) + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - in; + else + n = ALTERA_AVALON_JTAG_UART_BUF_LEN - 1 - in; + + if (n == 0) + break; + + if (n > count) + n = count; + + memcpy(sp->tx_buf + in, ptr, n); + ptr += n; + count -= n; + + sp->tx_in = (in + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; + } + + /* + * If interrupts are disabled then we could transmit here, we only need + * to enable interrupts if there is no space left in the FIFO + * + * For now kick the interrupt routine every time to make it transmit + * the data + */ + context = alt_irq_disable_all(); + sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; + IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); + alt_irq_enable_all(context); + + /* + * If there is any data left then either return now or block until + * some has been sent + */ + /* consider: test whether there is anything there while doing this and delay for at most 2s. */ + if (count > 0) + { + if (flags & O_NONBLOCK) + break; + +#ifdef __ucosii__ + /* OS Present: Pend on a flag if the OS is running, otherwise spin */ + if(OSRunning == OS_TRUE) { + /* + * When running in a multi-threaded mode, we pend on the write event + * flag set or the timeout flag in the isr. This avoids wasting CPU + * cycles waiting in this thread, when we could be doing something + * more profitable elsewhere. + */ +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + if(!sp->host_inactive) +#endif + ALT_FLAG_PEND (sp->events, + ALT_JTAG_UART_WRITE_RDY | ALT_JTAG_UART_TIMEOUT, + OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, + 0); + } + else { + /* + * OS not running: Wait for data to be removed from buffer. + * Once the interrupt routine has removed some data then we + * will be able to insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; + } +#else + /* + * No OS present: Always wait for data to be removed from buffer. Once + * the interrupt routine has removed some data then we will be able to + * insert some more. + */ + while (out == sp->tx_out && sp->host_inactive < sp->timeout) + ; +#endif /* __ucosii__ */ + + if (out == sp->tx_out) + break; + } + } + while (count > 0); + + /* + * Now that access to the circular buffer is complete, release the write + * semaphore so that other threads can access the buffer. + */ + ALT_SEM_POST (sp->write_lock); + + if (ptr != start) + return ptr - start; + else if (flags & O_NONBLOCK) + return -EWOULDBLOCK; +#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + else if (sp->host_inactive >= sp->timeout) { + /* + * Reset the software FIFO, hardware FIFO could not be reset. + * Just throw away characters without reporting error. + */ + sp->tx_out = sp->tx_in = 0; + return ptr - start + count; + } +#endif + else + return -EIO; /* Host not connected */ +} + +#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_lcd_16207.c b/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_lcd_16207.c new file mode 100644 index 0000000..102e202 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_lcd_16207.c @@ -0,0 +1,605 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +/* ===================================================================== */ + +/* + * This file provides the implementation of the functions used to drive a + * LCD panel. + * + * Characters written to the device will appear on the LCD panel as though + * it is a very small terminal. If the lines written to the terminal are + * longer than the number of characters on the terminal then it will scroll + * the lines of text automatically to display them all. + * + * If more lines are written than will fit on the terminal then it will scroll + * when characters are written to the line "below" the last displayed one - + * the cursor is allowed to sit below the visible area of the screen providing + * that this line is entirely blank. + * + * The following control sequences may be used to move around and do useful + * stuff: + * CR Moves back to the start of the current line + * LF Moves down a line and back to the start + * BS Moves back a character without erasing + * ESC Starts a VT100 style escape sequence + * + * The following escape sequences are recognised: + * ESC [ ; H Move to row and column specified (positions are + * counted from the top left which is 1;1) + * ESC [ K Clear from current position to end of line + * ESC [ 2 J Clear screen and go to top left + * + */ + +/* ===================================================================== */ + +#include +#include + +#include +#include +#include + +#include "sys/alt_alarm.h" + +#include "altera_avalon_lcd_16207_regs.h" +#include "altera_avalon_lcd_16207.h" + +/* --------------------------------------------------------------------- */ + +/* Commands which can be written to the COMMAND register */ + +enum /* Write to character RAM */ +{ + LCD_CMD_WRITE_DATA = 0x80 + /* Bits 6:0 hold character RAM address */ +}; + +enum /* Write to character generator RAM */ +{ + LCD_CMD_WRITE_CGR = 0x40 + /* Bits 5:0 hold character generator RAM address */ +}; + +enum /* Function Set command */ +{ + LCD_CMD_FUNCTION_SET = 0x20, + LCD_CMD_8BIT = 0x10, + LCD_CMD_TWO_LINE = 0x08, + LCD_CMD_BIGFONT = 0x04 +}; + +enum /* Shift command */ +{ + LCD_CMD_SHIFT = 0x10, + LCD_CMD_SHIFT_DISPLAY = 0x08, + LCD_CMD_SHIFT_RIGHT = 0x04 +}; + +enum /* On/Off command */ +{ + LCD_CMD_ONOFF = 0x08, + LCD_CMD_ENABLE_DISP = 0x04, + LCD_CMD_ENABLE_CURSOR = 0x02, + LCD_CMD_ENABLE_BLINK = 0x01 +}; + +enum /* Entry Mode command */ +{ + LCD_CMD_MODES = 0x04, + LCD_CMD_MODE_INC = 0x02, + LCD_CMD_MODE_SHIFT = 0x01 +}; + +enum /* Home command */ +{ + LCD_CMD_HOME = 0x02 +}; + +enum /* Clear command */ +{ + LCD_CMD_CLEAR = 0x01 +}; + +/* Where in LCD character space do the rows start */ +static char colstart[4] = { 0x00, 0x40, 0x20, 0x60 }; + +/* --------------------------------------------------------------------- */ + +static void lcd_write_command(altera_avalon_lcd_16207_state* sp, + unsigned char command) +{ + unsigned int base = sp->base; + + /* We impose a timeout on the driver in case the LCD panel isn't connected. + * The first time we call this function the timeout is approx 25ms + * (assuming 5 cycles per loop and a 200MHz clock). Obviously systems + * with slower clocks, or debug builds, or slower memory will take longer. + */ + int i = 1000000; + + /* Don't bother if the LCD panel didn't work before */ + if (sp->broken) + return; + + /* Wait until LCD isn't busy. */ + while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) + if (--i == 0) + { + sp->broken = 1; + return; + } + + /* Despite what it says in the datasheet, the LCD isn't ready to accept + * a write immediately after it returns BUSY=0. Wait for 100us more. + */ + usleep(100); + + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, command); +} + +/* --------------------------------------------------------------------- */ + +static void lcd_write_data(altera_avalon_lcd_16207_state* sp, + unsigned char data) +{ + unsigned int base = sp->base; + + /* We impose a timeout on the driver in case the LCD panel isn't connected. + * The first time we call this function the timeout is approx 25ms + * (assuming 5 cycles per loop and a 200MHz clock). Obviously systems + * with slower clocks, or debug builds, or slower memory will take longer. + */ + int i = 1000000; + + /* Don't bother if the LCD panel didn't work before */ + if (sp->broken) + return; + + /* Wait until LCD isn't busy. */ + while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) + if (--i == 0) + { + sp->broken = 1; + return; + } + + /* Despite what it says in the datasheet, the LCD isn't ready to accept + * a write immediately after it returns BUSY=0. Wait for 100us more. + */ + usleep(100); + + IOWR_ALTERA_AVALON_LCD_16207_DATA(base, data); + + sp->address++; +} + +/* --------------------------------------------------------------------- */ + +static void lcd_clear_screen(altera_avalon_lcd_16207_state* sp) +{ + int y; + + lcd_write_command(sp, LCD_CMD_CLEAR); + + sp->x = 0; + sp->y = 0; + sp->address = 0; + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + { + memset(sp->line[y].data, ' ', sizeof(sp->line[0].data)); + memset(sp->line[y].visible, ' ', sizeof(sp->line[0].visible)); + sp->line[y].width = 0; + } +} + +/* --------------------------------------------------------------------- */ + +static void lcd_repaint_screen(altera_avalon_lcd_16207_state* sp) +{ + int y, x; + + /* scrollpos controls how much the lines have scrolled round. The speed + * each line scrolls at is controlled by its speed variable - while + * scrolline lines will wrap at the position set by width + */ + + int scrollpos = sp->scrollpos; + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + { + int width = sp->line[y].width; + int offset = (scrollpos * sp->line[y].speed) >> 8; + if (offset >= width) + offset = 0; + + for (x = 0 ; x < ALT_LCD_WIDTH ; x++) + { + char c = sp->line[y].data[(x + offset) % width]; + + /* Writing data takes 40us, so don't do it unless required */ + if (sp->line[y].visible[x] != c) + { + unsigned char address = x + colstart[y]; + + if (address != sp->address) + { + lcd_write_command(sp, LCD_CMD_WRITE_DATA | address); + sp->address = address; + } + + lcd_write_data(sp, c); + sp->line[y].visible[x] = c; + } + } + } +} + +/* --------------------------------------------------------------------- */ + +static void lcd_scroll_up(altera_avalon_lcd_16207_state* sp) +{ + int y; + + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + { + if (y < ALT_LCD_HEIGHT-1) + memcpy(sp->line[y].data, sp->line[y+1].data, ALT_LCD_VIRTUAL_WIDTH); + else + memset(sp->line[y].data, ' ', ALT_LCD_VIRTUAL_WIDTH); + } + + sp->y--; +} + +/* --------------------------------------------------------------------- */ + +static void lcd_handle_escape(altera_avalon_lcd_16207_state* sp, char c) +{ + int parm1 = 0, parm2 = 0; + + if (sp->escape[0] == '[') + { + char * ptr = sp->escape+1; + while (isdigit(*ptr)) + parm1 = (parm1 * 10) + (*ptr++ - '0'); + + if (*ptr == ';') + { + ptr++; + while (isdigit(*ptr)) + parm2 = (parm2 * 10) + (*ptr++ - '0'); + } + } + else + parm1 = -1; + + switch (c) + { + case 'H': /* ESC '[' ';' 'H' : Move cursor to location */ + case 'f': /* Same as above */ + if (parm2 > 0) + sp->x = parm2 - 1; + if (parm1 > 0) + { + sp->y = parm1 - 1; + if (sp->y > ALT_LCD_HEIGHT * 2) + sp->y = ALT_LCD_HEIGHT * 2; + while (sp->y > ALT_LCD_HEIGHT) + lcd_scroll_up(sp); + } + break; + + case 'J': + /* ESC J is clear to beginning of line [unimplemented] + * ESC [ 0 J is clear to bottom of screen [unimplemented] + * ESC [ 1 J is clear to beginning of screen [unimplemented] + * ESC [ 2 J is clear screen + */ + if (parm1 == 2) + lcd_clear_screen(sp); + break; + + case 'K': + /* ESC K is clear to end of line + * ESC [ 0 K is clear to end of line + * ESC [ 1 K is clear to beginning of line [unimplemented] + * ESC [ 2 K is clear line [unimplemented] + */ + if (parm1 < 1) + { + if (sp->x < ALT_LCD_VIRTUAL_WIDTH) + memset(sp->line[sp->y].data + sp->x, ' ', ALT_LCD_VIRTUAL_WIDTH - sp->x); + } + break; + } +} + +/* --------------------------------------------------------------------- */ + +int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp, + const char* ptr, int len, int flags) +{ + const char* end = ptr + len; + + int y; + int widthmax; + + /* When running in a multi threaded environment, obtain the "write_lock" + * semaphore. This ensures that writing to the device is thread-safe. + */ + + ALT_SEM_PEND (sp->write_lock, 0); + + /* Tell the routine which is called off the timer interrupt that the + * foreground routines are active so it must not repaint the display. */ + sp->active = 1; + + for ( ; ptr < end ; ptr++) + { + char c = *ptr; + + if (sp->esccount >= 0) + { + unsigned int esccount = sp->esccount; + + /* Single character escape sequences can end with any character + * Multi character escape sequences start with '[' and contain + * digits and semicolons before terminating + */ + if ((esccount == 0 && c != '[') || + (esccount > 0 && !isdigit(c) && c != ';')) + { + sp->escape[esccount] = 0; + + lcd_handle_escape(sp, c); + + sp->esccount = -1; + } + else if (sp->esccount < sizeof(sp->escape)-1) + { + sp->escape[esccount] = c; + sp->esccount++; + } + } + else if (c == 27) /* ESC */ + { + sp->esccount = 0; + } + else if (c == '\r') + { + sp->x = 0; + } + else if (c == '\n') + { + sp->x = 0; + sp->y++; + + /* Let the cursor sit at X=0, Y=HEIGHT without scrolling so the user + * can print two lines of data without losing one. + */ + if (sp->y > ALT_LCD_HEIGHT) + lcd_scroll_up(sp); + } + else if (c == '\b') + { + if (sp->x > 0) + sp->x--; + } + else if (isprint(c)) + { + /* If we didn't scroll on the last linefeed then we might need to do + * it now. */ + if (sp->y >= ALT_LCD_HEIGHT) + lcd_scroll_up(sp); + + if (sp->x < ALT_LCD_VIRTUAL_WIDTH) + sp->line[sp->y].data[sp->x] = c; + + sp->x++; + } + } + + /* Recalculate the scrolling parameters */ + widthmax = ALT_LCD_WIDTH; + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + { + int width; + for (width = ALT_LCD_VIRTUAL_WIDTH ; width > 0 ; width--) + if (sp->line[y].data[width-1] != ' ') + break; + + /* The minimum width is the size of the LCD panel. If the real width + * is long enough to require scrolling then add an extra space so the + * end of the message doesn't run into the beginning of it. + */ + if (width <= ALT_LCD_WIDTH) + width = ALT_LCD_WIDTH; + else + width++; + + sp->line[y].width = width; + if (widthmax < width) + widthmax = width; + sp->line[y].speed = 0; /* By default lines don't scroll */ + } + + if (widthmax <= ALT_LCD_WIDTH) + sp->scrollmax = 0; + else + { + widthmax *= 2; + sp->scrollmax = widthmax; + + /* Now calculate how fast each of the other lines should go */ + for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) + if (sp->line[y].width > ALT_LCD_WIDTH) + { + /* You have three options for how to make the display scroll, chosen + * using the preprocessor directives below + */ +#if 1 + /* This option makes all the lines scroll round at different speeds + * which are chosen so that all the scrolls finish at the same time. + */ + sp->line[y].speed = 256 * sp->line[y].width / widthmax; +#elif 1 + /* This option pads the shorter lines with spaces so that they all + * scroll together. + */ + sp->line[y].width = widthmax / 2; + sp->line[y].speed = 256/2; +#else + /* This option makes the shorter lines stop after they have rotated + * and waits for the longer lines to catch up + */ + sp->line[y].speed = 256/2; +#endif + } + } + + /* Repaint once, then check whether there has been a missed repaint + * (because active was set when the timer interrupt occurred). If there + * has been a missed repaint then paint again. And again. etc. + */ + for ( ; ; ) + { + int old_scrollpos = sp->scrollpos; + + lcd_repaint_screen(sp); + + /* Let the timer routines repaint the display again */ + sp->active = 0; + + /* Have the timer routines tried to scroll while we were painting? + * If not then we can exit */ + if (sp->scrollpos == old_scrollpos) + break; + + /* We need to repaint again since the display scrolled while we were + * painting last time */ + sp->active = 1; + } + + /* Now that access to the display is complete, release the write + * semaphore so that other threads can access the buffer. + */ + + ALT_SEM_POST (sp->write_lock); + + return len; +} + +/* --------------------------------------------------------------------- */ + +/* This should be in a top level header file really */ +#define container_of(ptr, type, member) ((type *)((char *)ptr - offsetof(type, member))) + +/* + * Timeout routine is called every second + */ + +static alt_u32 alt_lcd_16207_timeout(void* context) +{ + altera_avalon_lcd_16207_state* sp = (altera_avalon_lcd_16207_state*)context; + + /* Update the scrolling position */ + if (sp->scrollpos + 1 >= sp->scrollmax) + sp->scrollpos = 0; + else + sp->scrollpos = sp->scrollpos + 1; + + /* Repaint the panel unless the foreground will do it again soon */ + if (sp->scrollmax > 0 && !sp->active) + lcd_repaint_screen(sp); + + return sp->period; +} + +/* --------------------------------------------------------------------- */ + +/* + * Called at boot time to initialise the LCD driver + */ +void altera_avalon_lcd_16207_init(altera_avalon_lcd_16207_state* sp) +{ + unsigned int base = sp->base; + + /* Mark the device as functional */ + sp->broken = 0; + + ALT_SEM_CREATE (&sp->write_lock, 1); + + /* The initialisation sequence below is copied from the datasheet for + * the 16207 LCD display. The first commands need to be timed because + * the BUSY bit in the status register doesn't work until the display + * has been reset three times. + */ + + /* Wait for 15 ms then reset */ + usleep(15000); + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); + + /* Wait for another 4.1ms and reset again */ + usleep(4100); + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); + + /* Wait a further 1 ms and reset a third time */ + usleep(1000); + IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); + + /* Setup interface parameters: 8 bit bus, 2 rows, 5x7 font */ + lcd_write_command(sp, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT | LCD_CMD_TWO_LINE); + + /* Turn display off */ + lcd_write_command(sp, LCD_CMD_ONOFF); + + /* Clear display */ + lcd_clear_screen(sp); + + /* Set mode: increment after writing, don't shift display */ + lcd_write_command(sp, LCD_CMD_MODES | LCD_CMD_MODE_INC); + + /* Turn display on */ + lcd_write_command(sp, LCD_CMD_ONOFF | LCD_CMD_ENABLE_DISP); + + sp->esccount = -1; + memset(sp->escape, 0, sizeof(sp->escape)); + + sp->scrollpos = 0; + sp->scrollmax = 0; + sp->active = 0; + + sp->period = alt_ticks_per_second() / 10; /* Call every 100ms */ + + alt_alarm_start(&sp->alarm, sp->period, &alt_lcd_16207_timeout, sp); +} diff --git a/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_lcd_16207_fd.c b/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_lcd_16207_fd.c new file mode 100644 index 0000000..08c9371 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/drivers/src/altera_avalon_lcd_16207_fd.c @@ -0,0 +1,45 @@ +/****************************************************************************** +* * +* License Agreement * +* * +* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * +* All rights reserved. * +* * +* Permission is hereby granted, free of charge, to any person obtaining a * +* copy of this software and associated documentation files (the "Software"), * +* to deal in the Software without restriction, including without limitation * +* the rights to use, copy, modify, merge, publish, distribute, sublicense, * +* and/or sell copies of the Software, and to permit persons to whom the * +* Software is furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * +* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * +* DEALINGS IN THE SOFTWARE. * +* * +* This agreement shall be governed in all respects by the laws of the State * +* of California and by the laws of the United States of America. * +* * +******************************************************************************/ + +#include "alt_types.h" +#include "sys/alt_dev.h" +#include "altera_avalon_lcd_16207.h" + +extern int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp, + const char* ptr, int count, int flags); + +int +altera_avalon_lcd_16207_write_fd(alt_fd* fd, const char* buffer, int space) +{ + altera_avalon_lcd_16207_dev* dev = (altera_avalon_lcd_16207_dev*) fd->dev; + + return altera_avalon_lcd_16207_write(&dev->state, buffer, space, + fd->fd_flags); +} diff --git a/software/DE2_115_ASM3_release_bsp/libhal_bsp.a b/software/DE2_115_ASM3_release_bsp/libhal_bsp.a new file mode 100644 index 0000000..0502508 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/libhal_bsp.a Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/linker.h b/software/DE2_115_ASM3_release_bsp/linker.h new file mode 100644 index 0000000..223f99a --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/linker.h @@ -0,0 +1,101 @@ +/* + * linker.h - Linker script mapping information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Jan 26 11:02:29 JST 2017 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __LINKER_H_ +#define __LINKER_H_ + + +/* + * BSP controls alt_load() behavior in crt0. + * + */ + +#define ALT_LOAD_EXPLICITLY_CONTROLLED + + +/* + * Base address and span (size in bytes) of each linker region + * + */ + +#define ONCHIP_MEMORY_REGION_BASE 0x20 +#define ONCHIP_MEMORY_REGION_SPAN 204768 +#define RESET_REGION_BASE 0x0 +#define RESET_REGION_SPAN 32 + + +/* + * Devices associated with code sections + * + */ + +#define ALT_EXCEPTIONS_DEVICE ONCHIP_MEMORY +#define ALT_RESET_DEVICE ONCHIP_MEMORY +#define ALT_RODATA_DEVICE ONCHIP_MEMORY +#define ALT_RWDATA_DEVICE ONCHIP_MEMORY +#define ALT_TEXT_DEVICE ONCHIP_MEMORY + + +/* + * Initialization code at the reset address is allowed (e.g. no external bootloader). + * + */ + +#define ALT_ALLOW_CODE_AT_RESET + + +/* + * The alt_load() facility is called from crt0 to copy sections into RAM. + * + */ + +#define ALT_LOAD_COPY_RWDATA + +#endif /* __LINKER_H_ */ diff --git a/software/DE2_115_ASM3_release_bsp/linker.x b/software/DE2_115_ASM3_release_bsp/linker.x new file mode 100644 index 0000000..8256f99 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/linker.x @@ -0,0 +1,385 @@ +/* + * linker.x - Linker script + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Jan 26 11:02:29 JST 2017 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +MEMORY +{ + reset : ORIGIN = 0x0, LENGTH = 32 + onchip_memory : ORIGIN = 0x20, LENGTH = 204768 +} + +/* Define symbols for each memory base-address */ +__alt_mem_onchip_memory = 0x0; + +OUTPUT_FORMAT( "elf32-littlenios2", + "elf32-littlenios2", + "elf32-littlenios2" ) +OUTPUT_ARCH( nios2 ) +ENTRY( _start ) + +/* + * The alt_load() facility is enabled. This typically happens when there isn't + * an external bootloader (e.g. flash bootloader). + * The LMA (aka physical address) of each loaded section is + * set to the .text memory device. + * The HAL alt_load() routine called from crt0 copies sections from + * the .text memory to RAM as needed. + */ + +SECTIONS +{ + + /* + * Output sections associated with reset and exceptions (they have to be first) + */ + + .entry : + { + KEEP (*(.entry)) + } > reset + + .exceptions : + { + PROVIDE (__ram_exceptions_start = ABSOLUTE(.)); + . = ALIGN(0x20); + KEEP (*(.irq)); + KEEP (*(.exceptions.entry.label)); + KEEP (*(.exceptions.entry.user)); + KEEP (*(.exceptions.entry)); + KEEP (*(.exceptions.irqtest.user)); + KEEP (*(.exceptions.irqtest)); + KEEP (*(.exceptions.irqhandler.user)); + KEEP (*(.exceptions.irqhandler)); + KEEP (*(.exceptions.irqreturn.user)); + KEEP (*(.exceptions.irqreturn)); + KEEP (*(.exceptions.notirq.label)); + KEEP (*(.exceptions.notirq.user)); + KEEP (*(.exceptions.notirq)); + KEEP (*(.exceptions.soft.user)); + KEEP (*(.exceptions.soft)); + KEEP (*(.exceptions.unknown.user)); + KEEP (*(.exceptions.unknown)); + KEEP (*(.exceptions.exit.label)); + KEEP (*(.exceptions.exit.user)); + KEEP (*(.exceptions.exit)); + KEEP (*(.exceptions)); + PROVIDE (__ram_exceptions_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_exceptions_start = LOADADDR(.exceptions)); + + .text : + { + /* + * All code sections are merged into the text output section, along with + * the read only data sections. + * + */ + + PROVIDE (stext = ABSOLUTE(.)); + + *(.interp) + *(.hash) + *(.dynsym) + *(.dynstr) + *(.gnu.version) + *(.gnu.version_d) + *(.gnu.version_r) + *(.rel.init) + *(.rela.init) + *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) + *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) + *(.rel.fini) + *(.rela.fini) + *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) + *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) + *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) + *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) + *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) + *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) + *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) + *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) + *(.rel.ctors) + *(.rela.ctors) + *(.rel.dtors) + *(.rela.dtors) + *(.rel.got) + *(.rela.got) + *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) + *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) + *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) + *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) + *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) + *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) + *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) + *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) + *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) + *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) + *(.rel.plt) + *(.rela.plt) + *(.rel.dyn) + + KEEP (*(.init)) + *(.plt) + *(.text .stub .text.* .gnu.linkonce.t.*) + + /* .gnu.warning sections are handled specially by elf32.em. */ + + *(.gnu.warning.*) + KEEP (*(.fini)) + PROVIDE (__etext = ABSOLUTE(.)); + PROVIDE (_etext = ABSOLUTE(.)); + PROVIDE (etext = ABSOLUTE(.)); + + *(.eh_frame_hdr) + /* Ensure the __preinit_array_start label is properly aligned. We + could instead move the label definition inside the section, but + the linker would then create the section even if it turns out to + be empty, which isn't pretty. */ + . = ALIGN(4); + PROVIDE (__preinit_array_start = ABSOLUTE(.)); + *(.preinit_array) + PROVIDE (__preinit_array_end = ABSOLUTE(.)); + PROVIDE (__init_array_start = ABSOLUTE(.)); + *(.init_array) + PROVIDE (__init_array_end = ABSOLUTE(.)); + PROVIDE (__fini_array_start = ABSOLUTE(.)); + *(.fini_array) + PROVIDE (__fini_array_end = ABSOLUTE(.)); + SORT(CONSTRUCTORS) + KEEP (*(.eh_frame)) + *(.gcc_except_table) + *(.dynamic) + PROVIDE (__CTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.ctors)) + KEEP (*(SORT(.ctors.*))) + PROVIDE (__CTOR_END__ = ABSOLUTE(.)); + PROVIDE (__DTOR_LIST__ = ABSOLUTE(.)); + KEEP (*(.dtors)) + KEEP (*(SORT(.dtors.*))) + PROVIDE (__DTOR_END__ = ABSOLUTE(.)); + KEEP (*(.jcr)) + . = ALIGN(4); + } > onchip_memory = 0x3a880100 /* Nios II NOP instruction */ + + .rodata : + { + PROVIDE (__ram_rodata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.rodata .rodata.* .gnu.linkonce.r.*) + *(.rodata1) + . = ALIGN(4); + PROVIDE (__ram_rodata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rodata_start = LOADADDR(.rodata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + * .rwdata region equals the .text region, and is set to be loaded into .text region. + * This requires two copies of .rwdata in the .text region. One read writable at VMA. + * and one read-only at LMA. crt0 will copy from LMA to VMA on reset + * + */ + + .rwdata LOADADDR (.rodata) + SIZEOF (.rodata) : AT ( LOADADDR (.rodata) + SIZEOF (.rodata)+ SIZEOF (.rwdata) ) + { + PROVIDE (__ram_rwdata_start = ABSOLUTE(.)); + . = ALIGN(4); + *(.got.plt) *(.got) + *(.data1) + *(.data .data.* .gnu.linkonce.d.*) + + _gp = ABSOLUTE(. + 0x8000); + PROVIDE(gp = _gp); + + *(.rwdata .rwdata.*) + *(.sdata .sdata.* .gnu.linkonce.s.*) + *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) + + . = ALIGN(4); + _edata = ABSOLUTE(.); + PROVIDE (edata = ABSOLUTE(.)); + PROVIDE (__ram_rwdata_end = ABSOLUTE(.)); + } > onchip_memory + + PROVIDE (__flash_rwdata_start = LOADADDR(.rwdata)); + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .bss LOADADDR (.rwdata) + SIZEOF (.rwdata) : AT ( LOADADDR (.rwdata) + SIZEOF (.rwdata) ) + { + __bss_start = ABSOLUTE(.); + PROVIDE (__sbss_start = ABSOLUTE(.)); + PROVIDE (___sbss_start = ABSOLUTE(.)); + + *(.dynsbss) + *(.sbss .sbss.* .gnu.linkonce.sb.*) + *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) + *(.scommon) + + PROVIDE (__sbss_end = ABSOLUTE(.)); + PROVIDE (___sbss_end = ABSOLUTE(.)); + + *(.dynbss) + *(.bss .bss.* .gnu.linkonce.b.*) + *(COMMON) + + . = ALIGN(4); + __bss_end = ABSOLUTE(.); + } > onchip_memory + + /* + * + * One output section mapped to the associated memory device for each of + * the available memory devices. These are not used by default, but can + * be used by user applications by using the .section directive. + * + * The output section used for the heap is treated in a special way, + * i.e. the symbols "end" and "_end" are added to point to the heap start. + * + * Because alt_load() is enabled, these sections have + * their LMA set to be loaded into the .text memory region. + * However, the alt_load() code will NOT automatically copy + * these sections into their mapped memory region. + * + */ + + /* + * + * This section's LMA is set to the .text region. + * crt0 will copy to this section's specified mapped region virtual memory address (VMA) + * + */ + + .onchip_memory LOADADDR (.bss) + SIZEOF (.bss) : AT ( LOADADDR (.bss) + SIZEOF (.bss) ) + { + PROVIDE (_alt_partition_onchip_memory_start = ABSOLUTE(.)); + *(.onchip_memory. onchip_memory.*) + . = ALIGN(4); + PROVIDE (_alt_partition_onchip_memory_end = ABSOLUTE(.)); + _end = ABSOLUTE(.); + end = ABSOLUTE(.); + __alt_stack_base = ABSOLUTE(.); + } > onchip_memory + + PROVIDE (_alt_partition_onchip_memory_load_addr = LOADADDR(.onchip_memory)); + + /* + * Stabs debugging sections. + * + */ + + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + Symbols in the DWARF debugging sections are relative to the beginning + of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } + + /* Altera debug extensions */ + .debug_alt_sim_info 0 : { *(.debug_alt_sim_info) } +} + +/* provide a pointer for the stack */ + +/* + * Don't override this, override the __alt_stack_* symbols instead. + */ +__alt_data_end = 0x32000; + +/* + * The next two symbols define the location of the default stack. You can + * override them to move the stack to a different memory. + */ +PROVIDE( __alt_stack_pointer = __alt_data_end ); +PROVIDE( __alt_stack_limit = __alt_stack_base ); + +/* + * This symbol controls where the start of the heap is. If the stack is + * contiguous with the heap then the stack will contract as memory is + * allocated to the heap. + * Override this symbol to put the heap in a different memory. + */ +PROVIDE( __alt_heap_start = end ); +PROVIDE( __alt_heap_limit = 0x32000 ); diff --git a/software/DE2_115_ASM3_release_bsp/mem_init.mk b/software/DE2_115_ASM3_release_bsp/mem_init.mk new file mode 100644 index 0000000..4bdd7f1 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/mem_init.mk @@ -0,0 +1,322 @@ + +######################################################################### +####### M E M I N I T M A K E F I L E C O N T E N T ###### +######################################################################### + +######################################################################### +# This file is intended to be included by public.mk +# +# +# The following variables must be defined before including this file: +# - ELF +# +# The following variables may be defined to override the default behavior: +# - HDL_SIM_DIR +# - HDL_SIM_INSTALL_DIR +# - MEM_INIT_DIR +# - MEM_INIT_INSTALL_DIR +# - QUARTUS_PROJECT_DIR +# - SOPC_NAME +# - SIM_OPTIMIZE +# - RESET_ADDRESS +# +######################################################################### + +ifeq ($(MEM_INIT_FILE),) +# MEM_INIT_FILE should be set equal to the working relative path to this +# mem_init.mk makefile fragment +MEM_INIT_FILE := $(wildcard $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) +endif + +ifeq ($(ELF2DAT),) +ELF2DAT := elf2dat +endif + +ifeq ($(ELF2HEX),) +ELF2HEX := elf2hex +endif + +ifeq ($(ELF2FLASH),) +ELF2FLASH := elf2flash +endif + +ifeq ($(FLASH2DAT),) +FLASH2DAT := flash2dat +endif + +ifeq ($(NM),) +NM := nios2-elf-nm +endif + +ifeq ($(MKDIR),) +MKDIR := mkdir -p +endif + +ifeq ($(RM),) +RM := rm -f +endif + +ifeq ($(CP),) +CP := cp +endif + +ifeq ($(ECHO),) +ECHO := echo +endif + +MEM_INIT_DIR ?= mem_init +HDL_SIM_DIR ?= $(MEM_INIT_DIR)/hdl_sim + +ifdef QUARTUS_PROJECT_DIR +MEM_INIT_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR)) +ifdef SOPC_NAME +HDL_SIM_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR))/$(SOPC_NAME)_sim +endif +endif + +MEM_INIT_DESCRIPTOR_FILE ?= $(MEM_INIT_DIR)/meminit.spd + +MEM_INIT_QIP_FILE ?= $(MEM_INIT_DIR)/meminit.qip + +#------------------------------------- +# Default Flash Boot Loaders +#------------------------------------- + +BOOT_LOADER_PATH ?= $(SOPC_KIT_NIOS2)/components/altera_nios2 +BOOT_LOADER_CFI ?= $(BOOT_LOADER_PATH)/boot_loader_cfi.srec +BOOT_LOADER_CFI_BE ?= $(BOOT_LOADER_PATH)/boot_loader_cfi_be.srec + + +#------------------------------------- +# Default Target +#------------------------------------- + +.PHONY: default_mem_init +ifeq ($(QSYS),1) +default_mem_init: mem_init_generate +else +default_mem_init: mem_init_install +endif +#------------------------------------- +# Runtime Macros +#------------------------------------- + +define post-process-info + @echo Post-processing to create $@... +endef + +target_stem = $(notdir $(basename $@)) + +mem_start_address = $($(target_stem)_START) +mem_end_address = $($(target_stem)_END) +mem_width = $($(target_stem)_WIDTH) +mem_endianness = $($(target_stem)_ENDIANNESS) +mem_create_lanes = $($(target_stem)_CREATE_LANES) + +mem_pad_flag = $($(target_stem)_PAD_FLAG) +mem_reloc_input_flag = $($(target_stem)_RELOC_INPUT_FLAG) +mem_no_zero_fill_flag = $($(target_stem)_NO_ZERO_FILL_FLAG) + +flash_mem_epcs_flag = $($(target_stem)_EPCS_FLAGS) +flash_mem_cfi_flag = $($(target_stem)_CFI_FLAGS) +flash_mem_boot_loader_flag = $($(target_stem)_BOOT_LOADER_FLAG) + +elf2dat_extra_args = $(mem_pad_flag) +elf2hex_extra_args = $(mem_no_zero_fill_flag) +elf2flash_extra_args = $(flash_mem_cfi_flag) $(flash_mem_epcs_flag) $(flash_mem_boot_loader_flag) +flash2dat_extra_args = $(mem_pad_flag) $(mem_reloc_input_flag) + +#------------------------------------------------------------------------------ +# BSP SPECIFIC CONTENT +# +# The content below is controlled by the BSP and SOPC System +#------------------------------------------------------------------------------ +#START OF BSP SPECIFIC + +#------------------------------------- +# Global Settings +#------------------------------------- + + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_MEMINIT_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Optimize for simulation +SIM_OPTIMIZE ?= 0 + +# The CPU reset address as needed by elf2flash +RESET_ADDRESS ?= 0x00000000 + +#------------------------------------- +# Pre-Initialized Memory Descriptions +#------------------------------------- + +# Memory: onchip_memory +MEM_0 := nios_system_onchip_memory +$(MEM_0)_NAME := onchip_memory +$(MEM_0)_MEM_INIT_FILE_PARAM_NAME := INIT_FILE +HEX_FILES += $(MEM_INIT_DIR)/$(MEM_0).hex +MEM_INIT_INSTALL_FILES += $(MEM_INIT_INSTALL_DIR)/$(MEM_0).hex +DAT_FILES += $(HDL_SIM_DIR)/$(MEM_0).dat +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).dat +SYM_FILES += $(HDL_SIM_DIR)/$(MEM_0).sym +HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).sym +$(MEM_0)_START := 0x00000000 +$(MEM_0)_END := 0x00031fff +$(MEM_0)_HIERARCHICAL_PATH := onchip_memory +$(MEM_0)_WIDTH := 32 +$(MEM_0)_ENDIANNESS := --little-endian-mem +$(MEM_0)_CREATE_LANES := 0 + +.PHONY: onchip_memory +onchip_memory: check_elf_exists $(MEM_INIT_DIR)/$(MEM_0).hex $(HDL_SIM_DIR)/$(MEM_0).dat $(HDL_SIM_DIR)/$(MEM_0).sym + + +#END OF BSP SPECIFIC + +#------------------------------------- +# Pre-Initialized Memory Targets +#------------------------------------- + +.PHONY: mem_init_install mem_init_generate mem_init_clean + +ifeq ($(QSYS),1) +# Target mem_init_install is deprecated for QSys based systems +# To initialize onchip memories for Quartus II Synthesis with Qsys based systems: +# 1) Use "make mem_init_genearate" +# 2) Add the generated mem_init/meminit.qip file to your Quartus II Project +# +mem_init_install: + $(error Deprecated Makefile Target: '$@'. Use target 'mem_init_generate' and then add $(MEM_INIT_QIP_FILE) to your Quartus II Project) + +else # QSYS != 1, if SopcBuilder based system + +ifneq ($(MEM_INIT_INSTALL_DIR),) +mem_init_install: $(MEM_INIT_INSTALL_FILES) +endif + +ifneq ($(HDL_SIM_INSTALL_DIR),) +mem_init_install: $(HDL_SIM_INSTALL_FILES) +endif + +mem_init_install: mem_init_generate +ifeq ($(MEM_INIT_INSTALL_DIR),) + @echo "WARNING: MEM_INIT_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR environment variable." +endif +ifeq ($(HDL_SIM_INSTALL_DIR),) + @echo "WARNING: HDL_SIM_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR and SOPC_NAME environment variable." +endif + +$(MEM_INIT_INSTALL_FILES): $(MEM_INIT_INSTALL_DIR)/%: $(MEM_INIT_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +$(HDL_SIM_INSTALL_FILES): $(HDL_SIM_INSTALL_DIR)/%: $(HDL_SIM_DIR)/% + @$(MKDIR) $(@D) + @$(CP) -v $< $@ + +endif # QSYS == 1 + + +mem_init_generate: hex dat sym flash $(MEM_INIT_DESCRIPTOR_FILE) $(MEM_INIT_QIP_FILE) + +mem_init_clean: + @$(RM) -r $(MEM_INIT_DIR) $(HDL_SIM_DIR) $(FLASH_FILES) + +.PHONY: hex dat sym flash + +hex: check_elf_exists $(HEX_FILES) + +dat: check_elf_exists $(DAT_FILES) + +sym: check_elf_exists $(SYM_FILES) + +flash: check_elf_exists $(FLASH_FILES) + +#------------------------------------- +# Pre-Initialized Memory Rules +#------------------------------------- + +.PHONY: check_elf_exists +check_elf_exists: $(ELF) +ifeq ($(ELF),) + $(error ELF var not set in mem_init.mk) +endif + +$(filter-out $(FLASH_DAT_FILES),$(DAT_FILES)): %.dat: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2DAT) --infile=$< --outfile=$@ \ + --base=$(mem_start_address) --end=$(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2dat_extra_args)' + +$(foreach i,0 1 2 3 4 5 6 7,%_lane$(i).dat): %.dat + @true + +$(HEX_FILES): %.hex: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2HEX) $< $(mem_start_address) $(mem_end_address) --width=$(mem_width) \ + $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2hex_extra_args) $@' + +$(SYM_FILES): %.sym: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + $(NM) -n $< > $@ + +$(FLASH_FILES): %.flash: $(ELF) + $(post-process-info) + @$(MKDIR) $(@D) + bash -c '$(ELF2FLASH) --input=$< --outfile=$@ --sim_optimize=$(SIM_OPTIMIZE) $(mem_endianness) \ + $(elf2flash_extra_args)' + +# +# Function generate_spd_entry +# Arg1: path to the memory initialization file +# Arg2: Type HEX or DAT +# Arg3: Output spd file to append +gen_spd_entry.BASE_FILE = $(basename $(notdir $1)) +gen_spd_entry.PARAM_NAME = $($(gen_spd_entry.BASE_FILE)_MEM_INIT_FILE_PARAM_NAME) +gen_spd_entry.MEM_PATH = $($(gen_spd_entry.BASE_FILE)_HIERARCHICAL_PATH) +gen_spd_entry.SETTINGS = $(strip \ + path=\"$1\" \ + type=\"$2\" \ + $(if $(gen_spd_entry.PARAM_NAME),initParamName=\"$(gen_spd_entry.PARAM_NAME)\") \ + $(if $(gen_spd_entry.MEM_PATH),memoryPath=\"$(gen_spd_entry.MEM_PATH)\") \ +) +define gen_spd_entry +$(ECHO) "" >> $3 +endef + +$(MEM_INIT_DESCRIPTOR_FILE).DAT_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(DAT_FILES)) +$(MEM_INIT_DESCRIPTOR_FILE).HEX_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(HEX_FILES)) + +$(MEM_INIT_DESCRIPTOR_FILE): %.spd: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "" > $@ + @$(ECHO) "" >> $@ + @$(foreach dat_file,$($@.DAT_FILESET),$(call gen_spd_entry,$(dat_file),DAT,$@) &&)true + @$(foreach hex_file,$($@.HEX_FILESET),$(call gen_spd_entry,$(hex_file),HEX,$@) &&)true + @$(ECHO) "" >> $@ + +.DELETE_ON_ERROR: $(MEM_INIT_DESCRIPTOR_FILE) + +$(MEM_INIT_QIP_FILE): %.qip: $(MEM_INIT_FILE) + $(post-process-info) + @$(MKDIR) $(@D) + @$(RM) $@ + @$(ECHO) "set_global_assignment -name SEARCH_PATH $$::quartus(qip_path)" > $@ + +.DELETE_ON_ERROR: $(MEM_INIT_QIP_FILE) diff --git a/software/DE2_115_ASM3_release_bsp/memory.gdb b/software/DE2_115_ASM3_release_bsp/memory.gdb new file mode 100644 index 0000000..7051541 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/memory.gdb @@ -0,0 +1,50 @@ +# memory.gdb - GDB memory region definitions +# +# Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' +# SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo +# +# Generated: Thu Jan 26 11:02:29 JST 2017 + +# DO NOT MODIFY THIS FILE +# +# Changing this file will have subtle consequences +# which will almost certainly lead to a nonfunctioning +# system. If you do modify this file, be aware that your +# changes will be overwritten and lost when this file +# is generated again. +# +# DO NOT MODIFY THIS FILE + +# License Agreement +# +# Copyright (c) 2008 +# Altera Corporation, San Jose, California, USA. +# All rights reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# +# This agreement shall be governed in all respects by the laws of the State +# of California and by the laws of the United States of America. + +# Define memory regions for each memory connected to the CPU. +# The cache attribute is specified which improves GDB performance +# by allowing GDB to cache memory contents on the host. + +# onchip_memory +memory 0x0 0x32000 cache diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_alarm_start.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_alarm_start.d new file mode 100644 index 0000000..a293917 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_alarm_start.d @@ -0,0 +1,22 @@ +obj/HAL/src/alt_alarm_start.o: HAL/src/alt_alarm_start.c \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h system.h linker.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +system.h: + +linker.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_alarm_start.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_alarm_start.o new file mode 100644 index 0000000..9b7d022 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_alarm_start.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_busy_sleep.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_busy_sleep.d new file mode 100644 index 0000000..0441737 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_busy_sleep.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_busy_sleep.o: HAL/src/alt_busy_sleep.c system.h linker.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_busy_sleep.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_busy_sleep.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_busy_sleep.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_busy_sleep.o new file mode 100644 index 0000000..c335537 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_busy_sleep.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_close.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_close.d new file mode 100644 index 0000000..c678dc5 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_close.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_close.o: HAL/src/alt_close.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_close.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_close.o new file mode 100644 index 0000000..590ab60 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_close.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dcache_flush.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dcache_flush.d new file mode 100644 index 0000000..cc01756 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dcache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush.o: HAL/src/alt_dcache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dcache_flush.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dcache_flush.o new file mode 100644 index 0000000..7ffb0d3 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dcache_flush.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dcache_flush_all.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dcache_flush_all.d new file mode 100644 index 0000000..9b4b55d --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dcache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_dcache_flush_all.o: HAL/src/alt_dcache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dcache_flush_all.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dcache_flush_all.o new file mode 100644 index 0000000..abbdc97 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dcache_flush_all.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d new file mode 100644 index 0000000..a1291f0 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_dcache_flush_no_writeback.o: \ + HAL/src/alt_dcache_flush_no_writeback.c HAL/inc/nios2.h system.h \ + linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h \ + HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o new file mode 100644 index 0000000..1eec9ac --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dev.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dev.d new file mode 100644 index 0000000..89b9883 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_dev.o: HAL/src/alt_dev.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dev.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dev.o new file mode 100644 index 0000000..6a1f8e6 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dev.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dev_llist_insert.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dev_llist_insert.d new file mode 100644 index 0000000..f23980f --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dev_llist_insert.d @@ -0,0 +1,13 @@ +obj/HAL/src/alt_dev_llist_insert.o: HAL/src/alt_dev_llist_insert.c \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dev_llist_insert.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dev_llist_insert.o new file mode 100644 index 0000000..d732b7c --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dev_llist_insert.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dma_rxchan_open.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dma_rxchan_open.d new file mode 100644 index 0000000..71aa62d --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dma_rxchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_rxchan_open.o: HAL/src/alt_dma_rxchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dma_rxchan_open.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dma_rxchan_open.o new file mode 100644 index 0000000..0d63bc3 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dma_rxchan_open.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dma_txchan_open.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dma_txchan_open.d new file mode 100644 index 0000000..2a33dba --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dma_txchan_open.d @@ -0,0 +1,35 @@ +obj/HAL/src/alt_dma_txchan_open.o: HAL/src/alt_dma_txchan_open.c \ + HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dma.h: + +HAL/inc/sys/alt_dma_dev.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dma_txchan_open.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dma_txchan_open.o new file mode 100644 index 0000000..f68fbeb --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_dma_txchan_open.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_do_ctors.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_do_ctors.d new file mode 100644 index 0000000..0898fbc --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_do_ctors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_ctors.o: HAL/src/alt_do_ctors.c diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_do_ctors.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_do_ctors.o new file mode 100644 index 0000000..633794f --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_do_ctors.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_do_dtors.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_do_dtors.d new file mode 100644 index 0000000..abdadfa --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_do_dtors.d @@ -0,0 +1 @@ +obj/HAL/src/alt_do_dtors.o: HAL/src/alt_do_dtors.c diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_do_dtors.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_do_dtors.o new file mode 100644 index 0000000..5833fcd --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_do_dtors.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_env_lock.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_env_lock.d new file mode 100644 index 0000000..fd8a733 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_env_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_env_lock.o: HAL/src/alt_env_lock.c diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_env_lock.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_env_lock.o new file mode 100644 index 0000000..608ea7f --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_env_lock.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_environ.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_environ.d new file mode 100644 index 0000000..b622e4b --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_environ.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_environ.o: HAL/src/alt_environ.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_environ.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_environ.o new file mode 100644 index 0000000..25d491b --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_environ.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_errno.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_errno.d new file mode 100644 index 0000000..51c7dcd --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_errno.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_errno.o: HAL/src/alt_errno.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_errno.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_errno.o new file mode 100644 index 0000000..0f90826 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_errno.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exception_entry.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exception_entry.d new file mode 100644 index 0000000..7960631 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exception_entry.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_exception_entry.o: HAL/src/alt_exception_entry.S system.h \ + linker.h + +system.h: + +linker.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exception_entry.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exception_entry.o new file mode 100644 index 0000000..8059abd --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exception_entry.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exception_muldiv.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exception_muldiv.d new file mode 100644 index 0000000..a1e5556 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exception_muldiv.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_muldiv.o: HAL/src/alt_exception_muldiv.S diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exception_muldiv.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exception_muldiv.o new file mode 100644 index 0000000..b46375e --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exception_muldiv.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exception_trap.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exception_trap.d new file mode 100644 index 0000000..ef4edc6 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exception_trap.d @@ -0,0 +1 @@ +obj/HAL/src/alt_exception_trap.o: HAL/src/alt_exception_trap.S diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exception_trap.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exception_trap.o new file mode 100644 index 0000000..4746c42 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exception_trap.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_execve.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_execve.d new file mode 100644 index 0000000..0060a9d --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_execve.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_execve.o: HAL/src/alt_execve.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_execve.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_execve.o new file mode 100644 index 0000000..9a28ffa --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_execve.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exit.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exit.d new file mode 100644 index 0000000..09ed618 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exit.d @@ -0,0 +1,26 @@ +obj/HAL/src/alt_exit.o: HAL/src/alt_exit.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_sim.h HAL/inc/os/alt_hooks.h HAL/inc/os/alt_syscall.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_sim.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exit.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exit.o new file mode 100644 index 0000000..11a92c3 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_exit.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fcntl.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fcntl.d new file mode 100644 index 0000000..b8835a6 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fcntl.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_fcntl.o: HAL/src/alt_fcntl.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fcntl.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fcntl.o new file mode 100644 index 0000000..7ee40dd --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fcntl.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fd_lock.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fd_lock.d new file mode 100644 index 0000000..f6d94e1 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fd_lock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_lock.o: HAL/src/alt_fd_lock.c HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fd_lock.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fd_lock.o new file mode 100644 index 0000000..433e6c6 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fd_lock.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fd_unlock.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fd_unlock.d new file mode 100644 index 0000000..9778463 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fd_unlock.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_fd_unlock.o: HAL/src/alt_fd_unlock.c \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fd_unlock.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fd_unlock.o new file mode 100644 index 0000000..c72245e --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fd_unlock.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_find_dev.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_find_dev.d new file mode 100644 index 0000000..7b37308 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_find_dev.d @@ -0,0 +1,31 @@ +obj/HAL/src/alt_find_dev.o: HAL/src/alt_find_dev.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_find_dev.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_find_dev.o new file mode 100644 index 0000000..fbc6172 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_find_dev.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_find_file.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_find_file.d new file mode 100644 index 0000000..4f15c6d --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_find_file.d @@ -0,0 +1,32 @@ +obj/HAL/src/alt_find_file.o: HAL/src/alt_find_file.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_find_file.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_find_file.o new file mode 100644 index 0000000..eca93fb --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_find_file.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_flash_dev.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_flash_dev.d new file mode 100644 index 0000000..e665b37 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_flash_dev.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_flash_dev.o: HAL/src/alt_flash_dev.c \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/sys/alt_flash_dev.h \ + HAL/inc/sys/alt_flash_types.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_flash_dev.h: + +HAL/inc/sys/alt_flash_types.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_flash_dev.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_flash_dev.o new file mode 100644 index 0000000..671fd82 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_flash_dev.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fork.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fork.d new file mode 100644 index 0000000..ef5b637 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fork.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_fork.o: HAL/src/alt_fork.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fork.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fork.o new file mode 100644 index 0000000..28091d1 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fork.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fs_reg.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fs_reg.d new file mode 100644 index 0000000..f56b56f --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fs_reg.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_fs_reg.o: HAL/src/alt_fs_reg.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fs_reg.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fs_reg.o new file mode 100644 index 0000000..7fca958 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fs_reg.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fstat.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fstat.d new file mode 100644 index 0000000..b1c4a1e --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fstat.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_fstat.o: HAL/src/alt_fstat.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/sys/alt_errno.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fstat.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fstat.o new file mode 100644 index 0000000..864536a --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_fstat.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_get_fd.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_get_fd.d new file mode 100644 index 0000000..5524f68 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_get_fd.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_get_fd.o: HAL/src/alt_get_fd.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ + system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_get_fd.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_get_fd.o new file mode 100644 index 0000000..768a38d --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_get_fd.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_getchar.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_getchar.d new file mode 100644 index 0000000..aa88591 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_getchar.d @@ -0,0 +1 @@ +obj/HAL/src/alt_getchar.o: HAL/src/alt_getchar.c diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_getchar.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_getchar.o new file mode 100644 index 0000000..9ebad96 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_getchar.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_getpid.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_getpid.d new file mode 100644 index 0000000..365651b --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_getpid.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_getpid.o: HAL/src/alt_getpid.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_getpid.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_getpid.o new file mode 100644 index 0000000..487f4b6 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_getpid.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_gettod.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_gettod.d new file mode 100644 index 0000000..ffd23b8 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_gettod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_gettod.o: HAL/src/alt_gettod.c HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_gettod.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_gettod.o new file mode 100644 index 0000000..6aaae0f --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_gettod.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_gmon.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_gmon.d new file mode 100644 index 0000000..6a213bf --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_gmon.d @@ -0,0 +1,24 @@ +obj/HAL/src/alt_gmon.o: HAL/src/alt_gmon.c HAL/inc/priv/nios2_gmon_data.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h + +HAL/inc/priv/nios2_gmon_data.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_gmon.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_gmon.o new file mode 100644 index 0000000..9503333 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_gmon.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_icache_flush.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_icache_flush.d new file mode 100644 index 0000000..a6048d7 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_icache_flush.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush.o: HAL/src/alt_icache_flush.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_icache_flush.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_icache_flush.o new file mode 100644 index 0000000..1821e6b --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_icache_flush.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_icache_flush_all.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_icache_flush_all.d new file mode 100644 index 0000000..19ee42e --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_icache_flush_all.d @@ -0,0 +1,15 @@ +obj/HAL/src/alt_icache_flush_all.o: HAL/src/alt_icache_flush_all.c \ + HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h + +HAL/inc/nios2.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_icache_flush_all.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_icache_flush_all.o new file mode 100644 index 0000000..112b3cc --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_icache_flush_all.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_iic.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_iic.d new file mode 100644 index 0000000..444ca68 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_iic.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_iic.o: HAL/src/alt_iic.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/priv/alt_legacy_irq.h system.h \ + HAL/inc/nios2.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_iic.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_iic.o new file mode 100644 index 0000000..7470a34 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_iic.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_iic_isr_register.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_iic_isr_register.d new file mode 100644 index 0000000..93b9138 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_iic_isr_register.d @@ -0,0 +1,30 @@ +obj/HAL/src/alt_iic_isr_register.o: HAL/src/alt_iic_isr_register.c \ + system.h linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_irq.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_iic_isr_register.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_iic_isr_register.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_iic_isr_register.o new file mode 100644 index 0000000..c804d22 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_iic_isr_register.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_instruction_exception_entry.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_instruction_exception_entry.d new file mode 100644 index 0000000..f91b75a --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_instruction_exception_entry.d @@ -0,0 +1,18 @@ +obj/HAL/src/alt_instruction_exception_entry.o: \ + HAL/src/alt_instruction_exception_entry.c HAL/inc/sys/alt_exceptions.h \ + HAL/inc/alt_types.h system.h linker.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_instruction_exception_entry.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_instruction_exception_entry.o new file mode 100644 index 0000000..b778715 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_instruction_exception_entry.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_instruction_exception_register.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_instruction_exception_register.d new file mode 100644 index 0000000..24c4435 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_instruction_exception_register.d @@ -0,0 +1,16 @@ +obj/HAL/src/alt_instruction_exception_register.o: \ + HAL/src/alt_instruction_exception_register.c \ + HAL/inc/sys/alt_exceptions.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/alt_types.h system.h + +HAL/inc/sys/alt_exceptions.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/alt_types.h: + +system.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_instruction_exception_register.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_instruction_exception_register.o new file mode 100644 index 0000000..312993d --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_instruction_exception_register.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_io_redirect.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_io_redirect.d new file mode 100644 index 0000000..d84ac28 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_io_redirect.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_io_redirect.o: HAL/src/alt_io_redirect.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_io_redirect.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_io_redirect.o new file mode 100644 index 0000000..6dda3a8 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_io_redirect.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_ioctl.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_ioctl.d new file mode 100644 index 0000000..0b46e82 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_ioctl.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_ioctl.o: HAL/src/alt_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_ioctl.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_ioctl.o new file mode 100644 index 0000000..b24a3e6 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_ioctl.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_entry.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_entry.d new file mode 100644 index 0000000..c2477c1 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_entry.d @@ -0,0 +1,5 @@ +obj/HAL/src/alt_irq_entry.o: HAL/src/alt_irq_entry.S system.h linker.h + +system.h: + +linker.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_entry.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_entry.o new file mode 100644 index 0000000..d02df70 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_entry.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_handler.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_handler.d new file mode 100644 index 0000000..c6ee821 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_handler.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_irq_handler.o: HAL/src/alt_irq_handler.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/os/alt_hooks.h HAL/inc/alt_types.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_handler.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_handler.o new file mode 100644 index 0000000..1a98d07 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_handler.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_register.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_register.d new file mode 100644 index 0000000..ad1830e --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_register.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_irq_register.o: HAL/src/alt_irq_register.c system.h \ + linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ + system.h HAL/inc/priv/alt_legacy_irq.h system.h HAL/inc/nios2.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_irq_entry.h \ + HAL/inc/priv/alt_irq_table.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/priv/alt_legacy_irq.h: + +system.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_irq_entry.h: + +HAL/inc/priv/alt_irq_table.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_register.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_register.o new file mode 100644 index 0000000..c760c75 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_register.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_vars.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_vars.d new file mode 100644 index 0000000..c339fc6 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_vars.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_irq_vars.o: HAL/src/alt_irq_vars.c HAL/inc/alt_types.h \ + system.h linker.h + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_vars.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_vars.o new file mode 100644 index 0000000..213e8aa --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_irq_vars.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_isatty.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_isatty.d new file mode 100644 index 0000000..1b9868b --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_isatty.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_isatty.o: HAL/src/alt_isatty.c HAL/inc/sys/alt_dev.h \ + system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h HAL/inc/sys/alt_warning.h \ + HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_isatty.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_isatty.o new file mode 100644 index 0000000..9537068 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_isatty.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_kill.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_kill.d new file mode 100644 index 0000000..7ced1b6 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_kill.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_kill.o: HAL/src/alt_kill.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_kill.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_kill.o new file mode 100644 index 0000000..781c4d1 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_kill.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_link.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_link.d new file mode 100644 index 0000000..2156c3d --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_link.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_link.o: HAL/src/alt_link.c HAL/inc/sys/alt_warning.h \ + HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_warning.h: + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_link.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_link.o new file mode 100644 index 0000000..d9bffa3 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_link.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_load.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_load.d new file mode 100644 index 0000000..ff64508 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_load.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_load.o: HAL/src/alt_load.c HAL/inc/sys/alt_load.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h + +HAL/inc/sys/alt_load.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_cache.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_load.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_load.o new file mode 100644 index 0000000..c094957 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_load.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_log_macro.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_log_macro.d new file mode 100644 index 0000000..b6c30c4 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_log_macro.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_macro.o: HAL/src/alt_log_macro.S diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_log_macro.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_log_macro.o new file mode 100644 index 0000000..489e2cc --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_log_macro.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_log_printf.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_log_printf.d new file mode 100644 index 0000000..ddd7cdb --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_log_printf.d @@ -0,0 +1 @@ +obj/HAL/src/alt_log_printf.o: HAL/src/alt_log_printf.c diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_log_printf.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_log_printf.o new file mode 100644 index 0000000..a03c33d --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_log_printf.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_lseek.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_lseek.d new file mode 100644 index 0000000..a103673 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_lseek.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_lseek.o: HAL/src/alt_lseek.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_lseek.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_lseek.o new file mode 100644 index 0000000..f6bd20c --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_lseek.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_main.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_main.d new file mode 100644 index 0000000..67b6a7b --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_main.d @@ -0,0 +1,47 @@ +obj/HAL/src/alt_main.o: HAL/src/alt_main.c HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_sys_init.h HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/os/alt_hooks.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h system.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_main.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_main.o new file mode 100644 index 0000000..2138029 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_main.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_malloc_lock.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_malloc_lock.d new file mode 100644 index 0000000..981b056 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_malloc_lock.d @@ -0,0 +1 @@ +obj/HAL/src/alt_malloc_lock.o: HAL/src/alt_malloc_lock.c diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_malloc_lock.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_malloc_lock.o new file mode 100644 index 0000000..9817fed --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_malloc_lock.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_mcount.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_mcount.d new file mode 100644 index 0000000..4fa3643 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_mcount.d @@ -0,0 +1 @@ +obj/HAL/src/alt_mcount.o: HAL/src/alt_mcount.S diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_mcount.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_mcount.o new file mode 100644 index 0000000..68bebd5 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_mcount.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_open.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_open.d new file mode 100644 index 0000000..a5c2358 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_open.d @@ -0,0 +1,36 @@ +obj/HAL/src/alt_open.o: HAL/src/alt_open.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_open.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_open.o new file mode 100644 index 0000000..0ef5a38 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_open.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_printf.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_printf.d new file mode 100644 index 0000000..0fe3550 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_printf.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_printf.o: HAL/src/alt_printf.c HAL/inc/sys/alt_stdio.h + +HAL/inc/sys/alt_stdio.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_printf.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_printf.o new file mode 100644 index 0000000..e05b2ae --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_printf.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_putchar.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_putchar.d new file mode 100644 index 0000000..fa6d19f --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_putchar.d @@ -0,0 +1 @@ +obj/HAL/src/alt_putchar.o: HAL/src/alt_putchar.c diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_putchar.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_putchar.o new file mode 100644 index 0000000..545dd19 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_putchar.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_putstr.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_putstr.d new file mode 100644 index 0000000..a28ce55 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_putstr.d @@ -0,0 +1 @@ +obj/HAL/src/alt_putstr.o: HAL/src/alt_putstr.c diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_putstr.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_putstr.o new file mode 100644 index 0000000..98a2df8 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_putstr.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_read.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_read.d new file mode 100644 index 0000000..f5d459d --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_read.d @@ -0,0 +1,34 @@ +obj/HAL/src/alt_read.o: HAL/src/alt_read.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_read.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_read.o new file mode 100644 index 0000000..1400e0c --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_read.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_release_fd.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_release_fd.d new file mode 100644 index 0000000..137f496 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_release_fd.d @@ -0,0 +1,29 @@ +obj/HAL/src/alt_release_fd.o: HAL/src/alt_release_fd.c \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_release_fd.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_release_fd.o new file mode 100644 index 0000000..2092c7d --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_release_fd.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_remap_cached.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_remap_cached.d new file mode 100644 index 0000000..abacaa4 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_remap_cached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_cached.o: HAL/src/alt_remap_cached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_remap_cached.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_remap_cached.o new file mode 100644 index 0000000..365b651 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_remap_cached.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_remap_uncached.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_remap_uncached.d new file mode 100644 index 0000000..19b8e4c --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_remap_uncached.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_remap_uncached.o: HAL/src/alt_remap_uncached.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_remap_uncached.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_remap_uncached.o new file mode 100644 index 0000000..de96c96 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_remap_uncached.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_rename.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_rename.d new file mode 100644 index 0000000..f16ad38 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_rename.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_rename.o: HAL/src/alt_rename.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_rename.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_rename.o new file mode 100644 index 0000000..65f2aaf --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_rename.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_sbrk.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_sbrk.d new file mode 100644 index 0000000..cc6de28 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_sbrk.d @@ -0,0 +1,19 @@ +obj/HAL/src/alt_sbrk.o: HAL/src/alt_sbrk.c HAL/inc/os/alt_syscall.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/sys/alt_stack.h system.h + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_stack.h: + +system.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_sbrk.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_sbrk.o new file mode 100644 index 0000000..68e74fd --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_sbrk.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_settod.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_settod.d new file mode 100644 index 0000000..f8e7109 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_settod.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_settod.o: HAL/src/alt_settod.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_settod.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_settod.o new file mode 100644 index 0000000..cefb980 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_settod.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_software_exception.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_software_exception.d new file mode 100644 index 0000000..d17d10b --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_software_exception.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_software_exception.o: HAL/src/alt_software_exception.S \ + system.h linker.h + +system.h: + +linker.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_software_exception.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_software_exception.o new file mode 100644 index 0000000..f9e01c2 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_software_exception.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_stat.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_stat.d new file mode 100644 index 0000000..b66e05e --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_stat.d @@ -0,0 +1,3 @@ +obj/HAL/src/alt_stat.o: HAL/src/alt_stat.c HAL/inc/os/alt_syscall.h + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_stat.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_stat.o new file mode 100644 index 0000000..6c250d7 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_stat.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_tick.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_tick.d new file mode 100644 index 0000000..88d8e2a --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_tick.d @@ -0,0 +1,27 @@ +obj/HAL/src/alt_tick.o: HAL/src/alt_tick.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_hooks.h \ + HAL/inc/alt_types.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_hooks.h: + +HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_tick.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_tick.o new file mode 100644 index 0000000..1c68bd6 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_tick.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_times.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_times.d new file mode 100644 index 0000000..e0ded1e --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_times.d @@ -0,0 +1,17 @@ +obj/HAL/src/alt_times.o: HAL/src/alt_times.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_times.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_times.o new file mode 100644 index 0000000..c37555e --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_times.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_uncached_free.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_uncached_free.d new file mode 100644 index 0000000..7d5ae2b --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_uncached_free.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_free.o: HAL/src/alt_uncached_free.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_uncached_free.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_uncached_free.o new file mode 100644 index 0000000..1d9d0e0 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_uncached_free.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_uncached_malloc.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_uncached_malloc.d new file mode 100644 index 0000000..05d57d8 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_uncached_malloc.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_uncached_malloc.o: HAL/src/alt_uncached_malloc.c \ + HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h + +HAL/inc/sys/alt_cache.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_uncached_malloc.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_uncached_malloc.o new file mode 100644 index 0000000..1cdb55c --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_uncached_malloc.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_unlink.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_unlink.d new file mode 100644 index 0000000..04b6dcd --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_unlink.d @@ -0,0 +1,10 @@ +obj/HAL/src/alt_unlink.o: HAL/src/alt_unlink.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_unlink.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_unlink.o new file mode 100644 index 0000000..17b5ae9 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_unlink.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_usleep.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_usleep.d new file mode 100644 index 0000000..c3ccee2 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_usleep.d @@ -0,0 +1,6 @@ +obj/HAL/src/alt_usleep.o: HAL/src/alt_usleep.c \ + HAL/inc/priv/alt_busy_sleep.h HAL/inc/os/alt_syscall.h + +HAL/inc/priv/alt_busy_sleep.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_usleep.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_usleep.o new file mode 100644 index 0000000..1b46b35 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_usleep.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_wait.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_wait.d new file mode 100644 index 0000000..98bf5df --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_wait.d @@ -0,0 +1,8 @@ +obj/HAL/src/alt_wait.o: HAL/src/alt_wait.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_wait.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_wait.o new file mode 100644 index 0000000..eb3a3da --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_wait.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_write.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_write.d new file mode 100644 index 0000000..722e8bc --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_write.d @@ -0,0 +1,38 @@ +obj/HAL/src/alt_write.o: HAL/src/alt_write.c HAL/inc/sys/alt_errno.h \ + HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ + HAL/inc/os/alt_syscall.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_errno.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/priv/alt_file.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_syscall.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_write.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_write.o new file mode 100644 index 0000000..d3aaded --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/alt_write.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/altera_nios2_qsys_irq.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/altera_nios2_qsys_irq.d new file mode 100644 index 0000000..45223c8 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/altera_nios2_qsys_irq.d @@ -0,0 +1,15 @@ +obj/HAL/src/altera_nios2_qsys_irq.o: HAL/src/altera_nios2_qsys_irq.c \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + linker.h HAL/inc/altera_nios2_qsys_irq.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/altera_nios2_qsys_irq.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/altera_nios2_qsys_irq.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/altera_nios2_qsys_irq.o new file mode 100644 index 0000000..41f3ff2 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/altera_nios2_qsys_irq.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/crt0.d b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/crt0.d new file mode 100644 index 0000000..c1049a0 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/crt0.d @@ -0,0 +1,12 @@ +obj/HAL/src/crt0.o: HAL/src/crt0.S system.h linker.h HAL/inc/nios2.h \ + HAL/inc/sys/alt_log_printf.h system.h + +system.h: + +linker.h: + +HAL/inc/nios2.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/HAL/src/crt0.o b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/crt0.o new file mode 100644 index 0000000..631ef04 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/HAL/src/crt0.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/alt_sys_init.d b/software/DE2_115_ASM3_release_bsp/obj/alt_sys_init.d new file mode 100644 index 0000000..df7e15a --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/alt_sys_init.d @@ -0,0 +1,59 @@ +obj/alt_sys_init.o: alt_sys_init.c system.h linker.h \ + HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ + HAL/inc/sys/alt_sys_init.h HAL/inc/altera_nios2_qsys_irq.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h drivers/inc/altera_avalon_lcd_16207.h \ + drivers/inc/altera_avalon_lcd_16207_fd.h + +system.h: + +linker.h: + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +HAL/inc/sys/alt_sys_init.h: + +HAL/inc/altera_nios2_qsys_irq.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +drivers/inc/altera_avalon_lcd_16207.h: + +drivers/inc/altera_avalon_lcd_16207_fd.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/alt_sys_init.o b/software/DE2_115_ASM3_release_bsp/obj/alt_sys_init.o new file mode 100644 index 0000000..834c72f --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/alt_sys_init.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d new file mode 100644 index 0000000..5fd0251 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d @@ -0,0 +1,48 @@ +obj/drivers/src/altera_avalon_jtag_uart_fd.o: \ + drivers/src/altera_avalon_jtag_uart_fd.c HAL/inc/alt_types.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o new file mode 100644 index 0000000..8fed9bc --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d new file mode 100644 index 0000000..39101c1 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_init.o: \ + drivers/src/altera_avalon_jtag_uart_init.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o new file mode 100644 index 0000000..f1e7a26 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d new file mode 100644 index 0000000..39508a1 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d @@ -0,0 +1,58 @@ +obj/drivers/src/altera_avalon_jtag_uart_ioctl.o: \ + drivers/src/altera_avalon_jtag_uart_ioctl.c HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ + HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h system.h \ + linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o new file mode 100644 index 0000000..48d20e1 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d new file mode 100644 index 0000000..915c27a --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_read.o: \ + drivers/src/altera_avalon_jtag_uart_read.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o new file mode 100644 index 0000000..4a804ed --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d new file mode 100644 index 0000000..4e67aaa --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d @@ -0,0 +1,66 @@ +obj/drivers/src/altera_avalon_jtag_uart_write.o: \ + drivers/src/altera_avalon_jtag_uart_write.c HAL/inc/sys/alt_irq.h \ + HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ + drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h + +HAL/inc/sys/alt_irq.h: + +HAL/inc/nios2.h: + +HAL/inc/alt_types.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +HAL/inc/sys/ioctl.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_jtag_uart.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_warning.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +HAL/inc/os/alt_flag.h: + +drivers/inc/altera_avalon_jtag_uart_fd.h: + +HAL/inc/sys/alt_dev.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/sys/alt_log_printf.h: + +system.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o new file mode 100644 index 0000000..611a09c --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_lcd_16207.d b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_lcd_16207.d new file mode 100644 index 0000000..238baea --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_lcd_16207.d @@ -0,0 +1,47 @@ +obj/drivers/src/altera_avalon_lcd_16207.o: \ + drivers/src/altera_avalon_lcd_16207.c HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_alarm.h \ + HAL/inc/alt_types.h drivers/inc/altera_avalon_lcd_16207_regs.h \ + HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_lcd_16207.h \ + HAL/inc/sys/alt_alarm.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h drivers/inc/altera_avalon_lcd_16207_fd.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_lcd_16207_regs.h: + +HAL/inc/io.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_lcd_16207.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +drivers/inc/altera_avalon_lcd_16207_fd.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_lcd_16207.o b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_lcd_16207.o new file mode 100644 index 0000000..40ba7da --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_lcd_16207.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.d b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.d new file mode 100644 index 0000000..d45be02 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.d @@ -0,0 +1,43 @@ +obj/drivers/src/altera_avalon_lcd_16207_fd.o: \ + drivers/src/altera_avalon_lcd_16207_fd.c HAL/inc/alt_types.h \ + HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ + HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ + HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ + drivers/inc/altera_avalon_lcd_16207.h HAL/inc/sys/alt_alarm.h \ + HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h HAL/inc/os/alt_sem.h \ + HAL/inc/priv/alt_no_error.h drivers/inc/altera_avalon_lcd_16207_fd.h \ + HAL/inc/sys/alt_dev.h + +HAL/inc/alt_types.h: + +HAL/inc/sys/alt_dev.h: + +system.h: + +linker.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +HAL/inc/priv/alt_dev_llist.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/alt_types.h: + +drivers/inc/altera_avalon_lcd_16207.h: + +HAL/inc/sys/alt_alarm.h: + +HAL/inc/sys/alt_llist.h: + +HAL/inc/priv/alt_alarm.h: + +HAL/inc/os/alt_sem.h: + +HAL/inc/priv/alt_no_error.h: + +drivers/inc/altera_avalon_lcd_16207_fd.h: + +HAL/inc/sys/alt_dev.h: diff --git a/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.o b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.o new file mode 100644 index 0000000..9052822 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.o Binary files differ diff --git a/software/DE2_115_ASM3_release_bsp/public.mk b/software/DE2_115_ASM3_release_bsp/public.mk new file mode 100644 index 0000000..a8f9076 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/public.mk @@ -0,0 +1,377 @@ +#------------------------------------------------------------------------------ +# BSP "PUBLIC" MAKEFILE CONTENT +# +# This file is intended to be included in an application or library +# Makefile that is using this BSP. You can create such a Makefile with +# the nios2-app-generate-makefile or nios2-lib-generate-makefile +# commands. +# +# The following variables must be defined before including this file: +# +# ALT_LIBRARY_ROOT_DIR +# Contains the path to the BSP top-level (aka root) directory +#------------------------------------------------------------------------------ + +#------------------------------------------------------------------------------ +# PATHS +#------------------------------------------------------------------------------ + + + +# Path to the provided linker script. +BSP_LINKER_SCRIPT := $(ALT_LIBRARY_ROOT_DIR)/linker.x + +# Include paths: +# The path to root of all header files that a library wishes to make +# available for an application's use is specified here. Note that this +# may not be *all* folders within a hierarchy. For example, if it is +# desired that the application developer type: +# #include +# #include +# With files laid out like this: +# /inc/sockets.h +# /inc/ip/tcpip.h +# +# Then, only /inc need be added to the list of include +# directories. Alternatively, if you wish to be able to directly include +# all files in a hierarchy, separate paths to each folder in that +# hierarchy must be defined. + +# The following are the "base" set of include paths for a BSP. +# These paths are appended to the list that individual software +# components, drivers, etc., add in the generated portion of this +# file (below). +ALT_INCLUDE_DIRS_TO_APPEND += \ + $(ALT_LIBRARY_ROOT_DIR) \ + $(ALT_LIBRARY_ROOT_DIR)/drivers/inc + +# Additions to linker library search-path: +# Here we provide a path to "our self" for the application to construct a +# "-L " out of. This should contain a list of directories, +# relative to the library root, of all directories with .a files to link +# against. +ALT_LIBRARY_DIRS += $(ALT_LIBRARY_ROOT_DIR) + + +#------------------------------------------------------------------------------ +# COMPILATION FLAGS +#------------------------------------------------------------------------------ +# Default C pre-processor flags for a BSP: +ALT_CPPFLAGS += -DSYSTEM_BUS_WIDTH=32 \ + -pipe + + +#------------------------------------------------------------------------------ +# MANAGED CONTENT +# +# All content between the lines "START MANAGED" and "END MANAGED" below is +# generated based on variables in the BSP settings file when the +# nios2-bsp-generate-files command is invoked. If you wish to persist any +# information pertaining to the build process, it is recomended that you +# utilize the BSP settings mechanism to do so. +#------------------------------------------------------------------------------ +#START MANAGED + +# The following TYPE comment allows tools to identify the 'type' of target this +# makefile is associated with. +# TYPE: BSP_PUBLIC_MAKEFILE + +# This following VERSION comment indicates the version of the tool used to +# generate this makefile. A makefile variable is provided for VERSION as well. +# ACDS_VERSION: 13.0sp1 +ACDS_VERSION := 13.0sp1 + +# This following BUILD_NUMBER comment indicates the build number of the tool +# used to generate this makefile. +# BUILD_NUMBER: 232 + +# Qsys--generated SOPCINFO file. Required for resolving node instance ID's with +# design component names. +SOPCINFO_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + +# Big-Endian operation. +# setting BIG_ENDIAN is false +ALT_CFLAGS += -EL + +# Path to the provided C language runtime initialization code. +BSP_CRT0 := $(ALT_LIBRARY_ROOT_DIR)/obj/HAL/src/crt0.o + +# Name of BSP library as provided to linker using the "-msys-lib" flag or +# linker script GROUP command. +# setting BSP_SYS_LIB is hal_bsp +BSP_SYS_LIB := hal_bsp +ELF_PATCH_FLAG += --thread_model hal + +# Type identifier of the BSP library +# setting BSP_TYPE is hal +ALT_CPPFLAGS += -D__hal__ +BSP_TYPE := hal + +# CPU Name +# setting CPU_NAME is nios2_processor +CPU_NAME = nios2_processor +ELF_PATCH_FLAG += --cpu_name $(CPU_NAME) + +# Hardware Divider present. +# setting HARDWARE_DIVIDE is false +ALT_CFLAGS += -mno-hw-div + +# Hardware Multiplier present. +# setting HARDWARE_MULTIPLY is false +ALT_CFLAGS += -mno-hw-mul + +# Hardware Mulx present. +# setting HARDWARE_MULX is false +ALT_CFLAGS += -mno-hw-mulx + +# Debug Core present. +# setting HAS_DEBUG_CORE is true +CPU_HAS_DEBUG_CORE = 1 + +# Qsys generated design +# setting QSYS is 1 +QSYS := 1 +ELF_PATCH_FLAG += --qsys true + +# Design Name +# setting SOPC_NAME is nios_system +SOPC_NAME := nios_system + +# SopcBuilder Simulation Enabled +# setting SOPC_SIMULATION_ENABLED is false +ELF_PATCH_FLAG += --simulation_enabled false + +# Enable JTAG UART driver to recover when host is inactive causing buffer to +# full without returning error. Printf will not fail with this recovery. none +# setting altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error is false + +# Small-footprint (polled mode) driver none +# setting altera_avalon_jtag_uart_driver.enable_small_driver is false + +# Build a custom version of newlib with the specified space-separated compiler +# flags. The custom newlib build will be placed in the <bsp root>/newlib +# directory, and will be used only for applications that utilize this BSP. +# setting hal.custom_newlib_flags is none + +# Enable support for a subset of the C++ language. This option increases code +# footprint by adding support for C++ constructors. Certain features, such as +# multiple inheritance and exceptions are not supported. If false, adds +# -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code +# footprint. none +# setting hal.enable_c_plus_plus is true + +# When your application exits, close file descriptors, call C++ destructors, +# etc. Code footprint can be reduced by disabling clean exit. If disabled, adds +# -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to +# ALT_LDFLAGS in public.mk. none +# setting hal.enable_clean_exit is true + +# Add exit() support. This option increases code footprint if your "main()" +# routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to +# ALT_CPPFLAGS in public.mk, and reduces footprint none +# setting hal.enable_exit is true + +# Causes code to be compiled with gprof profiling enabled and the application +# ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to +# ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. none +# setting hal.enable_gprof is false + +# Enables lightweight device driver API. This reduces code and data footprint +# by removing the HAL layer that maps device names (e.g. /dev/uart0) to file +# descriptors. Instead, driver routines are called directly. The open(), +# close(), and lseek() routines will always fail if called. The read(), +# write(), fstat(), ioctl(), and isatty() routines only work for the stdio +# devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. +# The Altera Host and read-only ZIP file systems can't be used if +# hal.enable_lightweight_device_driver_api is true. +# setting hal.enable_lightweight_device_driver_api is false + +# Adds code to emulate multiply and divide instructions in case they are +# executed but aren't present in the CPU. Normally this isn't required because +# the compiler won't use multiply and divide instructions that aren't present +# in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_mul_div_emulation is false +ALT_CPPFLAGS += -DALT_NO_INSTRUCTION_EMULATION + +# Certain drivers are compiled with reduced functionality to reduce code +# footprint. Not all drivers observe this setting. The altera_avalon_uart and +# altera_avalon_jtag_uart drivers switch from interrupt-driven to polled +# operation. CAUTION: Several device drivers are disabled entirely. These +# include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and +# altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash +# access routines) to fail. You can define a symbol provided by each driver to +# prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to +# ALT_CPPFLAGS in public.mk. none +# setting hal.enable_reduced_device_drivers is false + +# Turns on HAL runtime stack checking feature. Enabling this setting causes +# additional code to be placed into each subroutine call to generate an +# exception if a stack collision occurs with the heap or statically allocated +# data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in +# public.mk. none +# setting hal.enable_runtime_stack_checking is false + +# The BSP is compiled with optimizations to speedup HDL simulation such as +# initializing the cache, clearing the .bss section, and skipping long delay +# loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. When +# this setting is true, the BSP shouldn't be used to build applications that +# are expected to run real hardware. +# setting hal.enable_sim_optimize is false + +# Causes the small newlib (C library) to be used. This reduces code and data +# footprint at the expense of reduced functionality. Several newlib features +# are removed such as floating-point support in printf(), stdin input routines, +# and buffered I/O. The small C library is not compatible with Micrium +# MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. none +# setting hal.enable_small_c_library is false + +# Enable SOPC Builder System ID. If a System ID SOPC Builder component is +# connected to the CPU associated with this BSP, it will be enabled in the +# creation of command-line arguments to download an ELF to the target. +# Otherwise, system ID and timestamp values are left out of public.mk for +# application Makefile "download-elf" target definition. With the system ID +# check disabled, the Nios II EDS tools will not automatically ensure that the +# application .elf file (and BSP it is linked against) corresponds to the +# hardware design on the target. If false, adds --accept-bad-sysid to +# SOPC_SYSID_FLAG in public.mk. none +# setting hal.enable_sopc_sysid_check is true + +# Enable BSP generation to query if SOPC system is big endian. If true ignores +# export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true +# ignores export of 'ALT_CFLAGS += -EL' if little endian system. none +# setting hal.make.ignore_system_derived.big_endian is false + +# Enable BSP generation to query if SOPC system has a debug core present. If +# true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core +# is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if +# no debug core is found in the system. none +# setting hal.make.ignore_system_derived.debug_core_present is false + +# Enable BSP generation to query if SOPC system has FPU present. If true +# ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found +# in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU +# is not found in the system. none +# setting hal.make.ignore_system_derived.fpu_present is false + +# Enable BSP generation to query if SOPC system has hardware divide present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no +# division is found in system. If true ignores export of 'ALT_CFLAGS += +# -mhw-div' if division is found in the system. none +# setting hal.make.ignore_system_derived.hardware_divide_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction with a divider is present. If true ignores export of 'ALT_CFLAGS +# += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to +# public.mk if the custom instruction is found in the system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present is false + +# Enable BSP generation to query if SOPC system floating point custom +# instruction without a divider is present. If true ignores export of +# 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += +# -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the +# system. none +# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present is false + +# Enable BSP generation to query if SOPC system has multiplier present. If true +# ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if +# multiplier is found in the system. none +# setting hal.make.ignore_system_derived.hardware_multiplier_present is false + +# Enable BSP generation to query if SOPC system has hardware mulx present. If +# true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx +# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' +# if mulx is found in the system. none +# setting hal.make.ignore_system_derived.hardware_mulx_present is false + +# Enable BSP generation to query if SOPC system has simulation enabled. If true +# ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_simulation_enabled is false + +# Enable BSP generation to query SOPC system for system ID base address. If +# true ignores export of 'SOPC_SYSID_FLAG += --sidp=
' and +# 'ELF_PATCH_FLAG += --sidp=
' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_base_address is false + +# Enable BSP generation to query SOPC system for system ID. If true ignores +# export of 'SOPC_SYSID_FLAG += --id=' and 'ELF_PATCH_FLAG += +# --id=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_id is false + +# Enable BSP generation to query SOPC system for system timestamp. If true +# ignores export of 'SOPC_SYSID_FLAG += --timestamp=' and +# 'ELF_PATCH_FLAG += --timestamp=' to public.mk. none +# setting hal.make.ignore_system_derived.sopc_system_timestamp is false + +# Slave descriptor of STDERR character-mode device. This setting is used by the +# ALT_STDERR family of defines in system.h. none +# setting hal.stderr is jtag_uart +ELF_PATCH_FLAG += --stderr_dev jtag_uart + +# Slave descriptor of STDIN character-mode device. This setting is used by the +# ALT_STDIN family of defines in system.h. none +# setting hal.stdin is jtag_uart +ELF_PATCH_FLAG += --stdin_dev jtag_uart + +# Slave descriptor of STDOUT character-mode device. This setting is used by the +# ALT_STDOUT family of defines in system.h. none +# setting hal.stdout is jtag_uart +ELF_PATCH_FLAG += --stdout_dev jtag_uart + + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER INCLUDE PATHS +#------------------------------------------------------------------------------ + +ALT_INCLUDE_DIRS += $(ALT_LIBRARY_ROOT_DIR)/HAL/inc + +#------------------------------------------------------------------------------ +# SOFTWARE COMPONENT & DRIVER PRODUCED ALT_CPPFLAGS ADDITIONS +#------------------------------------------------------------------------------ + +ALT_CPPFLAGS += -DALT_SINGLE_THREADED + +#END MANAGED + + +#------------------------------------------------------------------------------ +# LIBRARY INFORMATION +#------------------------------------------------------------------------------ +# Assemble the name of the BSP *.a file using the BSP library name +# (BSP_SYS_LIB) in generated content above. +BSP_LIB := lib$(BSP_SYS_LIB).a + +# Additional libraries to link against: +# An application including this file will prefix each library with "-l". +# For example, to include the Newlib math library "m" is included, which +# becomes "-lm" when linking the application. +ALT_LIBRARY_NAMES += m + +# Additions to linker dependencies: +# An application Makefile will typically add these directly to the list +# of dependencies required to build the executable target(s). The BSP +# library (*.a) file is specified here. +ALT_LDDEPS += $(ALT_LIBRARY_ROOT_DIR)/$(BSP_LIB) + +# Is this library "Makeable"? +# Add to list of root library directories that support running 'make' +# to build them. Because libraries may or may not have a Makefile in their +# root, appending to this variable tells an application to run 'make' in +# the library root to build/update this library. +MAKEABLE_LIBRARY_ROOT_DIRS += $(ALT_LIBRARY_ROOT_DIR) + +# Additional Assembler Flags +# -gdwarf2 flag is required for stepping through assembly code +ALT_ASFLAGS += -gdwarf2 + +#------------------------------------------------------------------------------ +# FINAL INCLUDE PATH LIST +#------------------------------------------------------------------------------ +# Append static include paths to paths specified by OS/driver/sw package +# additions to the BSP thus giving them precedence in case a BSP addition +# is attempting to override BSP sources. +ALT_INCLUDE_DIRS += $(ALT_INCLUDE_DIRS_TO_APPEND) + + + diff --git a/software/DE2_115_ASM3_release_bsp/settings.bsp b/software/DE2_115_ASM3_release_bsp/settings.bsp new file mode 100644 index 0000000..404c1b7 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/settings.bsp @@ -0,0 +1,991 @@ + + + hal + default + 2017/01/26 11:02:28 + 1485396148639 + C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\DE2_115_ASM3_release_bsp + .\settings.bsp + C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo + default + nios2_processor + 1.9 + + hal.sys_clk_timer + ALT_SYS_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h. + none + false + common + + + hal.timestamp_timer + ALT_TIMESTAMP_CLK + UnquotedString + none + none + system_h_define + Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h. + none + false + common + + + hal.max_file_descriptors + ALT_MAX_FD + DecimalNumber + 32 + 32 + system_h_define + Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h. + If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr. + false + + + + hal.enable_instruction_related_exceptions_api + ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API + BooleanDefineOnly + false + false + system_h_define + Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code. + These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types. + false + + + + hal.linker.allow_code_at_reset + ALT_ALLOW_CODE_AT_RESET + Boolean + 1 + 0 + none + Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. + If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load + NONE + Boolean + 1 + 0 + none + Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory. + This setting is typically false if an external bootloader (e.g. flash bootloader) is present. + false + + + + hal.linker.enable_alt_load_copy_rodata + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_rwdata + NONE + Boolean + 1 + 0 + none + Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h. + none + false + + + + hal.linker.enable_alt_load_copy_exceptions + NONE + Boolean + 0 + 0 + none + Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h. + none + false + + + + hal.linker.enable_exception_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x. + The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.exception_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the exception stack in bytes. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.exception_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region. + Only used if hal.linker.enable_exception_stack is true. + false + common + + + hal.linker.enable_interrupt_stack + NONE + Boolean + 0 + 0 + none + Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x. + The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. + false + common + + + hal.linker.interrupt_stack_size + NONE + DecimalNumber + 1024 + 1024 + none + Size of the interrupt stack in bytes. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.linker.interrupt_stack_memory_region_name + NONE + UnquotedString + onchip_memory + none + none + Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region. + Only used if hal.linker.enable_interrupt_stack is true. + false + common + + + hal.stdin + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h. + none + false + common + + + hal.stdout + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h. + none + false + common + + + hal.stderr + NONE + UnquotedString + jtag_uart + none + system_h_define + Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h. + none + false + common + + + hal.log_port + NONE + UnquotedString + none + none + public_mk_define + Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h. + none + false + none + + + hal.make.build_pre_process + BUILD_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before BSP built. + none + false + none + + + hal.make.ar_pre_process + AR_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before archiver execution. + none + false + none + + + hal.make.bsp_cflags_defined_symbols + BSP_CFLAGS_DEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.ar_post_process + AR_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after archiver execution. + none + false + none + + + hal.make.as + AS + UnquotedString + nios2-elf-gcc + nios2-elf-gcc + makefile_variable + Assembler command. Note that CC is used for .S files. + none + false + none + + + hal.make.build_post_process + BUILD_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after BSP built. + none + false + none + + + hal.make.bsp_cflags_debug + BSP_CFLAGS_DEBUG + UnquotedString + -g + -g + makefile_variable + C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile. + none + false + common + + + hal.make.ar + AR + UnquotedString + nios2-elf-ar + nios2-elf-ar + makefile_variable + Archiver command. Creates library files. + none + false + none + + + hal.make.rm + RM + UnquotedString + rm -f + rm -f + makefile_variable + Command used to remove files during 'clean' target. + none + false + none + + + hal.make.cxx_pre_process + CXX_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.bsp_cflags_warnings + BSP_CFLAGS_WARNINGS + UnquotedString + -Wall + -Wall + makefile_variable + C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile. + none + false + none + + + hal.make.bsp_arflags + BSP_ARFLAGS + UnquotedString + -src + -src + makefile_variable + Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile. + none + false + none + + + hal.make.bsp_cflags_optimization + BSP_CFLAGS_OPTIMIZATION + UnquotedString + -O0 + -O0 + makefile_variable + C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile. + none + false + common + + + hal.make.as_post_process + AS_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each assembly file is compiled. + none + false + none + + + hal.make.cc_pre_process + CC_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each .c/.S file is compiled. + none + false + none + + + hal.make.bsp_asflags + BSP_ASFLAGS + UnquotedString + -Wa,-gdwarf2 + -Wa,-gdwarf2 + makefile_variable + Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile. + none + false + none + + + hal.make.as_pre_process + AS_PRE_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each assembly file is compiled. + none + false + none + + + hal.make.bsp_cflags_undefined_symbols + BSP_CFLAGS_UNDEFINED_SYMBOLS + UnquotedString + none + none + makefile_variable + Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile. + none + false + none + + + hal.make.cc_post_process + CC_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed after each .c/.S file is compiled. + none + false + none + + + hal.make.cxx_post_process + CXX_POST_PROCESS + UnquotedString + none + none + makefile_variable + Command executed before each C++ file is compiled. + none + false + none + + + hal.make.cc + CC + UnquotedString + nios2-elf-gcc -xc + nios2-elf-gcc -xc + makefile_variable + C compiler command. + none + false + none + + + hal.make.bsp_cxx_flags + BSP_CXXFLAGS + UnquotedString + none + none + makefile_variable + Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile. + none + false + none + + + hal.make.bsp_inc_dirs + BSP_INC_DIRS + UnquotedString + none + none + makefile_variable + Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile. + none + false + none + + + hal.make.cxx + CXX + UnquotedString + nios2-elf-gcc -xc++ + nios2-elf-gcc -xc++ + makefile_variable + C++ compiler command. + none + false + none + + + hal.make.bsp_cflags_user_flags + BSP_CFLAGS_USER_FLAGS + UnquotedString + none + none + makefile_variable + Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_id + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_timestamp + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_system_base_address + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.sopc_simulation_enabled + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. + none + false + none + + + hal.make.ignore_system_derived.fpu_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_multiplier_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_mulx_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_divide_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system. + none + false + none + + + hal.make.ignore_system_derived.debug_core_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system. + none + false + none + + + hal.make.ignore_system_derived.big_endian + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present + NONE + Boolean + 0 + 0 + public_mk_define + Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system. + none + false + none + + + hal.enable_exit + ALT_NO_EXIT + Boolean + 1 + 1 + public_mk_define + Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint + none + false + none + + + hal.enable_small_c_library + NONE + Boolean + 0 + 0 + public_mk_define + Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. + none + false + common + + + hal.enable_clean_exit + ALT_NO_CLEAN_EXIT + Boolean + 1 + 1 + public_mk_define + When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk. + none + false + none + + + hal.enable_runtime_stack_checking + ALT_STACK_CHECK + Boolean + 0 + 0 + public_mk_define + Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_gprof + ALT_PROVIDE_GMON + Boolean + 0 + 0 + public_mk_define + Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. + none + false + common + + + hal.enable_c_plus_plus + ALT_NO_C_PLUS_PLUS + Boolean + 1 + 1 + public_mk_define + Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint. + none + false + none + + + hal.enable_reduced_device_drivers + ALT_USE_SMALL_DRIVERS + Boolean + 0 + 0 + public_mk_define + Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk. + none + false + common + + + hal.enable_lightweight_device_driver_api + ALT_USE_DIRECT_DRIVERS + Boolean + 0 + 0 + public_mk_define + Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. + The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true. + false + none + + + hal.enable_mul_div_emulation + ALT_NO_INSTRUCTION_EMULATION + Boolean + 0 + 0 + public_mk_define + Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk. + none + false + none + + + hal.enable_sim_optimize + ALT_SIM_OPTIMIZE + Boolean + 0 + 0 + public_mk_define + The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. + When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware. + false + common + + + hal.enable_sopc_sysid_check + NONE + Boolean + 1 + 1 + public_mk_define + Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk. + none + false + none + + + hal.custom_newlib_flags + CUSTOM_NEWLIB_FLAGS + UnquotedString + none + none + public_mk_define + Build a custom version of newlib with the specified space-separated compiler flags. + The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP. + false + none + + + hal.log_flags + ALT_LOG_FLAGS + DecimalNumber + 0 + 0 + public_mk_define + The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3. + hal.log_port must be set for this to be used. + false + none + + + altera_avalon_jtag_uart_driver.enable_small_driver + ALTERA_AVALON_JTAG_UART_SMALL + BooleanDefineOnly + false + false + public_mk_define + Small-footprint (polled mode) driver + none + false + + + + altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error + ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR + BooleanDefineOnly + false + false + public_mk_define + Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery. + none + false + + + + onchip_memory + 0x00000000 - 0x00031FFF + 204800 + memory + + + lcd_on + 0x00041010 - 0x0004101F + 16 + + + + lcd_blon + 0x00041020 - 0x0004102F + 16 + + + + lcd_16207_0 + 0x00041030 - 0x0004103F + 16 + printable + + + hex7 + 0x00041040 - 0x0004104F + 16 + + + + hex6 + 0x00041050 - 0x0004105F + 16 + + + + hex5 + 0x00041060 - 0x0004106F + 16 + + + + hex4 + 0x00041070 - 0x0004107F + 16 + + + + hex3 + 0x00041080 - 0x0004108F + 16 + + + + hex2 + 0x00041090 - 0x0004109F + 16 + + + + hex1 + 0x000410A0 - 0x000410AF + 16 + + + + hex0 + 0x000410B0 - 0x000410BF + 16 + + + + push_switches + 0x000410C0 - 0x000410CF + 16 + + + + switches + 0x000410D0 - 0x000410DF + 16 + + + + LEDRs + 0x000410E0 - 0x000410EF + 16 + + + + LEDs + 0x000410F0 - 0x000410FF + 16 + + + + jtag_uart + 0x00041100 - 0x00041107 + 8 + printable + + + .text + onchip_memory + + + .rodata + onchip_memory + + + .rwdata + onchip_memory + + + .bss + onchip_memory + + + .heap + onchip_memory + + + .stack + onchip_memory + + \ No newline at end of file diff --git a/software/DE2_115_ASM3_release_bsp/summary.html b/software/DE2_115_ASM3_release_bsp/summary.html new file mode 100644 index 0000000..77c7739 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/summary.html @@ -0,0 +1,2047 @@ + +Altera Nios II BSP Summary + +

BSP Description

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BSP Type:hal
SOPC Design File:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo
Quartus JDI File:default
CPU:nios2_processor
BSP Settings File:.\settings.bsp
BSP Version:default
BSP Generated On:2017/01/26 11:02:28
BSP Generated Timestamp:1485396148639
BSP Generated Location:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\DE2_115_ASM3_release_bsp
+
+

Nios II Memory Map

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Slave DescriptorAddress RangeSizeAttributes
jtag_uart0x00041100 - 0x000411078printable
LEDs0x000410F0 - 0x000410FF16 
LEDRs0x000410E0 - 0x000410EF16 
switches0x000410D0 - 0x000410DF16 
push_switches0x000410C0 - 0x000410CF16 
hex00x000410B0 - 0x000410BF16 
hex10x000410A0 - 0x000410AF16 
hex20x00041090 - 0x0004109F16 
hex30x00041080 - 0x0004108F16 
hex40x00041070 - 0x0004107F16 
hex50x00041060 - 0x0004106F16 
hex60x00041050 - 0x0004105F16 
hex70x00041040 - 0x0004104F16 
lcd_16207_00x00041030 - 0x0004103F16printable
lcd_blon0x00041020 - 0x0004102F16 
lcd_on0x00041010 - 0x0004101F16 
onchip_memory0x00000000 - 0x00031FFF204800memory
+
+
+

Linker Regions

+ + + + +
RegionAddress RangeSizeMemoryOffset
+
+
+

Linker Section Mappings

+ + + + + + + + + + + + + + + + + + + + + + +
SectionRegion
.textonchip_memory
.rodataonchip_memory
.rwdataonchip_memory
.bssonchip_memory
.heaponchip_memory
.stackonchip_memory
+

Settings

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error
Identifier:ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:altera_avalon_jtag_uart_driver.enable_small_driver
Identifier:ALTERA_AVALON_JTAG_UART_SMALL
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Small-footprint (polled mode) driver
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.custom_newlib_flags
Identifier:CUSTOM_NEWLIB_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Build a custom version of newlib with the specified space-separated compiler flags.
Restrictions:The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_c_plus_plus
Identifier:ALT_NO_C_PLUS_PLUS
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_clean_exit
Identifier:ALT_NO_CLEAN_EXIT
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_exit
Identifier:ALT_NO_EXIT
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_gprof
Identifier:ALT_PROVIDE_GMON
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_instruction_related_exceptions_api
Identifier:ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:system_h_define
Description:Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code.
Restrictions:These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_lightweight_device_driver_api
Identifier:ALT_USE_DIRECT_DRIVERS
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_mul_div_emulation
Identifier:ALT_NO_INSTRUCTION_EMULATION
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_reduced_device_drivers
Identifier:ALT_USE_SMALL_DRIVERS
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_runtime_stack_checking
Identifier:ALT_STACK_CHECK
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sim_optimize
Identifier:ALT_SIM_OPTIMIZE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk.
Restrictions:When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_small_c_library
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.enable_sopc_sysid_check
Identifier:NONE
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.allow_code_at_reset
Identifier:ALT_ALLOW_CODE_AT_RESET
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h.
Restrictions:If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory.
Restrictions:This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_exceptions
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rodata
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_alt_load_copy_rwdata
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_exception_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x.
Restrictions:The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.enable_interrupt_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x.
Restrictions:The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.exception_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the exception stack in bytes.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.linker.interrupt_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the interrupt stack in bytes.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_flags
Identifier:ALT_LOG_FLAGS
Default Value:0
Value:0
Type:DecimalNumber
Destination:public_mk_define
Description:The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3.
Restrictions:hal.log_port must be set for this to be used.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.log_port
Identifier:NONE
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar
Identifier:AR
Default Value:nios2-elf-ar
Value:nios2-elf-ar
Type:UnquotedString
Destination:makefile_variable
Description:Archiver command. Creates library files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_post_process
Identifier:AR_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ar_pre_process
Identifier:AR_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before archiver execution.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as
Identifier:AS
Default Value:nios2-elf-gcc
Value:nios2-elf-gcc
Type:UnquotedString
Destination:makefile_variable
Description:Assembler command. Note that CC is used for .S files.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_post_process
Identifier:AS_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.as_pre_process
Identifier:AS_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each assembly file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_arflags
Identifier:BSP_ARFLAGS
Default Value:-src
Value:-src
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_asflags
Identifier:BSP_ASFLAGS
Default Value:-Wa,-gdwarf2
Value:-Wa,-gdwarf2
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_debug
Identifier:BSP_CFLAGS_DEBUG
Default Value:-g
Value:-g
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_defined_symbols
Identifier:BSP_CFLAGS_DEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_optimization
Identifier:BSP_CFLAGS_OPTIMIZATION
Default Value:-O0
Value:-O0
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_undefined_symbols
Identifier:BSP_CFLAGS_UNDEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_user_flags
Identifier:BSP_CFLAGS_USER_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cflags_warnings
Identifier:BSP_CFLAGS_WARNINGS
Default Value:-Wall
Value:-Wall
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_cxx_flags
Identifier:BSP_CXXFLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.bsp_inc_dirs
Identifier:BSP_INC_DIRS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_post_process
Identifier:BUILD_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.build_pre_process
Identifier:BUILD_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before BSP built.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc
Identifier:CC
Default Value:nios2-elf-gcc -xc
Value:nios2-elf-gcc -xc
Type:UnquotedString
Destination:makefile_variable
Description:C compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_post_process
Identifier:CC_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cc_pre_process
Identifier:CC_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each .c/.S file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx
Identifier:CXX
Default Value:nios2-elf-gcc -xc++
Value:nios2-elf-gcc -xc++
Type:UnquotedString
Destination:makefile_variable
Description:C++ compiler command.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_post_process
Identifier:CXX_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.cxx_pre_process
Identifier:CXX_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.big_endian
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.debug_core_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.fpu_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_divide_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_multiplier_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.hardware_mulx_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_simulation_enabled
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_base_address
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_id
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.ignore_system_derived.sopc_system_timestamp
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.make.rm
Identifier:RM
Default Value:rm -f
Value:rm -f
Type:UnquotedString
Destination:makefile_variable
Description:Command used to remove files during 'clean' target.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.max_file_descriptors
Identifier:ALT_MAX_FD
Default Value:32
Value:32
Type:DecimalNumber
Destination:system_h_define
Description:Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h.
Restrictions:If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stderr
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdin
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.stdout
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.sys_clk_timer
Identifier:ALT_SYS_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h.
Restrictions:none
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Setting Name:hal.timestamp_timer
Identifier:ALT_TIMESTAMP_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h.
Restrictions:none
+
+
+
+ + diff --git a/software/DE2_115_ASM3_release_bsp/system.h b/software/DE2_115_ASM3_release_bsp/system.h new file mode 100644 index 0000000..650cf13 --- /dev/null +++ b/software/DE2_115_ASM3_release_bsp/system.h @@ -0,0 +1,617 @@ +/* + * system.h - SOPC Builder system and BSP software package information + * + * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' + * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo + * + * Generated: Thu Jan 26 11:02:29 JST 2017 + */ + +/* + * DO NOT MODIFY THIS FILE + * + * Changing this file will have subtle consequences + * which will almost certainly lead to a nonfunctioning + * system. If you do modify this file, be aware that your + * changes will be overwritten and lost when this file + * is generated again. + * + * DO NOT MODIFY THIS FILE + */ + +/* + * License Agreement + * + * Copyright (c) 2008 + * Altera Corporation, San Jose, California, USA. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * This agreement shall be governed in all respects by the laws of the State + * of California and by the laws of the United States of America. + */ + +#ifndef __SYSTEM_H_ +#define __SYSTEM_H_ + +/* Include definitions from linker script generator */ +#include "linker.h" + + +/* + * CPU configuration + * + */ + +#define ALT_CPU_ARCHITECTURE "altera_nios2_qsys" +#define ALT_CPU_BIG_ENDIAN 0 +#define ALT_CPU_BREAK_ADDR 0x40820 +#define ALT_CPU_CPU_FREQ 50000000u +#define ALT_CPU_CPU_ID_SIZE 1 +#define ALT_CPU_CPU_ID_VALUE 0x00000000 +#define ALT_CPU_CPU_IMPLEMENTATION "tiny" +#define ALT_CPU_DATA_ADDR_WIDTH 0x13 +#define ALT_CPU_DCACHE_LINE_SIZE 0 +#define ALT_CPU_DCACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_DCACHE_SIZE 0 +#define ALT_CPU_EXCEPTION_ADDR 0x20 +#define ALT_CPU_FLUSHDA_SUPPORTED +#define ALT_CPU_FREQ 50000000 +#define ALT_CPU_HARDWARE_DIVIDE_PRESENT 0 +#define ALT_CPU_HARDWARE_MULTIPLY_PRESENT 0 +#define ALT_CPU_HARDWARE_MULX_PRESENT 0 +#define ALT_CPU_HAS_DEBUG_CORE 1 +#define ALT_CPU_HAS_DEBUG_STUB +#define ALT_CPU_HAS_JMPI_INSTRUCTION +#define ALT_CPU_ICACHE_LINE_SIZE 0 +#define ALT_CPU_ICACHE_LINE_SIZE_LOG2 0 +#define ALT_CPU_ICACHE_SIZE 0 +#define ALT_CPU_INST_ADDR_WIDTH 0x13 +#define ALT_CPU_NAME "nios2_processor" +#define ALT_CPU_RESET_ADDR 0x0 + + +/* + * CPU configuration (with legacy prefix - don't use these anymore) + * + */ + +#define NIOS2_BIG_ENDIAN 0 +#define NIOS2_BREAK_ADDR 0x40820 +#define NIOS2_CPU_FREQ 50000000u +#define NIOS2_CPU_ID_SIZE 1 +#define NIOS2_CPU_ID_VALUE 0x00000000 +#define NIOS2_CPU_IMPLEMENTATION "tiny" +#define NIOS2_DATA_ADDR_WIDTH 0x13 +#define NIOS2_DCACHE_LINE_SIZE 0 +#define NIOS2_DCACHE_LINE_SIZE_LOG2 0 +#define NIOS2_DCACHE_SIZE 0 +#define NIOS2_EXCEPTION_ADDR 0x20 +#define NIOS2_FLUSHDA_SUPPORTED +#define NIOS2_HARDWARE_DIVIDE_PRESENT 0 +#define NIOS2_HARDWARE_MULTIPLY_PRESENT 0 +#define NIOS2_HARDWARE_MULX_PRESENT 0 +#define NIOS2_HAS_DEBUG_CORE 1 +#define NIOS2_HAS_DEBUG_STUB +#define NIOS2_HAS_JMPI_INSTRUCTION +#define NIOS2_ICACHE_LINE_SIZE 0 +#define NIOS2_ICACHE_LINE_SIZE_LOG2 0 +#define NIOS2_ICACHE_SIZE 0 +#define NIOS2_INST_ADDR_WIDTH 0x13 +#define NIOS2_RESET_ADDR 0x0 + + +/* + * Define for each module class mastered by the CPU + * + */ + +#define __ALTERA_AVALON_JTAG_UART +#define __ALTERA_AVALON_LCD_16207 +#define __ALTERA_AVALON_ONCHIP_MEMORY2 +#define __ALTERA_AVALON_PIO +#define __ALTERA_NIOS2_QSYS + + +/* + * LEDRs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDRs altera_avalon_pio +#define LEDRS_BASE 0x410e0 +#define LEDRS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDRS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDRS_CAPTURE 0 +#define LEDRS_DATA_WIDTH 18 +#define LEDRS_DO_TEST_BENCH_WIRING 0 +#define LEDRS_DRIVEN_SIM_VALUE 0 +#define LEDRS_EDGE_TYPE "NONE" +#define LEDRS_FREQ 50000000 +#define LEDRS_HAS_IN 0 +#define LEDRS_HAS_OUT 1 +#define LEDRS_HAS_TRI 0 +#define LEDRS_IRQ -1 +#define LEDRS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDRS_IRQ_TYPE "NONE" +#define LEDRS_NAME "/dev/LEDRs" +#define LEDRS_RESET_VALUE 0 +#define LEDRS_SPAN 16 +#define LEDRS_TYPE "altera_avalon_pio" + + +/* + * LEDs configuration + * + */ + +#define ALT_MODULE_CLASS_LEDs altera_avalon_pio +#define LEDS_BASE 0x410f0 +#define LEDS_BIT_CLEARING_EDGE_REGISTER 0 +#define LEDS_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LEDS_CAPTURE 0 +#define LEDS_DATA_WIDTH 8 +#define LEDS_DO_TEST_BENCH_WIRING 0 +#define LEDS_DRIVEN_SIM_VALUE 0 +#define LEDS_EDGE_TYPE "NONE" +#define LEDS_FREQ 50000000 +#define LEDS_HAS_IN 0 +#define LEDS_HAS_OUT 1 +#define LEDS_HAS_TRI 0 +#define LEDS_IRQ -1 +#define LEDS_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LEDS_IRQ_TYPE "NONE" +#define LEDS_NAME "/dev/LEDs" +#define LEDS_RESET_VALUE 0 +#define LEDS_SPAN 16 +#define LEDS_TYPE "altera_avalon_pio" + + +/* + * System configuration + * + */ + +#define ALT_DEVICE_FAMILY "Cyclone IV E" +#define ALT_ENHANCED_INTERRUPT_API_PRESENT +#define ALT_IRQ_BASE NULL +#define ALT_LOG_PORT "/dev/null" +#define ALT_LOG_PORT_BASE 0x0 +#define ALT_LOG_PORT_DEV null +#define ALT_LOG_PORT_TYPE "" +#define ALT_NUM_EXTERNAL_INTERRUPT_CONTROLLERS 0 +#define ALT_NUM_INTERNAL_INTERRUPT_CONTROLLERS 1 +#define ALT_NUM_INTERRUPT_CONTROLLERS 1 +#define ALT_STDERR "/dev/jtag_uart" +#define ALT_STDERR_BASE 0x41100 +#define ALT_STDERR_DEV jtag_uart +#define ALT_STDERR_IS_JTAG_UART +#define ALT_STDERR_PRESENT +#define ALT_STDERR_TYPE "altera_avalon_jtag_uart" +#define ALT_STDIN "/dev/jtag_uart" +#define ALT_STDIN_BASE 0x41100 +#define ALT_STDIN_DEV jtag_uart +#define ALT_STDIN_IS_JTAG_UART +#define ALT_STDIN_PRESENT +#define ALT_STDIN_TYPE "altera_avalon_jtag_uart" +#define ALT_STDOUT "/dev/jtag_uart" +#define ALT_STDOUT_BASE 0x41100 +#define ALT_STDOUT_DEV jtag_uart +#define ALT_STDOUT_IS_JTAG_UART +#define ALT_STDOUT_PRESENT +#define ALT_STDOUT_TYPE "altera_avalon_jtag_uart" +#define ALT_SYSTEM_NAME "nios_system" + + +/* + * hal configuration + * + */ + +#define ALT_MAX_FD 32 +#define ALT_SYS_CLK none +#define ALT_TIMESTAMP_CLK none + + +/* + * hex0 configuration + * + */ + +#define ALT_MODULE_CLASS_hex0 altera_avalon_pio +#define HEX0_BASE 0x410b0 +#define HEX0_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX0_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX0_CAPTURE 0 +#define HEX0_DATA_WIDTH 7 +#define HEX0_DO_TEST_BENCH_WIRING 0 +#define HEX0_DRIVEN_SIM_VALUE 0 +#define HEX0_EDGE_TYPE "NONE" +#define HEX0_FREQ 50000000 +#define HEX0_HAS_IN 0 +#define HEX0_HAS_OUT 1 +#define HEX0_HAS_TRI 0 +#define HEX0_IRQ -1 +#define HEX0_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX0_IRQ_TYPE "NONE" +#define HEX0_NAME "/dev/hex0" +#define HEX0_RESET_VALUE 0 +#define HEX0_SPAN 16 +#define HEX0_TYPE "altera_avalon_pio" + + +/* + * hex1 configuration + * + */ + +#define ALT_MODULE_CLASS_hex1 altera_avalon_pio +#define HEX1_BASE 0x410a0 +#define HEX1_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX1_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX1_CAPTURE 0 +#define HEX1_DATA_WIDTH 7 +#define HEX1_DO_TEST_BENCH_WIRING 0 +#define HEX1_DRIVEN_SIM_VALUE 0 +#define HEX1_EDGE_TYPE "NONE" +#define HEX1_FREQ 50000000 +#define HEX1_HAS_IN 0 +#define HEX1_HAS_OUT 1 +#define HEX1_HAS_TRI 0 +#define HEX1_IRQ -1 +#define HEX1_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX1_IRQ_TYPE "NONE" +#define HEX1_NAME "/dev/hex1" +#define HEX1_RESET_VALUE 0 +#define HEX1_SPAN 16 +#define HEX1_TYPE "altera_avalon_pio" + + +/* + * hex2 configuration + * + */ + +#define ALT_MODULE_CLASS_hex2 altera_avalon_pio +#define HEX2_BASE 0x41090 +#define HEX2_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX2_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX2_CAPTURE 0 +#define HEX2_DATA_WIDTH 7 +#define HEX2_DO_TEST_BENCH_WIRING 0 +#define HEX2_DRIVEN_SIM_VALUE 0 +#define HEX2_EDGE_TYPE "NONE" +#define HEX2_FREQ 50000000 +#define HEX2_HAS_IN 0 +#define HEX2_HAS_OUT 1 +#define HEX2_HAS_TRI 0 +#define HEX2_IRQ -1 +#define HEX2_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX2_IRQ_TYPE "NONE" +#define HEX2_NAME "/dev/hex2" +#define HEX2_RESET_VALUE 0 +#define HEX2_SPAN 16 +#define HEX2_TYPE "altera_avalon_pio" + + +/* + * hex3 configuration + * + */ + +#define ALT_MODULE_CLASS_hex3 altera_avalon_pio +#define HEX3_BASE 0x41080 +#define HEX3_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX3_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX3_CAPTURE 0 +#define HEX3_DATA_WIDTH 7 +#define HEX3_DO_TEST_BENCH_WIRING 0 +#define HEX3_DRIVEN_SIM_VALUE 0 +#define HEX3_EDGE_TYPE "NONE" +#define HEX3_FREQ 50000000 +#define HEX3_HAS_IN 0 +#define HEX3_HAS_OUT 1 +#define HEX3_HAS_TRI 0 +#define HEX3_IRQ -1 +#define HEX3_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX3_IRQ_TYPE "NONE" +#define HEX3_NAME "/dev/hex3" +#define HEX3_RESET_VALUE 0 +#define HEX3_SPAN 16 +#define HEX3_TYPE "altera_avalon_pio" + + +/* + * hex4 configuration + * + */ + +#define ALT_MODULE_CLASS_hex4 altera_avalon_pio +#define HEX4_BASE 0x41070 +#define HEX4_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX4_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX4_CAPTURE 0 +#define HEX4_DATA_WIDTH 7 +#define HEX4_DO_TEST_BENCH_WIRING 0 +#define HEX4_DRIVEN_SIM_VALUE 0 +#define HEX4_EDGE_TYPE "NONE" +#define HEX4_FREQ 50000000 +#define HEX4_HAS_IN 0 +#define HEX4_HAS_OUT 1 +#define HEX4_HAS_TRI 0 +#define HEX4_IRQ -1 +#define HEX4_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX4_IRQ_TYPE "NONE" +#define HEX4_NAME "/dev/hex4" +#define HEX4_RESET_VALUE 0 +#define HEX4_SPAN 16 +#define HEX4_TYPE "altera_avalon_pio" + + +/* + * hex5 configuration + * + */ + +#define ALT_MODULE_CLASS_hex5 altera_avalon_pio +#define HEX5_BASE 0x41060 +#define HEX5_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX5_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX5_CAPTURE 0 +#define HEX5_DATA_WIDTH 7 +#define HEX5_DO_TEST_BENCH_WIRING 0 +#define HEX5_DRIVEN_SIM_VALUE 0 +#define HEX5_EDGE_TYPE "NONE" +#define HEX5_FREQ 50000000 +#define HEX5_HAS_IN 0 +#define HEX5_HAS_OUT 1 +#define HEX5_HAS_TRI 0 +#define HEX5_IRQ -1 +#define HEX5_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX5_IRQ_TYPE "NONE" +#define HEX5_NAME "/dev/hex5" +#define HEX5_RESET_VALUE 0 +#define HEX5_SPAN 16 +#define HEX5_TYPE "altera_avalon_pio" + + +/* + * hex6 configuration + * + */ + +#define ALT_MODULE_CLASS_hex6 altera_avalon_pio +#define HEX6_BASE 0x41050 +#define HEX6_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX6_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX6_CAPTURE 0 +#define HEX6_DATA_WIDTH 7 +#define HEX6_DO_TEST_BENCH_WIRING 0 +#define HEX6_DRIVEN_SIM_VALUE 0 +#define HEX6_EDGE_TYPE "NONE" +#define HEX6_FREQ 50000000 +#define HEX6_HAS_IN 0 +#define HEX6_HAS_OUT 1 +#define HEX6_HAS_TRI 0 +#define HEX6_IRQ -1 +#define HEX6_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX6_IRQ_TYPE "NONE" +#define HEX6_NAME "/dev/hex6" +#define HEX6_RESET_VALUE 0 +#define HEX6_SPAN 16 +#define HEX6_TYPE "altera_avalon_pio" + + +/* + * hex7 configuration + * + */ + +#define ALT_MODULE_CLASS_hex7 altera_avalon_pio +#define HEX7_BASE 0x41040 +#define HEX7_BIT_CLEARING_EDGE_REGISTER 0 +#define HEX7_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define HEX7_CAPTURE 0 +#define HEX7_DATA_WIDTH 7 +#define HEX7_DO_TEST_BENCH_WIRING 0 +#define HEX7_DRIVEN_SIM_VALUE 0 +#define HEX7_EDGE_TYPE "NONE" +#define HEX7_FREQ 50000000 +#define HEX7_HAS_IN 0 +#define HEX7_HAS_OUT 1 +#define HEX7_HAS_TRI 0 +#define HEX7_IRQ -1 +#define HEX7_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define HEX7_IRQ_TYPE "NONE" +#define HEX7_NAME "/dev/hex7" +#define HEX7_RESET_VALUE 0 +#define HEX7_SPAN 16 +#define HEX7_TYPE "altera_avalon_pio" + + +/* + * jtag_uart configuration + * + */ + +#define ALT_MODULE_CLASS_jtag_uart altera_avalon_jtag_uart +#define JTAG_UART_BASE 0x41100 +#define JTAG_UART_IRQ 5 +#define JTAG_UART_IRQ_INTERRUPT_CONTROLLER_ID 0 +#define JTAG_UART_NAME "/dev/jtag_uart" +#define JTAG_UART_READ_DEPTH 64 +#define JTAG_UART_READ_THRESHOLD 8 +#define JTAG_UART_SPAN 8 +#define JTAG_UART_TYPE "altera_avalon_jtag_uart" +#define JTAG_UART_WRITE_DEPTH 64 +#define JTAG_UART_WRITE_THRESHOLD 8 + + +/* + * lcd_16207_0 configuration + * + */ + +#define ALT_MODULE_CLASS_lcd_16207_0 altera_avalon_lcd_16207 +#define LCD_16207_0_BASE 0x41030 +#define LCD_16207_0_IRQ -1 +#define LCD_16207_0_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LCD_16207_0_NAME "/dev/lcd_16207_0" +#define LCD_16207_0_SPAN 16 +#define LCD_16207_0_TYPE "altera_avalon_lcd_16207" + + +/* + * lcd_blon configuration + * + */ + +#define ALT_MODULE_CLASS_lcd_blon altera_avalon_pio +#define LCD_BLON_BASE 0x41020 +#define LCD_BLON_BIT_CLEARING_EDGE_REGISTER 0 +#define LCD_BLON_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LCD_BLON_CAPTURE 0 +#define LCD_BLON_DATA_WIDTH 1 +#define LCD_BLON_DO_TEST_BENCH_WIRING 0 +#define LCD_BLON_DRIVEN_SIM_VALUE 0 +#define LCD_BLON_EDGE_TYPE "NONE" +#define LCD_BLON_FREQ 50000000 +#define LCD_BLON_HAS_IN 0 +#define LCD_BLON_HAS_OUT 1 +#define LCD_BLON_HAS_TRI 0 +#define LCD_BLON_IRQ -1 +#define LCD_BLON_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LCD_BLON_IRQ_TYPE "NONE" +#define LCD_BLON_NAME "/dev/lcd_blon" +#define LCD_BLON_RESET_VALUE 0 +#define LCD_BLON_SPAN 16 +#define LCD_BLON_TYPE "altera_avalon_pio" + + +/* + * lcd_on configuration + * + */ + +#define ALT_MODULE_CLASS_lcd_on altera_avalon_pio +#define LCD_ON_BASE 0x41010 +#define LCD_ON_BIT_CLEARING_EDGE_REGISTER 0 +#define LCD_ON_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define LCD_ON_CAPTURE 0 +#define LCD_ON_DATA_WIDTH 1 +#define LCD_ON_DO_TEST_BENCH_WIRING 0 +#define LCD_ON_DRIVEN_SIM_VALUE 0 +#define LCD_ON_EDGE_TYPE "NONE" +#define LCD_ON_FREQ 50000000 +#define LCD_ON_HAS_IN 0 +#define LCD_ON_HAS_OUT 1 +#define LCD_ON_HAS_TRI 0 +#define LCD_ON_IRQ -1 +#define LCD_ON_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define LCD_ON_IRQ_TYPE "NONE" +#define LCD_ON_NAME "/dev/lcd_on" +#define LCD_ON_RESET_VALUE 0 +#define LCD_ON_SPAN 16 +#define LCD_ON_TYPE "altera_avalon_pio" + + +/* + * onchip_memory configuration + * + */ + +#define ALT_MODULE_CLASS_onchip_memory altera_avalon_onchip_memory2 +#define ONCHIP_MEMORY_ALLOW_IN_SYSTEM_MEMORY_CONTENT_EDITOR 0 +#define ONCHIP_MEMORY_ALLOW_MRAM_SIM_CONTENTS_ONLY_FILE 0 +#define ONCHIP_MEMORY_BASE 0x0 +#define ONCHIP_MEMORY_CONTENTS_INFO "" +#define ONCHIP_MEMORY_DUAL_PORT 0 +#define ONCHIP_MEMORY_GUI_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_INIT_CONTENTS_FILE "nios_system_onchip_memory" +#define ONCHIP_MEMORY_INIT_MEM_CONTENT 1 +#define ONCHIP_MEMORY_INSTANCE_ID "NONE" +#define ONCHIP_MEMORY_IRQ -1 +#define ONCHIP_MEMORY_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define ONCHIP_MEMORY_NAME "/dev/onchip_memory" +#define ONCHIP_MEMORY_NON_DEFAULT_INIT_FILE_ENABLED 0 +#define ONCHIP_MEMORY_RAM_BLOCK_TYPE "AUTO" +#define ONCHIP_MEMORY_READ_DURING_WRITE_MODE "DONT_CARE" +#define ONCHIP_MEMORY_SINGLE_CLOCK_OP 0 +#define ONCHIP_MEMORY_SIZE_MULTIPLE 1 +#define ONCHIP_MEMORY_SIZE_VALUE 204800 +#define ONCHIP_MEMORY_SPAN 204800 +#define ONCHIP_MEMORY_TYPE "altera_avalon_onchip_memory2" +#define ONCHIP_MEMORY_WRITABLE 1 + + +/* + * push_switches configuration + * + */ + +#define ALT_MODULE_CLASS_push_switches altera_avalon_pio +#define PUSH_SWITCHES_BASE 0x410c0 +#define PUSH_SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 +#define PUSH_SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define PUSH_SWITCHES_CAPTURE 0 +#define PUSH_SWITCHES_DATA_WIDTH 3 +#define PUSH_SWITCHES_DO_TEST_BENCH_WIRING 0 +#define PUSH_SWITCHES_DRIVEN_SIM_VALUE 0 +#define PUSH_SWITCHES_EDGE_TYPE "NONE" +#define PUSH_SWITCHES_FREQ 50000000 +#define PUSH_SWITCHES_HAS_IN 1 +#define PUSH_SWITCHES_HAS_OUT 0 +#define PUSH_SWITCHES_HAS_TRI 0 +#define PUSH_SWITCHES_IRQ -1 +#define PUSH_SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define PUSH_SWITCHES_IRQ_TYPE "NONE" +#define PUSH_SWITCHES_NAME "/dev/push_switches" +#define PUSH_SWITCHES_RESET_VALUE 0 +#define PUSH_SWITCHES_SPAN 16 +#define PUSH_SWITCHES_TYPE "altera_avalon_pio" + + +/* + * switches configuration + * + */ + +#define ALT_MODULE_CLASS_switches altera_avalon_pio +#define SWITCHES_BASE 0x410d0 +#define SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 +#define SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 +#define SWITCHES_CAPTURE 0 +#define SWITCHES_DATA_WIDTH 18 +#define SWITCHES_DO_TEST_BENCH_WIRING 0 +#define SWITCHES_DRIVEN_SIM_VALUE 0 +#define SWITCHES_EDGE_TYPE "NONE" +#define SWITCHES_FREQ 50000000 +#define SWITCHES_HAS_IN 1 +#define SWITCHES_HAS_OUT 0 +#define SWITCHES_HAS_TRI 0 +#define SWITCHES_IRQ -1 +#define SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 +#define SWITCHES_IRQ_TYPE "NONE" +#define SWITCHES_NAME "/dev/switches" +#define SWITCHES_RESET_VALUE 0 +#define SWITCHES_SPAN 16 +#define SWITCHES_TYPE "altera_avalon_pio" + +#endif /* __SYSTEM_H_ */ diff --git a/software/DE2_115_ASM_bsp/.cproject b/software/DE2_115_ASM_bsp/.cproject deleted file mode 100644 index 4eebd52..0000000 --- a/software/DE2_115_ASM_bsp/.cproject +++ /dev/null @@ -1,481 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/software/DE2_115_ASM_bsp/HAL/inc/alt_types.h b/software/DE2_115_ASM_bsp/HAL/inc/alt_types.h deleted file mode 100644 index 8eb438f..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/alt_types.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef __ALT_TYPES_H__ -#define __ALT_TYPES_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/* - * Don't declare these typedefs if this file is included by assembly source. - */ -#ifndef ALT_ASM_SRC -typedef signed char alt_8; -typedef unsigned char alt_u8; -typedef signed short alt_16; -typedef unsigned short alt_u16; -typedef signed long alt_32; -typedef unsigned long alt_u32; -typedef long long alt_64; -typedef unsigned long long alt_u64; -#endif - -#define ALT_INLINE __inline__ -#define ALT_ALWAYS_INLINE __attribute__ ((always_inline)) -#define ALT_WEAK __attribute__((weak)) - -#endif /* __ALT_TYPES_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/altera_nios2_qsys_irq.h b/software/DE2_115_ASM_bsp/HAL/inc/altera_nios2_qsys_irq.h deleted file mode 100644 index 910c91c..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/altera_nios2_qsys_irq.h +++ /dev/null @@ -1,80 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* - * Support for the Nios II internal interrupt controller. - */ - -#ifndef __ALT_NIOS2_QSYS_IRQ_H__ -#define __ALT_NIOS2_QSYS_IRQ_H__ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * The macro ALTERA_NIOS2_IRQ_INSTANCE is used by the alt_irq_init() - * function in the auto-generated file alt_sys_init.c to create an - * instance of this interrupt controller device driver state if this - * module contains an interrupt controller. - * Only one instance of a Nios II is allowed so this macro is just empty. - */ - -#define ALTERA_NIOS2_QSYS_IRQ_INSTANCE(name, state) - -/* - * altera_nios2_irq_init() is called by the auto-generated function - * alt_irq_init() once for the Nios II if it contains an interrupt controller. - * The altera_nios2_irq_init() routine is called using the - * ALTERA_NIOS2_IRQ_INIT macro given below. - * - * This function initializes the internal interrupt controller - * so is not called if the Nios II contains an external interrupt - * controller port (because the internal interrupt controller - * is removed if this port is present). - */ - -extern void altera_nios2_qsys_irq_init( void ); - -/* - * The macro ALTERA_NIOS2_IRQ_INIT is used by the alt_irq_init() routine - * in the auto-generated file alt_sys_init.c to initialize an instance - * of the interrupt controller device driver state. - */ - -#define ALTERA_NIOS2_QSYS_IRQ_INIT(name, state) altera_nios2_qsys_irq_init() - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __ALT_NIOS2_QSYS_IRQ_H__ */ - diff --git a/software/DE2_115_ASM_bsp/HAL/inc/io.h b/software/DE2_115_ASM_bsp/HAL/inc/io.h deleted file mode 100644 index 867e87d..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/io.h +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef __IO_H__ -#define __IO_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/* IO Header file for Nios II Toolchain */ - -#include "alt_types.h" -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#ifndef SYSTEM_BUS_WIDTH -#error SYSTEM_BUS_WIDTH undefined -#endif - -/* Dynamic bus access functions */ - -#define __IO_CALC_ADDRESS_DYNAMIC(BASE, OFFSET) \ - ((void *)(((alt_u8*)BASE) + (OFFSET))) - -#define IORD_32DIRECT(BASE, OFFSET) \ - __builtin_ldwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) -#define IORD_16DIRECT(BASE, OFFSET) \ - __builtin_ldhuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) -#define IORD_8DIRECT(BASE, OFFSET) \ - __builtin_ldbuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) - -#define IOWR_32DIRECT(BASE, OFFSET, DATA) \ - __builtin_stwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) -#define IOWR_16DIRECT(BASE, OFFSET, DATA) \ - __builtin_sthio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) -#define IOWR_8DIRECT(BASE, OFFSET, DATA) \ - __builtin_stbio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) - -/* Native bus access functions */ - -#define __IO_CALC_ADDRESS_NATIVE(BASE, REGNUM) \ - ((void *)(((alt_u8*)BASE) + ((REGNUM) * (SYSTEM_BUS_WIDTH/8)))) - -#define IORD(BASE, REGNUM) \ - __builtin_ldwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM))) -#define IOWR(BASE, REGNUM, DATA) \ - __builtin_stwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM)), (DATA)) - -#ifdef __cplusplus -} -#endif - -#endif /* __IO_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/nios2.h b/software/DE2_115_ASM_bsp/HAL/inc/nios2.h deleted file mode 100644 index eec4e35..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/nios2.h +++ /dev/null @@ -1,230 +0,0 @@ -#ifndef __NIOS2_H__ -#define __NIOS2_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* - * This header provides processor specific macros for accessing the Nios2 - * control registers. - */ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * Macros for accessing selected processor registers - */ - -#define NIOS2_READ_ET(et) \ - do { __asm ("mov %0, et" : "=r" (et) ); } while (0) - -#define NIOS2_WRITE_ET(et) \ - do { __asm volatile ("mov et, %z0" : : "rM" (et)); } while (0) - -#define NIOS2_READ_SP(sp) \ - do { __asm ("mov %0, sp" : "=r" (sp) ); } while (0) - -/* - * Macros for useful processor instructions - */ - -#define NIOS2_BREAK() \ - do { __asm volatile ("break"); } while (0) - -#define NIOS2_REPORT_STACK_OVERFLOW() \ - do { __asm volatile("break 3"); } while (0) - -/* - * Macros for accessing the control registers. - */ - -#define NIOS2_READ_STATUS(dest) \ - do { dest = __builtin_rdctl(0); } while (0) - -#define NIOS2_WRITE_STATUS(src) \ - do { __builtin_wrctl(0, src); } while (0) - -#define NIOS2_READ_ESTATUS(dest) \ - do { dest = __builtin_rdctl(1); } while (0) - -#define NIOS2_READ_BSTATUS(dest) \ - do { dest = __builtin_rdctl(2); } while (0) - -#define NIOS2_READ_IENABLE(dest) \ - do { dest = __builtin_rdctl(3); } while (0) - -#define NIOS2_WRITE_IENABLE(src) \ - do { __builtin_wrctl(3, src); } while (0) - -#define NIOS2_READ_IPENDING(dest) \ - do { dest = __builtin_rdctl(4); } while (0) - -#define NIOS2_READ_CPUID(dest) \ - do { dest = __builtin_rdctl(5); } while (0) - - -/* - * Macros for accessing extra exception registers. These - * are always enabled wit the MPU or MMU, and optionally - * with other advanced exception types/ - */ -#define NIOS2_READ_EXCEPTION(dest) \ - do { dest = __builtin_rdctl(7); } while (0) - -#define NIOS2_READ_BADADDR(dest) \ - do { dest = __builtin_rdctl(12); } while (0) - - -/* - * Macros for accessing control registers for MPU - * operation. These should not be used unless the - * MPU is enabled. - * - * The config register may be augmented for future - * enhancements. For now, only MPU support is provided. - */ -/* Config register */ -#define NIOS2_WRITE_CONFIG(src) \ - do { __builtin_wrctl(13, src); } while (0) - -#define NIOS2_READ_CONFIG(dest) \ - do { dest = __builtin_rdctl(13); } while (0) - -/* MPU Base Address Register */ -#define NIOS2_WRITE_MPUBASE(src) \ - do { __builtin_wrctl(14, src); } while (0) - -#define NIOS2_READ_MPUBASE(dest) \ - do { dest = __builtin_rdctl(14); } while (0) - -/* MPU Access Register */ -#define NIOS2_WRITE_MPUACC(src) \ - do { __builtin_wrctl(15, src); } while (0) - -#define NIOS2_READ_MPUACC(dest) \ - do { dest = __builtin_rdctl(15); } while (0) - - -/* - * Nios II control registers that are always present - */ -#define NIOS2_STATUS status -#define NIOS2_ESTATUS estatus -#define NIOS2_BSTATUS bstatus -#define NIOS2_IENABLE ienable -#define NIOS2_IPENDING ipending -#define NIOS2_CPUID cpuid - -/* - * STATUS, BSTATUS, ESTATUS, and SSTATUS fields. - * The presence of fields is a function of the Nios II configuration. - */ -#define NIOS2_STATUS_PIE_MSK (0x00000001) -#define NIOS2_STATUS_PIE_OFST (0) -#define NIOS2_STATUS_U_MSK (0x00000002) -#define NIOS2_STATUS_U_OFST (1) -#define NIOS2_STATUS_EH_MSK (0x00000004) -#define NIOS2_STATUS_EH_OFST (2) -#define NIOS2_STATUS_IH_MSK (0x00000008) -#define NIOS2_STATUS_IH_OFST (3) -#define NIOS2_STATUS_IL_MSK (0x000003f0) -#define NIOS2_STATUS_IL_OFST (4) -#define NIOS2_STATUS_CRS_MSK (0x0000fc00) -#define NIOS2_STATUS_CRS_OFST (10) -#define NIOS2_STATUS_PRS_MSK (0x003f0000) -#define NIOS2_STATUS_PRS_OFST (16) -#define NIOS2_STATUS_NMI_MSK (0x00400000) -#define NIOS2_STATUS_NMI_OFST (22) -#define NIOS2_STATUS_RSIE_MSK (0x00800000) -#define NIOS2_STATUS_RSIE_OFST (23) -#define NIOS2_STATUS_SRS_MSK (0x80000000) -#define NIOS2_STATUS_SRS_OFST (31) - -/* - * Bit masks & offsets available with extra exceptions support - */ - -/* Exception register */ -#define NIOS2_EXCEPTION_REG_CAUSE_MASK (0x0000007c) -#define NIOS2_EXCEPTION_REG_CAUSE_OFST (2) - -/* - * Bit masks & offsets for MPU support - * - * All bit-masks are expressed relative to the position - * of the data with a register. To read data that is LSB- - * aligned, the register read data should be masked, then - * right-shifted by the designated "OFST" macro value. The - * opposite should be used for register writes when starting - * with LSB-aligned data. - */ - -/* Config register */ -#define NIOS2_CONFIG_REG_PE_MASK (0x00000001) -#define NIOS2_CONFIG_REG_PE_OFST (0) -#define NIOS2_CONFIG_REG_ANI_MASK (0x00000002) -#define NIOS2_CONFIG_REG_ANI_OFST (1) - -/* MPU Base Address Register */ -#define NIOS2_MPUBASE_D_MASK (0x00000001) -#define NIOS2_MPUBASE_D_OFST (0) -#define NIOS2_MPUBASE_INDEX_MASK (0x0000003e) -#define NIOS2_MPUBASE_INDEX_OFST (1) -#define NIOS2_MPUBASE_BASE_ADDR_MASK (0xffffffc0) -#define NIOS2_MPUBASE_BASE_ADDR_OFST (6) - -/* MPU Access Register */ -#define NIOS2_MPUACC_LIMIT_MASK (0xffffffc0) -#define NIOS2_MPUACC_LIMIT_OFST (6) -#define NIOS2_MPUACC_MASK_MASK (0xffffffc0) -#define NIOS2_MPUACC_MASK_OFST (6) -#define NIOS2_MPUACC_C_MASK (0x00000020) -#define NIOS2_MPUACC_C_OFST (5) -#define NIOS2_MPUACC_PERM_MASK (0x0000001c) -#define NIOS2_MPUACC_PERM_OFST (2) -#define NIOS2_MPUACC_RD_MASK (0x00000002) -#define NIOS2_MPUACC_RD_OFST (1) -#define NIOS2_MPUACC_WR_MASK (0x00000001) -#define NIOS2_MPUACC_WR_OFST (0) - -/* - * Number of available IRQs in internal interrupt controller. - */ -#define NIOS2_NIRQ 32 - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __NIOS2_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/os/alt_flag.h b/software/DE2_115_ASM_bsp/HAL/inc/os/alt_flag.h deleted file mode 100644 index 86493c2..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/os/alt_flag.h +++ /dev/null @@ -1,98 +0,0 @@ -#ifndef __ALT_FLAG_H__ -#define __ALT_FLAG_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -/* - * This header provides macro definitions that can be used to create and use - * uc/OS-II style event flags. These macros can be used in both a uC/OS-II based - * environment, and a single threaded HAL based environment. - * - * The motivation for these macros is to allow code to be developed which is - * thread safe under uC/OS-II, but incurs no additional overhead when used in a - * single threaded HAL environment. - * - * In the case of a single threaded HAL environment, they compile to - * "do nothing" directives, which ensures they do not contribute to the final - * executable. - * - * The following macros are available: - * - * ALT_FLAG_GRP - Create a flag group instance. - * ALT_EXTERN_FLAG_GRP - Create a reference to an external flag group instance. - * ALT_STATIC_FLAG_GRP - Create a static flag group instance. - * ALT_FLAG_CREATE - Initialise a flag group. - * ALT_FLAG_PEND - Pend on a flag group. - * ALT_FLAG_POST - Set a flag condition. - - * - * Input arguments and return codes are all consistant with the equivalent - * uC/OS-II function. - * - * It's important to be careful in the use of the macros: ALT_FLAG_GRP, - * ALT_EXTERN_FLAG_GRP, and ALT_STATIC_FLAG_GRP. In these three cases the - * semi-colon is included in the macro definition; so, for example, you should - * use: - * - * ALT_FLAG_GRP(mygroup) - * - * not: - * - * ALT_FLAG_GRP(mygroup); - * - * The inclusion of the semi-colon has been necessary to ensure the macros can - * compile with no warnings when used in a single threaded HAL environment. - * - */ - -#include "priv/alt_no_error.h" - -#define ALT_FLAG_GRP(group) -#define ALT_EXTERN_FLAG_GRP(group) -#define ALT_STATIC_FLAG_GRP(group) - -#define ALT_FLAG_CREATE(group, flags) alt_no_error () -#define ALT_FLAG_PEND(group, flags, wait_type, timeout) alt_no_error () -#define ALT_FLAG_POST(group, flags, opt) alt_no_error () - -#ifndef ALT_SINGLE_THREADED -#define ALT_SINGLE_THREADED -#endif - -#endif /* __ALT_FLAG_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/os/alt_hooks.h b/software/DE2_115_ASM_bsp/HAL/inc/os/alt_hooks.h deleted file mode 100644 index ba1100e..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/os/alt_hooks.h +++ /dev/null @@ -1,61 +0,0 @@ -#ifndef __ALT_HOOKS_H__ -#define __ALT_HOOKS_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -/* - * This header provides "do-nothing" macro definitions for operating system - * hooks within the HAL. The O/S component can override these to provide it's - * own implementation. - */ - -#define ALT_OS_TIME_TICK() while(0) -#define ALT_OS_INIT() while(0) -#define ALT_OS_STOP() while(0) - -/* Call from assembly code */ -#define ALT_OS_INT_ENTER_ASM -#define ALT_OS_INT_EXIT_ASM - -/* Call from C code */ -#define ALT_OS_INT_ENTER() while(0) -#define ALT_OS_INT_EXIT() while(0) - - -#endif /* __ALT_HOOKS_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/os/alt_sem.h b/software/DE2_115_ASM_bsp/HAL/inc/os/alt_sem.h deleted file mode 100644 index ed0f4a8..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/os/alt_sem.h +++ /dev/null @@ -1,96 +0,0 @@ -#ifndef __ALT_SEM_H__ -#define __ALT_SEM_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -/* - * This header provides macro definitions that can be used to create and use - * semaphores. These macros can be used in both a uC/OS-II based environment, - * and a single threaded HAL based environment. - * - * The motivation for these macros is to allow code to be developed which is - * thread safe under uC/OS-II, but incurs no additional overhead when used in a - * single threaded HAL environment. - * - * In the case of a single threaded HAL environment, they compile to - * "do nothing" directives, which ensures they do not contribute to the final - * executable. - * - * The following macros are available: - * - * ALT_SEM - Create a semaphore instance. - * ALT_EXTERN_SEM - Create a reference to an external semaphore instance. - * ALT_STATIC_SEM - Create a static semaphore instance. - * ALT_SEM_CREATE - Initialise a semaphore. - * ALT_SEM_PEND - Pend on a semaphore. - * ALT_SEM_POST - Increment a semaphore. - * - * Input arguments and return codes are all consistant with the equivalent - * uC/OS-II function. - * - * It's important to be careful in the use of the macros: ALT_SEM, - * ALT_EXTERN_SEM, and ALT_STATIC_SEM. In these three cases the semi-colon is - * included in the macro definition; so, for example, you should use: - * - * ALT_SEM(mysem) - * - * not: - * - * ALT_SEM(mysem); - * - * The inclusion of the semi-colon has been necessary to ensure the macros can - * compile with no warnings when used in a single threaded HAL environment. - * - */ - -#include "priv/alt_no_error.h" - -#define ALT_SEM(sem) -#define ALT_EXTERN_SEM(sem) -#define ALT_STATIC_SEM(sem) - -#define ALT_SEM_CREATE(sem, value) alt_no_error () -#define ALT_SEM_PEND(sem, timeout) alt_no_error () -#define ALT_SEM_POST(sem) alt_no_error () - -#ifndef ALT_SINGLE_THREADED -#define ALT_SINGLE_THREADED -#endif - -#endif /* __ALT_SEM_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/os/alt_syscall.h b/software/DE2_115_ASM_bsp/HAL/inc/os/alt_syscall.h deleted file mode 100644 index 2b1165a..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/os/alt_syscall.h +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef __ALT_SYSCALL_H__ -#define __ALT_SYSCALL_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* - * The macros defined in this file are used to provide the function names used - * for the HAL 'UNIX style' interface, e.g. read(), write() etc. - * - * Operating systems which are ported to the HAL can provide their own - * version of this file, which will be used in preference. This allows - * the operating system to provide it's own implementation of the top level - * system calls, while retaining the HAL functions under a different name, - * for example, alt_read(), alt_write() etc. - */ - -#define ALT_CLOSE close -#define ALT_ENVIRON environ -#define ALT_EXECVE execve -#define ALT_EXIT _exit -#define ALT_FCNTL fcntl -#define ALT_FORK fork -#define ALT_FSTAT fstat -#define ALT_GETPID getpid -#define ALT_GETTIMEOFDAY gettimeofday -#define ALT_IOCTL ioctl -#define ALT_ISATTY isatty -#define ALT_KILL kill -#define ALT_LINK link -#define ALT_LSEEK lseek -#define ALT_OPEN open -#define ALT_READ read -#define ALT_RENAME _rename -#define ALT_SBRK sbrk -#define ALT_SETTIMEOFDAY settimeofday -#define ALT_STAT stat -#define ALT_UNLINK unlink -#define ALT_USLEEP usleep -#define ALT_WAIT wait -#define ALT_WRITE write -#define ALT_TIMES times - -/* - * - */ - -#endif /* __ALT_SYSCALL_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_alarm.h b/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_alarm.h deleted file mode 100644 index ae687bb..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_alarm.h +++ /dev/null @@ -1,101 +0,0 @@ -#ifndef __ALT_PRIV_ALARM_H__ -#define __ALT_PRIV_ALARM_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include "alt_types.h" - -/* - * This header provides the internal defenitions required by the public - * interface alt_alarm.h. These variables and structures are not guaranteed to - * exist in future implementations of the HAL. - */ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * "alt_alarm_s" is a structure type used to maintain lists of alarm callback - * functions. - */ - -struct alt_alarm_s -{ - alt_llist llist; /* linked list */ - alt_u32 time; /* time in system ticks of the callback */ - alt_u32 (*callback) (void* context); /* callback function. The return - * value is the period for the next callback; where - * zero indicates that the alarm should be removed - * from the list. - */ - alt_u8 rollover; /* set when desired alarm time + current time causes - overflow, to prevent premature alarm */ - void* context; /* Argument for the callback */ -}; - -/* - * "_alt_tick_rate" is a global variable used to store the system clock rate - * in ticks per second. This is initialised to zero, which coresponds to there - * being no system clock available. - * - * It is then set to it's final value by the system clock driver through a call - * to alt_sysclk_init(). - */ - -extern alt_u32 _alt_tick_rate; - -/* - * "_alt_nticks" is a global variable which records the elapsed number of - * system clock ticks since the last call to settimeofday() or since reset if - * settimeofday() has not been called. - */ - -extern volatile alt_u32 _alt_nticks; - -/* The list of registered alarms. */ - -extern alt_llist alt_alarm_list; - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_PRIV_ALARM_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_busy_sleep.h b/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_busy_sleep.h deleted file mode 100644 index a165e93..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_busy_sleep.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __ALT_BUSY_SLEEP_H -#define __ALT_BUSY_SLEEP_H - -/* - * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. - * All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - -/* - * The function alt_busy_sleep provides a busy loop implementation of usleep. - * This is used to provide usleep for the standalone HAL, or when the timer is - * unavailable in uC/OS-II. - */ - -extern unsigned int alt_busy_sleep (unsigned int us); - -#endif /* __ALT_BUSY_SLEEP_H */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_dev_llist.h b/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_dev_llist.h deleted file mode 100644 index 0ab7a28..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_dev_llist.h +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef __ALT_DEV_LLIST_H__ -#define __ALT_DEV_LLIST_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include "sys/alt_llist.h" -#include "alt_types.h" - -/* - * This header provides the internal defenitions required to control file - * access. These variables and functions are not guaranteed to exist in - * future implementations of the HAL. - */ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * The alt_dev_llist is an internal structure used to form a common base - * class for all device types. The use of this structure allows common code - * to be used to manipulate the various device lists. - */ - -typedef struct { - alt_llist llist; - const char* name; -} alt_dev_llist; - -/* - * - */ - -extern int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list); - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_DEV_LLIST_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_exception_handler_registry.h b/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_exception_handler_registry.h deleted file mode 100644 index 4502ea7..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_exception_handler_registry.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef __ALT_EXCEPTION_HANDLER_REGISTRY_H__ -#define __ALT_EXCEPTION_HANDLER_REGISTRY_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ -#include "sys/alt_exceptions.h" - -/* Function pointer to exception callback routine */ -extern alt_exception_result (*alt_instruction_exception_handler) - (alt_exception_cause, alt_u32, alt_u32); - -#endif /* __ALT_EXCEPTION_HANDLER_REGISTRY_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_file.h b/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_file.h deleted file mode 100644 index 94007a6..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_file.h +++ /dev/null @@ -1,179 +0,0 @@ -#ifndef __ALT_FILE_H__ -#define __ALT_FILE_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include "sys/alt_dev.h" -#include "sys/alt_llist.h" -#include "os/alt_sem.h" - -#include "alt_types.h" - -/* - * This header provides the internal defenitions required to control file - * access. These variables and functions are not guaranteed to exist in - * future implementations of the HAL. - */ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * The function alt_find_dev() is used to search the device list "list" to - * locate a device named "name". If a match is found, then a pointer to the - * device is returned, otherwise NULL is returned. - */ - -extern alt_dev* alt_find_dev (const char* name, alt_llist* list); - -/* - * alt_find_file() is used to search the list of registered file systems to - * find the filesystem that the file named "name" belongs to. If a match is - * found, then a pointer to the filesystems alt_dev structure is returned, - * otherwise NULL is returned. - * - * Note that a match does not indicate that the file exists, only that a - * filesystem exists that is registered for a partition that could contain - * the file. The filesystems open() function would need to be called in order - * to determine if the file exists. - */ - -extern alt_dev* alt_find_file (const char* name); - -/* - * alt_get_fd() is used to allocate a file descriptor for the device or - * filesystem "dev". A negative return value indicates an error, otherwise the - * return value is the index of the file descriptor within the file descriptor - * pool. - */ - -extern int alt_get_fd (alt_dev* dev); - -/* - * alt_release_fd() is called to free the file descriptor with index "fd". - */ - -extern void alt_release_fd (int fd); - -/* - * alt_fd_lock() is called by ioctl() to mark the file descriptor "fd" as - * being open for exclusive access. Subsequent calls to open() for the device - * associated with "fd" will fail. A device is unlocked by either calling - * close() for "fd", or by an alternate call to ioctl() (see ioctl.c for - * details). - */ - -extern int alt_fd_lock (alt_fd* fd); - -/* - * alt_fd_unlock() is called by ioctl() to unlock a descriptor previously - * locked by a call to alt_fd_lock(). - */ - -extern int alt_fd_unlock (alt_fd* fd); - -/* - * "alt_fd_list" is the pool of file descriptors. - */ - -extern alt_fd alt_fd_list[]; - -/* - * flags used by alt_fd. - * - * ALT_FD_EXCL is used to mark a file descriptor as locked for exclusive - * access, i.e. further calls to open() for the associated device should - * fail. - * - * ALT_FD_DEV marks a dile descriptor as belonging to a device as oposed to a - * filesystem. - */ - -#define ALT_FD_EXCL 0x80000000 -#define ALT_FD_DEV 0x40000000 - -#define ALT_FD_FLAGS_MASK (ALT_FD_EXCL | ALT_FD_DEV) - -/* - * "alt_dev_list" is the head of the linked list of registered devices. - */ - -extern alt_llist alt_dev_list; - -/* - * "alt_fs_list" is the head of the linked list of registered filesystems. - */ - -extern alt_llist alt_fs_list; - -/* - * "alt_fd_list_lock" is a semaphore used to ensure that access to the pool - * of file descriptors is thread safe. - */ - -ALT_EXTERN_SEM(alt_fd_list_lock) - -/* - * "alt_max_fd" is a 'high water mark'. It indicates the highest file - * descriptor allocated. Use of this can save searching the entire pool - * for active file descriptors, which helps avoid contention on access - * to the file descriptor pool. - */ - -extern alt_32 alt_max_fd; - -/* - * alt_io_redirect() is called at startup to redirect stdout, stdin, and - * stderr to the devices named in the input arguments. By default these streams - * are directed at /dev/null, and are then redirected using this function once - * all of the devices have been registered within the system. - */ - -extern void alt_io_redirect(const char* stdout_dev, - const char* stdin_dev, - const char* stderr_dev); - - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_FILE_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_iic_isr_register.h b/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_iic_isr_register.h deleted file mode 100644 index 6c53c86..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_iic_isr_register.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef __ALT_IIC_ISR_REGISTER_H_ -#define __ALT_IIC_ISR_REGISTER_H_ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ -#include "alt_types.h" -#include "sys/alt_irq.h" - -extern int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, - void *isr_context, void *flags); - -#endif /* __ALT_IIC_ISR_REGISTER_H_ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_irq_table.h b/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_irq_table.h deleted file mode 100644 index 5b4a787..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_irq_table.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef __ALT_IRQ_TABLE_H__ -#define __ALT_IRQ_TABLE_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -/* - * Definition of a table describing each interrupt handler. The index into - * the array is the interrupt id associated with the handler. - * - * When an interrupt occurs, the associated handler is called with - * the argument stored in the context member. - * - * The table is physically created in alt_irq_handler.c - */ -extern struct ALT_IRQ_HANDLER -{ -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT - void (*handler)(void*); -#else - void (*handler)(void*, alt_u32); -#endif - void *context; -} alt_irq[ALT_NIRQ]; - -#endif diff --git a/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_legacy_irq.h b/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_legacy_irq.h deleted file mode 100644 index 0e19af2..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_legacy_irq.h +++ /dev/null @@ -1,158 +0,0 @@ -#ifndef __ALT_LEGACY_IRQ_H__ -#define __ALT_LEGACY_IRQ_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* - * This file provides prototypes and inline implementations of certain routines - * used by the legacy interrupt API. Do not include this in your driver or - * application source files, use "sys/alt_irq.h" instead to access the proper - * public API. - */ - -#include -#include "system.h" - -#ifndef NIOS2_EIC_PRESENT - -#include "nios2.h" -#include "alt_types.h" - -#include "sys/alt_irq.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * alt_irq_register() can be used to register an interrupt handler. If the - * function is succesful, then the requested interrupt will be enabled upon - * return. - */ -extern int alt_irq_register (alt_u32 id, - void* context, - alt_isr_func handler); - -/* - * alt_irq_disable() disables the individual interrupt indicated by "id". - */ -static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_disable (alt_u32 id) -{ - alt_irq_context status; - extern volatile alt_u32 alt_irq_active; - - status = alt_irq_disable_all (); - - alt_irq_active &= ~(1 << id); - NIOS2_WRITE_IENABLE (alt_irq_active); - - alt_irq_enable_all(status); - - return 0; -} - -/* - * alt_irq_enable() enables the individual interrupt indicated by "id". - */ -static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enable (alt_u32 id) -{ - alt_irq_context status; - extern volatile alt_u32 alt_irq_active; - - status = alt_irq_disable_all (); - - alt_irq_active |= (1 << id); - NIOS2_WRITE_IENABLE (alt_irq_active); - - alt_irq_enable_all(status); - - return 0; -} - -#ifndef ALT_EXCEPTION_STACK -/* - * alt_irq_initerruptable() should only be called from within an ISR. It is used - * to allow higer priority interrupts to interrupt the current ISR. The input - * argument, "priority", is the priority, i.e. interrupt number of the current - * interrupt. - * - * If this function is called, then the ISR is required to make a call to - * alt_irq_non_interruptible() before returning. The input argument to - * alt_irq_non_interruptible() is the return value from alt_irq_interruptible(). - * - * Care should be taken when using this pair of functions, since they increasing - * the system overhead associated with interrupt handling. - * - * If you are using an exception stack then nested interrupts won't work, so - * these functions are not available in that case. - */ -static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_interruptible (alt_u32 priority) -{ - extern volatile alt_u32 alt_priority_mask; - extern volatile alt_u32 alt_irq_active; - - alt_u32 old_priority; - - old_priority = alt_priority_mask; - alt_priority_mask = (1 << priority) - 1; - - NIOS2_WRITE_IENABLE (alt_irq_active & alt_priority_mask); - - NIOS2_WRITE_STATUS (1); - - return old_priority; -} - -/* - * See Comments above for alt_irq_interruptible() for an explanation of the use of this - * function. - */ -static ALT_INLINE void ALT_ALWAYS_INLINE alt_irq_non_interruptible (alt_u32 mask) -{ - extern volatile alt_u32 alt_priority_mask; - extern volatile alt_u32 alt_irq_active; - - NIOS2_WRITE_STATUS (0); - - alt_priority_mask = mask; - - NIOS2_WRITE_IENABLE (mask & alt_irq_active); -} -#endif /* ALT_EXCEPTION_STACK */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* NIOS2_EIC_PRESENT */ - -#endif /* __ALT_LEGACY_IRQ_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_no_error.h b/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_no_error.h deleted file mode 100644 index 06a036c..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/priv/alt_no_error.h +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef __ALT_NO_ERROR_H__ -#define __ALT_NO_ERROR_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include "alt_types.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * alt_no_error() is a dummy function used by alt_sem.h and alt_flag.h. It - * substitutes for functions that have a return code by creating a function - * that always returns zero. - * - * This may seem a little obscure, but what happens is that the compiler can - * then optomise away the call to this function, and any code written which - * handles the error path (i.e. non zero return values). - * - * This allows code to be written which correctly use the uC/OS-II semaphore - * and flag utilities, without the use of those utilities impacting on - * excutables built for a single threaded HAL environment. - * - * This function is considered to be part of the internal implementation of - * the HAL, and should not be called directly by application code or device - * drivers. It is not guaranteed to be preserved in future versions of the - * HAL. - */ - -static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void) -{ - return 0; -} - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_NO_ERROR_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/priv/nios2_gmon_data.h b/software/DE2_115_ASM_bsp/HAL/inc/priv/nios2_gmon_data.h deleted file mode 100644 index 4bc058d..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/priv/nios2_gmon_data.h +++ /dev/null @@ -1,47 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ -#ifndef NIOS2_GMON_DATA_H -#define NIOS2_GMON_DATA_H - -#define GMON_DATA_SIG 0 -#define GMON_DATA_WORDS 1 -#define GMON_DATA_PROFILE_DATA 2 -#define GMON_DATA_PROFILE_LOWPC 3 -#define GMON_DATA_PROFILE_HIGHPC 4 -#define GMON_DATA_PROFILE_BUCKET 5 -#define GMON_DATA_PROFILE_RATE 6 -#define GMON_DATA_MCOUNT_START 7 -#define GMON_DATA_MCOUNT_LIMIT 8 - -#define GMON_DATA_SIZE 9 - -extern unsigned int alt_gmon_data[GMON_DATA_SIZE]; - -#endif diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_alarm.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_alarm.h deleted file mode 100644 index 9093080..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_alarm.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef __ALT_ALARM_H__ -#define __ALT_ALARM_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include "alt_llist.h" -#include "alt_types.h" - -#include "priv/alt_alarm.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * "alt_alarm" is a structure type used by applications to register an alarm - * callback function. An instance of this type must be passed as an input - * argument to alt_alarm_start(). The user is not responsible for initialising - * the contents of the instance. This is done by alt_alarm_start(). - */ - -typedef struct alt_alarm_s alt_alarm; - -/* - * alt_alarm_start() can be called by an application/driver in order to register - * a function for periodic callback at the system clock frequency. Be aware that - * this callback is likely to occur in interrupt context. - */ - -extern int alt_alarm_start (alt_alarm* the_alarm, - alt_u32 nticks, - alt_u32 (*callback) (void* context), - void* context); - -/* - * alt_alarm_stop() is used to unregister a callback. Alternatively the callback - * can return zero to unregister. - */ - -extern void alt_alarm_stop (alt_alarm* the_alarm); - -/* - * Obtain the system clock rate in ticks/s. - */ - -static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void) -{ - return _alt_tick_rate; -} - -/* - * alt_sysclk_init() is intended to be only used by the system clock driver - * in order to initialise the value of the clock frequency. - */ - -static ALT_INLINE int ALT_ALWAYS_INLINE alt_sysclk_init (alt_u32 nticks) -{ - if (! _alt_tick_rate) - { - _alt_tick_rate = nticks; - return 0; - } - else - { - return -1; - } -} - -/* - * alt_nticks() returns the elapsed number of system clock ticks since reset. - */ - -static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_nticks (void) -{ - return _alt_nticks; -} - -/* - * alt_tick() should only be called by the system clock driver. This is used - * to notify the system that the system timer period has expired. - */ - -extern void alt_tick (void); - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_ALARM_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_cache.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_cache.h deleted file mode 100644 index 44d976c..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_cache.h +++ /dev/null @@ -1,117 +0,0 @@ -#ifndef __ALT_CACHE_H__ -#define __ALT_CACHE_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003, 2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include - -#include "alt_types.h" - -/* - * alt_cache.h defines the processor specific functions for manipulating the - * cache. - */ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * alt_icache_flush() is called to flush the instruction cache for a memory - * region of length "len" bytes, starting at address "start". - */ - -extern void alt_icache_flush (void* start, alt_u32 len); - -/* - * alt_dcache_flush() is called to flush the data cache for a memory - * region of length "len" bytes, starting at address "start". - * Any dirty lines in the data cache are written back to memory. - */ - -extern void alt_dcache_flush (void* start, alt_u32 len); - -/* - * alt_dcache_flush() is called to flush the data cache for a memory - * region of length "len" bytes, starting at address "start". - * Any dirty lines in the data cache are NOT written back to memory. - */ - -extern void alt_dcache_flush_no_writeback (void* start, alt_u32 len); - -/* - * Flush the entire instruction cache. - */ - -extern void alt_icache_flush_all (void); - -/* - * Flush the entire data cache. - */ - -extern void alt_dcache_flush_all (void); - -/* - * Allocate a block of uncached memory. - */ - -extern volatile void* alt_uncached_malloc (size_t size); - -/* - * Free a block of uncached memory. - */ - -extern void alt_uncached_free (volatile void* ptr); - -/* - * Convert a pointer to a block of cached memory, into a block of - * uncached memory. - */ - -extern volatile void* alt_remap_uncached (void* ptr, alt_u32 len); - -/* - * Convert a pointer to a block of uncached memory, into a block of - * cached memory. - */ - -extern void* alt_remap_cached (volatile void* ptr, alt_u32 len); - -/* - * - */ - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_CACHE_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_debug.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_debug.h deleted file mode 100644 index af509d8..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_debug.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef __ALT_DEBUG_H__ -#define __ALT_DEBUG_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* - * The ALT_DEVUG_ASSERT macro can be used to generate a debugger break - * from within software. The break is generated if "condition" evaluates to - * false. - */ - -#define ALT_DEBUG_ASSERT(condition) if (!condition) \ -{ \ - __asm__ volatile ("break"); \ -} - -#endif /* __ALT_DEBUG_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_dev.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_dev.h deleted file mode 100644 index d96327e..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_dev.h +++ /dev/null @@ -1,115 +0,0 @@ -#ifndef __ALT_DEV_H__ -#define __ALT_DEV_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include "system.h" -#include "sys/alt_llist.h" -#include "priv/alt_dev_llist.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * The value ALT_IRQ_NOT_CONNECTED is used to represent an unconnected - * interrupt line. It cannot evaluate to a valid interrupt number. - */ - -#define ALT_IRQ_NOT_CONNECTED (-1) - -typedef struct alt_dev_s alt_dev; - -struct stat; - -/* - * The file descriptor structure definition. - */ - -typedef struct alt_fd_s -{ - alt_dev* dev; - alt_u8* priv; - int fd_flags; -} alt_fd; - -/* - * The device structure definition. - */ - -struct alt_dev_s { - alt_llist llist; /* for internal use */ - const char* name; - int (*open) (alt_fd* fd, const char* name, int flags, int mode); - int (*close) (alt_fd* fd); - int (*read) (alt_fd* fd, char* ptr, int len); - int (*write) (alt_fd* fd, const char* ptr, int len); - int (*lseek) (alt_fd* fd, int ptr, int dir); - int (*fstat) (alt_fd* fd, struct stat* buf); - int (*ioctl) (alt_fd* fd, int req, void* arg); -}; - -/* - * Functions used to register device for access through the C standard - * library. - * - * The only difference between alt_dev_reg() and alt_fs_reg() is the - * interpretation that open() places on the device name. In the case of - * alt_dev_reg the device is assumed to be a particular character device, - * and so there must be an exact match in the name for open to succeed. - * In the case of alt_fs_reg() the name of the device is treated as the - * mount point for a directory, and so any call to open() where the name - * is the root of the device filename will succeed. - */ - -extern int alt_fs_reg (alt_dev* dev); - -static ALT_INLINE int alt_dev_reg (alt_dev* dev) -{ - extern alt_llist alt_dev_list; - - return alt_dev_llist_insert ((alt_dev_llist*) dev, &alt_dev_list); -} - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_DEV_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_dma.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_dma.h deleted file mode 100644 index 88dcda0..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_dma.h +++ /dev/null @@ -1,226 +0,0 @@ -#ifndef __ALT_DMA_H__ -#define __ALT_DMA_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include "sys/alt_dma_dev.h" -#include "alt_types.h" - -#include - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * This header contains the application side interface for accessing DMA - * resources. See alt_dma_dev.h for the dma device driver interface. - * - * The interface model treats a DMA transaction as being composed of two - * halves (read and write). - * - * The application can supply data for transmit using an "alt_dma_txchan" - * descriptor. Alternatively an "alt_dma_rxchan" descriptor can be used to - * receive data. - */ - -/* - * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for - * a DMA transmit device. The name is the name of the associated physical - * device (e.g. "/dev/dma_0"). - * - * The return value will be NULL on failure, and non-NULL otherwise. - */ - -extern alt_dma_txchan alt_dma_txchan_open (const char* name); - -/* - * alt_dma_txchan_close() is provided so that an application can notify the - * system that it has finished with a given DMA transmit channel. This is only - * provided for completness. - */ - -static ALT_INLINE int alt_dma_txchan_close (alt_dma_txchan dma) -{ - return 0; -} - -/* - * alt_dma_txchan_send() posts a transmit request to a DMA transmit channel. - * The input arguments are: - * - * dma: the channel to use. - * from: a pointer to the start of the data to send. - * length: the length of the data to send in bytes. - * done: callback function that will be called once the data has been sent. - * handle: opaque value passed to "done". - * - * The return value will be negative if the request cannot be posted, and - * zero otherwise. - */ - -static ALT_INLINE int alt_dma_txchan_send (alt_dma_txchan dma, - const void* from, - alt_u32 length, - alt_txchan_done* done, - void* handle) -{ - return dma ? dma->dma_send (dma, - from, - length, - done, - handle) : -ENODEV; -} - -/* - * alt_dma_txchan_space() returns the number of tranmit requests that can be - * posted to the specified DMA transmit channel. - * - * A negative value indicates that the value could not be determined. - */ - -static ALT_INLINE int alt_dma_txchan_space (alt_dma_txchan dma) -{ - return dma ? dma->space (dma) : -ENODEV; -} - -/* - * alt_dma_txchan_ioctl() can be used to perform device specific I/O - * operations on the indicated DMA transmit channel. For example some drivers - * support options to control the width of the transfer operations. See - * alt_dma_dev.h for the list of generic requests. - * - * A negative return value indicates failure, otherwise the interpretation - * of the return value is request specific. - */ - -static ALT_INLINE int alt_dma_txchan_ioctl (alt_dma_txchan dma, - int req, - void* arg) -{ - return dma ? dma->ioctl (dma, req, arg) : -ENODEV; -} - -/* - * alt_dma_rxchan_open() is used to obtain an "alt_dma_rxchan" descriptor for - * a DMA receive channel. The name is the name of the associated physical - * device (e.g. "/dev/dma_0"). - * - * The return value will be NULL on failure, and non-NULL otherwise. - */ - -extern alt_dma_rxchan alt_dma_rxchan_open (const char* dev); - -/* - * alt_dma_rxchan_close() is provided so that an application can notify the - * system that it has finished with a given DMA receive channel. This is only - * provided for completness. - */ - -static ALT_INLINE int alt_dma_rxchan_close (alt_dma_rxchan dma) -{ - return 0; -} - -/* - * - */ - -/* - * alt_dma_rxchan_prepare() posts a receive request to a DMA receive channel. - * - * The input arguments are: - * - * dma: the channel to use. - * data: a pointer to the location that data is to be received to. - * len: the maximum length of the data to receive. - * done: callback function that will be called once the data has been - * received. - * handle: opaque value passed to "done". - * - * The return value will be negative if the request cannot be posted, and - * zero otherwise. - */ - -static ALT_INLINE int alt_dma_rxchan_prepare (alt_dma_rxchan dma, - void* data, - alt_u32 len, - alt_rxchan_done* done, - void* handle) -{ - return dma ? dma->prepare (dma, data, len, done, handle) : -ENODEV; -} - -/* - * alt_dma_rxchan_ioctl() can be used to perform device specific I/O - * operations on the indicated DMA receive channel. For example some drivers - * support options to control the width of the transfer operations. See - * alt_dma_dev.h for the list of generic requests. - * - * A negative return value indicates failure, otherwise the interpretation - * of the return value is request specific. - */ - -static ALT_INLINE int alt_dma_rxchan_ioctl (alt_dma_rxchan dma, - int req, - void* arg) -{ - return dma ? dma->ioctl (dma, req, arg) : -ENODEV; -} - -/* - * alt_dma_rxchan_depth() returns the depth of the receive FIFO used to store - * receive requests. - */ - -static ALT_INLINE alt_u32 alt_dma_rxchan_depth(alt_dma_rxchan dma) -{ - return dma->depth; -} - -/* - * - */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __ALT_DMA_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_dma_dev.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_dma_dev.h deleted file mode 100644 index 65063bd..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_dma_dev.h +++ /dev/null @@ -1,200 +0,0 @@ -#ifndef __ALT_DMA_DEV_H__ -#define __ALT_DMA_DEV_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include "priv/alt_dev_llist.h" - -#include "alt_types.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * This header contains the device driver interface for accessing DMA - * resources. See alt_dma.h for the DMA application side interface. - * - * The interface model treats a DMA transaction as being composed of two - * halves (read and write). - * - * An "alt_dma_txchan_dev" is used to describe the device associated with a - * DMA transmit channel. An "alt_dma_rxchan_dev" is used to describe the - * device associated with a DMA receive channel. - */ - -/* - * List of generic ioctl requests that may be supported by a DMA device. - * - * ALT_DMA_RX_ONLY_ON: This causes a DMA channel to operate in a mode - * where only the receiver is under software control. - * The other side reads continously from a single - * location. The address to read is the argument to - * this request. - * ALT_DMA_RX_ONLY_OFF: Return to the default mode where both the receive - * and transmit sides of the DMA can be under software - * control. - * ALT_DMA_TX_ONLY_ON: This causes a DMA channel to operate in a mode - * where only the transmitter is under software control. - * The other side writes continously to a single - * location. The address to write to is the argument to - * this request. - * ALT_DMA_TX_ONLY_OFF: Return to the default mode where both the receive - * and transmit sides of the DMA can be under software - * control. - * ALT_DMA_SET_MODE_8: Transfer data in units of 8 bits. - * ALT_DMA_SET_MODE_16: Transfer data in units of 16 bits. - * ALT_DMA_SET_MODE_32: Transfer data in units of 32 bits. - * ALT_DMA_SET_MODE_64: Transfer data in units of 64 bits. - * ALT_DMA_SET_MODE_128: Transfer data in units of 128 bits. - * ALT_DMA_GET_MODE: Get the current transfer mode. - * - * The use of the macros: ALT_DMA_TX_STREAM_ON, ALT_DMA_TX_STREAM_OFF - * ALT_DMA_RX_STREAM_OFF and ALT_DMA_RX_STREAM_ON are depreciated. You should - * instead use the macros: ALT_DMA_RX_ONLY_ON, ALT_DMA_RX_ONLY_OFF, - * ALT_DMA_TX_ONLY_ON and ALT_DMA_TX_ONLY_OFF. - */ - -#define ALT_DMA_TX_STREAM_ON (0x1) -#define ALT_DMA_TX_STREAM_OFF (0x2) -#define ALT_DMA_RX_STREAM_ON (0x3) -#define ALT_DMA_RX_STREAM_OFF (0x4) -#define ALT_DMA_SET_MODE_8 (0x5) -#define ALT_DMA_SET_MODE_16 (0x6) -#define ALT_DMA_SET_MODE_32 (0x7) -#define ALT_DMA_SET_MODE_64 (0x8) -#define ALT_DMA_SET_MODE_128 (0x9) -#define ALT_DMA_GET_MODE (0xa) - -#define ALT_DMA_RX_ONLY_ON ALT_DMA_TX_STREAM_ON -#define ALT_DMA_RX_ONLY_OFF ALT_DMA_TX_STREAM_OFF -#define ALT_DMA_TX_ONLY_ON ALT_DMA_RX_STREAM_ON -#define ALT_DMA_TX_ONLY_OFF ALT_DMA_RX_STREAM_OFF - -/* - * - */ - -typedef struct alt_dma_txchan_dev_s alt_dma_txchan_dev; -typedef struct alt_dma_rxchan_dev_s alt_dma_rxchan_dev; - -typedef alt_dma_txchan_dev* alt_dma_txchan; -typedef alt_dma_rxchan_dev* alt_dma_rxchan; - -typedef void (alt_txchan_done)(void* handle); -typedef void (alt_rxchan_done)(void* handle, void* data); - -/* - * devices that provide a DMA transmit channel are required to provide an - * instance of the "alt_dma_txchan_dev" structure. - */ - -struct alt_dma_txchan_dev_s { - alt_llist llist; /* for internal use */ - const char* name; /* name of the device instance - * (e.g. "/dev/dma_0"). - */ - int (*space) (alt_dma_txchan dma); /* returns the maximum number of - * transmit requests that can be posted - */ - int (*dma_send) (alt_dma_txchan dma, - const void* from, - alt_u32 len, - alt_txchan_done* done, - void* handle); /* post a transmit request */ - int (*ioctl) (alt_dma_txchan dma, int req, void* arg); /* perform device - * specific I/O control. - */ -}; - -/* - * devices that provide a DMA receive channel are required to provide an - * instance of the "alt_dma_rxchan_dev" structure. - */ - -struct alt_dma_rxchan_dev_s { - alt_llist list; /* for internal use */ - const char* name; /* name of the device instance - * (e.g. "/dev/dma_0"). - */ - alt_u32 depth; /* maximum number of receive requests that - * can be posted. - */ - int (*prepare) (alt_dma_rxchan dma, - void* data, - alt_u32 len, - alt_rxchan_done* done, - void* handle); /* post a receive request */ - int (*ioctl) (alt_dma_rxchan dma, int req, void* arg); /* perform device - * specific I/O control. - */ -}; - -/* - * Register a DMA transmit channel with the system. - */ - -static ALT_INLINE int alt_dma_txchan_reg (alt_dma_txchan_dev* dev) -{ - extern alt_llist alt_dma_txchan_list; - - return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_txchan_list); -} - -/* - * Register a DMA receive channel with the system. - */ - -static ALT_INLINE int alt_dma_rxchan_reg (alt_dma_rxchan_dev* dev) -{ - extern alt_llist alt_dma_rxchan_list; - - return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_rxchan_list); -} - -/* - * - */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __ALT_DMA_DEV_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_driver.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_driver.h deleted file mode 100644 index ca7aea1..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_driver.h +++ /dev/null @@ -1,168 +0,0 @@ -#ifndef __ALT_DRIVER_H__ -#define __ALT_DRIVER_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/* - * Macros used to access a driver without HAL file descriptors. - */ - -/* - * ALT_MODULE_CLASS - * - * This macro returns the module class name for the specified module instance. - * It uses information in the system.h file. - * Neither the instance name or class name are quoted (so that they can - * be used with other pre-processor macros). - * - * Example: - * Assume the design has an instance of an altera_avalon_uart called uart1. - * Calling ALT_MODULE_CLASS(uart1) returns altera_avalon_uart. - */ - -#define ALT_MODULE_CLASS(instance) ALT_MODULE_CLASS_ ## instance - - -/* - * ALT_DRIVER_FUNC_NAME - * - * --> instance Instance name. - * --> func Function name. - * - * This macro returns the device driver function name of the specified - * module instance for the specified function name. - * - * Example: - * Assume the design has an instance of an altera_avalon_uart called uart1. - * Calling ALT_DRIVER_FUNC_NAME(uart1, write) returns - * altera_avalon_uart_write. - */ - -#define ALT_DRIVER_FUNC_NAME(instance, func) \ - ALT_DRIVER_FUNC_NAME1(ALT_MODULE_CLASS(instance), func) -#define ALT_DRIVER_FUNC_NAME1(module_class, func) \ - ALT_DRIVER_FUNC_NAME2(module_class, func) -#define ALT_DRIVER_FUNC_NAME2(module_class, func) \ - module_class ## _ ## func - -/* - * ALT_DRIVER_STATE_STRUCT - * - * --> instance Instance name. - * - * This macro returns the device driver state type name of the specified - * module instance. - * - * Example: - * Assume the design has an instance of an altera_avalon_uart called uart1. - * Calling ALT_DRIVER_STATE_STRUCT(uart1) returns: - * struct altera_avalon_uart_state_s - * - * Note that the ALT_DRIVER_FUNC_NAME macro is used even though "state" isn't - * really a function but it does match the required naming convention. - */ -#define ALT_DRIVER_STATE_STRUCT(instance) \ - struct ALT_DRIVER_FUNC_NAME(instance, state_s) - -/* - * ALT_DRIVER_STATE - * - * --> instance Instance name. - * - * This macro returns the device driver state name of the specified - * module instance. - * - * Example: - * Assume the design has an instance of an altera_avalon_uart called uart1. - * Calling ALT_DRIVER_STATE(uart1) returns uart1. - */ -#define ALT_DRIVER_STATE(instance) instance - -/* - * ALT_DRIVER_WRITE - * - * --> instance Instance name. - * --> buffer Write buffer. - * --> len Length of write buffer data. - * --> flags Control flags (e.g. O_NONBLOCK) - * - * This macro calls the "write" function of the specified driver instance. - */ - -#define ALT_DRIVER_WRITE_EXTERNS(instance) \ - extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ - extern int ALT_DRIVER_FUNC_NAME(instance, write) \ - (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); - -#define ALT_DRIVER_WRITE(instance, buffer, len, flags) \ - ALT_DRIVER_FUNC_NAME(instance, write)(&ALT_DRIVER_STATE(instance), buffer, len, flags) - - -/* - * ALT_DRIVER_READ - * - * --> instance Instance name. - * <-- buffer Read buffer. - * --> len Length of read buffer. - * --> flags Control flags (e.g. O_NONBLOCK) - * - * This macro calls the "read" function of the specified driver instance. - */ - -#define ALT_DRIVER_READ_EXTERNS(instance) \ - extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ - extern int ALT_DRIVER_FUNC_NAME(instance, read) \ - (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); - -#define ALT_DRIVER_READ(instance, buffer, len, flags) \ - ALT_DRIVER_FUNC_NAME(instance, read)(&ALT_DRIVER_STATE(instance), buffer, len, flags) - -/* - * ALT_DRIVER_IOCTL - * - * --> instance Instance name. - * --> req ioctl request (e.g. TIOCSTIMEOUT) - * --> arg Optional argument (void*) - * - * This macro calls the "ioctl" function of the specified driver instance - */ - -#define ALT_DRIVER_IOCTL_EXTERNS(instance) \ - extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ - extern int ALT_DRIVER_FUNC_NAME(instance, ioctl) \ - (ALT_DRIVER_STATE_STRUCT(instance) *, int, void*); - -#define ALT_DRIVER_IOCTL(instance, req, arg) \ - ALT_DRIVER_FUNC_NAME(instance, ioctl)(&ALT_DRIVER_STATE(instance), req, arg) - -#endif /* __ALT_DRIVER_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_errno.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_errno.h deleted file mode 100644 index 23e3096..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_errno.h +++ /dev/null @@ -1,87 +0,0 @@ -#ifndef __ALT_ERRNO_H__ -#define __ALT_ERRNO_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -/* - * errno is defined in so that it uses the thread local version - * stored in the location pointed to by "_impure_ptr". This means that the - * accesses to errno within the HAL library can cause the entirety of - * of the structure pointed to by "_impure_ptr" to be added to the - * users application. This can be undesirable in very small footprint systems. - * - * To avoid this happening, the HAL uses the macro ALT_ERRNO, defined below, - * to access errno, rather than accessing it directly. This macro will only - * use the thread local version if some other code has already caused it to be - * included into the system, otherwise it will use the global errno value. - * - * This causes a slight increases in code size where errno is accessed, but - * can lead to significant overall benefits in very small systems. The - * increase is inconsequential when compared to the size of the structure - * pointed to by _impure_ptr. - * - * Note that this macro accesses __errno() using an externally declared - * function pointer (alt_errno). This is done so that the function call uses the - * subroutine call instruction via a register rather than an immediate address. - * This is important in the case that the code has been linked for a high - * address, but __errno() is not being used. In this case the weak linkage - * would have resulted in the instruction: "call 0" which would fail to link. - */ - -extern int* (*alt_errno) (void); - -/* Must define this so that values such as EBADFD are defined in errno.h. */ -#define __LINUX_ERRNO_EXTENSIONS__ - -#include - -#include "alt_types.h" - -#undef errno - -extern int errno; - -static ALT_INLINE int* alt_get_errno(void) -{ - return ((alt_errno) ? alt_errno() : &errno); -} - -#define ALT_ERRNO *alt_get_errno() - -#endif /* __ALT_ERRNO_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_exceptions.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_exceptions.h deleted file mode 100644 index b6b82e2..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_exceptions.h +++ /dev/null @@ -1,127 +0,0 @@ -#ifndef __ALT_EXCEPTIONS_H__ -#define __ALT_EXCEPTIONS_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ -#include "alt_types.h" -#include "system.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * This file defines instruction-generated exception handling and registry - * API, exception type enumeration, and handler return value enumeration for - * Nios II. - */ - -/* - * The following enumeration describes the value in the CPU EXCEPTION - * register CAUSE bit field. Not all exception types will cause the - * processor to go to the exception vector; these are provided for - * reference. - */ -enum alt_exception_cause_e { - /* Exeption causes that will cause jump to exception vector */ - NIOS2_EXCEPTION_INTERRUPT = 2, - NIOS2_EXCEPTION_TRAP_INST = 3, - NIOS2_EXCEPTION_UNIMPLEMENTED_INST = 4, - NIOS2_EXCEPTION_ILLEGAL_INST = 5, - NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR = 6, - NIOS2_EXCEPTION_MISALIGNED_TARGET_PC = 7, - NIOS2_EXCEPTION_DIVISION_ERROR = 8, - NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST_ADDR = 9, - NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST = 10, - NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR = 11, - NIOS2_EXCEPTION_TLB_MISS = 12, - NIOS2_EXCEPTION_TLB_EXECUTE_PERM_VIOLATION = 13, - NIOS2_EXCEPTION_MPU_INST_REGION_VIOLATION = 16, - - /* Exception causes that will NOT cause a jump to exception vector */ - NIOS2_EXCEPTION_RESET = 0, - NIOS2_EXCEPTION_CPU_ONLY_RESET_REQUEST = 1, - NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION = 14, - NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION = 15, - NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION = 17, - /* - * This value is passed to an exception handler's cause argument if - * "extra exceptions" information (EXECPTION) register is not - * present in the processor hardware configuration. - */ - NIOS2_EXCEPTION_CAUSE_NOT_PRESENT = -1 -}; -typedef enum alt_exception_cause_e alt_exception_cause; - -/* - * These define valid return values for a user-defined instruction-generated - * exception handler. The handler should return one of these to indicate - * whether to re-issue the instruction that triggered the exception, or to - * skip it. - */ -enum alt_exception_result_e { - NIOS2_EXCEPTION_RETURN_REISSUE_INST = 0, - NIOS2_EXCEPTION_RETURN_SKIP_INST = 1 -}; -typedef enum alt_exception_result_e alt_exception_result; - -/* - * alt_instruction_exception_register() can be used to register an exception - * handler for instruction-generated exceptions that are not handled by the - * built-in exception handler (i.e. for interrupts). - * - * The registry API is optionally enabled through the "Enable - * Instruction-related Exception API" HAL BSP setting, which will - * define the macro below. - */ -#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API -void alt_instruction_exception_register ( - alt_exception_result (*exception_handler)( - alt_exception_cause cause, - alt_u32 exception_pc, - alt_u32 bad_addr) ); -#endif /*ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ - -/* - * alt_exception_cause_generated_bad_addr() indicates whether a particular - * exception cause value was from an exception-type that generated a valid - * address in the BADADDR register. The contents of BADADDR is passed to - * a user-registered exception handler in all cases, whether valid or not. - * This routine should be called to validate the bad_addr argument to - * your exception handler. - */ -int alt_exception_cause_generated_bad_addr(alt_exception_cause cause); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __ALT_EXCEPTIONS_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_flash.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_flash.h deleted file mode 100644 index 7e903a8..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_flash.h +++ /dev/null @@ -1,166 +0,0 @@ -#ifndef __ALT_FLASH_H__ -#define __ALT_FLASH_H__ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -/****************************************************************************** -* * -* Alt_flash.h - User interface for flash code * -* * -* Use this interface to avoid being exposed to the internals of the device * -* driver architecture. If you chose to use the flash driver internal * -* structures we don't guarantee not to change them * -* * -* Author PRR * -* * -******************************************************************************/ - - - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include "alt_types.h" -#include "alt_flash_types.h" -#include "alt_flash_dev.h" -#include "sys/alt_cache.h" - -alt_flash_fd* alt_flash_open_dev(const char* name); -void alt_flash_close_dev(alt_flash_fd* fd ); - -/* - * alt_write_flash - * - * Program a buffer into flash. - * - * This routine erases all the affected erase blocks (if necessary) - * and then programs the data. However it does not read the data out first - * and preserve and none overwritten data, because this would require very - * large buffers on the target. If you need - * that functionality use the functions below. - */ -static __inline__ int __attribute__ ((always_inline)) alt_write_flash( - alt_flash_fd* fd, - int offset, - const void* src_addr, - int length ) -{ - return fd->write( fd, offset, src_addr, length ); -} - -/* - * alt_read_flash - * - * Read a block of flash for most flashes this is just memcpy - * it's here for completeness in case we need it for some serial flash device - * - */ -static __inline__ int __attribute__ ((always_inline)) alt_read_flash( - alt_flash_fd* fd, int offset, - void* dest_addr, int length ) -{ - return fd->read( fd, offset, dest_addr, length ); -} - -/* - * alt_get_flash_info - * - * Return the information on the flash sectors. - * - */ -static __inline__ int __attribute__ ((always_inline)) alt_get_flash_info( - alt_flash_fd* fd, flash_region** info, - int* number_of_regions) -{ - return fd->get_info( fd, info, number_of_regions); -} - -/* - * alt_erase_flash_block - * - * Erase a particular erase block, pass in the offset to the start of - * the block and it's size - */ -static __inline__ int __attribute__ ((always_inline)) alt_erase_flash_block( - alt_flash_fd* fd, int offset, int length) -{ - int ret_code; - ret_code = fd->erase_block( fd, offset ); - - if(!ret_code) - alt_dcache_flush((alt_u8*)fd->base_addr + offset, length); - - return ret_code; -} - -/* - * alt_write_flash_block - * - * Write a particular flash block, block_offset is the offset - * (from the base of flash) to start of the block - * data_offset is the offset (from the base of flash) - * where you wish to start programming - * - * NB this function DOES NOT check that you are only writing a single - * block of data as that would slow down this function. - * - * Use alt_write_flash if you want that level of error checking. - */ - -static __inline__ int __attribute__ ((always_inline)) alt_write_flash_block( - alt_flash_fd* fd, int block_offset, - int data_offset, - const void *data, int length) -{ - - int ret_code; - ret_code = fd->write_block( fd, block_offset, data_offset, data, length ); - - if(!ret_code) - alt_dcache_flush((alt_u8*)fd->base_addr + data_offset, length); - - return ret_code; -} - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_FLASH_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_flash_dev.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_flash_dev.h deleted file mode 100644 index 1c5692e..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_flash_dev.h +++ /dev/null @@ -1,98 +0,0 @@ -#ifndef __ALT_FLASH_DEV_H__ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -/****************************************************************************** -* * -* Alt_flash_dev.h - Generic Flash device interfaces * -* * -* Author PRR * -* * -******************************************************************************/ -#define __ALT_FLASH_DEV_H__ - -#include "alt_flash_types.h" -#include "sys/alt_llist.h" -#include "priv/alt_dev_llist.h" - -#include "alt_types.h" - -typedef struct alt_flash_dev alt_flash_dev; -typedef alt_flash_dev alt_flash_fd; - -static ALT_INLINE int alt_flash_device_register( alt_flash_fd* fd) -{ - extern alt_llist alt_flash_dev_list; - - return alt_dev_llist_insert ((alt_dev_llist*) fd, &alt_flash_dev_list); -} - -typedef alt_flash_dev* (*alt_flash_open)(alt_flash_dev* flash, - const char* name ); -typedef int (*alt_flash_close)(alt_flash_dev* flash_info); - -typedef int (*alt_flash_write)( alt_flash_dev* flash, int offset, - const void* src_addr, int length ); - -typedef int (*alt_flash_get_flash_info)( alt_flash_dev* flash, flash_region** info, - int* number_of_regions); -typedef int (*alt_flash_write_block)( alt_flash_dev* flash, int block_offset, - int data_offset, const void* data, - int length); -typedef int (*alt_flash_erase_block)( alt_flash_dev* flash, int offset); -typedef int (*alt_flash_read)(alt_flash_dev* flash, int offset, - void* dest_addr, int length ); - -struct alt_flash_dev -{ - alt_llist llist; - const char* name; - alt_flash_open open; - alt_flash_close close; - alt_flash_write write; - alt_flash_read read; - alt_flash_get_flash_info get_info; - alt_flash_erase_block erase_block; - alt_flash_write_block write_block; - void* base_addr; - int length; - int number_of_regions; - flash_region region_info[ALT_MAX_NUMBER_OF_FLASH_REGIONS]; -}; - -#endif /* __ALT_FLASH_DEV_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_flash_types.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_flash_types.h deleted file mode 100644 index 10f1f01..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_flash_types.h +++ /dev/null @@ -1,64 +0,0 @@ -#ifndef __ALT_FLASH_TYPES_H__ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -/****************************************************************************** -* * -* Alt_flash_types.h - Some generic types and defines used by the flash code * -* * -* Author PRR * -* * -******************************************************************************/ -#define __ALT_FLASH_TYPES_H__ - -#ifndef ALT_MAX_NUMBER_OF_FLASH_REGIONS -#define ALT_MAX_NUMBER_OF_FLASH_REGIONS 8 -#endif /* ALT_MAX_NUMBER_OF_FLASH_REGIONS */ - -/* - * Description of a single Erase region - */ -typedef struct flash_region -{ - int offset; - int region_size; - int number_of_blocks; - int block_size; -}flash_region; - -#endif /* __ALT_FLASH_TYPES_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_irq.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_irq.h deleted file mode 100644 index 96c010d..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_irq.h +++ /dev/null @@ -1,245 +0,0 @@ -#ifndef __ALT_IRQ_H__ -#define __ALT_IRQ_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* - * alt_irq.h is the Nios II specific implementation of the interrupt controller - * interface. - * - * Nios II includes optional support for an external interrupt controller. - * When an external controller is present, the "Enhanced" interrupt API - * must be used to manage individual interrupts. The enhanced API also - * supports the processor's internal interrupt controller. Certain API - * members are accessible from either the "legacy" or "enhanced" interrpt - * API. - * - * Regardless of which API is in use, this file should be included by - * application code and device drivers that register ISRs or manage interrpts. - */ -#include - -#include "nios2.h" -#include "alt_types.h" -#include "system.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * Macros used by alt_irq_enabled - */ -#define ALT_IRQ_ENABLED 1 -#define ALT_IRQ_DISABLED 0 - -/* - * Number of available interrupts in internal interrupt controller. - */ -#define ALT_NIRQ NIOS2_NIRQ - -/* - * Used by alt_irq_disable_all() and alt_irq_enable_all(). - */ -typedef int alt_irq_context; - -/* ISR Prototype */ -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT -typedef void (*alt_isr_func)(void* isr_context); -#else -typedef void (*alt_isr_func)(void* isr_context, alt_u32 id); -#endif - -/* - * The following protypes and routines are supported by both - * the enhanced and legacy interrupt APIs - */ - -/* - * alt_irq_enabled can be called to determine if the processor's global - * interrupt enable is asserted. The return value is zero if interrupts - * are disabled, and non-zero otherwise. - * - * Whether the internal or external interrupt controller is present, - * individual interrupts may still be disabled. Use the other API to query - * a specific interrupt. - */ -static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enabled (void) -{ - int status; - - NIOS2_READ_STATUS (status); - - return status & NIOS2_STATUS_PIE_MSK; -} - -/* - * alt_irq_disable_all() - * - * This routine inhibits all interrupts by negating the status register PIE - * bit. It returns the previous contents of the CPU status register (IRQ - * context) which can be used to restore the status register PIE bit to its - * state before this routine was called. - */ -static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE - alt_irq_disable_all (void) -{ - alt_irq_context context; - - NIOS2_READ_STATUS (context); - - NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); - - return context; -} - -/* - * alt_irq_enable_all() - * - * Enable all interrupts that were previously disabled by alt_irq_disable_all() - * - * This routine accepts a context to restore the CPU status register PIE bit - * to the state prior to a call to alt_irq_disable_all(). - - * In the case of nested calls to alt_irq_disable_all()/alt_irq_enable_all(), - * this means that alt_irq_enable_all() does not necessarily re-enable - * interrupts. - * - * This routine will perform a read-modify-write sequence to restore only - * status.PIE if the processor is configured with options that add additional - * writeable status register bits. These include the MMU, MPU, the enhanced - * interrupt controller port, and shadow registers. Otherwise, as a performance - * enhancement, status is overwritten with the prior context. - */ -static ALT_INLINE void ALT_ALWAYS_INLINE - alt_irq_enable_all (alt_irq_context context) -{ -#if (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) || (defined NIOS2_EIC_PRESENT) || \ - (defined NIOS2_MMU_PRESENT) || (defined NIOS2_MPU_PRESENT) - alt_irq_context status; - - NIOS2_READ_STATUS (status); - - status &= ~NIOS2_STATUS_PIE_MSK; - status |= (context & NIOS2_STATUS_PIE_MSK); - - NIOS2_WRITE_STATUS (status); -#else - NIOS2_WRITE_STATUS (context); -#endif -} - -/* - * The function alt_irq_init() is defined within the auto-generated file - * alt_sys_init.c. This function calls the initilization macros for all - * interrupt controllers in the system at config time, before any other - * non-interrupt controller driver is initialized. - * - * The "base" parameter is ignored and only present for backwards-compatibility. - * It is recommended that NULL is passed in for the "base" parameter. - */ -extern void alt_irq_init (const void* base); - -/* - * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. - */ -static ALT_INLINE void ALT_ALWAYS_INLINE - alt_irq_cpu_enable_interrupts () -{ - NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK -#if defined(NIOS2_EIC_PRESENT) && (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) - | NIOS2_STATUS_RSIE_MSK -#endif - ); -} - - -/* - * Prototypes for the enhanced interrupt API. - */ -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT -/* - * alt_ic_isr_register() can be used to register an interrupt handler. If the - * function is succesful, then the requested interrupt will be enabled upon - * return. - */ -extern int alt_ic_isr_register(alt_u32 ic_id, - alt_u32 irq, - alt_isr_func isr, - void *isr_context, - void *flags); - -/* - * alt_ic_irq_enable() and alt_ic_irq_disable() enable/disable a specific - * interrupt by using IRQ port and interrupt controller instance. - */ -int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq); -int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq); - - /* - * alt_ic_irq_enabled() indicates whether a specific interrupt, as - * specified by IRQ port and interrupt controller instance is enabled. - */ -alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq); - -#else -/* - * Prototypes for the legacy interrupt API. - */ -#include "priv/alt_legacy_irq.h" -#endif - - -/* - * alt_irq_pending() returns a bit list of the current pending interrupts. - * This is used by alt_irq_handler() to determine which registered interrupt - * handlers should be called. - * - * This routine is only available for the Nios II internal interrupt - * controller. - */ -#ifndef NIOS2_EIC_PRESENT -static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void) -{ - alt_u32 active; - - NIOS2_READ_IPENDING (active); - - return active; -} -#endif - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __ALT_IRQ_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_irq_entry.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_irq_entry.h deleted file mode 100644 index 549811c..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_irq_entry.h +++ /dev/null @@ -1,39 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* - * This file pulls in the IRQ entry assembler and C code, which is only - * required if there are any interruptes in the system. - */ - -__asm__( "\n\t.globl alt_irq_entry" ); - -__asm__( "\n\t.globl alt_irq_handler" ); - diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h deleted file mode 100644 index 1d1f16f..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef __ALT_LICENSE_REMINDER_UCOSII_H__ -#define __ALT_LICENSE_REMINDER_UCOSII_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include - -#define ALT_LICENSE_REMINDER_UCOSII_STRING \ - "============== Software License Reminder ===============\n" \ - "\n" \ - "uC/OS-II is provided in source form for FREE evaluation,\n" \ - "for educational use, or for peaceful research. If you\n" \ - "plan on using uC/OS-II in a commercial product you need\n" \ - "to contact Micrium to properly license its use in your\n" \ - "product. Micrium provides ALL the source code on the\n" \ - "Altera distribution for your convenience and to help you\n" \ - "experience uC/OS-II. The fact that the source is provided\n" \ - "does NOT mean that you can use it without paying a\n" \ - "licensing fee. Please help us continue to provide the\n" \ - "Embedded community with the finest software available.\n" \ - "Your honesty is greatly appreciated.\n" \ - "\n" \ - "Please contact:\n" \ - "\n" \ - "M I C R I U M\n" \ - "949 Crestview Circle\n" \ - "Weston, FL 33327-1848\n" \ - "U.S.A.\n" \ - "\n" \ - "Phone : +1 954 217 2036\n" \ - "FAX : +1 954 217 2037\n" \ - "WEB : www.micrium.com\n" \ - "E-mail: Sales@Micrium.com\n" \ - "\n" \ - "========================================================\n" - -#define alt_license_reminder_ucosii() puts(ALT_LICENSE_REMINDER_UCOSII_STRING) - - -#endif /* __ALT_LICENSE_REMINDER_UCOSII_H__ */ - diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_llist.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_llist.h deleted file mode 100644 index 84cb051..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_llist.h +++ /dev/null @@ -1,123 +0,0 @@ -#ifndef __ALT_LIST_H__ -#define __ALT_LIST_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include "alt_types.h" - -/* - * alt_llist.h defines structures and functions for use in manipulating linked - * lists. A list is considered to be constructed from a chain of objects of - * type alt_llist, with one object being defined to be the head element. - * - * A list is considered to be empty if it only contains the head element. - */ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * alt_llist is the structure used to represent an element within a linked - * list. - */ - -typedef struct alt_llist_s alt_llist; - -struct alt_llist_s { - alt_llist* next; /* Pointer to the next element in the list. */ - alt_llist* previous; /* Pointer to the previous element in the list. */ -}; - -/* - * ALT_LLIST_HEAD is a macro that can be used to create the head of a new - * linked list. This is named "head". The head element is initialised to - * represent an empty list. - */ - -#define ALT_LLIST_HEAD(head) alt_llist head = {&head, &head} - -/* - * ALT_LLIST_ENTRY is a macro used to define an uninitialised linked list - * entry. This is used to reserve space in structure initialisation for - * structures that inherit form alt_llist. - */ - -#define ALT_LLIST_ENTRY {0, 0} - -/* - * alt_llist_insert() insert adds the linked list entry "entry" as the - * first entry in the linked list "list". "list" is the list head element. - */ - -static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, - alt_llist* entry) -{ - entry->previous = list; - entry->next = list->next; - - list->next->previous = entry; - list->next = entry; -} - -/* - * alt_llist_remove() is called to remove an element from a linked list. The - * input argument is the element to remove. - */ - -static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_remove(alt_llist* entry) -{ - entry->next->previous = entry->previous; - entry->previous->next = entry->next; - - /* - * Set the entry to point to itself, so that any further calls to - * alt_llist_remove() are harmless. - */ - - entry->previous = entry; - entry->next = entry; -} - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_LLIST_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_load.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_load.h deleted file mode 100644 index e4c4c46..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_load.h +++ /dev/null @@ -1,78 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "alt_types.h" - -/* - * This macro is used to load code/data from its load address to its - * execution address for a given section. The section name is the input - * argument. Note that a leading '.' is assumed in the name. For example - * to load the section .onchip_ram, use: - * - * ALT_LOAD_SECTION_BY_NAME(onchip_ram); - * - * This requires that the apropriate linker symbols have been generated - * for the section in question. This will be the case if you are using the - * default linker script. - */ - -#define ALT_LOAD_SECTION_BY_NAME(name) \ - { \ - extern void _alt_partition_##name##_start; \ - extern void _alt_partition_##name##_end; \ - extern void _alt_partition_##name##_load_addr; \ - \ - alt_load_section(&_alt_partition_##name##_load_addr, \ - &_alt_partition_##name##_start, \ - &_alt_partition_##name##_end); \ - } - -/* - * Function used to load an individual section from flash to RAM. - * - * There is an implicit assumption here that the linker script will ensure - * that all sections are word aligned. - * - */ - -static void ALT_INLINE alt_load_section (alt_u32* from, - alt_u32* to, - alt_u32* end) -{ - if (to != from) - { - while( to != end ) - { - *to++ = *from++; - } - } -} diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_log_printf.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_log_printf.h deleted file mode 100644 index 9890091..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_log_printf.h +++ /dev/null @@ -1,349 +0,0 @@ -/* alt_log_printf.h - * - * ALT_LOG is designed to provide extra logging/debugging messages from HAL - * through a different port than stdout. It is enabled by the ALT_LOG_ENABLE - * define, which needs to supplied at compile time. When logging is turned off, - * code size is unaffected. Thus, this should be transparent to the user - * when it is not actively turned on, and should not affect projects in any way. - * - * There are macros sprinkled within different components, such as the jtag uart - * and timer, in the HAL code. They are always named ALT_LOG_, and can be - * safely ignored if ALT_LOG is turned off. - * - * To turn on ALT_LOG, ALT_LOG_ENABLE must be defined, and ALT_LOG_PORT_TYPE and - * ALT_LOG_PORT_BASE must be set in system.h. This is done through editing - * .ptf, by editing the alt_log_port_type & alt_log_port_base settings. - * See the documentation html file for examples. - * - * When it is turned on, it will output extra HAL messages to a port specified - * in system.h. This can be a UART or JTAG UART port. By default it will - * output boot messages, detailing every step of the boot process. - * - * Extra logging is designed to be enabled by flags, which are defined in - * alt_log_printf.c. The default value is that all flags are off, so only the - * boot up logging messages show up. ALT_LOG_FLAGS can be set to enable certain - * groupings of flags, and that grouping is done in this file. Each flag can - * also be overridden with a -D at compile time. - * - * This header file includes the necessary prototypes for using the alt_log - * functions. It also contains all the macros that are used to remove the code - * from alt log is turned off. Also, the macros in other HAL files are defined - * here at the bottom. These macros all call some C function that is in - * alt_log_printf.c. - * - * The logging has functions for printing in C (ALT_LOG_PRINTF) and in assembly - * (ALT_LOG_PUTS). This was needed because the assembly printing occurs before - * the device is initialized. The assembly function corrupts register R4-R7, - * which are not used in the normal boot process. For this reason, do not call - * the assembly function in C. - * - * author: gkwan - */ - - -#ifndef __ALT_LOG_PRINTF_H__ -#define __ALT_LOG_PRINTF_H__ - -#include - -/* Global switch to turn on logging functions */ -#ifdef ALT_LOG_ENABLE - - /* ALT_LOG_PORT_TYPE values as defined in system.h. They are defined as - * numbers here first becasue the C preprocessor does not handle string - * comparisons. */ - #define ALTERA_AVALON_JTAG_UART 1 - #define ALTERA_AVALON_UART 0 - - /* If this .h file is included by an assembly file, skip over include files - * that won't compile in assembly. */ - #ifndef ALT_ASM_SRC - #include - #include "sys/alt_alarm.h" - #include "sys/alt_dev.h" - #ifdef __ALTERA_AVALON_JTAG_UART - #include "altera_avalon_jtag_uart.h" - #endif - #endif /* ALT_ASM_SRC */ - - /* These are included for the port register offsets and masks, needed - * to write to the port. Only include if the port type is set correctly, - * otherwise error. If alt_log is turned on and the port to output to is - * incorrect or does not exist, then should exit. */ - #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART - #ifdef __ALTERA_AVALON_JTAG_UART - #include - #else - #error ALT_LOG: JTAG_UART port chosen, but no JTAG_UART in system. - #endif - #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART - #ifdef __ALTERA_AVALON_UART - #include - #else - #error ALT_LOG: UART Port chosen, but no UART in system. - #endif - #else - #error ALT_LOG: alt_log_port_type declaration invalid! - #endif - - /* ALT_LOG_ENABLE turns on the basic printing function */ - #define ALT_LOG_PRINTF(...) do {alt_log_printf_proc(__VA_ARGS__);} while (0) - - /* Assembly macro for printing in assembly, calls tx_log_str - * which is in alt_log_macro.S. - * If alt_log_boot_on_flag is 0, skips the printing */ - #define ALT_LOG_PUTS(str) movhi r4, %hiadj(alt_log_boot_on_flag) ; \ - addi r4, r4, %lo(alt_log_boot_on_flag) ; \ - ldwio r5, 0(r4) ; \ - beq r0, r5, 0f ; \ - movhi r4, %hiadj(str) ; \ - addi r4, r4, %lo(str) ; \ - call tx_log_str ; \ - 0: - - /* These defines are here to faciliate the use of one output function - * (alt_log_txchar) to print to both the JTAG UART or the UART. Depending - * on the port type, the status register, read mask, and output register - * are set to the appropriate value for the port. */ - #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART - #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_JTAG_UART_CONTROL - #define ALT_LOG_PRINT_MSK ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK - #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_JTAG_UART_DATA - #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_JTAG_UART_CONTROL_REG*0x4) - #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_JTAG_UART_DATA_REG*0x4) - #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART - #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_UART_STATUS - #define ALT_LOG_PRINT_MSK ALTERA_AVALON_UART_STATUS_TRDY_MSK - #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_UART_TXDATA - #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_UART_STATUS_REG*0x4) - #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_UART_TXDATA_REG*0x4) - #endif /* ALT_LOG_PORT */ - - /* Grouping of flags via ALT_LOG_FLAGS. Each specific flag can be set via - * -D at compile time, or else they'll be set to a default value according - * to ALT_LOG_FLAGS. ALT_LOG_FLAGS = 0 or not set is the default, where - * only the boot messages will be printed. As ALT_LOG_FLAGS increase, they - * increase in intrusiveness to the program, and will affect performance. - * - * Flag Level 1 - turns on system clock and JTAG UART startup status - * 2 - turns on write echo and JTAG_UART alarm (periodic report) - * 3 - turns on JTAG UART ISR logging - will slow performance - * significantly. - * -1 - All logging output is off, but if ALT_LOG_ENABLE is - * defined all logging function is built and code size - * remains constant - * - * Flag settings - 1 = on, 0 = off. */ - - /* This flag turns on "boot" messages for printing. This includes messages - * during crt0.S, then alt_main, and finally alt_exit. */ - #ifndef ALT_LOG_BOOT_ON_FLAG_SETTING - #if ALT_LOG_FLAGS == 1 - #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == 2 - #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == 3 - #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == -1 /* silent mode */ - #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x0 - #else /* default setting */ - #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 - #endif - #endif /* ALT_LOG_BOOT_ON_FLAG_SETTING */ - - #ifndef ALT_LOG_SYS_CLK_ON_FLAG_SETTING - #if ALT_LOG_FLAGS == 1 - #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == 2 - #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == 3 - #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == -1 /* silent mode */ - #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 - #else /* default setting */ - #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 - #endif - #endif /* ALT_LOG_SYS_CLK_ON_FLAG_SETTING */ - - #ifndef ALT_LOG_WRITE_ON_FLAG_SETTING - #if ALT_LOG_FLAGS == 1 - #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 - #elif ALT_LOG_FLAGS == 2 - #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == 3 - #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == -1 /* silent mode */ - #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 - #else /* default setting */ - #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 - #endif - #endif /* ALT_LOG_WRITE_ON_FLAG_SETTING */ - - #ifndef ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING - #ifndef __ALTERA_AVALON_JTAG_UART - #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 - #elif ALT_LOG_FLAGS == 1 - #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 - #elif ALT_LOG_FLAGS == 2 - #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == 3 - #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == -1 /* silent mode */ - #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 - #else /* default setting */ - #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 - #endif - #endif /* ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING */ - - #ifndef ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING - #ifndef __ALTERA_AVALON_JTAG_UART - #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 - #elif ALT_LOG_FLAGS == 1 - #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == 2 - #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == 3 - #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == -1 /* silent mode */ - #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 - #else /* default setting */ - #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 - #endif - #endif /* ALT_LOG_JTAG_UART_STARTUP_INFO_FLAG_SETTING */ - - #ifndef ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING - #ifndef __ALTERA_AVALON_JTAG_UART - #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 - #elif ALT_LOG_FLAGS == 1 - #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 - #elif ALT_LOG_FLAGS == 2 - #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 - #elif ALT_LOG_FLAGS == 3 - #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == -1 /* silent mode */ - #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 - #else /* default setting */ - #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 - #endif - #endif /* ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING */ - -#ifndef ALT_ASM_SRC - /* Function Prototypes */ - void alt_log_txchar(int c,char *uartBase); - void alt_log_private_printf(const char *fmt,int base,va_list args); - void alt_log_repchar(char c,int r,int base); - int alt_log_printf_proc(const char *fmt, ... ); - void alt_log_system_clock(); - #ifdef __ALTERA_AVALON_JTAG_UART - alt_u32 altera_avalon_jtag_uart_report_log(void * context); - void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base); - void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, \ - int base, const char* header); - void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev); - #endif - void alt_log_write(const void *ptr, size_t len); - - /* extern all global variables */ - extern volatile alt_u32 alt_log_boot_on_flag; - extern volatile alt_u8 alt_log_write_on_flag; - extern volatile alt_u8 alt_log_sys_clk_on_flag; - extern volatile alt_u8 alt_log_jtag_uart_alarm_on_flag; - extern volatile alt_u8 alt_log_jtag_uart_isr_on_flag; - extern volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag; - extern volatile int alt_log_sys_clk_count; - extern volatile int alt_system_clock_in_sec; - extern alt_alarm alt_log_jtag_uart_alarm_1; -#endif /* ALT_ASM_SRC */ - - - /* Below are the MACRO defines used in various HAL files. They check - * if their specific flag is turned on; if it is, then it executes its - * code. - * - * To keep this file reasonable, most of these macros calls functions, - * which are defined in alt_log_printf.c. Look there for implementation - * details. */ - - /* Boot Messages Logging */ - #define ALT_LOG_PRINT_BOOT(...) \ - do { if (alt_log_boot_on_flag==1) {ALT_LOG_PRINTF(__VA_ARGS__);} \ - } while (0) - - /* JTAG UART Logging */ - /* number of ticks before alarm runs logging function */ - #ifndef ALT_LOG_JTAG_UART_TICKS_DIVISOR - #define ALT_LOG_JTAG_UART_TICKS_DIVISOR 10 - #endif - #ifndef ALT_LOG_JTAG_UART_TICKS - #define ALT_LOG_JTAG_UART_TICKS \ - (alt_ticks_per_second()/ALT_LOG_JTAG_UART_TICKS_DIVISOR) - #endif - - /* if there's a JTAG UART defined, then enable these macros */ - #ifdef __ALTERA_AVALON_JTAG_UART - - /* Macro in altera_avalon_jtag_uart.c, to register the alarm function. - * Also, the startup register info is also printed here, as this is - * called within the device driver initialization. */ - #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) \ - do { if (alt_log_jtag_uart_alarm_on_flag==1) { \ - alt_alarm_start(&alt_log_jtag_uart_alarm_1, \ - ALT_LOG_JTAG_UART_TICKS, &altera_avalon_jtag_uart_report_log,\ - dev);} \ - if (alt_log_jtag_uart_startup_info_on_flag==1) {\ - alt_log_jtag_uart_startup_info(dev, base);} \ - } while (0) - - /* JTAG UART IRQ Logging (when buffer is empty) - * Inserted in the ISR in altera_avalon_jtag_uart.c */ - #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) \ - do { alt_log_jtag_uart_isr_proc(base, dev); } while (0) - /* else, define macros to nothing. Or else the jtag_uart specific types - * will throw compiler errors */ - #else - #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) - #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) - #endif - - /* System clock logging - * How often (in seconds) the system clock logging prints. - * The default value is every 1 second */ - #ifndef ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER - #define ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER 1 - #endif - #ifndef ALT_LOG_SYS_CLK_INTERVAL - #define ALT_LOG_SYS_CLK_INTERVAL \ - (alt_ticks_per_second()*ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER) - #endif - - /* System clock logging - prints a message every interval (set above) - * to show that the system clock is alive. - * This macro is used in altera_avalon_timer_sc.c */ - #define ALT_LOG_SYS_CLK_HEARTBEAT() \ - do { alt_log_system_clock(); } while (0) - - /* alt_write_logging - echos a message every time write() is called, - * displays the first ALT_LOG_WRITE_ECHO_LEN characters. - * This macro is used in alt_write.c */ - #ifndef ALT_LOG_WRITE_ECHO_LEN - #define ALT_LOG_WRITE_ECHO_LEN 15 - #endif - - #define ALT_LOG_WRITE_FUNCTION(ptr,len) \ - do { alt_log_write(ptr,len); } while (0) - -#else /* ALT_LOG_ENABLE not defined */ - - /* logging is off, set all relevant macros to null */ - #define ALT_LOG_PRINT_BOOT(...) - #define ALT_LOG_PRINTF(...) - #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) - #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) - #define ALT_LOG_SYS_CLK_HEARTBEAT() - #define ALT_LOG_PUTS(str) - #define ALT_LOG_WRITE_FUNCTION(ptr,len) - -#endif /* ALT_LOG_ENABLE */ - -#endif /* __ALT_LOG_PRINTF_H__ */ - diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_set_args.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_set_args.h deleted file mode 100644 index a9372c5..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_set_args.h +++ /dev/null @@ -1,71 +0,0 @@ -#ifndef __ALT_SET_ARGS_H__ -#define __ALT_SET_ARGS_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * The function alt_set_args() is provided in order to define the input - * arguments to main(). If this function is not called before main() then the - * argument list passed to main() will be empty. - * - * It is expected that this function will only be used by the ihost/iclient - * utility. - */ - -static inline void alt_set_args (int argc, char** argv, char** envp) -{ - extern int alt_argc; - extern char** alt_argv; - extern char** alt_envp; - - alt_argc = argc; - alt_argv = argv; - alt_envp = envp; -} - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_SET_ARGS_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_sim.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_sim.h deleted file mode 100644 index 63afad9..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_sim.h +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef __ALT_SIM_H__ -#define __ALT_SIM_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ -#include "system.h" -#include "alt_types.h" - -/* - * Instructions that might mean something special to a simulator. - * These have no special effect on real hardware (they are just nops). - */ -#define ALT_SIM_FAIL() \ - do { __asm volatile ("cmpltui r0, r0, 0xabc1"); } while (0) - -#define ALT_SIM_PASS() \ - do { __asm volatile ("cmpltui r0, r0, 0xabc2"); } while (0) - -#define ALT_SIM_IN_TOP_OF_HOT_LOOP() \ - do { __asm volatile ("cmpltui r0, r0, 0xabc3"); } while (0) - -/* - * Routine called on exit. - */ -static ALT_ALWAYS_INLINE void alt_sim_halt(int exit_code) -{ - int r2 = exit_code; - -#if defined(NIOS2_HAS_DEBUG_STUB) && (defined(ALT_BREAK_ON_EXIT) || defined(ALT_PROVIDE_GMON)) - - int r3 = (1 << 2); - -#ifdef ALT_PROVIDE_GMON - extern unsigned int alt_gmon_data[]; - int r4 = (int)alt_gmon_data; - r3 |= (1 << 4); -#define ALT_GMON_DATA ,"D04"(r4) -#else -#define ALT_GMON_DATA -#endif /* ALT_PROVIDE_GMON */ - - if (r2) { - ALT_SIM_FAIL(); - } else { - ALT_SIM_PASS(); - } - - __asm__ volatile ("\n0:\n\taddi %0,%0, -1\n\tbgt %0,zero,0b" : : "r" (ALT_CPU_FREQ/100) ); /* Delay for >30ms */ - - __asm__ volatile ("break 2" : : "D02"(r2), "D03"(r3) ALT_GMON_DATA ); - -#else /* !DEBUG_STUB */ - if (r2) { - ALT_SIM_FAIL(); - } else { - ALT_SIM_PASS(); - } -#endif /* DEBUG_STUB */ -} - -#define ALT_SIM_HALT(exit_code) \ - alt_sim_halt(exit_code) - -#endif /* __ALT_SIM_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_stack.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_stack.h deleted file mode 100644 index ebcad7a..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_stack.h +++ /dev/null @@ -1,126 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#ifndef __ALT_STACK_H__ -#define __ALT_STACK_H__ - -/* - * alt_stack.h is the nios2 specific implementation of functions used by the - * stack overflow code. - */ - -#include "nios2.h" - -#include "alt_types.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - - -extern char * alt_stack_limit_value; - -#ifdef ALT_EXCEPTION_STACK -extern char __alt_exception_stack_pointer[]; /* set by the linker */ -#endif /* ALT_EXCEPTION_STACK */ - - -/* - * alt_stack_limit can be called to determine the current value of the stack - * limit register. - */ - -static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_limit (void) -{ - char * limit; - NIOS2_READ_ET(limit); - - return limit; -} - -/* - * alt_stack_pointer can be called to determine the current value of the stack - * pointer register. - */ - -static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_pointer (void) -{ - char * pointer; - NIOS2_READ_SP(pointer); - - return pointer; -} - - -#ifdef ALT_EXCEPTION_STACK - -/* - * alt_exception_stack_pointer returns the normal stack pointer from - * where it is stored on the exception stack (uppermost 4 bytes). This - * is really only useful during exception processing, and is only - * available if a separate exception stack has been configured. - */ - -static ALT_INLINE char * ALT_ALWAYS_INLINE alt_exception_stack_pointer (void) -{ - return (char *) *(alt_u32 *)(__alt_exception_stack_pointer - sizeof(alt_u32)); -} - -#endif /* ALT_EXCEPTION_STACK */ - - -/* - * alt_set_stack_limit can be called to update the current value of the stack - * limit register. - */ - -static ALT_INLINE void ALT_ALWAYS_INLINE alt_set_stack_limit (char * limit) -{ - alt_stack_limit_value = limit; - NIOS2_WRITE_ET(limit); -} - -/* - * alt_report_stack_overflow reports that a stack overflow happened. - */ - -static ALT_INLINE void ALT_ALWAYS_INLINE alt_report_stack_overflow (void) -{ - NIOS2_REPORT_STACK_OVERFLOW(); -} - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __ALT_STACK_H__ */ - diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_stdio.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_stdio.h deleted file mode 100644 index 7ae05d4..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_stdio.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef __ALT_STDIO_H__ -#define __ALT_STDIO_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -/* - * Definitions for ALT stdio routines. - */ - -#include - - -#ifdef __cplusplus -extern "C" { -#endif - -int alt_getchar(); -int alt_putchar(int c); -int alt_putstr(const char* str); -void alt_printf(const char *fmt, ...); - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_STDIO_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_sys_init.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_sys_init.h deleted file mode 100644 index 3b18059..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_sys_init.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef __ALT_SYS_INIT_H__ -#define __ALT_SYS_INIT_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * The function alt_sys_init() is defined within the auto-generated file: - * alt_sys_init.c. This function calls the initilisation macros for all - * devices, file systems, and software components within the system. - * - * The list of initilisation macros to use is constructed using the PTF and - * STF files associated with the system. - */ - -extern void alt_sys_init (void); - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_SYS_INIT_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_sys_wrappers.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_sys_wrappers.h deleted file mode 100644 index eea552d..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_sys_wrappers.h +++ /dev/null @@ -1,100 +0,0 @@ -#ifndef __ALT_SYS_WRAPPERS_H__ -#define __ALT_SYS_WRAPPERS_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* - * This file provides the prototypes for the HAL 'UNIX style functions. The - * names of these functions are defined in alt_syscall.h. THese are defined to - * be the standard names when running the standalone HAL, e.g. open(), close() - * etc., but the names may be redefined as a part of an operating system port - * in order to avoid name clashes. - */ - -#include "os/alt_syscall.h" - -#include -#include -#include -#include -#include -#include - -extern int ALT_CLOSE (int __fd); -extern int ALT_EXECVE (const char *__path, - char * const __argv[], - char * const __envp[]); -extern void ALT_EXIT (int __status); -extern int ALT_FSTAT (int file, struct stat *st); -extern int ALT_FCNTL (int file, int cmd, ...); -extern pid_t ALT_FORK (void); -extern pid_t ALT_GETPID (void); - -#if defined (__GNUC__) && __GNUC__ >= 4 -extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, - void *ptimezone); -#else -extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, - struct timezone *ptimezone); -#endif - -extern int ALT_IOCTL (int file, int req, void* arg); -extern int ALT_ISATTY (int file); -extern int ALT_KILL (int pid, int sig); -extern int ALT_LINK (const char *existing, const char *new); -extern off_t ALT_LSEEK (int file, off_t ptr, int dir); -extern int ALT_OPEN (const char* file, int flags, ...); -extern int ALT_READ (int file, void *ptr, size_t len); -extern int ALT_RENAME (char *existing, char *new); -extern void* ALT_SBRK (ptrdiff_t incr); -extern int ALT_SETTIMEOFDAY (const struct timeval *t, - const struct timezone *tz); -extern int ALT_STAT (const char *file, struct stat *st); -extern clock_t ALT_TIMES (struct tms *buf); -extern int ALT_UNLINK (const char *name); - -#if defined (__GNUC__) && __GNUC__ >= 4 -int ALT_USLEEP (useconds_t us); -#else -unsigned int ALT_USLEEP (unsigned int us); -#endif - -extern int ALT_WAIT (int *status); -extern int ALT_WRITE (int file, const void *ptr, size_t len); - - -extern char** ALT_ENVIRON; - -/* - * - */ - -#endif /* __ALT_SYS_WRAPPERS_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_timestamp.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_timestamp.h deleted file mode 100644 index ec704ba..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_timestamp.h +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef __ALT_TIMESTAMP_H__ -#define __ALT_TIMESTAMP_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include "alt_types.h" -#include "altera_avalon_timer.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -extern int alt_timestamp_start (void); - -extern alt_timestamp_type alt_timestamp (void); - -extern alt_u32 alt_timestamp_freq (void); - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_TIMESTAMP_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_warning.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_warning.h deleted file mode 100644 index 01318bd..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/alt_warning.h +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef __WARNING_H__ -#define __WARNING_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* - * alt_warning.h provides macro definitions that can be used to generate link - * time warnings. - */ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * The symbol "__alt_invalid" is used to force a link error. There should be - * no corresponding implementation of this function. - */ - -extern void __alt_invalid (void); - -#define ALT_LINK_WARNING(symbol, msg) \ - __asm__(".ifndef __evoke_link_warning_" #symbol \ - "\n\t .section .gnu.warning." #symbol \ - "\n__evoke_link_warning_" #symbol ":\n\t .string \x22" msg "\x22 \n\t .previous" \ - "\n .endif"); - -/* A canned warning for sysdeps/stub functions. */ - -#define ALT_STUB_WARNING(name) \ - ALT_LINK_WARNING (name, \ - "warning: " #name " is not implemented and will always fail") - -#define ALT_OBSOLETE_FUNCTION_WARNING(name) \ - ALT_LINK_WARNING (name, \ - "warning: " #name " is a deprecated function") - -#define ALT_LINK_ERROR(msg) \ - ALT_LINK_WARNING (__alt_invalid, msg); \ - __alt_invalid() - -#ifdef __cplusplus -} -#endif - -#endif /* __WARNING_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/ioctl.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/ioctl.h deleted file mode 100644 index 453283b..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/ioctl.h +++ /dev/null @@ -1,90 +0,0 @@ -#ifndef __IOCTL_H__ -#define __IOCTL_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * The ioctl() system call be used to initiate a variety of control operations - * on a file descriptor. For the most part this simply translates to a call to - * the ioctl() function of the associated device driver (TIOCEXCL and - * TIOCNXCL are notable exceptions - see ioctl.c for details). - * - * The interpretation of the ioctl requests are therefore device specific. - * - * This function is equivalent to the standard Posix ioctl() call. - */ - -extern int ioctl (int fd, int req, void* arg); - -/* - * list of ioctl calls handled by the system ioctl implementation. - */ - -#define TIOCEXCL 0x740d /* exclusive use of the device */ -#define TIOCNXCL 0x740e /* allow multiple use of the device */ - -/* - * ioctl calls which can be handled by device drivers. - */ - -#define TIOCOUTQ 0x7472 /* get output queue size */ -#define TIOCMGET 0x741d /* get termios flags */ -#define TIOCMSET 0x741a /* set termios flags */ - -/* - * ioctl calls specific to JTAG UART. - */ - -#define TIOCSTIMEOUT 0x6a01 /* Set Timeout before assuming no host present */ -#define TIOCGCONNECTED 0x6a02 /* Get indication of whether host is connected */ - -/* - * - */ - -#ifdef __cplusplus -} -#endif - -#endif /* __IOCTL_H__ */ diff --git a/software/DE2_115_ASM_bsp/HAL/inc/sys/termios.h b/software/DE2_115_ASM_bsp/HAL/inc/sys/termios.h deleted file mode 100644 index d271387..0000000 --- a/software/DE2_115_ASM_bsp/HAL/inc/sys/termios.h +++ /dev/null @@ -1,181 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -/* - * This is the termios.h file provided with newlib. The only modification has - * been to the baud rate macro definitions, and an increase in the size of the - * termios structure to accomodate this. - */ - - -#ifndef _SYS_TERMIOS_H -# define _SYS_TERMIOS_H - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -# define _XCGETA (('x'<<8)|1) -# define _XCSETA (('x'<<8)|2) -# define _XCSETAW (('x'<<8)|3) -# define _XCSETAF (('x'<<8)|4) -# define _TCSBRK (('T'<<8)|5) -# define _TCFLSH (('T'<<8)|7) -# define _TCXONC (('T'<<8)|6) - -# define TCOOFF 0 -# define TCOON 1 -# define TCIOFF 2 -# define TCION 3 - -# define TCIFLUSH 0 -# define TCOFLUSH 1 -# define TCIOFLUSH 2 - -# define NCCS 13 - -# define TCSAFLUSH _XCSETAF -# define TCSANOW _XCSETA -# define TCSADRAIN _XCSETAW -# define TCSADFLUSH _XCSETAF - -# define IGNBRK 000001 -# define BRKINT 000002 -# define IGNPAR 000004 -# define INPCK 000020 -# define ISTRIP 000040 -# define INLCR 000100 -# define IGNCR 000200 -# define ICRNL 000400 -# define IXON 002000 -# define IXOFF 010000 - -# define OPOST 000001 -# define OCRNL 000004 -# define ONLCR 000010 -# define ONOCR 000020 -# define TAB3 014000 - -# define CLOCAL 004000 -# define CREAD 000200 -# define CSIZE 000060 -# define CS5 0 -# define CS6 020 -# define CS7 040 -# define CS8 060 -# define CSTOPB 000100 -# define HUPCL 002000 -# define PARENB 000400 -# define PAODD 001000 - -#define CCTS_OFLOW 010000 -#define CRTS_IFLOW 020000 -#define CRTSCTS (CCTS_OFLOW | CRTS_IFLOW) - -# define ECHO 0000010 -# define ECHOE 0000020 -# define ECHOK 0000040 -# define ECHONL 0000100 -# define ICANON 0000002 -# define IEXTEN 0000400 /* anybody know *what* this does?! */ -# define ISIG 0000001 -# define NOFLSH 0000200 -# define TOSTOP 0001000 - -# define VEOF 4 /* also VMIN -- thanks, AT&T */ -# define VEOL 5 /* also VTIME -- thanks again */ -# define VERASE 2 -# define VINTR 0 -# define VKILL 3 -# define VMIN 4 /* also VEOF */ -# define VQUIT 1 -# define VSUSP 10 -# define VTIME 5 /* also VEOL */ -# define VSTART 11 -# define VSTOP 12 - -# define B0 0 -# define B50 50 -# define B75 75 -# define B110 110 -# define B134 134 -# define B150 150 -# define B200 200 -# define B300 300 -# define B600 600 -# define B1200 1200 -# define B1800 1800 -# define B2400 2400 -# define B4800 4800 -# define B9600 9600 -# define B19200 19200 -# define B38400 38400 -# define B57600 57600 -# define B115200 115200 - -typedef unsigned char cc_t; -typedef unsigned short tcflag_t; -typedef unsigned long speed_t; - -struct termios { - tcflag_t c_iflag; - tcflag_t c_oflag; - tcflag_t c_cflag; - tcflag_t c_lflag; - char c_line; - cc_t c_cc[NCCS]; - speed_t c_ispeed; - speed_t c_ospeed; -}; - -# ifndef _NO_MACROS - -# define cfgetospeed(tp) ((tp)->c_ospeed) -# define cfgetispeed(tp) ((tp)->c_ispeed) -# define cfsetospeed(tp,s) (((tp)->c_ospeed = (s)), 0) -# define cfsetispeed(tp,s) (((tp)->c_ispeed = (s)), 0) -# define tcdrain(fd) _ioctl (fd, _TCSBRK, 1) -# endif /* _NO_MACROS */ - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_TERMIOS_H */ - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_alarm_start.c b/software/DE2_115_ASM_bsp/HAL/src/alt_alarm_start.c deleted file mode 100644 index 2bd672f..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_alarm_start.c +++ /dev/null @@ -1,112 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#include "sys/alt_alarm.h" -#include "sys/alt_irq.h" - -/* - * alt_alarm_start is called to register an alarm with the system. The - * "alarm" structure passed as an input argument does not need to be - * initialised by the user. This is done within this function. - * - * The remaining input arguments are: - * - * nticks - The time to elapse until the alarm executes. This is specified in - * system clock ticks. - * callback - The function to run when the indicated time has elapsed. - * context - An opaque value, passed to the callback function. -* - * Care should be taken when defining the callback function since it is - * likely to execute in interrupt context. In particular, this mean that - * library calls like printf() should not be made, since they can result in - * deadlock. - * - * The interval to be used for the next callback is the return - * value from the callback function. A return value of zero indicates that the - * alarm should be unregistered. - * - * alt_alarm_start() will fail if the timer facility has not been enabled - * (i.e. there is no system clock). Failure is indicated by a negative return - * value. - */ - -int alt_alarm_start (alt_alarm* alarm, alt_u32 nticks, - alt_u32 (*callback) (void* context), - void* context) -{ - alt_irq_context irq_context; - alt_u32 current_nticks = 0; - - if (alt_ticks_per_second ()) - { - if (alarm) - { - alarm->callback = callback; - alarm->context = context; - - irq_context = alt_irq_disable_all (); - - current_nticks = alt_nticks(); - - alarm->time = nticks + current_nticks + 1; - - /* - * If the desired alarm time causes a roll-over, set the rollover - * flag. This will prevent the subsequent tick event from causing - * an alarm too early. - */ - if(alarm->time < current_nticks) - { - alarm->rollover = 1; - } - else - { - alarm->rollover = 0; - } - - alt_llist_insert (&alt_alarm_list, &alarm->llist); - alt_irq_enable_all (irq_context); - - return 0; - } - else - { - return -EINVAL; - } - } - else - { - return -ENOTSUP; - } -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_busy_sleep.c b/software/DE2_115_ASM_bsp/HAL/src/alt_busy_sleep.c deleted file mode 100644 index 1b910a5..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_busy_sleep.c +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. - * All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * ------------ - * - * Altera does not recommend, suggest or require that this reference design - * file be used in conjunction or combination with any other product. - * - * alt_busy_sleep.c - Microsecond delay routine which uses a calibrated busy - * loop to perform the delay. This is used to implement - * usleep for both uC/OS-II and the standalone HAL. - * - * Author PRR - * - * Calibrated delay with no timer required - * - * The ASM instructions in the routine are equivalent to - * - * for (i=0;i -#include - -#include "system.h" -#include "alt_types.h" - -#include "priv/alt_busy_sleep.h" - -unsigned int alt_busy_sleep (unsigned int us) -{ -/* - * Only delay if ALT_SIM_OPTIMIZE is not defined; i.e., if software - * is built targetting ModelSim RTL simulation, the delay will be - * skipped to speed up simulation. - */ -#ifndef ALT_SIM_OPTIMIZE - int i; - int big_loops; - alt_u32 cycles_per_loop; - - if (!strcmp(NIOS2_CPU_IMPLEMENTATION,"tiny")) - { - cycles_per_loop = 9; - } - else - { - cycles_per_loop = 3; - } - - - big_loops = us / (INT_MAX/ - (ALT_CPU_FREQ/(cycles_per_loop * 1000000))); - - if (big_loops) - { - for(i=0;i - -#include "sys/alt_errno.h" -#include "sys/alt_warning.h" -#include "priv/alt_file.h" -#include "os/alt_syscall.h" - -#ifdef ALT_USE_DIRECT_DRIVERS - -int ALT_CLOSE (int fildes) -{ - /* Generate a link time warning, should this function ever be called. */ - - ALT_STUB_WARNING(close); - - /* Indicate an error */ - - ALT_ERRNO = ENOSYS; - return -1; -} - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -/* - * close() is called by an application to release a file descriptor. If the - * associated file system/device has a close() callback function registered - * then this called. The file descriptor is then marked as free. - * - * ALT_CLOSE is mapped onto the close() system call in alt_syscall.h - */ - -int ALT_CLOSE (int fildes) -{ - alt_fd* fd; - int rval; - - /* - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (fildes < 0) ? NULL : &alt_fd_list[fildes]; - - if (fd) - { - /* - * If the associated file system/device has a close function, call it so - * that any necessary cleanup code can run. - */ - - rval = (fd->dev->close) ? fd->dev->close(fd) : 0; - - /* Free the file descriptor structure and return. */ - - alt_release_fd (fildes); - if (rval < 0) - { - ALT_ERRNO = -rval; - return -1; - } - return 0; - } - else - { - ALT_ERRNO = EBADFD; - return -1; - } -} - -#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_dcache_flush.c b/software/DE2_115_ASM_bsp/HAL/src/alt_dcache_flush.c deleted file mode 100644 index 8afe062..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_dcache_flush.c +++ /dev/null @@ -1,97 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "nios2.h" -#include "system.h" - -#include "alt_types.h" -#include "sys/alt_cache.h" - -/* - * Nios II version 1.2 and newer supports the "flush by address" instruction, in - * addition to the "flush by line" instruction provided by older versions of - * the core. This newer instruction is used by preference when it is - * available. - */ - -#ifdef NIOS2_FLUSHDA_SUPPORTED -#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushda (%0)" :: "r" (i)); -#else -#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushd (%0)" :: "r" (i)); -#endif /* NIOS2_FLUSHDA_SUPPORTED */ - -/* - * alt_dcache_flush() is called to flush the data cache for a memory - * region of length "len" bytes, starting at address "start". - * - * Any dirty lines in the data cache are written back to memory. - */ - -void alt_dcache_flush (void* start, alt_u32 len) -{ -#if NIOS2_DCACHE_SIZE > 0 - - char* i; - char* end; - - /* - * This is the most we would ever need to flush. - * - * SPR 196942, 2006.01.13: The cache flush loop below will use the - * 'flushda' instruction if its available; in that case each line - * must be flushed individually, and thus 'len' cannot be trimmed. - */ - #ifndef NIOS2_FLUSHDA_SUPPORTED - if (len > NIOS2_DCACHE_SIZE) - { - len = NIOS2_DCACHE_SIZE; - } - #endif - - end = ((char*) start) + len; - - for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) - { - ALT_FLUSH_DATA(i); - } - - /* - * For an unaligned flush request, we've got one more line left. - * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a - * multiple of 2 (which it always is). - */ - - if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) - { - ALT_FLUSH_DATA(i); - } - -#endif /* NIOS2_DCACHE_SIZE > 0 */ -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_dcache_flush_all.c b/software/DE2_115_ASM_bsp/HAL/src/alt_dcache_flush_all.c deleted file mode 100644 index 80735b7..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_dcache_flush_all.c +++ /dev/null @@ -1,51 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "nios2.h" -#include "system.h" - -#include "alt_types.h" -#include "sys/alt_cache.h" - -/* - * alt_dcache_flush_all() is called to flush the entire data cache. - */ - -void alt_dcache_flush_all (void) -{ -#if NIOS2_DCACHE_SIZE > 0 - char* i; - - for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) - { - __asm__ volatile ("flushd (%0)" :: "r" (i)); - } -#endif /* NIOS2_DCACHE_SIZE > 0 */ -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_dcache_flush_no_writeback.c b/software/DE2_115_ASM_bsp/HAL/src/alt_dcache_flush_no_writeback.c deleted file mode 100644 index 3b277d2..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_dcache_flush_no_writeback.c +++ /dev/null @@ -1,88 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "nios2.h" -#include "system.h" - -#include "alt_types.h" -#include "sys/alt_cache.h" - -/* - * The INITDA instruction was added to Nios II in the 8.0 release. - * - * The INITDA instruction has one of the following possible behaviors - * depending on the processor configuration: - * 1) Flushes a line by address but does NOT write back dirty data. - * Occurs when a data cache is present that supports INITDA. - * The macro NIOS2_INITDA_SUPPORTED is defined in system.h. - * 2) Takes an unimplemented instruction exception. - * Occurs when a data cache is present that doesn't support INITDA. - * 3) Performs no operation - * Occurs when there is no data cache present. - * The macro NIOS2_DCACHE_SIZE is 0 in system.h. - */ - -#define ALT_FLUSH_DATA_NO_WRITEBACK(i) \ - __asm__ volatile ("initda (%0)" :: "r" (i)); - -/* - * alt_dcache_flush_no_writeback() is called to flush the data cache for a - * memory region of length "len" bytes, starting at address "start". - * - * Any dirty lines in the data cache are NOT written back to memory. - * Make sure you really want this behavior. If you aren't 100% sure, - * use the alt_dcache_flush() routine instead. - */ - -void alt_dcache_flush_no_writeback (void* start, alt_u32 len) -{ -#if defined(NIOS2_INITDA_SUPPORTED) - - char* i; - char* end = ((char*) start) + len; - - for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) - { - ALT_FLUSH_DATA_NO_WRITEBACK(i); - } - - /* - * For an unaligned flush request, we've got one more line left. - * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a - * multiple of 2 (which it always is). - */ - - if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) - { - ALT_FLUSH_DATA_NO_WRITEBACK(i); - } - -#endif /* NIOS2_INITDA_SUPPORTED */ -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_dev.c b/software/DE2_115_ASM_bsp/HAL/src/alt_dev.c deleted file mode 100644 index 92f3f2a..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_dev.c +++ /dev/null @@ -1,149 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include -#include -#include -#include - -#include "sys/alt_dev.h" -#include "priv/alt_file.h" - -#include "alt_types.h" - -#include "system.h" - -/* - * This file contains the data constructs used to control access to device and - * filesytems. - */ - -/* - * "alt_fs_list" is the head of a linked list of registered filesystems. It is - * initialised as an empty list. New entries can be added using the - * alt_fs_reg() function. - */ - -ALT_LLIST_HEAD(alt_fs_list); - - -/* - * "alt_dev_list" is the head of a linked list of registered devices. It is - * configured at startup to include a single device, "alt_dev_null". This - * device is discussed below. - */ - -extern alt_dev alt_dev_null; /* forward declaration */ - -alt_llist alt_dev_list = {&alt_dev_null.llist, &alt_dev_null.llist}; - -/* - * alt_dev_null_write() is the implementation of the write() function used - * by the alt_dev_null device. It simple discards all data passed to it, and - * indicates that the data has been successfully transmitted. - */ - -static int alt_dev_null_write (alt_fd* fd, const char* ptr, int len) -{ - return len; -} - -/* - * "alt_dev_null" is used to allow output to be redirected to nowhere. It is - * the only device registered before the call to alt_sys_init(). At startup - * stin, stdout & stderr are all directed towards this device so that library - * calls like printf() will be safe but inefectual. - */ - -alt_dev alt_dev_null = { - { - &alt_dev_list, - &alt_dev_list - }, - "/dev/null", - NULL, /* open */ - NULL, /* close */ - NULL, /* write */ - alt_dev_null_write, /* write */ - NULL, /* lseek */ - NULL, /* fstat */ - NULL /* ioctl */ - }; - -/* - * "alt_fd_list_lock" is a semaphore used to control access to the file - * descriptor list. This is used to ensure that access to the list is thread - * safe. - */ - -ALT_SEM(alt_fd_list_lock) - -/* - * "alt_max_fd" is used to make access to the file descriptor list more - * efficent. It is set to be the value of the highest allocated file - * descriptor. This saves having to search the entire pool of unallocated - * file descriptors when looking for a match. - */ - -alt_32 alt_max_fd = -1; - -/* - * "alt_fd_list" is the file descriptor pool. The first three entries in the - * array are configured as standard in, standard out, and standard error. These - * are all initialised so that accesses are directed to the alt_dev_null - * device. The remaining file descriptors are initialised as unallocated. - * - * The maximum number of file descriptors within the system is specified by the - * user defined macro "ALT_MAX_FD". This is defined in "system.h", which is - * auto-genereated using the projects PTF and STF files. - */ - -alt_fd alt_fd_list[ALT_MAX_FD] = - { - { - &alt_dev_null, /* standard in */ - 0, - 0 - }, - { - &alt_dev_null, /* standard out */ - 0, - 0 - }, - { - &alt_dev_null, /* standard error */ - 0, - 0 - } - /* all other elements are set to zero */ - }; diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_dev_llist_insert.c b/software/DE2_115_ASM_bsp/HAL/src/alt_dev_llist_insert.c deleted file mode 100644 index 5e8a952..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_dev_llist_insert.c +++ /dev/null @@ -1,59 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "priv/alt_dev_llist.h" -#include "sys/alt_errno.h" - -/* - * - */ - -int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list) -{ - /* - * check that the device exists, and that it has a valid name. - */ - - if (!dev || !dev->name) - { - ALT_ERRNO = EINVAL; - return -EINVAL; - } - - /* - * register the device. - */ - - alt_llist_insert(list, &dev->llist); - - return 0; -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_dma_rxchan_open.c b/software/DE2_115_ASM_bsp/HAL/src/alt_dma_rxchan_open.c deleted file mode 100644 index 5d461d9..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_dma_rxchan_open.c +++ /dev/null @@ -1,63 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_dma.h" -#include "sys/alt_errno.h" -#include "priv/alt_file.h" - -/* - * The list of registered DMA receive channels. - */ - -ALT_LLIST_HEAD(alt_dma_rxchan_list); - -/* - * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for - * a DMA transmit device. The name is the name of the associated physical - * device (e.g. "/dev/dma_0"). - * - * The return value will be NULL on failure, and non-NULL otherwise. - */ - -alt_dma_rxchan alt_dma_rxchan_open (const char* name) -{ - alt_dma_rxchan dev; - - dev = (alt_dma_rxchan) alt_find_dev (name, &alt_dma_rxchan_list); - - if (!dev) - { - ALT_ERRNO = ENODEV; - } - - return dev; -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_dma_txchan_open.c b/software/DE2_115_ASM_bsp/HAL/src/alt_dma_txchan_open.c deleted file mode 100644 index 99f9181..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_dma_txchan_open.c +++ /dev/null @@ -1,63 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_dma.h" -#include "sys/alt_errno.h" -#include "priv/alt_file.h" - -/* - * The list of registered receive channels. - */ - -ALT_LLIST_HEAD(alt_dma_txchan_list); - -/* - * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for - * a DMA transmit device. The name is the name of the associated physical - * device (e.g. "/dev/dma_0"). - * - * The return value will be NULL on failure, and non-NULL otherwise. - */ - -alt_dma_txchan alt_dma_txchan_open (const char* name) -{ - alt_dma_txchan dev; - - dev = (alt_dma_txchan) alt_find_dev (name, &alt_dma_txchan_list); - - if (!dev) - { - ALT_ERRNO = ENODEV; - } - - return dev; -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_do_ctors.c b/software/DE2_115_ASM_bsp/HAL/src/alt_do_ctors.c deleted file mode 100644 index be1c134..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_do_ctors.c +++ /dev/null @@ -1,64 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * -* * -* Overriding HAL Functions * -* * -* To provide your own implementation of a HAL function, include the file in * -* your Nios II IDE application project. When building the executable, the * -* Nios II IDE finds your function first, and uses it in place of the HAL * -* version. * -* * -******************************************************************************/ - -/* - * - */ - -typedef void (*constructor) (void); -extern constructor __CTOR_LIST__[]; -extern constructor __CTOR_END__[]; - -/* - * Run the C++ static constructors. - */ - -void _do_ctors(void) -{ - constructor* ctor; - - for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--) - (*ctor) (); -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_do_dtors.c b/software/DE2_115_ASM_bsp/HAL/src/alt_do_dtors.c deleted file mode 100644 index b61166a..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_do_dtors.c +++ /dev/null @@ -1,64 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * -* * -* Overriding HAL Functions * -* * -* To provide your own implementation of a HAL function, include the file in * -* your Nios II IDE application project. When building the executable, the * -* Nios II IDE finds your function first, and uses it in place of the HAL * -* version. * -* * -******************************************************************************/ - -/* - * - */ - -typedef void (*destructor) (void); -extern destructor __DTOR_LIST__[]; -extern destructor __DTOR_END__[]; - -/* - * Run the C++ static destructors. - */ - -void _do_dtors(void) -{ - destructor* dtor; - - for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--) - (*dtor) (); -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_env_lock.c b/software/DE2_115_ASM_bsp/HAL/src/alt_env_lock.c deleted file mode 100644 index 0c5d522..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_env_lock.c +++ /dev/null @@ -1,53 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -/* - * These are the empty env lock/unlock stubs required by newlib. These are - * used to make accesses to environment variables thread safe. The default HAL - * configuration is single threaded, so there is nothing to do here. Note that - * this requires that environment variables are never manipulated by an interrupt - * service routine. - */ - -void __env_lock ( struct _reent *_r ) -{ -} - -/* - * - */ - -void __env_unlock ( struct _reent *_r ) -{ -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_environ.c b/software/DE2_115_ASM_bsp/HAL/src/alt_environ.c deleted file mode 100644 index 780635a..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_environ.c +++ /dev/null @@ -1,42 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "os/alt_syscall.h" - -/* - * These are the environment variables passed to the C code. By default there - * are no variables registered. An application can manipulate this list using - * getenv() and setenv(). - */ - -char *__env[1] = { 0 }; -char **ALT_ENVIRON = __env; diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_errno.c b/software/DE2_115_ASM_bsp/HAL/src/alt_errno.c deleted file mode 100644 index 4c5ca3e..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_errno.c +++ /dev/null @@ -1,44 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/* - * This file defines the alt_errno global variable. See comments in - * alt_errno.h for the use of this variable. - */ - - -#include "sys/alt_errno.h" -#include "alt_types.h" - -extern int ALT_WEAK *__errno (void); - -int* (*alt_errno) (void) = __errno; diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_exception_entry.S b/software/DE2_115_ASM_bsp/HAL/src/alt_exception_entry.S deleted file mode 100644 index 486465b..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_exception_entry.S +++ /dev/null @@ -1,360 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003-2008 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "system.h" - -/* - * This is the exception entry point code, which saves all the caller saved - * registers and then handles the appropriate exception. It should be pulled - * in using a .globl from all the exception handler routines. This scheme is - * used so that if an interrupt is never registered, then this code will not - * appear in the generated executable, thereby improving code footprint. - * - * If an external interrpt controller (EIC) is present, it will supply an - * interrupt vector address to the processor when an interrupt occurs. For - * The Altera Vectored Interrupt Controller (VIC) driver will establish a - * vector table and the processor will jump directly to the appropriate - * table entry, funnel routine, and then user ISR. This will bypass this code - * in entirety. This code might still be linked into a system with an EIC, - * but would then be used only for non-interrupt exceptions. - */ - - /* - * Explicitly allow the use of r1 (the assembler temporary register) - * within this code. This register is normally reserved for the use of - * the assembler. - */ - .set noat - - /* - * The top and bottom of the exception stack - */ -#ifdef ALT_EXCEPTION_STACK - - .globl __alt_exception_stack_pointer - -#ifdef ALT_STACK_CHECK - - .globl __alt_exception_stack_limit - - /* - * We need to store the value of the stack limit after interrupt somewhere. - */ - .globl alt_exception_old_stack_limit - -#endif -#endif - - .section .exceptions.entry.label, "xa" - - .globl alt_exception - .type alt_exception, @function -alt_exception: - - .section .exceptions.entry, "xa" - -#ifdef ALT_EXCEPTION_STACK - -#ifdef ALT_STACK_CHECK - stw et, %gprel(alt_exception_old_stack_limit)(gp) -#endif - - movhi et, %hiadj(__alt_exception_stack_pointer - 80) - addi et, et, %lo(__alt_exception_stack_pointer - 80) - stw sp, 76(et) - mov sp, et - -#ifdef ALT_STACK_CHECK - movhi et, %hiadj(__alt_exception_stack_limit) - addi et, et, %lo(__alt_exception_stack_limit) - stw et, %gprel(alt_stack_limit_value)(gp) -#endif - -#else - /* - * Process an exception. For all exceptions we must preserve all - * caller saved registers on the stack (See the Nios2 ABI - * documentation for details). - */ - - addi sp, sp, -76 - -#ifdef ALT_STACK_CHECK - - bltu sp, et, .Lstack_overflow - -#endif - -#endif - - stw ra, 0(sp) - - /* - * Leave a gap in the stack frame at 4(sp) for the muldiv handler to - * store zero into. - */ - - stw r1, 8(sp) - stw r2, 12(sp) - stw r3, 16(sp) - stw r4, 20(sp) - stw r5, 24(sp) - stw r6, 28(sp) - stw r7, 32(sp) - - rdctl r5, estatus - - stw r8, 36(sp) - stw r9, 40(sp) - stw r10, 44(sp) - stw r11, 48(sp) - stw r12, 52(sp) - stw r13, 56(sp) - stw r14, 60(sp) - stw r15, 64(sp) - - /* - * ea-4 contains the address of the instruction being executed - * when the exception occured. For interrupt exceptions, we will - * will be re-issue the isntruction. Store it in 72(sp) - */ - stw r5, 68(sp) /* estatus */ - addi r15, ea, -4 /* instruction that caused exception */ - stw r15, 72(sp) - - /* - * The interrupt testing code (.exceptions.irqtest) will be - * linked here. If the Internal Interrupt Controller (IIC) is - * present (an EIC is not present), the presense of an interrupt - * is determined by examining CPU control registers or an interrupt - * custom instruction, if present. - * - * If the IIC is used and an interrupt is active, the code linked - * here will call the HAL IRQ handler (alt_irq_handler()) which - * successively calls registered interrupt handler(s) until no - * interrupts remain pending. It then jumps to .exceptions.exit. If - * there is no interrupt then it continues to .exception.notirq, below. - */ - - .section .exceptions.notirq, "xa" - - /* - * Prepare to service unimplemtned instructions or traps, - * each of which is optionally inked into section .exceptions.soft, - * which will preceed .exceptions.unknown below. - * - * Unlike interrupts, we want to skip the exception-causing instructon - * upon completion, so we write ea (address of instruction *after* - * the one where the exception occured) into 72(sp). The actual - * instruction that caused the exception is written in r2, which these - * handlers will utilize. - */ - stw ea, 72(sp) /* Don't re-issue */ - ldw r2, -4(ea) /* Instruction that caused exception */ - - /* - * Other exception handling code, if enabled, will be linked here. - * This includes unimplemted (multiply/divide) instruction support - * (a BSP generaton option), and a trap handler (that would typically - * be augmented with user-specific code). These are not linked in by - * default. - */ - - /* - * In the context of linker sections, "unknown" are all exceptions - * not handled by the built-in handlers above (interupt, and trap or - * unimplemented instruction decoding, if enabled). - * - * Advanced exception types can be serviced by registering a handler. - * To do so, enable the "Enable Instruction-related Exception API" HAL - * BSP setting. If this setting is disabled, this handler code will - * either break (if the debug core is present) or enter an infinite - * loop because we don't how how to handle the exception. - */ - .section .exceptions.unknown -#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API - /* - * The C-based HAL routine alt_instruction_exception_entry() will - * attempt to service the exception by calling a user-registered - * exception handler using alt_instruction_exception_register(). - * If no handler was registered it will either break (if the - * debugger is present) or go into an infinite loop since the - * handling behavior is undefined; in that case we will not return here. - */ - - /* Load exception-causing address as first argument (r4) */ - addi r4, ea, -4 - - /* Call the instruction-exception entry */ - call alt_instruction_exception_entry - - /* - * If alt_instruction_exception_entry() returned, the exception was - * serviced by a user-registered routine. Its return code (now in r2) - * indicates whether to re-issue or skip the exception-causing - * instruction - * - * Return code was 0: Skip. The instruction after the exception is - * already stored in 72(sp). - */ - bne r2, r0, .Lexception_exit - - /* - * Otherwise, modify 72(sp) to re-issue the instruction that caused the - * exception. - */ - addi r15, ea, -4 /* instruction that caused exception */ - stw r15, 72(sp) - -#else /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API disabled */ - - /* - * We got here because an instruction-related exception occured, but the - * handler API was not compiled in. We do not presume to know how to - * handle it. If the debugger is present, break, otherwise hang. - * - * If you get here then one of the following could have happened: - * - * - An instruction-generated exception occured, and the processor - * does not have the extra exceptions feature enabled, or you - * have not registered a handler using - * alt_instruction_exception_register() - * - * Some examples of instruction-generated exceptions and why they - * might occur: - * - * - Your program could have been compiled for a full-featured - * Nios II core, but it is running on a smaller core, and - * instruction emulation has been disabled by defining - * ALT_NO_INSTRUCTION_EMULATION. - * - * You can work around the problem by re-enabling instruction - * emulation, or you can figure out why your program is being - * compiled for a system other than the one that it is running on. - * - * - Your program has executed a trap instruction, but has not - * implemented a handler for this instruction. - * - * - Your program has executed an illegal instruction (one which is - * not defined in the instruction set). - * - * - Your processor includes an MMU or MPU, and you have enabled it - * before registering an exception handler to service exceptions it - * generates. - * - * The problem could also be hardware related: - * - If your hardware is broken and is generating spurious interrupts - * (a peripheral which negates its interrupt output before its - * interrupt handler has been executed will cause spurious - * interrupts) - */ -#ifdef NIOS2_HAS_DEBUG_STUB - /* - * Either tell the user now (if there is a debugger attached) or go into - * the debug monitor which will loop until a debugger is attached. - */ - break -#else - /* - * If there is no debug stub then a BREAK will probably cause a reboot. - * An infinate loop will probably be more useful. - */ -0: - br 0b -#endif /* NIOS2_HAS_DEBUG_STUB */ - -#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ - - .section .exceptions.exit.label -.Lexception_exit: - - .section .exceptions.exit, "xa" - - /* - * Restore the saved registers, so that all general purpose registers - * have been restored to their state at the time the interrupt occured. - */ - - ldw r5, 68(sp) - ldw ea, 72(sp) /* This becomes the PC once eret is executed */ - ldw ra, 0(sp) - - wrctl estatus, r5 - - ldw r1, 8(sp) - ldw r2, 12(sp) - ldw r3, 16(sp) - ldw r4, 20(sp) - ldw r5, 24(sp) - ldw r6, 28(sp) - ldw r7, 32(sp) - -#ifdef ALT_EXCEPTION_STACK -#ifdef ALT_STACK_CHECK - ldw et, %gprel(alt_exception_old_stack_limit)(gp) -#endif -#endif - - ldw r8, 36(sp) - ldw r9, 40(sp) - ldw r10, 44(sp) - ldw r11, 48(sp) - ldw r12, 52(sp) - ldw r13, 56(sp) - ldw r14, 60(sp) - ldw r15, 64(sp) - -#ifdef ALT_EXCEPTION_STACK - -#ifdef ALT_STACK_CHECK - stw et, %gprel(alt_stack_limit_value)(gp) - stw zero, %gprel(alt_exception_old_stack_limit)(gp) -#endif - - ldw sp, 76(sp) - -#else - addi sp, sp, 76 - -#endif - - /* - * Return to the interrupted instruction. - */ - - eret - -#ifdef ALT_STACK_CHECK - -.Lstack_overflow: - break 3 - -#endif - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_exception_muldiv.S b/software/DE2_115_ASM_bsp/HAL/src/alt_exception_muldiv.S deleted file mode 100644 index 6a794a3..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_exception_muldiv.S +++ /dev/null @@ -1,583 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - - /* - * This is the software multiply/divide handler for Nios2. - */ - - /* - * Provide a label which can be used to pull this file in. - */ - - .section .exceptions.start - .globl alt_exception_muldiv -alt_exception_muldiv: - - /* - * Pull in the entry/exit code. - */ - .globl alt_exception - - - .section .exceptions.soft, "xa" - - - /* INSTRUCTION EMULATION - * --------------------- - * - * Nios II processors generate exceptions for unimplemented instructions. - * The routines below emulate these instructions. Depending on the - * processor core, the only instructions that might need to be emulated - * are div, divu, mul, muli, mulxss, mulxsu, and mulxuu. - * - * The emulations match the instructions, except for the following - * limitations: - * - * 1) The emulation routines do not emulate the use of the exception - * temporary register (et) as a source operand because the exception - * handler already has modified it. - * - * 2) The routines do not emulate the use of the stack pointer (sp) or the - * exception return address register (ea) as a destination because - * modifying these registers crashes the exception handler or the - * interrupted routine. - * - * 3) To save code size, the routines do not emulate the use of the - * breakpoint registers (ba and bt) as operands. - * - * Detailed Design - * --------------- - * - * The emulation routines expect the contents of integer registers r0-r31 - * to be on the stack at addresses sp, 4(sp), 8(sp), ... 124(sp). The - * routines retrieve source operands from the stack and modify the - * destination register's value on the stack prior to the end of the - * exception handler. Then all registers except the destination register - * are restored to their previous values. - * - * The instruction that causes the exception is found at address -4(ea). - * The instruction's OP and OPX fields identify the operation to be - * performed. - * - * One instruction, muli, is an I-type instruction that is identified by - * an OP field of 0x24. - * - * muli AAAAA,BBBBB,IIIIIIIIIIIIIIII,-0x24- - * 27 22 6 0 <-- LSB of field - * - * The remaining emulated instructions are R-type and have an OP field - * of 0x3a. Their OPX fields identify them. - * - * R-type AAAAA,BBBBB,CCCCC,XXXXXX,NNNNN,-0x3a- - * 27 22 17 11 6 0 <-- LSB of field - * - * - */ - - - /* - * Split the instruction into its fields. We need 4*A, 4*B, and 4*C as - * offsets to the stack pointer for access to the stored register values. - */ - /* r2 = AAAAA,BBBBB,IIIIIIIIIIIIIIII,PPPPPP */ - roli r3, r2, 7 /* r3 = BBB,IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BB */ - roli r4, r3, 3 /* r4 = IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB */ - roli r6, r4, 2 /* r6 = IIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB,II */ - srai r4, r4, 16 /* r4 = (sign-extended) IMM16 */ - xori r6, r6, 0x42 /* r6 = CCC,XXXXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cC */ - roli r7, r6, 5 /* r7 = XXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cCCCC,XX */ - andi r5, r2, 0x3f /* r5 = 00000000000000000000000000,PPPPPP */ - xori r3, r3, 0x40 - andi r3, r3, 0x7c /* r3 = 0000000000000000000000000,aAAAA,00 */ - andi r6, r6, 0x7c /* r6 = 0000000000000000000000000,bBBBB,00 */ - andi r7, r7, 0x7c /* r7 = 0000000000000000000000000,cCCCC,00 */ - - /* Now either - * r5 = OP - * r3 = 4*(A^16) - * r4 = IMM16 (sign extended) - * r6 = 4*(B^16) - * r7 = 4*(C^16) - * or - * r5 = OP - */ - - - /* - * Save everything on the stack to make it easy for the emulation routines - * to retrieve the source register operands. The exception entry code has - * already saved some of this so we don't need to do it all again. - */ - - addi sp, sp, -60 - stw zero, 64(sp) /* Save zero on stack to avoid special case for r0. */ - /* Register at and r2-r15 have already been saved. */ - - stw r16, 0(sp) - stw r17, 4(sp) - stw r18, 8(sp) - stw r19, 12(sp) - stw r20, 16(sp) - stw r21, 20(sp) - stw r22, 24(sp) - stw r23, 28(sp) - /* et @ 32 - Has already been changed.*/ - /* bt @ 36 - Usually isn't an operand. */ - stw gp, 40(sp) - stw sp, 44(sp) - stw fp, 48(sp) - /* ea @ 52 - Don't bother to save - it's already been changed */ - /* ba @ 56 - Breakpoint register usually isn't an operand */ - /* ra @ 60 - Has already been saved */ - - - /* - * Prepare for either multiplication or division loop. - * They both loop 32 times. - */ - movi r14, 32 - - - /* - * Get the operands. - * - * It is necessary to check for muli because it uses an I-type instruction - * format, while the other instructions are have an R-type format. - */ - add r3, r3, sp /* r3 = address of A-operand. */ - ldw r3, 0(r3) /* r3 = A-operand. */ - movi r15, 0x24 /* muli opcode (I-type instruction format) */ - beq r5, r15, .Lmul_immed /* muli doesn't use the B register as a source */ - - add r6, r6, sp /* r6 = address of B-operand. */ - ldw r6, 0(r6) /* r6 = B-operand. */ - /* r4 = SSSSSSSSSSSSSSSS,-----IMM16------ */ - /* IMM16 not needed, align OPX portion */ - /* r4 = SSSSSSSSSSSSSSSS,CCCCC,-OPX--,00000 */ - srli r4, r4, 5 /* r4 = 00000,SSSSSSSSSSSSSSSS,CCCCC,-OPX-- */ - andi r4, r4, 0x3f /* r4 = 00000000000000000000000000,-OPX-- */ - - /* Now - * r5 = OP - * r3 = src1 - * r6 = src2 - * r4 = OPX (no longer can be muli) - * r7 = 4*(C^16) - * r14 = loop counter - */ - - /* ILLEGAL-INSTRUCTION EXCEPTION - * ----------------------------- - * - * This code is for Nios II cores that generate exceptions when attempting - * to execute illegal instructions. Nios II cores that support an - * illegal-instruction exception are identified by the presence of the - * macro definition NIOS2_HAS_ILLEGAL_INSTRUCTION_EXCEPTION in system.h . - * - * Remember that illegal instructions are different than unimplemented - * instructions. Illegal instructions are instruction encodings that - * have not been defined by the Nios II ISA. Unimplemented instructions - * are legal instructions that must be emulated by some Nios II cores. - * - * If we get here, all instructions except multiplies and divides - * are illegal. - * - * This code assumes that OP is not muli (because muli was tested above). - * All other multiplies and divides are legal. Anything else is illegal. - */ - - movi r8, 0x3a /* OP for R-type mul* and div* */ - bne r5, r8, .Lnot_muldiv - - /* r15 already is 0x24 */ /* OPX of divu */ - beq r4, r15, .Ldivide - - movi r15,0x27 /* OPX of mul */ - beq r4, r15, .Lmultiply - - movi r15,0x07 /* OPX of mulxuu */ - beq r4, r15, .Lmultiply - - movi r15,0x17 /* OPX of mulxsu */ - beq r4, r15, .Lmultiply - - movi r15,0x1f /* OPX of mulxss */ - beq r4, r15, .Lmultiply - - movi r15,0x25 /* OPX of div */ - bne r4, r15, .Lnot_muldiv - - - /* DIVISION - * - * Divide an unsigned dividend by an unsigned divisor using - * a shift-and-subtract algorithm. The example below shows - * 43 div 7 = 6 for 8-bit integers. This classic algorithm uses a - * single register to store both the dividend and the quotient, - * allowing both values to be shifted with a single instruction. - * - * remainder dividend:quotient - * --------- ----------------- - * initialize 00000000 00101011: - * shift 00000000 0101011:_ - * remainder >= divisor? no 00000000 0101011:0 - * shift 00000000 101011:0_ - * remainder >= divisor? no 00000000 101011:00 - * shift 00000001 01011:00_ - * remainder >= divisor? no 00000001 01011:000 - * shift 00000010 1011:000_ - * remainder >= divisor? no 00000010 1011:0000 - * shift 00000101 011:0000_ - * remainder >= divisor? no 00000101 011:00000 - * shift 00001010 11:00000_ - * remainder >= divisor? yes 00001010 11:000001 - * remainder -= divisor - 00000111 - * ---------- - * 00000011 11:000001 - * shift 00000111 1:000001_ - * remainder >= divisor? yes 00000111 1:0000011 - * remainder -= divisor - 00000111 - * ---------- - * 00000000 1:0000011 - * shift 00000001 :0000011_ - * remainder >= divisor? no 00000001 :00000110 - * - * The quotient is 00000110. - */ - -.Ldivide: - /* - * Prepare for division by assuming the result - * is unsigned, and storing its "sign" as 0. - */ - movi r17, 0 - - - /* Which division opcode? */ - xori r15, r4, 0x25 /* OPX of div */ - bne r15, zero, .Lunsigned_division - - - /* - * OPX is div. Determine and store the sign of the quotient. - * Then take the absolute value of both operands. - */ - xor r17, r3, r6 /* MSB contains sign of quotient */ - bge r3, zero, 0f - sub r3, zero, r3 /* -r3 */ -0: - bge r6, zero, 0f - sub r6, zero, r6 /* -r6 */ -0: - - -.Lunsigned_division: - /* Initialize the unsigned-division loop. */ - movi r13, 0 /* remainder = 0 */ - - /* Now - * r3 = dividend : quotient - * r4 = 0x25 for div, 0x24 for divu - * r6 = divisor - * r13 = remainder - * r14 = loop counter (already initialized to 32) - * r17 = MSB contains sign of quotient - */ - - - /* - * for (count = 32; count > 0; --count) - * { - */ -.Ldivide_loop: - - /* - * Division: - * - * (remainder:dividend:quotient) <<= 1; - */ - slli r13, r13, 1 - cmplt r15, r3, zero /* r15 = MSB of r3 */ - or r13, r13, r15 - slli r3, r3, 1 - - - /* - * if (remainder >= divisor) - * { - * set LSB of quotient - * remainder -= divisor; - * } - */ - bltu r13, r6, .Ldiv_skip - ori r3, r3, 1 - sub r13, r13, r6 -.Ldiv_skip: - - /* - * } - */ - subi r14, r14, 1 - bne r14, zero, .Ldivide_loop - - mov r9, r3 - - - /* Now - * r9 = quotient - * r4 = 0x25 for div, 0x24 for divu - * r7 = 4*(C^16) - * r17 = MSB contains sign of quotient - */ - - - /* - * Conditionally negate signed quotient. If quotient is unsigned, - * the sign already is initialized to 0. - */ - bge r17, zero, .Lstore_result - sub r9, zero, r9 /* -r9 */ - - br .Lstore_result - - - - - /* MULTIPLICATION - * - * A "product" is the number that one gets by summing a "multiplicand" - * several times. The "multiplier" specifies the number of copies of the - * multiplicand that are summed. - * - * Actual multiplication algorithms don't use repeated addition, however. - * Shift-and-add algorithms get the same answer as repeated addition, and - * they are faster. To compute the lower half of a product (pppp below) - * one shifts the product left before adding in each of the partial products - * (a * mmmm) through (d * mmmm). - * - * To compute the upper half of a product (PPPP below), one adds in the - * partial products (d * mmmm) through (a * mmmm), each time following the - * add by a right shift of the product. - * - * mmmm - * * abcd - * ------ - * #### = d * mmmm - * #### = c * mmmm - * #### = b * mmmm - * #### = a * mmmm - * -------- - * PPPPpppp - * - * The example above shows 4 partial products. Computing actual Nios II - * products requires 32 partials. - * - * It is possible to compute the result of mulxsu from the result of mulxuu - * because the only difference between the results of these two opcodes is - * the value of the partial product associated with the sign bit of rA. - * - * mulxsu = mulxuu - ((rA < 0) ? rB : 0); - * - * It is possible to compute the result of mulxss from the result of mulxsu - * because the only difference between the results of these two opcodes is - * the value of the partial product associated with the sign bit of rB. - * - * mulxss = mulxsu - ((rB < 0) ? rA : 0); - * - */ - -.Lmul_immed: - /* Opcode is muli. Change it into mul for remainder of algorithm. */ - mov r7, r6 /* Field B is dest register, not field C. */ - mov r6, r4 /* Field IMM16 is src2, not field B. */ - movi r4, 0x27 /* OPX of mul is 0x27 */ - -.Lmultiply: - /* Initialize the multiplication loop. */ - movi r9, 0 /* mul_product = 0 */ - movi r10, 0 /* mulxuu_product = 0 */ - mov r11, r6 /* save original multiplier for mulxsu and mulxss */ - mov r12, r6 /* mulxuu_multiplier (will be shifted) */ - movi r16, 1 /* used to create "rori B,A,1" from "ror B,A,r16" */ - - /* Now - * r3 = multiplicand - * r6 = mul_multiplier - * r7 = 4 * dest_register (used later as offset to sp) - * r9 = mul_product - * r10 = mulxuu_product - * r11 = original multiplier - * r12 = mulxuu_multiplier - * r14 = loop counter (already initialized) - * r15 = temp - * r16 = 1 - */ - - - /* - * for (count = 32; count > 0; --count) - * { - */ -.Lmultiply_loop: - - /* - * mul_product <<= 1; - * lsb = multiplier & 1; - */ - slli r9, r9, 1 - andi r15, r12, 1 - - /* - * if (lsb == 1) - * { - * mulxuu_product += multiplicand; - * } - */ - beq r15, zero, .Lmulx_skip - add r10, r10, r3 - cmpltu r15, r10, r3 /* Save the carry from the MSB of mulxuu_product. */ - ror r15, r15, r16 /* r15 = 0x80000000 on carry, or else 0x00000000 */ -.Lmulx_skip: - - /* - * if (MSB of mul_multiplier == 1) - * { - * mul_product += multiplicand; - * } - */ - bge r6, zero, .Lmul_skip - add r9, r9, r3 -.Lmul_skip: - - /* - * mulxuu_product >>= 1; logical shift - * mul_multiplier <<= 1; done with MSB - * mulx_multiplier >>= 1; done with LSB - */ - srli r10, r10, 1 - or r10, r10, r15 /* OR in the saved carry bit. */ - slli r6, r6, 1 - srli r12, r12, 1 - - - /* - * } - */ - subi r14, r14, 1 - bne r14, zero, .Lmultiply_loop - - - /* - * Multiply emulation loop done. - */ - - /* Now - * r3 = multiplicand - * r4 = OPX - * r7 = 4 * dest_register (used later as offset to sp) - * r9 = mul_product - * r10 = mulxuu_product - * r11 = original multiplier - * r15 = temp - */ - - - /* - * Select/compute the result based on OPX. - */ - - - /* OPX == mul? Then store. */ - xori r15, r4, 0x27 - beq r15, zero, .Lstore_result - - /* It's one of the mulx.. opcodes. Move over the result. */ - mov r9, r10 - - /* OPX == mulxuu? Then store. */ - xori r15, r4, 0x07 - beq r15, zero, .Lstore_result - - /* Compute mulxsu - * - * mulxsu = mulxuu - ((rA < 0) ? rB : 0); - */ - bge r3, zero, .Lmulxsu_skip - sub r9, r9, r11 -.Lmulxsu_skip: - - /* OPX == mulxsu? Then store. */ - xori r15, r4, 0x17 - beq r15, zero, .Lstore_result - - /* Compute mulxss - * - * mulxss = mulxsu - ((rB < 0) ? rA : 0); - */ - bge r11, zero, .Lmulxss_skip - sub r9, r9, r3 -.Lmulxss_skip: - /* At this point, assume that OPX is mulxss, so store */ - - -.Lstore_result: - add r7, r7, sp - stw r9, 0(r7) - - ldw r16, 0(sp) - ldw r17, 4(sp) - ldw r18, 8(sp) - ldw r19, 12(sp) - ldw r20, 16(sp) - ldw r21, 20(sp) - ldw r22, 24(sp) - ldw r23, 28(sp) - - /* bt @ 32 - Breakpoint register usually isn't an operand. */ - /* et @ 36 - Don't corrupt et. */ - /* gp @ 40 - Don't corrupt gp. */ - /* sp @ 44 - Don't corrupt sp. */ - ldw fp, 48(sp) - /* ea @ 52 - Don't corrupt ea. */ - /* ba @ 56 - Breakpoint register usually isn't an operand. */ - - addi sp, sp, 60 - - br .Lexception_exit - - -.Lnot_muldiv: - - addi sp, sp, 60 - - - .section .exceptions.exit.label -.Lexception_exit: - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_exception_trap.S b/software/DE2_115_ASM_bsp/HAL/src/alt_exception_trap.S deleted file mode 100644 index bd9a9f5..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_exception_trap.S +++ /dev/null @@ -1,81 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - - /* - * This is the trap exception handler for Nios2. - */ - - /* - * Provide a label which can be used to pull this file in. - */ - - .section .exceptions.start - .globl alt_exception_trap -alt_exception_trap: - - /* - * Pull in the entry/exit code. - */ - .globl alt_exception - - .section .exceptions.soft, "xa" - -.Ltrap_handler: - - /* - * Did a trap instruction cause the exception? - * - * The instruction which the exception occurred on has been loaded - * into r2 by code in alt_exception_entry.S - * - */ - - movhi r3,0x003b /* upper half of trap opcode */ - ori r3,r3,0x683a /* lower half of trap opcode */ - bne r2,r3,.Lnot_trap - - /* - * There is no trap handler defined here, and so executing a trap - * instruction causes a software break. If you provide a trap handler, - * then you must replace the break instruction below with your handler. - * Your handler must preserve ea and the usual callee saved registers. - */ - - break - - br .Lexception_exit - -.Lnot_trap: - - - .section .exceptions.exit.label -.Lexception_exit: - - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_execve.c b/software/DE2_115_ASM_bsp/HAL/src/alt_execve.c deleted file mode 100644 index 51bfcc4..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_execve.c +++ /dev/null @@ -1,55 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_errno.h" -#include "sys/alt_warning.h" -#include "os/alt_syscall.h" - -/* - * execve() is used by newlib to launch new processes. This is unsupported in - * the HAL environment. However a "do-nothing" implementation is still - * provied for newlib compatability. - * - * ALT_EXECVE is mapped onto the execve() system call in alt_syscall.h - */ - -int ALT_EXECVE (char *name, char ** argv, char** env) -{ - /* Generate a link time warning, should this function ever be called. */ - - ALT_STUB_WARNING(execve); - - /* Indicate an error */ - - ALT_ERRNO = ENOSYS; - return -1; -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_exit.c b/software/DE2_115_ASM_bsp/HAL/src/alt_exit.c deleted file mode 100644 index 46cbe18..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_exit.c +++ /dev/null @@ -1,71 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_irq.h" -#include "sys/alt_sim.h" -#include "os/alt_hooks.h" -#include "os/alt_syscall.h" - -#include "alt_types.h" -#include "sys/alt_log_printf.h" -/* - * _exit() is called by exit() in order to terminate the current process. - * Typically this is called when main() completes. It should never return. - * Since there is nowhere to go once this process completes, this - * implementation simply blocks forever. - * - * Note that interrupts are not disabled so that execution outside of this - * thread is allowed to continue. - * - * ALT_EXIT is mapped onto the _exit() system call in alt_syscall.h - */ - -void ALT_EXIT (int exit_code) -{ - /* ALT_LOG - please see HAL/inc/alt_log_printf.h for details */ - ALT_LOG_PRINT_BOOT("[alt_exit.c] Entering _exit() function.\r\n"); - ALT_LOG_PRINT_BOOT("[alt_exit.c] Exit code from main was %d.\r\n",exit_code); - /* Stop all other threads */ - - ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_OS_STOP().\r\n"); - ALT_OS_STOP(); - - /* Provide notification to the simulator that we've stopped */ - - ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_SIM_HALT().\r\n"); - ALT_SIM_HALT(exit_code); - - /* spin forever, since there's no where to go back to */ - - ALT_LOG_PRINT_BOOT("[alt_exit.c] Spinning forever.\r\n"); - while (1); -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_fcntl.c b/software/DE2_115_ASM_bsp/HAL/src/alt_fcntl.c deleted file mode 100644 index 382fa43..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_fcntl.c +++ /dev/null @@ -1,101 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include - -#include -#include - -#include "sys/alt_errno.h" -#include "priv/alt_file.h" -#include "alt_types.h" -#include "os/alt_syscall.h" - -#define ALT_FCNTL_FLAGS_MASK ((alt_u32) (O_APPEND | O_NONBLOCK)) - -/* - * fcntl() is a limited implementation of the standard fcntl() system call. - * It can be used to change the state of the flags associated with an open - * file descriptor. Normally these flags are set during the call to - * open(). It is anticipated that the main use of this function will be to - * change the state of a device from blocking to non-blocking (where this is - * supported). - * - * The input argument "fd" is the file descriptor to be manipulated. "cmd" - * is the command to execute. This can be either F_GETFL (return the - * current value of the flags) or F_SETFL (set the value of the flags). - * - * If "cmd" is F_SETFL then the argument "arg" is the new value of flags, - * otherwise "arg" is ignored. Only the flags: O_APPEND and O_NONBLOCK - * can be updated by a call to fcntl(). All other flags remain - * unchanged. - * - * ALT_FCNTL is mapped onto the fcntl() system call in alt_syscall.h - */ - -int ALT_FCNTL (int file, int cmd, ...) -{ - alt_fd* fd; - long flags; - va_list argp; - - /* - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (file < 0) ? NULL : &alt_fd_list[file]; - - if (fd) - { - switch (cmd) - { - case F_GETFL: - return fd->fd_flags & ~((alt_u32) ALT_FD_FLAGS_MASK); - case F_SETFL: - va_start(argp, cmd); - flags = va_arg(argp, long); - fd->fd_flags &= ~ALT_FCNTL_FLAGS_MASK; - fd->fd_flags |= (flags & ALT_FCNTL_FLAGS_MASK); - va_end(argp); - return 0; - default: - ALT_ERRNO = EINVAL; - return -1; - } - } - - ALT_ERRNO = EBADFD; - return -1; -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_fd_lock.c b/software/DE2_115_ASM_bsp/HAL/src/alt_fd_lock.c deleted file mode 100644 index 162295a..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_fd_lock.c +++ /dev/null @@ -1,75 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#include "priv/alt_file.h" - -/* - * alt_fd_lock() is called as a consequence of an ioctl call to gain exclusive - * access to a device, i.e.: - * - * ioctl (fd, TIOCEXCL, NULL); - * - * If there are no other open file descriptors which reference the same - * device, then alt_fd_lock() will grant the lock. Further calls to open() - * for this device will fail until the lock is released. - * - * This is done by calling close() for this file descriptor, or by calling: - * - * ioctl (fd, TIOCNXCL, NULL); - * - * The return value is zero for success, or negative in the case of failure. - */ - -int alt_fd_lock (alt_fd* fd) -{ - int i; - int rc = 0; - - ALT_SEM_PEND(alt_fd_list_lock, 0); - - for (i = 0; i < alt_max_fd; i++) - { - if ((&alt_fd_list[i] != fd) && (alt_fd_list[i].dev == fd->dev)) - { - rc = -EACCES; - goto alt_fd_lock_exit; - } - } - fd->fd_flags |= ALT_FD_EXCL; - - alt_fd_lock_exit: - - ALT_SEM_POST(alt_fd_list_lock); - return rc; -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_fd_unlock.c b/software/DE2_115_ASM_bsp/HAL/src/alt_fd_unlock.c deleted file mode 100644 index 5f50386..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_fd_unlock.c +++ /dev/null @@ -1,56 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#include "priv/alt_file.h" - -/* - * alt_fd_unlock() is the inverse of alt_fd_lock(). It is called as a - * consequence of a TIOCNXCL ioctl request, e.g: - * - * ioctl (fd, TIOCNXCL, NULL); - * - * It enables multiple file descriptors to exist for the same device. This - * is normally the case, but it may have been disabled by a previous call to - * alt_fd_lock(). - * - * Return zero on sucess, and a negative value on failure. - * - * The current implementation always succeeds. - */ - -int alt_fd_unlock (alt_fd* fd) -{ - fd->fd_flags &= ~ALT_FD_EXCL; - return 0; -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_find_dev.c b/software/DE2_115_ASM_bsp/HAL/src/alt_find_dev.c deleted file mode 100644 index 964f63f..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_find_dev.c +++ /dev/null @@ -1,88 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include -#include - -#include "sys/alt_dev.h" -#include "priv/alt_file.h" - -#include "alt_types.h" - -/* - * alt_find_dev() is used by open() in order to locate a previously registered - * device with the name "name". The input argument "llist" is a pointer to the - * head of the device list to search. - * - * The return value is a pointer to the matching device, or NULL if there is - * no match. - * - * "name" must be an exact match for the devices registered name for a match to - * be found. - */ - -alt_dev* alt_find_dev(const char* name, alt_llist* llist) -{ - alt_dev* next = (alt_dev*) llist->next; - alt_32 len; - - len = strlen(name) + 1; - - /* - * Check each list entry in turn, until a match is found, or we reach the - * end of the list (i.e. next winds up pointing back to the list head). - */ - - while (next != (alt_dev*) llist) - { - - /* - * memcmp() is used here rather than strcmp() in order to reduce the size - * of the executable. - */ - - if (!memcmp (next->name, name, len)) - { - /* match found */ - - return next; - } - next = (alt_dev*) next->llist.next; - } - - /* No match found */ - - return NULL; -} - - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_find_file.c b/software/DE2_115_ASM_bsp/HAL/src/alt_find_file.c deleted file mode 100644 index ae30e93..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_find_file.c +++ /dev/null @@ -1,89 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include -#include - -#include "sys/alt_dev.h" -#include "priv/alt_file.h" - -#include "alt_types.h" - -/* - * alt_find_file() is used by open() in order to locate a previously registered - * filesystem that owns that mount point that contains the file named "name". - * - * The return value is a pointer to the matching filesystem, or NULL if there is - * no match. - * - * A match is considered to have been found if the filesystem name followed by - * either '/' or '\0' is the prefix of the filename. For example the filename: - * "/myfilesystem/junk.txt" would match: "/myfilesystem", but not: "/myfile". - */ - -alt_dev* alt_find_file (const char* name) -{ - alt_dev* next = (alt_dev*) alt_fs_list.next; - - alt_32 len; - - /* - * Check each list entry in turn, until a match is found, or we reach the - * end of the list (i.e. next winds up pointing back to the list head). - */ - - while (next != (alt_dev*) &alt_fs_list) - { - len = strlen(next->name); - - if (next->name[len-1] == '/') - { - len -= 1; - } - - if (((name[len] == '/') || (name[len] == '\0')) && - !memcmp (next->name, name, len)) - { - /* match found */ - - return next; - } - next = (alt_dev*) next->llist.next; - } - - /* No match found */ - - return NULL; -} - - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_flash_dev.c b/software/DE2_115_ASM_bsp/HAL/src/alt_flash_dev.c deleted file mode 100644 index 0acffc7..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_flash_dev.c +++ /dev/null @@ -1,69 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* Alt_flash.c - Functions to register a flash device to the "generic" flash * -* interface * -* * -* Author PRR * -* * -******************************************************************************/ - -#include -#include "sys/alt_llist.h" -#include "sys/alt_flash_dev.h" -#include "priv/alt_file.h" - -ALT_LLIST_HEAD(alt_flash_dev_list); - -alt_flash_fd* alt_flash_open_dev(const char* name) -{ - alt_flash_dev* dev = (alt_flash_dev*)alt_find_dev(name, &alt_flash_dev_list); - - if ((dev) && dev->open) - { - return dev->open(dev, name); - } - - return dev; -} - -void alt_flash_close_dev(alt_flash_fd* fd) -{ - if (fd && fd->close) - { - fd->close(fd); - } - return; -} - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_fork.c b/software/DE2_115_ASM_bsp/HAL/src/alt_fork.c deleted file mode 100644 index b6edbb5..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_fork.c +++ /dev/null @@ -1,57 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_warning.h" -#include "sys/alt_errno.h" -#include "os/alt_syscall.h" - -/* - * The fork() system call is used by newlib to create a duplicate copy of the - * curent process. This is unsupported in the HAL environment. However a - * "do-nothing" implementation is still provied for newlib compatability. - * - * ALT_FORK is mapped onto the fork() system call in alt_syscall.h - */ - -int ALT_FORK (void) -{ - /* Generate a link time warning, should this function ever be called. */ - - ALT_STUB_WARNING(fork); - - /* Indicate an error */ - - ALT_ERRNO = ENOSYS; - return -1; -} - - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_fs_reg.c b/software/DE2_115_ASM_bsp/HAL/src/alt_fs_reg.c deleted file mode 100644 index e88a340..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_fs_reg.c +++ /dev/null @@ -1,75 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#include "sys/alt_dev.h" -#include "priv/alt_file.h" - -/* - * The alt_fs_reg() function is used to register a file system. Once registered - * a device can be accessed using the standard posix calls: open(), read(), - * write() etc. - * - * System behaviour is undefined in the event that a file system is registered - * with a name that conflicts with an existing device or file system. - * - * alt_fs_reg() is not thread safe in the sense that there should be no other - * thread using the file system list at the time that alt_dev_reg() is called. In - * practice this means that alt_fs_reg() should only be called while operating - * in a single threaded mode. The expectation is that it will only be called - * by the file system initilisation functions invoked by alt_sys_init(), which in - * turn should only be called by the single threaded C startup code. - * - * A return value of zero indicates success. A negative return value indicates - * failure. - */ - -int alt_fs_reg (alt_dev* dev) -{ - /* - * check that the device has a name. - */ - - if (!dev->name) - { - return -ENODEV; - } - - /* - * register the file system. - */ - - alt_llist_insert(&alt_fs_list, &dev->llist); - - return 0; -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_fstat.c b/software/DE2_115_ASM_bsp/HAL/src/alt_fstat.c deleted file mode 100644 index 3248764..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_fstat.c +++ /dev/null @@ -1,128 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include - -#include "sys/alt_dev.h" -#include "sys/alt_warning.h" -#include "sys/alt_errno.h" -#include "priv/alt_file.h" -#include "os/alt_syscall.h" - -/* - * The fstat() system call is used to obtain information about the capabilities - * of an open file descriptor. By default file descriptors are marked as - * being character devices. If a device or file system wishes to advertise - * alternative capabilities then they can register an fstat() function within - * their associated alt_dev structure. This will be called to fill in the - * entries in the imput "st" structure. - * - * This function is provided for compatability with newlib. - * - * ALT_FSTAT is mapped onto the fstat() system call in alt_syscall.h - */ - -#ifdef ALT_USE_DIRECT_DRIVERS - -#include "system.h" - -/* - * Provide minimal version that just describes all file descriptors - * as character devices for provided stdio devices. - */ -int ALT_FSTAT (int file, struct stat *st) -{ - switch (file) { -#ifdef ALT_STDIN_PRESENT - case 0: /* stdin file descriptor */ -#endif /* ALT_STDIN_PRESENT */ -#ifdef ALT_STDOUT_PRESENT - case 1: /* stdout file descriptor */ -#endif /* ALT_STDOUT_PRESENT */ -#ifdef ALT_STDERR_PRESENT - case 2: /* stderr file descriptor */ -#endif /* ALT_STDERR_PRESENT */ - st->st_mode = _IFCHR; - return 0; - default: - return -1; - } - -#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) - /* Generate a link time warning, should this function ever be called. */ - ALT_STUB_WARNING(fstat); -#endif -} - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -int ALT_FSTAT (int file, struct stat *st) -{ - alt_fd* fd; - - /* - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (file < 0) ? NULL : &alt_fd_list[file]; - - if (fd) - { - /* Call the drivers fstat() function to fill out the "st" structure. */ - - if (fd->dev->fstat) - { - return fd->dev->fstat(fd, st); - } - - /* - * If no function is provided, mark the fd as belonging to a character - * device. - */ - - else - { - st->st_mode = _IFCHR; - return 0; - } - } - else - { - ALT_ERRNO = EBADFD; - return -1; - } -} - -#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_get_fd.c b/software/DE2_115_ASM_bsp/HAL/src/alt_get_fd.c deleted file mode 100644 index f42944b..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_get_fd.c +++ /dev/null @@ -1,105 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include -#include - -#include "sys/alt_dev.h" -#include "priv/alt_file.h" - -#include "alt_types.h" - -#include "system.h" - -/* - * alt_get_fd() is called to allocate a new file descriptor from the file - * descriptor pool. If a file descriptor is succesfully allocated, it is - * configured to refer to device "dev". - * - * The return value is the index of the file descriptor structure (i.e. - * the offset of the file descriptor within the file descriptor array). A - * negative value indicates failure. - */ - -int alt_get_fd (alt_dev* dev) -{ - alt_32 i; - int rc = -EMFILE; - - /* - * Take the alt_fd_list_lock semaphore in order to avoid races when - * accessing the file descriptor pool. - */ - - ALT_SEM_PEND(alt_fd_list_lock, 0); - - /* - * Search through the list of file descriptors, and allocate the first - * free descriptor that's found. - * - * If a free descriptor is found, then the value of "alt_max_fd" is - * updated accordingly. "alt_max_fd" is a 'highwater mark' which - * indicates the highest file descriptor ever allocated. This is used to - * improve efficency when searching the file descriptor list, and - * therefore reduce contention on the alt_fd_list_lock semaphore. - */ - - for (i = 0; i < ALT_MAX_FD; i++) - { - if (!alt_fd_list[i].dev) - { - alt_fd_list[i].dev = dev; - if (i > alt_max_fd) - { - alt_max_fd = i; - } - rc = i; - goto alt_get_fd_exit; - } - } - - alt_get_fd_exit: - - /* - * Release the alt_fd_list_lock semaphore now that we are done with the - * file descriptor pool. - */ - - ALT_SEM_POST(alt_fd_list_lock); - - return rc; -} - - - - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_getchar.c b/software/DE2_115_ASM_bsp/HAL/src/alt_getchar.c deleted file mode 100644 index 3e7df79..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_getchar.c +++ /dev/null @@ -1,61 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#ifdef ALT_USE_DIRECT_DRIVERS -#include "system.h" -#include "sys/alt_driver.h" -#include "sys/alt_stdio.h" -#include "priv/alt_file.h" -#include "unistd.h" -#endif - -/* - * Uses the ALT_DRIVER_READ() macro to call directly to driver if available. - * Otherwise, uses newlib provided getchar() routine. - */ -int -alt_getchar(void) -{ -#ifdef ALT_USE_DIRECT_DRIVERS - ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); - char c; - - if (ALT_DRIVER_READ(ALT_STDIN_DEV, &c, 1, alt_fd_list[STDIN_FILENO].fd_flags) <= 0) { - return -1; - } - return c; -#else - return getchar(); -#endif -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_getpid.c b/software/DE2_115_ASM_bsp/HAL/src/alt_getpid.c deleted file mode 100644 index b63ec33..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_getpid.c +++ /dev/null @@ -1,47 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "os/alt_syscall.h" - -/* - * The getpid() system call is used by newlib to obtain the current process - * id. Since there is only ever a single process in the HAL environment, - * this just returns a constant. - * - * ALT_GETPID is mapped onto the getpid() system call in alt_syscall.h - */ - -int ALT_GETPID (void) -{ - return 0; -} - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_gettod.c b/software/DE2_115_ASM_bsp/HAL/src/alt_gettod.c deleted file mode 100644 index 46b12c2..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_gettod.c +++ /dev/null @@ -1,125 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include -#include - -#include "sys/alt_alarm.h" -#include "alt_types.h" -#include "os/alt_syscall.h" - -/* - * Macro defining the number of micoseconds in a second. - */ - -#define ALT_US (1000000) - -/* - * "alt_timezone" and "alt_resettime" are the values of the the reset time and - * time zone set through the last call to settimeofday(). By default they are - * zero initialised. - */ - -struct timezone alt_timezone = {0, 0}; -struct timeval alt_resettime = {0, 0}; - -/* - * gettimeofday() can be called to obtain a time structure which indicates the - * current "wall clock" time. This is calculated using the elapsed number of - * system clock ticks, and the value of "alt_resettime" and "alt_timezone" set - * through the last call to settimeofday(). - * - * Warning: if this function is called concurrently with a call to - * settimeofday(), the value returned by gettimeofday() will be unreliable. - * - * ALT_GETTIMEOFDAY is mapped onto the gettimeofday() system call in - * alt_syscall.h - */ - - -#if defined (__GNUC__) && (__GNUC__ >= 4) -int ALT_GETTIMEOFDAY (struct timeval *ptimeval, void *ptimezone_vptr) -{ - struct timezone *ptimezone = (struct timezone*)ptimezone_vptr; -#else -int ALT_GETTIMEOFDAY (struct timeval *ptimeval, struct timezone *ptimezone) -{ -#endif - - alt_u32 nticks = alt_nticks (); - alt_u32 tick_rate = alt_ticks_per_second (); - - /* - * Check to see if the system clock is running. This is indicated by a - * non-zero system clock rate. If the system clock is not running, an error - * is generated and the contents of "ptimeval" and "ptimezone" are not - * updated. - */ - - if (tick_rate) - { - ptimeval->tv_sec = alt_resettime.tv_sec + nticks/tick_rate; - ptimeval->tv_usec = alt_resettime.tv_usec + - (alt_u32)(((alt_u64)nticks*(ALT_US/tick_rate))%ALT_US); - - while(ptimeval->tv_usec < 0) { - if (ptimeval->tv_sec <= 0) - { - ptimeval->tv_sec = 0; - ptimeval->tv_usec = 0; - break; - } - else - { - ptimeval->tv_sec--; - ptimeval->tv_usec += ALT_US; - } - } - - while(ptimeval->tv_usec >= ALT_US) { - ptimeval->tv_sec++; - ptimeval->tv_usec -= ALT_US; - } - - if (ptimezone) - { - ptimezone->tz_minuteswest = alt_timezone.tz_minuteswest; - ptimezone->tz_dsttime = alt_timezone.tz_dsttime; - } - - return 0; - } - - return -ENOTSUP; -} - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_gmon.c b/software/DE2_115_ASM_bsp/HAL/src/alt_gmon.c deleted file mode 100644 index fce7587..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_gmon.c +++ /dev/null @@ -1,272 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include -#include -#include - -#include "priv/nios2_gmon_data.h" - -#include "sys/alt_irq.h" -#include "sys/alt_alarm.h" - - -/* Macros */ - -/* How large should the bins be which we use to generate the histogram */ -#define PCSAMPLE_BYTES_PER_BUCKET 32 - -#define NIOS2_READ_EA(dest) __asm__ ("mov %0, ea" : "=r" (dest)) - -/* The compiler inserts calls to mcount() at the start of - * every function call. The structure mcount_fn_arc records t - * he return address of the function called (in from_pc) - * and the return address of the mcount function - * (in self_pc). The number of times this arc is executed is - * recorded in the field count. - */ -struct mcount_fn_arc -{ - struct mcount_fn_arc * next; - void * from_pc; - unsigned int count; -}; - -/* We need to maintain a list of pointers to the heads of each adjacency - * list so that we can find them when writing out the gmon.out file. Since - * we don't know at the start of program execution how many functions will - * be called we use a list structure to do this. - */ -struct mcount_fn_entry -{ - struct mcount_fn_entry * next; - void * self_pc; - struct mcount_fn_arc * arc_head; -}; - -/* function prototypes */ - -void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) __attribute__ ((no_instrument_function)); - -static __inline__ void * mcount_allocate(unsigned int size) __attribute__ ((no_instrument_function)); -static int nios2_pcsample_init(void) __attribute__ ((no_instrument_function)); -static alt_u32 nios2_pcsample(void* alarm) __attribute__ ((no_instrument_function)); - -/* global variables */ - -/* stext and etext are defined in the linker script */ -extern char stext[]; -extern char etext[]; - -/* Is the PC sampling stuff enabled yet? */ -static int pcsample_need_init = 1; - -#define HASH_BUCKETS 64 /* Must be a power of 2 */ - -/* This points to the list of adjacency list pointers. */ -struct mcount_fn_entry * __mcount_fn_head[HASH_BUCKETS]; - -/* pointer to the in-memory buffer containing the histogram */ -static unsigned short* s_pcsamples = 0; - -/* the address of the start and end of text section */ -static const unsigned int s_low_pc = (unsigned int)stext; -static const unsigned int s_high_pc = (unsigned int)etext; - -/* the alarm structure to register for pc sampling */ -static alt_alarm s_nios2_pcsample_alarm; - -unsigned int alt_gmon_data[GMON_DATA_SIZE] = -{ - 0x6e6f6d67, /* "gmon" */ - GMON_DATA_SIZE, - 0, - (unsigned int)stext, - (unsigned int)etext, - PCSAMPLE_BYTES_PER_BUCKET, - 0, - (unsigned int)__mcount_fn_head, - (unsigned int)(__mcount_fn_head + HASH_BUCKETS) -}; - -/* This holds the current slab of memory we're allocating out of */ -static char * mcount_slab_ptr = 0; -static int mcount_slab_size = 0; - -#define MCOUNT_SLAB_INCREMENT 1020 - - -/* - * We can't use malloc to allocate memory because that's too complicated, and - * can't be called at interrupt time. Use the lower level allocator instead - * because that's interrupt safe (and because we never free anything). - * - * For speed, we allocate a block of data at once. - */ -static __inline__ void * mcount_allocate(unsigned int size) -{ - void * data; - - if (size > mcount_slab_size) - { - mcount_slab_ptr = sbrk(MCOUNT_SLAB_INCREMENT); - mcount_slab_size = MCOUNT_SLAB_INCREMENT; - } - - data = mcount_slab_ptr; - mcount_slab_ptr += size; - mcount_slab_size -= size; - - return data; -} - - -/* - * Add the arc with the values of frompc and topc given to the graph. - * This function might be called at interrupt time so must be able to - * cope with reentrancy. - * - * The fast case, where we have already allocated a function arc, has been - * handled by the assmebler code. - */ -void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) -{ - alt_irq_context context; - struct mcount_fn_arc * arc_entry; - - /* Keep trying to start up the PC sampler until it is running. - * (It can't start until the timer is going). - */ - if (pcsample_need_init) - { - pcsample_need_init = 0; - pcsample_need_init = nios2_pcsample_init(); - } - - /* - * We must disable interrupts around the allocation and the list update to - * prevent corruption if the instrumented function is re-entrant. - * - * It's safe for the code above to be stepping through the chain and be - * interrupted by this code modifying it - there is an edge case which will - * leave two copies of the same arc on the list (both with count=1), but - * this is dealt with on the host. - */ - context = alt_irq_disable_all(); - - if (fn_entry == NULL) - { - /* Add it to the list of functions we must output later. */ - fn_entry = (struct mcount_fn_entry *)mcount_allocate(sizeof(struct mcount_fn_entry)); - - fn_entry->self_pc = self_pc; - fn_entry->arc_head = NULL; - - fn_entry->next = *fn_head; - *fn_head = fn_entry; - } - - /* We will need a new list entry - if there was a list entry before - * then the assembler code would have handled it. */ - arc_entry = (struct mcount_fn_arc *)mcount_allocate(sizeof(struct mcount_fn_arc)); - - arc_entry->from_pc = from_pc; - arc_entry->count = 1; - - arc_entry->next = fn_entry->arc_head; - fn_entry->arc_head = arc_entry; - - alt_irq_enable_all(context); -} - - -/* - * nios2_pcsample_init starts profiling. - * It is called the first time mcount is called, and on subsequent calls to - * mcount until it returns zero. It initializes the pc histogram and turns on - * timer driven pc sampling. - */ -static int nios2_pcsample_init(void) -{ - unsigned int pcsamples_size; - - /* We sample the PC every tick */ - unsigned int prof_rate = alt_ticks_per_second(); - if (prof_rate == 0) - return 1; - - /* allocate the histogram buffer s_pcsamples */ - pcsamples_size = (s_high_pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; - s_pcsamples = (unsigned short*)sbrk(pcsamples_size * sizeof(unsigned short)); - - if (s_pcsamples != 0) - { - /* initialize the buffer to zero */ - memset(s_pcsamples, 0, pcsamples_size * sizeof(unsigned short)); - - alt_gmon_data[GMON_DATA_PROFILE_DATA] = (int)s_pcsamples; - alt_gmon_data[GMON_DATA_PROFILE_RATE] = prof_rate; - - /* Sample every tick (it's cheap) */ - alt_alarm_start(&s_nios2_pcsample_alarm, 1, nios2_pcsample, 0); - } - - return 0; -} - - -/* - * Sample the PC value and store it in the histogram - */ -static alt_u32 nios2_pcsample(void* context) -{ - unsigned int pc; - unsigned int bucket; - - /* read the exception return address - this will be - * inaccurate if there are nested interrupts but we - * assume that this is rare and the inaccuracy will - * not be great */ - NIOS2_READ_EA(pc); - - /* - * If we're within the profilable range then increment the relevant - * bucket in the histogram - */ - if (pc >= s_low_pc && pc < s_high_pc && s_pcsamples != 0) - { - bucket = (pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; - s_pcsamples[bucket]++; - } - - /* Sample every tick */ - return 1; -} - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_icache_flush.c b/software/DE2_115_ASM_bsp/HAL/src/alt_icache_flush.c deleted file mode 100644 index 1662991..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_icache_flush.c +++ /dev/null @@ -1,84 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "nios2.h" -#include "system.h" - -#include "alt_types.h" -#include "sys/alt_cache.h" - -/* - * alt_icache_flush() is called to flush the instruction cache for a memory - * region of length "len" bytes, starting at address "start". - */ - -void alt_icache_flush (void* start, alt_u32 len) -{ -#if NIOS2_ICACHE_SIZE > 0 - - char* i; - char* end; - - /* - * This is the most we would ever need to flush. - */ - - if (len > NIOS2_ICACHE_SIZE) - { - len = NIOS2_ICACHE_SIZE; - } - - end = ((char*) start) + len; - - for (i = start; i < end; i+= NIOS2_ICACHE_LINE_SIZE) - { - __asm__ volatile ("flushi %0" :: "r" (i)); - } - - /* - * For an unaligned flush request, we've got one more line left. - * Note that this is dependent on NIOS2_ICACHE_LINE_SIZE to be a - * multiple of 2 (which it always is). - */ - - if (((alt_u32) start) & (NIOS2_ICACHE_LINE_SIZE - 1)) - { - __asm__ volatile ("flushi %0" :: "r" (i)); - } - - /* - * Having flushed the cache, flush any stale instructions in the - * pipeline - */ - - __asm__ volatile ("flushp"); - -#endif /* NIOS2_ICACHE_SIZE > 0 */ -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_icache_flush_all.c b/software/DE2_115_ASM_bsp/HAL/src/alt_icache_flush_all.c deleted file mode 100644 index dc40ea8..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_icache_flush_all.c +++ /dev/null @@ -1,46 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "nios2.h" -#include "system.h" - -#include "alt_types.h" -#include "sys/alt_cache.h" - -/* - * alt_icache_flush_all() is called to flush the entire instruction cache. - */ - -void alt_icache_flush_all (void) -{ -#if NIOS2_ICACHE_SIZE > 0 - alt_icache_flush (0, NIOS2_ICACHE_SIZE); -#endif -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_iic.c b/software/DE2_115_ASM_bsp/HAL/src/alt_iic.c deleted file mode 100644 index 4821f25..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_iic.c +++ /dev/null @@ -1,106 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ -#include "system.h" - -/* - * This file implements the HAL Enhanced interrupt API for Nios II processors - * with an internal interrupt controller (IIC). For most routines, this serves - * as a wrapper layer over the legacy interrupt API (which must be used with - * the IIC only). - * - * Use of the enhanced API is recommended so that application and device - * drivers are compatible with a Nios II system configured with an external - * interrupt controller (EIC), or IIC. This will afford maximum portability. - * - * If an EIC is present, the EIC device driver must provide these routines, - * because their operation will be specific to that EIC type. - */ -#ifndef NIOS2_EIC_PRESENT -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT - -#include "sys/alt_irq.h" -#include "priv/alt_iic_isr_register.h" -#include "priv/alt_legacy_irq.h" - -/** @Function Description: This function registers an interrupt handler. - * If the function is succesful, then the requested interrupt will be enabled upon - * return. Registering a NULL handler will disable the interrupt. - * @API Type: External - * @param ic_id Ignored. - * @param irq IRQ number - * @return 0 if successful, else error (-1) - */ -int alt_ic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, - void *isr_context, void *flags) -{ - return alt_iic_isr_register(ic_id, irq, isr, isr_context, flags); -} - -/** @Function Description: This function enables a single interrupt. - * @API Type: External - * @param ic_id Ignored. - * @param irq IRQ number - * @return 0 if successful, else error (-1) - */ -int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq) -{ - return alt_irq_enable(irq); -} - -/** @Function Description: This function disables a single interrupt. - * @API Type: External - * @param ic_id Ignored. - * @param irq IRQ number - * @return 0 if successful, else error (-1) - */ -int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq) -{ - return alt_irq_disable(irq); -} - -/** @Function Description: This function to determine if corresponding - * interrupt is enabled. - * @API Type: External - * @param ic_id Ignored. - * @param irq IRQ number - * @return Zero if corresponding interrupt is disabled and - * non-zero otherwise. - */ -alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq) -{ - alt_u32 irq_enabled; - - NIOS2_READ_IENABLE(irq_enabled); - - return (irq_enabled & (1 << irq)) ? 1: 0; -} - -#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ -#endif /* NIOS2_EIC_PRESENT */ diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_iic_isr_register.c b/software/DE2_115_ASM_bsp/HAL/src/alt_iic_isr_register.c deleted file mode 100644 index 2e6bf5b..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_iic_isr_register.c +++ /dev/null @@ -1,104 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ -#include -#include "system.h" - -/* - * Provides an interrupt registry mechanism for the any CPUs internal interrupt - * controller (IIC) when the enhanced interrupt API is active. - */ -#ifndef ALT_CPU_EIC_PRESENT -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT - -#include "alt_types.h" -#include "sys/alt_irq.h" -#include "priv/alt_iic_isr_register.h" - -/* - * The header, alt_irq_entry.h, contains the exception entry point, and is - * provided by the processor component. It is included here, so that the code - * will be added to the executable only if alt_irq_register() is present, i.e. - * if no interrupts are registered - there's no need to provide any - * interrupt handling. - */ - -#include "sys/alt_irq_entry.h" - -/* - * The header, alt_irq_table.h contains a table describing which function - * handles each interrupt. - */ - -#include "priv/alt_irq_table.h" - -/** @Function Description: This function registers an interrupt handler. - * If the function is succesful, then the requested interrupt will be enabled - * upon return. Registering a NULL handler will disable the interrupt. - * - * @API Type: External - * @param ic_id Interrupt controller ID - * @param irq IRQ ID number - * @param isr Pointer to interrupt service routine - * @param isr_context Opaque pointer passed to ISR - * @param flags - * @return 0 if successful, else error (-1) - */ -int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, - void *isr_context, void *flags) -{ - int rc = -EINVAL; - int id = irq; /* IRQ interpreted as the interrupt ID. */ - alt_irq_context status; - - if (id < ALT_NIRQ) - { - /* - * interrupts are disabled while the handler tables are updated to ensure - * that an interrupt doesn't occur while the tables are in an inconsistant - * state. - */ - - status = alt_irq_disable_all(); - - alt_irq[id].handler = isr; - alt_irq[id].context = isr_context; - - rc = (isr) ? alt_ic_irq_enable(ic_id, id) : alt_ic_irq_disable(ic_id, id); - - alt_irq_enable_all(status); - } - - return rc; -} - -#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ -#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_instruction_exception_entry.c b/software/DE2_115_ASM_bsp/HAL/src/alt_instruction_exception_entry.c deleted file mode 100644 index 5cc8767..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_instruction_exception_entry.c +++ /dev/null @@ -1,203 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ -#include "sys/alt_exceptions.h" -#include "nios2.h" -#include "alt_types.h" -#include "system.h" - -/* - * This file implements support for calling user-registered handlers for - * instruction-generated exceptions. This handler could also be reached - * in the event of a spurious interrupt. - * - * The handler code is optionally enabled through the "Enable - * Instruction-related Exception API" HAL BSP setting, which will - * define the macro below. - */ -#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API - -/* Function pointer to exception callback routine */ -alt_exception_result (*alt_instruction_exception_handler) - (alt_exception_cause, alt_u32, alt_u32) = 0x0; - -/* Link entry routine to .exceptions section */ -int alt_instruction_exception_entry (alt_u32 exception_pc) - __attribute__ ((section (".exceptions"))); - -/* - * This is the entry point for instruction-generated exceptions handling. - * This routine will be called by alt_exceptions_entry.S, after it determines - * that an exception could not be handled by handlers that preceed that - * of instruction-generated exceptions (such as interrupts). - * - * For this to function properly, you must register an exception handler - * using alt_instruction_exception_register(). This routine will call - * that handler if it has been registered. Absent a handler, it will - * break break or hang as discussed below. - */ -int alt_instruction_exception_entry (alt_u32 exception_pc) -{ - alt_u32 cause, badaddr; - -/* - * If the processor hardware has the optional EXCEPTIONS & BADADDR registers, - * read them and pass their content to the user handler. These are always - * present if the MMU or MPU is enabled, and optionally for other advanced - * exception types via the "Extra exceptions information" setting in the - * processor (hardware) configuration. - * - * If these registers are not present, the cause field will be set to - * NIOS2_EXCEPTION_CAUSE_NOT_PRESENT. Your handling routine should - * check the validity of the cause argument before proceeding. - */ -#ifdef NIOS2_HAS_EXTRA_EXCEPTION_INFO - /* Get exception cause & "badaddr" */ - NIOS2_READ_EXCEPTION(cause); - cause = ( (cause & NIOS2_EXCEPTION_REG_CAUSE_MASK) >> - NIOS2_EXCEPTION_REG_CAUSE_OFST ); - - NIOS2_READ_BADADDR(badaddr); -#else - cause = NIOS2_EXCEPTION_CAUSE_NOT_PRESENT; - badaddr = 0; -#endif /* NIOS2_HAS_EXTRA_EXCEPTION_INFO */ - - if(alt_instruction_exception_handler) { - /* - * Call handler. Its return value indicates whether the exception-causing - * instruction should be re-issued. The code that called us, - * alt_eceptions_entry.S, will look at this value and adjust the ea - * register as necessary - */ - return alt_instruction_exception_handler(cause, exception_pc, badaddr); - } - /* - * We got here because an instruction-generated exception occured, but no - * handler is present. We do not presume to know how to handle it. If the - * debugger is present, break, otherwise hang. - * - * If you've reached here in the debugger, consider examining the - * EXCEPTIONS register cause bit-field, which was read into the 'cause' - * variable above, and compare it against the exceptions-type enumeration - * in alt_exceptions.h. This register is availabe if the MMU or MPU is - * present, or if the "Extra exceptions information" hardware option is - * selected. - * - * If you get here then one of the following could have happened: - * - * - An instruction-generated exception occured, and the processor - * does not have the extra exceptions feature enabled, or you - * have not registered a handler using - * alt_instruction_exception_register() - * - * Some examples of instruction-generated exceptions and why they - * might occur: - * - * - Your program could have been compiled for a full-featured - * Nios II core, but it is running on a smaller core, and - * instruction emulation has been disabled by defining - * ALT_NO_INSTRUCTION_EMULATION. - * - * You can work around the problem by re-enabling instruction - * emulation, or you can figure out why your program is being - * compiled for a system other than the one that it is running on. - * - * - Your program has executed a trap instruction, but has not - * implemented a handler for this instruction. - * - * - Your program has executed an illegal instruction (one which is - * not defined in the instruction set). - * - * - Your processor includes an MMU or MPU, and you have enabled it - * before registering an exception handler to service exceptions it - * generates. - * - * The problem could also be hardware related: - * - If your hardware is broken and is generating spurious interrupts - * (a peripheral which negates its interrupt output before its - * interrupt handler has been executed will cause spurious interrupts) - */ - else { -#ifdef NIOS2_HAS_DEBUG_STUB - NIOS2_BREAK(); -#else - while(1) - ; -#endif /* NIOS2_HAS_DEBUG_STUB */ - } - - /* // We should not get here. Remove compiler warning. */ - return NIOS2_EXCEPTION_RETURN_REISSUE_INST; -} - -#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ - -/* - * This routine indicates whether a particular exception cause will have - * set a valid address into the BADADDR register, which is included - * in the arguments to a user-registered instruction-generated exception - * handler. Many exception types do not set valid contents in BADADDR; - * this is a convenience routine to easily test the validity of that - * argument in your handler. - * - * Note that this routine will return false (0) for cause '12', - * TLB miss. This is because there are four exception types that - * share that cause, two of which do not have a valid BADADDR. You - * must determine BADADDR's validity for these. - * - * Arguments: - * cause: The 5-bit exception cause field of the EXCEPTIONS register, - * shifted to the LSB position. You may pass the 'cause' argument - * in a handler you registered directy to this routine. - * - * Return: 1: BADADDR (bad_addr argument to handler) is valid - * 0: BADADDR is not valid - */ -int alt_exception_cause_generated_bad_addr(alt_exception_cause cause) -{ - switch (cause) { - case NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR: - return 1; - case NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR: - return 1; - case NIOS2_EXCEPTION_MISALIGNED_TARGET_PC: - return 1; - case NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION: - return 1; - case NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION: - return 1; - case NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION: - return 1; - default: - return 0; - } -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_instruction_exception_register.c b/software/DE2_115_ASM_bsp/HAL/src/alt_instruction_exception_register.c deleted file mode 100644 index 395c644..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_instruction_exception_register.c +++ /dev/null @@ -1,82 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ -#include "sys/alt_exceptions.h" -#include "alt_types.h" -#include "system.h" - -/* - * This file implements support for calling user-registered handlers for - * instruction-generated exceptions. - * - * The registry API is optionally enabled through the "Enable - * Instruction-related Exception API" HAL BSP setting, which will - * define the macro below. - */ -#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API - -/* - * The header, alt_exception_handler_registry.h contains a struct describing - * the registered exception handler - */ -#include "priv/alt_exception_handler_registry.h" - -/* - * Pull in the exception entry assembly code. This will not be linked in - * unless this object is linked into the executable (i.e. only if - * alt_instruction_exception_register() is called). - */ -__asm__( "\n\t.globl alt_exception" ); - -/* - * alt_instruction_exception_register() is called to register a handler to - * service instruction-generated exceptions that are not handled by the - * default exception handler code (interrupts, and optionally unimplemented - * instructions and traps). - * - * Passing null (0x0) in the handler argument will disable a previously- - * registered handler. - * - * Note that if no handler is registered, exceptions that are not processed - * using the built-in handler (interrupts, and optionally unimplemented - * instructions and traps) are treated as unknown exceptions, resulting - * in either a break or an infinite loop. - */ -void alt_instruction_exception_register ( - alt_exception_result (*exception_handler)( - alt_exception_cause cause, - alt_u32 exception_pc, - alt_u32 bad_addr) ) -{ - alt_instruction_exception_handler = exception_handler; -} - -#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_io_redirect.c b/software/DE2_115_ASM_bsp/HAL/src/alt_io_redirect.c deleted file mode 100644 index 049ed62..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_io_redirect.c +++ /dev/null @@ -1,98 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include -#include -#include - -#include "sys/alt_dev.h" -#include "priv/alt_file.h" - - -/* - * alt_open_fd() is similar to open() in that it is used to obtain a file - * descriptor for the file named "name". The "flags" and "mode" arguments are - * identical to the "flags" and "mode" arguments of open(). - * - * The distinction between the two functions is that the file descriptor - * structure to use is passed in as an argument, rather than allocated from the - * list of free file descriptors. - * - * This is used by alt_io_redirect() to redirect the stdin, stdout and stderr - * file descriptors to point to new devices. - * - * If the device can not be succesfully opened, then the input file descriptor - * remains unchanged. - */ - -static void alt_open_fd(alt_fd* fd, const char* name, int flags, int mode) -{ - int old; - - old = open (name, flags, mode); - - if (old >= 0) - { - fd->dev = alt_fd_list[old].dev; - fd->priv = alt_fd_list[old].priv; - fd->fd_flags = alt_fd_list[old].fd_flags; - - alt_release_fd (old); - } -} - -/* - * alt_io_redirect() is called once the device/filesystem lists have been - * initialised, but before main(). Its function is to redirect standard in, - * standard out and standard error so that they point to the devices selected by - * the user (as defined in system.h). - * - * Prior to the call to this function, io is directed towards /dev/null. If - * i/o can not be redirected to the requested device, for example if the device - * does not exist, then it remains directed at /dev/null. - */ - -void alt_io_redirect(const char* stdout_dev, - const char* stdin_dev, - const char* stderr_dev) -{ - /* Redirect the channels */ - - alt_open_fd (&alt_fd_list[STDOUT_FILENO], stdout_dev, O_WRONLY, 0777); - alt_open_fd (&alt_fd_list[STDIN_FILENO], stdin_dev, O_RDONLY, 0777); - alt_open_fd (&alt_fd_list[STDERR_FILENO], stderr_dev, O_WRONLY, 0777); -} - - - - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_ioctl.c b/software/DE2_115_ASM_bsp/HAL/src/alt_ioctl.c deleted file mode 100644 index 510b40d..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_ioctl.c +++ /dev/null @@ -1,170 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#include "sys/ioctl.h" -#include "sys/alt_errno.h" -#include "sys/alt_warning.h" -#include "priv/alt_file.h" -#include "os/alt_syscall.h" - -/* - * The ioctl() system call is provided so that application code can manipulate - * the i/o capabilities of a device in device specific ways. This is identical - * to the standard posix ioctl() function. - * - * In general this implementation simply vectors ioctl requests to the - * apropriate drivers ioctl function (as registered in the drivers alt_dev - * structure). - * - * However in the case of devices (as oposed to filesystem), the TIOCEXCL and - * TIOCNXCL requests are handled without reference to the driver. These - * requests are used to lock/release a device for exclusive access. - * - * Handling these requests centrally eases the task of device driver - * development. - * - * ALT_IOCTL is mapped onto the ioctl() system call in alt_syscall.h - */ - -#ifdef ALT_USE_DIRECT_DRIVERS - -#include "system.h" -#include "sys/alt_driver.h" - -/* - * Provide minimal version that calls ioctl routine of provided stdio devices. - */ -int ALT_IOCTL (int file, int req, void* arg) -{ -#ifdef ALT_STDIN_PRESENT - ALT_DRIVER_IOCTL_EXTERNS(ALT_STDIN_DEV); -#endif -#ifdef ALT_STDOUT_PRESENT - ALT_DRIVER_IOCTL_EXTERNS(ALT_STDOUT_DEV); -#endif -#ifdef ALT_STDERR_PRESENT - ALT_DRIVER_IOCTL_EXTERNS(ALT_STDERR_DEV); -#endif - -#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) - /* Generate a link time warning, should this function ever be called. */ - ALT_STUB_WARNING(ioctl); -#endif - - switch (file) { -#ifdef ALT_STDIN_PRESENT - case 0: /* stdin file descriptor */ - return ALT_DRIVER_IOCTL(ALT_STDIN_DEV, req, arg); -#endif /* ALT_STDIN_PRESENT */ -#ifdef ALT_STDOUT_PRESENT - case 1: /* stdout file descriptor */ - return ALT_DRIVER_IOCTL(ALT_STDOUT_DEV, req, arg); -#endif /* ALT_STDOUT_PRESENT */ -#ifdef ALT_STDERR_PRESENT - case 2: /* stderr file descriptor */ - return ALT_DRIVER_IOCTL(ALT_STDERR_DEV, req, arg); -#endif /* ALT_STDERR_PRESENT */ - default: - ALT_ERRNO = EBADFD; - return -1; - } -} - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -int ALT_IOCTL (int file, int req, void* arg) -{ - alt_fd* fd; - int rc; - - /* - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (file < 0) ? NULL : &alt_fd_list[file]; - - if (fd) - { - - /* - * In the case of device drivers (not file systems) handle the TIOCEXCL - * and TIOCNXCL requests as special cases. - */ - - if (fd->fd_flags & ALT_FD_DEV) - { - if (req == TIOCEXCL) - { - rc = alt_fd_lock (fd); - goto ioctl_done; - } - else if (req == TIOCNXCL) - { - rc = alt_fd_unlock (fd); - goto ioctl_done; - } - } - - /* - * If the driver provides an ioctl() function, call that to handle the - * request, otherwise set the return code to indicate that the request - * could not be processed. - */ - - if (fd->dev->ioctl) - { - rc = fd->dev->ioctl(fd, req, arg); - } - else - { - rc = -ENOTTY; - } - } - else - { - rc = -EBADFD; - } - -ioctl_done: - - if (rc < 0) - { - ALT_ERRNO = -rc; - } - return rc; -} - -#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_irq_entry.S b/software/DE2_115_ASM_bsp/HAL/src/alt_irq_entry.S deleted file mode 100644 index 8ee89e1..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_irq_entry.S +++ /dev/null @@ -1,108 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "system.h" - -/* - * This is the interrupt exception entry point code, which saves all the - * registers and calls the interrupt handler. It should be pulled in using - * a .globl from alt_irq_register.c. This scheme is used so that if an - * interrupt is never registered, then this code will not appear in the - * generated executable, thereby improving code footprint. - */ - - /* - * Explicitly allow the use of r1 (the assembler temporary register) - * within this code. This register is normally reserved for the use of - * the compiler. - */ - .set noat - - /* - * Pull in the exception handler register save code. - */ - .globl alt_exception - - .globl alt_irq_entry - .section .exceptions.entry.label, "xa" -alt_irq_entry: - - /* - * Section .exceptions.entry is in alt_exception_entry.S - * This saves all the caller saved registers and reads estatus into r5 - */ - - .section .exceptions.irqtest, "xa" - -#ifdef ALT_CI_INTERRUPT_VECTOR_N - /* - * Use the interrupt vector custom instruction if present to accelerate - * this code. - * If the interrupt vector custom instruction returns a negative - * value, there are no interrupts active (estatus.pie is 0 - * or ipending is 0) so assume it is a software exception. - */ - custom ALT_CI_INTERRUPT_VECTOR_N, r4, r0, r0 - blt r4, r0, .Lnot_irq -#else - /* - * Test to see if the exception was a software exception or caused - * by an external interrupt, and vector accordingly. - */ - rdctl r4, ipending - andi r2, r5, 1 - beq r2, zero, .Lnot_irq - beq r4, zero, .Lnot_irq -#endif /* ALT_CI_INTERRUPT_VECTOR_N */ - - .section .exceptions.irqhandler, "xa" - /* - * Now that all necessary registers have been preserved, call - * alt_irq_handler() to process the interrupts. - */ - - call alt_irq_handler - - .section .exceptions.irqreturn, "xa" - - br .Lexception_exit - - .section .exceptions.notirq.label, "xa" - -.Lnot_irq: - - /* - * Section .exceptions.exit is in alt_exception_entry.S - * This restores all the caller saved registers - */ - - .section .exceptions.exit.label -.Lexception_exit: - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_irq_handler.c b/software/DE2_115_ASM_bsp/HAL/src/alt_irq_handler.c deleted file mode 100644 index bb52fc8..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_irq_handler.c +++ /dev/null @@ -1,169 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include "system.h" - -/* - * This interrupt handler only works with an internal interrupt controller - * (IIC). Processors with an external interrupt controller (EIC) use an - * implementation provided by an EIC driver. - */ -#ifndef ALT_CPU_EIC_PRESENT - -#include "sys/alt_irq.h" -#include "os/alt_hooks.h" - -#include "alt_types.h" - -/* - * A table describing each interrupt handler. The index into the array is the - * interrupt id associated with the handler. - * - * When an interrupt occurs, the associated handler is called with - * the argument stored in the context member. - */ -struct ALT_IRQ_HANDLER -{ -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT - void (*handler)(void*); -#else - void (*handler)(void*, alt_u32); -#endif - void *context; -} alt_irq[ALT_NIRQ]; - -/* - * alt_irq_handler() is called by the interrupt exception handler in order to - * process any outstanding interrupts. - * - * It is defined here since it is linked in using weak linkage. - * This means that if there is never a call to alt_irq_register() (above) then - * this function will not get linked in to the executable. This is acceptable - * since if no handler is ever registered, then an interrupt can never occur. - * - * If Nios II interrupt vector custom instruction exists, use it to accelerate - * the dispatch of interrupt handlers. The Nios II interrupt vector custom - * instruction is present if the macro ALT_CI_INTERRUPT_VECTOR defined. - */ - -void alt_irq_handler (void) __attribute__ ((section (".exceptions"))); -void alt_irq_handler (void) -{ -#ifdef ALT_CI_INTERRUPT_VECTOR - alt_32 offset; - char* alt_irq_base = (char*)alt_irq; -#else - alt_u32 active; - alt_u32 mask; - alt_u32 i; -#endif /* ALT_CI_INTERRUPT_VECTOR */ - - /* - * Notify the operating system that we are at interrupt level. - */ - - ALT_OS_INT_ENTER(); - -#ifdef ALT_CI_INTERRUPT_VECTOR - /* - * Call the interrupt vector custom instruction using the - * ALT_CI_INTERRUPT_VECTOR macro. - * It returns the offset into the vector table of the lowest-valued pending - * interrupt (corresponds to highest priority) or a negative value if none. - * The custom instruction assumes that each table entry is eight bytes. - */ - while ((offset = ALT_CI_INTERRUPT_VECTOR) >= 0) { - struct ALT_IRQ_HANDLER* handler_entry = - (struct ALT_IRQ_HANDLER*)(alt_irq_base + offset); -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT - handler_entry->handler(handler_entry->context); -#else - handler_entry->handler(handler_entry->context, offset >> 3); -#endif - } -#else /* ALT_CI_INTERRUPT_VECTOR */ - /* - * Obtain from the interrupt controller a bit list of pending interrupts, - * and then process the highest priority interrupt. This process loops, - * loading the active interrupt list on each pass until alt_irq_pending() - * return zero. - * - * The maximum interrupt latency for the highest priority interrupt is - * reduced by finding out which interrupts are pending as late as possible. - * Consider the case where the high priority interupt is asserted during - * the interrupt entry sequence for a lower priority interrupt to see why - * this is the case. - */ - - active = alt_irq_pending (); - - do - { - i = 0; - mask = 1; - - /* - * Test each bit in turn looking for an active interrupt. Once one is - * found, the interrupt handler asigned by a call to alt_irq_register() is - * called to clear the interrupt condition. - */ - - do - { - if (active & mask) - { -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT - alt_irq[i].handler(alt_irq[i].context); -#else - alt_irq[i].handler(alt_irq[i].context, i); -#endif - break; - } - mask <<= 1; - i++; - - } while (1); - - active = alt_irq_pending (); - - } while (active); -#endif /* ALT_CI_INTERRUPT_VECTOR */ - - /* - * Notify the operating system that interrupt processing is complete. - */ - - ALT_OS_INT_EXIT(); -} - -#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_irq_register.c b/software/DE2_115_ASM_bsp/HAL/src/alt_irq_register.c deleted file mode 100644 index cf7261e..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_irq_register.c +++ /dev/null @@ -1,102 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ -#include -#include "system.h" - -/* - * This interrupt registry mechanism works with the Nios II internal interrupt - * controller (IIC) only. Systems with an external interrupt controller (EIC), - * or those with the IIC who are using the enhanced interrupt API will - * utilize the alt_ic_isr_register() routine to register an interrupt. - */ -#ifndef NIOS2_EIC_PRESENT - -#include "sys/alt_irq.h" -#include "priv/alt_legacy_irq.h" -#include "os/alt_hooks.h" - -#include "alt_types.h" - -/* - * The header, alt_irq_entry.h, contains the exception entry point, and is - * provided by the processor component. It is included here, so that the code - * will be added to the executable only if alt_irq_register() is present, i.e. - * if no interrupts are registered - there's no need to provide any - * interrupt handling. - */ - -#include "sys/alt_irq_entry.h" - -/* - * The header, alt_irq_table.h contains a table describing which function - * handles each interrupt. - */ - -#include "priv/alt_irq_table.h" - -/* - * alt_irq_handler() is called to register an interrupt handler. If the - * function is succesful, then the requested interrupt will be enabled upon - * return. Registering a NULL handler will disable the interrupt. - * - * The return value is 0 if the interrupt handler was registered and the - * interrupt was enabled, otherwise it is negative. - */ - -int alt_irq_register (alt_u32 id, - void* context, - alt_isr_func handler) -{ - int rc = -EINVAL; - alt_irq_context status; - - if (id < ALT_NIRQ) - { - /* - * interrupts are disabled while the handler tables are updated to ensure - * that an interrupt doesn't occur while the tables are in an inconsistant - * state. - */ - - status = alt_irq_disable_all (); - - alt_irq[id].handler = handler; - alt_irq[id].context = context; - - rc = (handler) ? alt_irq_enable (id): alt_irq_disable (id); - - alt_irq_enable_all(status); - } - return rc; -} -#endif /* NIOS2_EIC_PRESENT */ - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_irq_vars.c b/software/DE2_115_ASM_bsp/HAL/src/alt_irq_vars.c deleted file mode 100644 index 4f4d140..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_irq_vars.c +++ /dev/null @@ -1,47 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "alt_types.h" - -#include "system.h" - -/* - * These global variables are used to save the current list of enabled - * interrupts. See alt_irq.h for further details. - */ - -volatile alt_u32 alt_irq_active = 0; - -#ifndef ALT_EXCEPTION_STACK - -volatile alt_u32 alt_priority_mask = (alt_u32) -1; - -#endif - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_isatty.c b/software/DE2_115_ASM_bsp/HAL/src/alt_isatty.c deleted file mode 100644 index 73677dd..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_isatty.c +++ /dev/null @@ -1,125 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include - -#include "sys/alt_dev.h" -#include "sys/alt_errno.h" -#include "sys/alt_warning.h" -#include "priv/alt_file.h" -#include "os/alt_syscall.h" - -#ifdef ALT_USE_DIRECT_DRIVERS - -#include "system.h" - -/* - * Provide minimal version that just describes all file descriptors - * as tty devices for provided stdio devices. - */ -int ALT_ISATTY (int file) -{ - switch (file) { -#ifdef ALT_STDIN_PRESENT - case 0: /* stdin file descriptor */ -#endif /* ALT_STDIN_PRESENT */ -#ifdef ALT_STDOUT_PRESENT - case 1: /* stdout file descriptor */ -#endif /* ALT_STDOUT_PRESENT */ -#ifdef ALT_STDERR_PRESENT - case 2: /* stderr file descriptor */ -#endif /* ALT_STDERR_PRESENT */ - return 1; - default: - return 0; - } - -#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) - /* Generate a link time warning, should this function ever be called. */ - ALT_STUB_WARNING(isatty); -#endif -} - -#else /* !ALT_USE_DIRECT_DRIVERS */ -/* - * isatty() can be used to determine whether the input file descriptor "file" - * refers to a terminal device or not. If it is a terminal device then the - * return value is one, otherwise it is zero. - * - * ALT_ISATTY is mapped onto the isatty() system call in alt_syscall.h - */ - -int ALT_ISATTY (int file) -{ - alt_fd* fd; - struct stat stat; - - /* - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (file < 0) ? NULL : &alt_fd_list[file]; - - if (fd) - { - /* - * If a device driver does not provide an fstat() function, then it is - * treated as a terminal device by default. - */ - - if (!fd->dev->fstat) - { - return 1; - } - - /* - * If a driver does provide an implementation of the fstat() function, then - * this is called so that the device can identify itself. - */ - - else - { - fstat (file, &stat); - return (stat.st_mode == _IFCHR) ? 1 : 0; - } - } - else - { - ALT_ERRNO = EBADFD; - return 0; - } -} - -#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_kill.c b/software/DE2_115_ASM_bsp/HAL/src/alt_kill.c deleted file mode 100644 index 58097d1..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_kill.c +++ /dev/null @@ -1,121 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include - -#include "sys/alt_errno.h" -#include "os/alt_syscall.h" - - -/* - * kill() is used by newlib in order to send signals to processes. Since there - * is only a single process in the HAL, the only valid values for pid are - * either the current process id, or the broadcast values, i.e. pid must be - * less than or equal to zero. - * - * ALT_KILL is mapped onto the kill() system call in alt_syscall.h - */ - -int ALT_KILL (int pid, int sig) -{ - int status = 0; - - if (pid <= 0) - { - switch (sig) - { - case 0: - - /* The null signal is used to check that a pid is valid. */ - - break; - - case SIGABRT: - case SIGALRM: - case SIGFPE: - case SIGILL: - case SIGKILL: - case SIGPIPE: - case SIGQUIT: - case SIGSEGV: - case SIGTERM: - case SIGUSR1: - case SIGUSR2: - case SIGBUS: - case SIGPOLL: - case SIGPROF: - case SIGSYS: - case SIGTRAP: - case SIGVTALRM: - case SIGXCPU: - case SIGXFSZ: - - /* - * The Posix standard defines the default behaviour for all these signals - * as being eqivalent to a call to _exit(). No mechanism is provided to - * change this behaviour. - */ - - _exit(0); - case SIGCHLD: - case SIGURG: - - /* - * The Posix standard defines these signals to be ignored by default. No - * mechanism is provided to change this behaviour. - */ - - break; - default: - - /* Tried to send an unsupported signal */ - - status = EINVAL; - } - } - - else if (pid > 0) - { - /* Attempted to signal a non-existant process */ - - status = ESRCH; - } - - if (status) - { - ALT_ERRNO = status; - return -1; - } - - return 0; -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_link.c b/software/DE2_115_ASM_bsp/HAL/src/alt_link.c deleted file mode 100644 index a57a5c4..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_link.c +++ /dev/null @@ -1,56 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_warning.h" -#include "sys/alt_errno.h" -#include "os/alt_syscall.h" - -/* - * link() is used by newlib to create a new link to an existing file. This is - * unsupported in the HAL environment. However a "do-nothing" implementation - * is still provied for newlib compatability. - * - * ALT_LINK is mapped onto the link() system call in alt_syscall.h - */ - -int ALT_LINK ( char *existing, char *new) -{ - /* Generate a link time warning, should this function ever be called. */ - - ALT_STUB_WARNING(link); - - /* Indicate an error */ - - ALT_ERRNO = ENOSYS; - return -1; -} - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_load.c b/software/DE2_115_ASM_bsp/HAL/src/alt_load.c deleted file mode 100644 index 27d492b..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_load.c +++ /dev/null @@ -1,88 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_load.h" -#include "sys/alt_cache.h" - -/* - * Linker defined symbols. - */ - -extern void __flash_rwdata_start; -extern void __ram_rwdata_start; -extern void __ram_rwdata_end; -extern void __flash_rodata_start; -extern void __ram_rodata_start; -extern void __ram_rodata_end; -extern void __flash_exceptions_start; -extern void __ram_exceptions_start; -extern void __ram_exceptions_end; - -/* - * alt_load() is called when the code is executing from flash. In this case - * there is no bootloader, so this application is responsible for loading to - * RAM any sections that are required. - */ - -void alt_load (void) -{ - /* - * Copy the .rwdata section. - */ - - alt_load_section (&__flash_rwdata_start, - &__ram_rwdata_start, - &__ram_rwdata_end); - - /* - * Copy the exception handler. - */ - - alt_load_section (&__flash_exceptions_start, - &__ram_exceptions_start, - &__ram_exceptions_end); - - /* - * Copy the .rodata section. - */ - - alt_load_section (&__flash_rodata_start, - &__ram_rodata_start, - &__ram_rodata_end); - - /* - * Now ensure that the caches are in synch. - */ - - alt_dcache_flush_all(); - alt_icache_flush_all(); -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_log_macro.S b/software/DE2_115_ASM_bsp/HAL/src/alt_log_macro.S deleted file mode 100644 index 2e3cc26..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_log_macro.S +++ /dev/null @@ -1,56 +0,0 @@ -/* alt_log_macro.S - * - * Implements the function tx_log_str, called by the assembly macro - * ALT_LOG_PUTS(). The macro will be empty when logging is turned off, - * and this function will not be compiled. When logging is on, - * this function is used to print out the strings defined in the beginning - * of alt_log_printf.c, using port information taken from system.h and - * alt_log_printf.h. - * - * This routine only handles strings, and sends a character into the defined - * output device's output buffer when the device is ready. It's intended for - * debugging purposes, where messages can be set to print out at certain - * points in the boot code to indicate the progress of the program. - * - */ - -#ifndef __ALT_LOG_MACROS__ -#define __ALT_LOG_MACROS__ - -/* define this flag to skip assembly-incompatible parts - * of various include files. */ -#define ALT_ASM_SRC - -#ifdef ALT_LOG_ENABLE // only compile this function if this flag is defined. - - #include "system.h" - #include "sys/alt_log_printf.h" - - .global tx_log_str -tx_log_str: - /* load base uart / jtag uart address into r6 */ - movhi r6, %hiadj(ALT_LOG_PORT_BASE) - addi r6, r6, %lo(ALT_LOG_PORT_BASE) -tx_next_char: - /* if pointer points to null, return - * r4 is the pointer to the str to be printed, set by ALT_LOG_PUTS */ - ldb r7, (r4) - beq r0, r7, end_tx - - /* check device transmit ready */ -wait_tx_ready_loop: - ldwio r5, ALT_LOG_PRINT_REG_OFFSET(r6) - andi r5, r5, ALT_LOG_PRINT_MSK - beq r5, r0, wait_tx_ready_loop - /* write char */ - stwio r7, ALT_LOG_PRINT_TXDATA_REG_OFFSET (r6) - /* advance string pointer */ - addi r4, r4, 1 - br tx_next_char -end_tx: - ret - -#endif - -#endif /* __ALT_LOG_MACROS__ */ - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_log_printf.c b/software/DE2_115_ASM_bsp/HAL/src/alt_log_printf.c deleted file mode 100644 index af0116f..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_log_printf.c +++ /dev/null @@ -1,479 +0,0 @@ - -/* alt_log_printf.c - * - * This file implements the various C functions used for the - * alt_log logging/debugging print functions. The functions - * sit as is here - the job of hiding them from the compiler - * if logging is disabled is accomplished in the .h file. - * - * All the global variables for alt_log are defined here. - * These include the various flags that turn on additional - * logging options; the strings for assembly printing; and - * other globals needed by different logging options. - * - * There are 4 functions that handle the actual printing: - * alt_log_txchar: Actual function that puts 1 char to UART/JTAG UART. - * alt_log_repchar: Calls alt_log_txchar 'n' times - used by - * alt_log_private_printf for formatting. - * alt_log_private_printf: - * Stripped down implementation of printf - no floats. - * alt_log_printf_proc: - * Wrapper function for private_printf. - * - * The rest of the functions are called by the macros which - * were called by code in the other components. Each function - * is preceded by a comment, about which file it gets called - * in, and what its purpose is. - * - * author: gkwan - */ - -/* skip all code if enable is off */ -#ifdef ALT_LOG_ENABLE - -#include -#include -#include -#ifdef __ALTERA_AVALON_JTAG_UART - #include "altera_avalon_jtag_uart.h" - #include -#endif -#include "sys/alt_log_printf.h" - -/* strings for assembly puts */ -char alt_log_msg_bss[] = "[crt0.S] Clearing BSS \r\n";; -char alt_log_msg_alt_main[] = "[crt0.S] Calling alt_main.\r\n"; -char alt_log_msg_stackpointer[] \ - = "[crt0.S] Setting up stack and global pointers.\r\n"; -char alt_log_msg_cache[] = "[crt0.S] Inst & Data Cache Initialized.\r\n"; -/* char array allocation for alt_write */ -char alt_log_write_buf[ALT_LOG_WRITE_ECHO_LEN+2]; - -/* global variables for all 'on' flags */ - -/* - * The boot message flag is linked into the data (rwdata) section - * because if it is zero, it would otherwise be placed in the bss section. - * alt_log examines this variable before the BSS is cleared in the boot-up - * process. - */ -volatile alt_u32 alt_log_boot_on_flag \ - __attribute__ ((section (".data"))) = ALT_LOG_BOOT_ON_FLAG_SETTING; - -volatile alt_u8 alt_log_write_on_flag = ALT_LOG_WRITE_ON_FLAG_SETTING; - -volatile alt_u8 alt_log_sys_clk_on_flag = ALT_LOG_SYS_CLK_ON_FLAG_SETTING; - -volatile alt_u8 alt_log_jtag_uart_alarm_on_flag = \ - ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING; - -volatile alt_u8 alt_log_jtag_uart_isr_on_flag = \ - ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING; - -volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag = \ - ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING; - -/* Global alarm object for recurrent JTAG UART status printing */ -alt_alarm alt_log_jtag_uart_alarm_1; - -/* Global ints for system clock printing and count */ -volatile int alt_log_sys_clk_count; -volatile int alt_system_clock_in_sec; - -/* enum used by alt_log_private_printf */ -enum -{ - pfState_chars, - pfState_firstFmtChar, - pfState_otherFmtChar -}; - - - - -/* Function to put one char onto the UART/JTAG UART txdata register. */ -void alt_log_txchar(int c,char *base) -{ - /* Wait until the device is ready for a character */ - while((ALT_LOG_PRINT_REG_RD(base) & ALT_LOG_PRINT_MSK) == 0) - ; - /* And pop the character into the register */ - ALT_LOG_PRINT_TXDATA_WR(base,c); -} - - -/* Called by alt_log_private_printf to print out characters repeatedly */ -void alt_log_repchar(char c,int r,int base) -{ - while(r-- > 0) - alt_log_txchar(c,(char*) base); -} - - -/* Stripped down printf function */ -void alt_log_private_printf(const char *fmt,int base,va_list args) - { - const char *w; - char c; - int state; - int fmtLeadingZero = 0; /* init these all to 0 for -W warnings. */ - int fmtLong = 0; - int fmtBeforeDecimal = 0; - int fmtAfterDecimal = 0; - int fmtBase = 0; - int fmtSigned = 0; - int fmtCase = 0; /* For hex format, if 1, A-F, else a-f. */ - - w = fmt; - state = pfState_chars; - - while(0 != (c = *w++)) - { - switch(state) - { - case pfState_chars: - if(c == '%') - { - fmtLeadingZero = 0; - fmtLong = 0; - fmtBase = 10; - fmtSigned = 1; - fmtCase = 0; /* Only %X sets this. */ - fmtBeforeDecimal = -1; - fmtAfterDecimal = -1; - state = pfState_firstFmtChar; - } - else - { - alt_log_txchar(c,(char*)base); - } - break; - - case pfState_firstFmtChar: - if(c == '0') - { - fmtLeadingZero = 1; - state = pfState_otherFmtChar; - } - else if(c == '%') - { - alt_log_txchar(c,(char*)base); - state = pfState_chars; - } - else - { - state = pfState_otherFmtChar; - goto otherFmtChar; - } - break; - - case pfState_otherFmtChar: -otherFmtChar: - if(c == '.') - { - fmtAfterDecimal = 0; - } - else if('0' <= c && c <= '9') - { - c -= '0'; - if(fmtAfterDecimal < 0) /* still before decimal */ - { - if(fmtBeforeDecimal < 0) - { - fmtBeforeDecimal = 0; - } - else - { - fmtBeforeDecimal *= 10; - } - fmtBeforeDecimal += c; - } - else - { - fmtAfterDecimal = (fmtAfterDecimal * 10) + c; - } - } - else if(c == 'l') - { - fmtLong = 1; - } - else /* we're up to the letter which determines type */ - { - switch(c) - { - case 'd': - case 'i': -doIntegerPrint: - { - unsigned long v; - unsigned long p; /* biggest power of fmtBase */ - unsigned long vShrink; /* used to count digits */ - int sign; - int digitCount; - - /* Get the value */ - if(fmtLong) - { - if (fmtSigned) - { - v = va_arg(args,long); - } - else - { - v = va_arg(args,unsigned long); - } - } - else - { - if (fmtSigned) - { - v = va_arg(args,int); - } - else - { - v = va_arg(args,unsigned int); - } - } - - /* Strip sign */ - sign = 0; - /* (assumes sign bit is #31) */ - if( fmtSigned && (v & (0x80000000)) ) - { - v = ~v + 1; - sign = 1; - } - - /* Count digits, and get largest place value */ - vShrink = v; - p = 1; - digitCount = 1; - while( (vShrink = vShrink / fmtBase) > 0 ) - { - digitCount++; - p *= fmtBase; - } - - /* Print leading characters & sign */ - fmtBeforeDecimal -= digitCount; - if(fmtLeadingZero) - { - if(sign) - { - alt_log_txchar('-',(char*)base); - fmtBeforeDecimal--; - } - alt_log_repchar('0',fmtBeforeDecimal,base); - } - else - { - if(sign) - { - fmtBeforeDecimal--; - } - alt_log_repchar(' ',fmtBeforeDecimal,base); - if(sign) - { - alt_log_txchar('-',(char*)base); - } - } - - /* Print numbery parts */ - while(p) - { - unsigned char d; - - d = v / p; - d += '0'; - if(d > '9') - { - d += (fmtCase ? 'A' : 'a') - '0' - 10; - } - alt_log_txchar(d,(char*)base); - - v = v % p; - p = p / fmtBase; - } - } - - state = pfState_chars; - break; - - case 'u': - fmtSigned = 0; - goto doIntegerPrint; - case 'o': - fmtSigned = 0; - fmtBase = 8; - goto doIntegerPrint; - case 'x': - fmtSigned = 0; - fmtBase = 16; - goto doIntegerPrint; - case 'X': - fmtSigned = 0; - fmtBase = 16; - fmtCase = 1; - goto doIntegerPrint; - - case 'c': - alt_log_repchar(' ',fmtBeforeDecimal-1,base); - alt_log_txchar(va_arg(args,int),(char*)base); - break; - - case 's': - { - char *s; - - s = va_arg(args,char *); - alt_log_repchar(' ',fmtBeforeDecimal-strlen(s),base); - - while(*s) - alt_log_txchar(*s++,(char*)base); - } - break; - } /* switch last letter of fmt */ - state=pfState_chars; - } - break; - } /* switch */ - } /* while chars left */ - } /* printf */ - -/* Main logging printf function */ -int alt_log_printf_proc(const char *fmt, ... ) -{ - va_list args; - - va_start (args, fmt); - alt_log_private_printf(fmt,ALT_LOG_PORT_BASE,args); - return (0); -} - -/* Below are the functions called by different macros in various components. */ - -/* If the system has a JTAG_UART, include JTAG_UART debugging functions */ -#ifdef __ALTERA_AVALON_JTAG_UART - -/* The alarm function in altera_avalon_jtag_uart.c. - * This function, when turned on, prints out the status - * of the JTAG UART Control register, every ALT_LOG_JTAG_UART_TICKS. - * If the flag is off, the alarm should never be registered, and this - * function should never run */ -alt_u32 altera_avalon_jtag_uart_report_log(void * context) -{ - if (alt_log_jtag_uart_alarm_on_flag) { - altera_avalon_jtag_uart_state* dev = (altera_avalon_jtag_uart_state*) context; - const char* header="JTAG Alarm:"; - alt_log_jtag_uart_print_control_reg(dev, dev->base, header); - return ALT_LOG_JTAG_UART_TICKS; - } - else - { - /* If flag is not on, return 0 to disable future alarms. - * Should never be here, alarm should not be enabled at all. */ - return 0; - } -} - -void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, int base, const char* header) -{ - unsigned int control, space, ac, wi, ri, we, re; - control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); - space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> - ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; - we= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK) >> - ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST; - re= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK) >> - ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST; - ri= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) >> - ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST; - wi= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) >> - ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST; - ac= (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) >> - ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST; - -#ifdef ALTERA_AVALON_JTAG_UART_SMALL - ALT_LOG_PRINTF( - "%s HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", - header,space,ac,wi,ri,we,re); -#else - ALT_LOG_PRINTF( - "%s SW CirBuf = %d, HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", - header,(dev->tx_out-dev->tx_in),space,ac,wi,ri,we,re); -#endif - - return; - -} - -/* In altera_avalon_jtag_uart.c - * Same output as the alarm function above, but this is called in the driver - * init function. Hence, it gives the status of the JTAG UART control register - * right at the initialization of the driver */ -void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base) -{ - const char* header="JTAG Startup Info:"; - alt_log_jtag_uart_print_control_reg(dev, base, header); - return; -} - -/* In altera_avalon_jtag_uart.c - * When turned on, this function will print out the status of the jtag uart - * control register every time there is a jtag uart "almost-empty" interrupt. */ -void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev) -{ - if (alt_log_jtag_uart_isr_on_flag) { - const char* header="JTAG IRQ:"; - alt_log_jtag_uart_print_control_reg(dev, base, header); - } - return; -} - -#endif /* __ALTERA_AVALON_JTAG_UART */ - -/* In alt_write.c - * When the alt_log_write_on_flag is turned on, this function gets called - * every time alt_write gets called. The first - * ALT_LOG_WRITE_ECHO_LEN characters of every printf command (or any command - * that eventually calls write()) gets echoed to the alt_log output. */ -void alt_log_write(const void *ptr, size_t len) -{ - if (alt_log_write_on_flag) { - int temp_cnt; - int length=(ALT_LOG_WRITE_ECHO_LEN>len) ? len : ALT_LOG_WRITE_ECHO_LEN; - - if (length < 2) return; - - strncpy (alt_log_write_buf,ptr,length); - alt_log_write_buf[length-1]='\n'; - alt_log_write_buf[length]='\r'; - alt_log_write_buf[length+1]='\0'; - - /* Escape Ctrl-D's. If the Ctrl-D gets sent it might kill the terminal - * connection of alt_log. It will get replaced by 'D'. */ - for (temp_cnt=0;temp_cnt < length; temp_cnt++) { - if (alt_log_write_buf[temp_cnt]== 0x4) { - alt_log_write_buf[temp_cnt]='D'; - } - } - ALT_LOG_PRINTF("Write Echo: %s",alt_log_write_buf); - } -} - -/* In altera_avalon_timer_sc - * This function prints out a system clock is alive message - * every ALT_LOG_SYS_CLK_INTERVAL (in ticks). */ -void alt_log_system_clock() -{ - if (alt_log_sys_clk_on_flag) { - alt_log_sys_clk_count++; - if (alt_log_sys_clk_count > ALT_LOG_SYS_CLK_INTERVAL) { - alt_log_sys_clk_count = 0; - ALT_LOG_PRINTF("System Clock On %u\r\n",alt_system_clock_in_sec++); - } - } -} - - -#endif diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_lseek.c b/software/DE2_115_ASM_bsp/HAL/src/alt_lseek.c deleted file mode 100644 index a56dbfb..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_lseek.c +++ /dev/null @@ -1,117 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#include "sys/alt_errno.h" -#include "sys/alt_warning.h" -#include "priv/alt_file.h" -#include "os/alt_syscall.h" - -#ifdef ALT_USE_DIRECT_DRIVERS - -off_t ALT_LSEEK (int file, off_t ptr, int dir) -{ - /* Generate a link time warning, should this function ever be called. */ - - ALT_STUB_WARNING(lseek); - - /* Indicate an error */ - - ALT_ERRNO = ENOSYS; - return -1; -} - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -/* - * lseek() can be called to move the read/write pointer associated with the - * file descriptor "file". This function simply vectors the call to the lseek() - * function provided by the driver associated with the file descriptor. - * - * If the driver does not provide an implementation of lseek() an error is - * indicated. - * - * lseek() corresponds to the standard lseek() function. - * - * ALT_LSEEK is mapped onto the lseek() system call in alt_syscall.h - * - */ - -off_t ALT_LSEEK (int file, off_t ptr, int dir) -{ - alt_fd* fd; - off_t rc = 0; - - /* - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (file < 0) ? NULL : &alt_fd_list[file]; - - if (fd) - { - /* - * If the device driver provides an implementation of the lseek() function, - * then call that to process the request. - */ - - if (fd->dev->lseek) - { - rc = fd->dev->lseek(fd, ptr, dir); - } - /* - * Otherwise return an error. - */ - - else - { - rc = -ENOTSUP; - } - } - else - { - rc = -EBADFD; - } - - if (rc < 0) - { - ALT_ERRNO = -rc; - rc = -1; - } - - return rc; -} - -#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_main.c b/software/DE2_115_ASM_bsp/HAL/src/alt_main.c deleted file mode 100644 index 33e3463..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_main.c +++ /dev/null @@ -1,161 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include -#include -#include -#include -#include - -#include "sys/alt_dev.h" -#include "sys/alt_sys_init.h" -#include "sys/alt_irq.h" -#include "sys/alt_dev.h" - -#include "os/alt_hooks.h" - -#include "priv/alt_file.h" -#include "alt_types.h" - -#include "system.h" - -#include "sys/alt_log_printf.h" - -extern void _do_ctors(void); -extern void _do_dtors(void); - -/* - * Standard arguments for main. By default, no arguments are passed to main. - * However a device driver may choose to configure these arguments by calling - * alt_set_args(). The expectation is that this facility will only be used by - * the iclient/ihost utility. - */ - -int alt_argc = 0; -char** alt_argv = {NULL}; -char** alt_envp = {NULL}; - -/* - * Prototype for the entry point to the users application. - */ - -extern int main (int, char **, char **); - -/* - * alt_main is the C entry point for the HAL. It is called by the assembler - * startup code in the processor specific crt0.S. It is responsible for: - * completing the C runtime configuration; configuring all the - * devices/filesystems/components in the system; and call the entry point for - * the users application, i.e. main(). - */ - -void alt_main (void) -{ -#ifndef ALT_NO_EXIT - int result; -#endif - - /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ - ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); - /* Initialize the interrupt controller. */ - alt_irq_init (NULL); - - /* Initialize the operating system */ - ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_irq_init, calling alt_os_init.\r\n"); - ALT_OS_INIT(); - - /* - * Initialize the semaphore used to control access to the file descriptor - * list. - */ - - ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); - ALT_SEM_CREATE (&alt_fd_list_lock, 1); - - /* Initialize the device drivers/software components. */ - ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); - alt_sys_init(); - ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_sys_init.\r\n"); - -#if !defined(ALT_USE_DIRECT_DRIVERS) && (defined(ALT_STDIN_PRESENT) || defined(ALT_STDOUT_PRESENT) || defined(ALT_STDERR_PRESENT)) - - /* - * Redirect stdio to the apropriate devices now that the devices have - * been initialized. This is only done if the user has requested these - * devices be present (not equal to /dev/null) and if direct drivers - * aren't being used. - */ - - ALT_LOG_PRINT_BOOT("[alt_main.c] Redirecting IO.\r\n"); - alt_io_redirect(ALT_STDOUT, ALT_STDIN, ALT_STDERR); -#endif - -#ifndef ALT_NO_C_PLUS_PLUS - /* - * Call the C++ constructors - */ - - ALT_LOG_PRINT_BOOT("[alt_main.c] Calling C++ constructors.\r\n"); - _do_ctors (); -#endif /* ALT_NO_C_PLUS_PLUS */ - -#if !defined(ALT_NO_C_PLUS_PLUS) && !defined(ALT_NO_CLEAN_EXIT) && !defined(ALT_NO_EXIT) - /* - * Set the C++ destructors to be called at system shutdown. This is only done - * if a clean exit has been requested (i.e. the exit() function has not been - * redefined as _exit()). This is in the interest of reducing code footprint, - * in that the atexit() overhead is removed when it's not needed. - */ - - ALT_LOG_PRINT_BOOT("[alt_main.c] Calling atexit.\r\n"); - atexit (_do_dtors); -#endif - - /* - * Finally, call main(). The return code is then passed to a subsequent - * call to exit() unless the application is never supposed to exit. - */ - - ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); - -#ifdef ALT_NO_EXIT - main (alt_argc, alt_argv, alt_envp); -#else - result = main (alt_argc, alt_argv, alt_envp); - close(STDOUT_FILENO); - exit (result); -#endif - - ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); -} - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_malloc_lock.c b/software/DE2_115_ASM_bsp/HAL/src/alt_malloc_lock.c deleted file mode 100644 index 89c2dd4..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_malloc_lock.c +++ /dev/null @@ -1,52 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -/* - * These are the empty malloc lock/unlock stubs required by newlib. These are - * used to make newlib's malloc() function thread safe. The default HAL - * configuration is single threaded, so there is nothing to do here. Note that - * this requires that malloc is never called by an interrupt service routine. - */ - -void __malloc_lock ( struct _reent *_r ) -{ -} - -/* - * - */ - -void __malloc_unlock ( struct _reent *_r ) -{ -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_mcount.S b/software/DE2_115_ASM_bsp/HAL/src/alt_mcount.S deleted file mode 100644 index cf510da..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_mcount.S +++ /dev/null @@ -1,198 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003-2010 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* mcount or _mcount is inserted by GCC before the function prologue of every - * function when a program is compiled for profiling. At the start of mcount, - * we guarantee that: - * ra = self_pc (an address in the function which called mcount) - * r8 = from_pc (an address in the function which called mcount's caller) - * - * Because this is always called at the start of a function we can corrupt - * r2,r3 and r11-r15. We must not corrupt r4-r7 (because they might contain - * function arguments for the instrumented function) or r8 (which holds ra - * for the instrumented function). - */ - - .global __mcount_fn_head - - .global mcount - - /* _mcount is used by gcc4 */ - .global _mcount - -_mcount: -mcount: - /* Use a hash to speed up locating fn_entry. We use bits 5 upwards to choose - * the bucket because bits 1:0 will always be 0, and because the distribution - * of values for bits 4:2 won't be even (aligning on cache line boundaries - * will skew it). Higher bits should be fairly random. - */ - /* fn_head = mcount_fn_head + (((unsigned int)self_pc >> 5) & (HASH_BUCKETS - 1)); */ - - srli r2, ra, 3 - movhi r3, %hiadj(__mcount_fn_head) - addi r3, r3, %lo(__mcount_fn_head) - andi r2, r2, 0xFC - add r11, r2, r3 - - /* The fast case is where we have already allocated a function arc, and so - * also a function pointer. - */ - - /* First find the function being called (using self_pc) */ - mov r10, r11 -0: - ldw r10, 0(r10) - beq r10, zero, .Lnew_arc - ldw r2, 4(r10) - bne r2, ra, 0b - - /* Found a function entry for this PC. Now look for an arc with a matching - * from_pc value. There will always be at least one arc. */ - ldw r3, 8(r10) -0: - ldw r2, 4(r3) - beq r2, r8, .Lfound_arc - ldw r3, 0(r3) - bne r3, zero, 0b - -.Lnew_arc: - addi sp, sp, -24 - -.LCFI0: - stw ra, 0(sp) - stw r4, 4(sp) - stw r5, 8(sp) - stw r6, 12(sp) - stw r7, 16(sp) - stw r8, 20(sp) - -.LCFI1: - /* __mcount_record(orig_ra, orig_r8, fn_entry, *fn_head); */ - mov r4, ra - mov r5, r8 - mov r6, r10 - mov r7, r11 - call __mcount_record - - /* restore registers from the stack */ - ldw ra, 0(sp) - ldw r4, 4(sp) - ldw r5, 8(sp) - ldw r6, 12(sp) - ldw r7, 16(sp) - ldw r8, 20(sp) - - addi sp, sp, 24 - -.LCFI2: - ret - -.Lfound_arc: - /* We've found the correct arc record. Increment the count and return */ - ldw r2, 8(r3) - addi r2, r2, 1 - stw r2, 8(r3) - ret - -.Lmcount_end: - - - -/* - * Dwarf2 debug information for the function. This provides GDB with the - * information it needs to backtrace out of this function. - */ - - .section .debug_frame,"",@progbits -.LCIE: - .4byte 2f - 1f /* Length */ -1: - .4byte 0xffffffff /* CIE id */ - .byte 0x1 /* Version */ - .string "" /* Augmentation */ - .uleb128 0x1 /* Code alignment factor */ - .sleb128 -4 /* Data alignment factor */ - .byte 0x1f /* Return address register */ - - .byte 0xc /* Define CFA */ - .uleb128 0x1b /* Register 27 (sp) */ - .uleb128 0x0 /* Offset 0 */ - - .align 2 /* Padding */ -2: - -.LFDE_mcount: - .4byte 2f - 1f /* Length */ -1: - .4byte .LCIE /* Pointer to CIE */ - .4byte mcount /* Start of table entry */ - .4byte .Lmcount_end - mcount /* Size of table entry */ - - .byte 0x4 /* Advance location */ - .4byte .LCFI0 - mcount /* to .LCFI0 */ - .byte 0xe /* Define CFA offset */ - .uleb128 24 /* to 24 */ - - .byte 0x4 /* Advance location */ - .4byte .LCFI1 - .LCFI0 /* to .LCFI1 */ - .byte 0x9f /* Store ra */ - .uleb128 0x6 /* at CFA-24 */ - .byte 0x84 /* Store r4 */ - .uleb128 0x5 /* at CFA-20 */ - .byte 0x85 /* Store r5 */ - .uleb128 0x4 /* at CFA-16 */ - .byte 0x86 /* Store r6 */ - .uleb128 0x3 /* at CFA-12 */ - .byte 0x87 /* Store r7 */ - .uleb128 0x2 /* at CFA-8 */ - .byte 0x88 /* Store r8 */ - .uleb128 0x1 /* at CFA-4 */ - - .byte 0x4 /* Advance location */ - .4byte .LCFI2 - .LCFI1 /* to .LCFI2 */ - .byte 0xe /* Define CFA offset */ - .uleb128 0 /* to 0 */ - .byte 0x8 /* Same value */ - .uleb128 31 /* for ra */ - .byte 0x8 /* Same value */ - .uleb128 4 /* for r4 */ - .byte 0x8 /* Same value */ - .uleb128 5 /* for r5 */ - .byte 0x8 /* Same value */ - .uleb128 6 /* for r6 */ - .byte 0x8 /* Same value */ - .uleb128 7 /* for r7 */ - .byte 0x8 /* Same value */ - .uleb128 8 /* for r8 */ - - .align 2 -2: - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_open.c b/software/DE2_115_ASM_bsp/HAL/src/alt_open.c deleted file mode 100644 index d7040bc..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_open.c +++ /dev/null @@ -1,173 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_errno.h" -#include "sys/alt_warning.h" -#include "priv/alt_file.h" -#include "alt_types.h" -#include "os/alt_syscall.h" - -#ifdef ALT_USE_DIRECT_DRIVERS - -int ALT_OPEN (const char* file, int flags, int mode) -{ - /* Generate a link time warning, should this function ever be called. */ - - ALT_STUB_WARNING(open); - - /* Indicate an error */ - - ALT_ERRNO = ENOSYS; - return -1; -} - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -extern alt_llist alt_dev_list; - -/* - * alt_file_locked() is used by open() to ensure that a device has not been - * previously locked for exclusive access using ioctl(). This test is only - * performed for devices. Filesystems are required to handle the ioctl() call - * themselves, and report the error from the filesystems open() function. - */ - -static int alt_file_locked (alt_fd* fd) -{ - alt_u32 i; - - /* - * Mark the file descriptor as belonging to a device. - */ - - fd->fd_flags |= ALT_FD_DEV; - - /* - * Loop through all current file descriptors searching for one that's locked - * for exclusive access. If a match is found, generate an error. - */ - - for (i = 0; i <= alt_max_fd; i++) - { - if ((alt_fd_list[i].dev == fd->dev) && - (alt_fd_list[i].fd_flags & ALT_FD_EXCL) && - (&alt_fd_list[i] != fd)) - { - return -EACCES; - } - } - - /* The device is not locked */ - - return 0; -} - -/* - * open() is called in order to get a file descriptor that reference the file - * or device named "name". This descriptor can then be used to manipulate the - * file/device using the standard system calls, e.g. write(), read(), ioctl() - * etc. - * - * This is equivalent to the standard open() system call. - * - * ALT_OPEN is mapped onto the open() system call in alt_syscall.h - */ - -int ALT_OPEN (const char* file, int flags, int mode) -{ - alt_dev* dev; - alt_fd* fd; - int index = -1; - int status = -ENODEV; - int isafs = 0; - - /* - * Check the device list, to see if a device with a matching name is - * registered. - */ - - if (!(dev = alt_find_dev (file, &alt_dev_list))) - { - /* No matching device, so try the filesystem list */ - - dev = alt_find_file (file); - isafs = 1; - } - - /* - * If a matching device or filesystem is found, allocate a file descriptor. - */ - - if (dev) - { - if ((index = alt_get_fd (dev)) < 0) - { - status = index; - } - else - { - fd = &alt_fd_list[index]; - fd->fd_flags = (flags & ~ALT_FD_FLAGS_MASK); - - /* If this is a device, ensure it isn't already locked */ - - if (isafs || ((status = alt_file_locked (fd)) >= 0)) - { - /* - * If the device or filesystem provides an open() callback function, - * call it now to perform any device/filesystem specific operations. - */ - - status = (dev->open) ? dev->open(fd, file, flags, mode): 0; - } - } - } - else - { - status = -ENODEV; - } - - /* Allocation failed, so clean up and return an error */ - - if (status < 0) - { - alt_release_fd (index); - ALT_ERRNO = -status; - return -1; - } - - /* return the reference upon success */ - - return index; -} - -#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_printf.c b/software/DE2_115_ASM_bsp/HAL/src/alt_printf.c deleted file mode 100644 index fe5bcd3..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_printf.c +++ /dev/null @@ -1,127 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/* - * This file provides a very minimal printf implementation for use with very - * small applications. Only the following format strings are supported: - * %x - * %s - * %c - * %% - */ - -#include -#include "sys/alt_stdio.h" - -/* - * ALT printf function - */ -void -alt_printf(const char* fmt, ... ) -{ - va_list args; - va_start(args, fmt); - const char *w; - char c; - - /* Process format string. */ - w = fmt; - while ((c = *w++) != 0) - { - /* If not a format escape character, just print */ - /* character. Otherwise, process format string. */ - if (c != '%') - { - alt_putchar(c); - } - else - { - /* Get format character. If none */ - /* available, processing is complete. */ - if ((c = *w++) != 0) - { - if (c == '%') - { - /* Process "%" escape sequence. */ - alt_putchar(c); - } - else if (c == 'c') - { - int v = va_arg(args, int); - alt_putchar(v); - } - else if (c == 'x') - { - /* Process hexadecimal number format. */ - unsigned long v = va_arg(args, unsigned long); - unsigned long digit; - int digit_shift; - - /* If the number value is zero, just print and continue. */ - if (v == 0) - { - alt_putchar('0'); - continue; - } - - /* Find first non-zero digit. */ - digit_shift = 28; - while (!(v & (0xF << digit_shift))) - digit_shift -= 4; - - /* Print digits. */ - for (; digit_shift >= 0; digit_shift -= 4) - { - digit = (v & (0xF << digit_shift)) >> digit_shift; - if (digit <= 9) - c = '0' + digit; - else - c = 'a' + digit - 10; - alt_putchar(c); - } - } - else if (c == 's') - { - /* Process string format. */ - char *s = va_arg(args, char *); - - while(*s) - alt_putchar(*s++); - } - } - else - { - break; - } - } - } -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_putchar.c b/software/DE2_115_ASM_bsp/HAL/src/alt_putchar.c deleted file mode 100644 index 900bb9f..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_putchar.c +++ /dev/null @@ -1,59 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#ifdef ALT_USE_DIRECT_DRIVERS -#include "system.h" -#include "sys/alt_driver.h" -#include "sys/alt_stdio.h" -#endif - -/* - * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. - * Otherwise, uses newlib provided putchar() routine. - */ -int -alt_putchar(int c) -{ -#ifdef ALT_USE_DIRECT_DRIVERS - ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); - char c1 = (char)(c & 0xff); - - if (ALT_DRIVER_WRITE(ALT_STDOUT_DEV, &c1, 1, 0) == -1) { - return -1; - } - return c; -#else - return putchar(c); -#endif -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_putstr.c b/software/DE2_115_ASM_bsp/HAL/src/alt_putstr.c deleted file mode 100644 index 131ba19..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_putstr.c +++ /dev/null @@ -1,55 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#ifdef ALT_USE_DIRECT_DRIVERS -#include -#include "system.h" -#include "sys/alt_driver.h" -#include "sys/alt_stdio.h" -#endif - -/* - * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. - * Otherwise, uses newlib provided fputs() routine. - */ -int -alt_putstr(const char* str) -{ -#ifdef ALT_USE_DIRECT_DRIVERS - ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); - return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, str, strlen(str), 0); -#else - return fputs(str, stdout); -#endif -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_read.c b/software/DE2_115_ASM_bsp/HAL/src/alt_read.c deleted file mode 100644 index 920ab13..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_read.c +++ /dev/null @@ -1,125 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include - -#include "sys/alt_errno.h" -#include "sys/alt_warning.h" -#include "priv/alt_file.h" -#include "os/alt_syscall.h" - -/* - * The read() system call is used to read a block of data from a file or device. - * This function simply vectors the request to the device driver associated - * with the input file descriptor "file". - * - * ALT_READ is mapped onto the read() system call in alt_syscall.h - */ - -#ifdef ALT_USE_DIRECT_DRIVERS - -#include "system.h" -#include "sys/alt_driver.h" - -/* - * Provide minimal version that just reads from the stdin device when provided. - */ - -int ALT_READ (int file, void *ptr, size_t len) -{ -#ifdef ALT_STDIN_PRESENT - ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); -#endif - -#if !defined(ALT_STDIN_PRESENT) - /* Generate a link time warning, should this function ever be called. */ - ALT_STUB_WARNING(read); -#endif - - switch (file) { -#ifdef ALT_STDIN_PRESENT - case 0: /* stdin file descriptor */ - return ALT_DRIVER_READ(ALT_STDIN_DEV, ptr, len, 0); -#endif /* ALT_STDIN_PRESENT */ - default: - ALT_ERRNO = EBADFD; - return -1; - } -} - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -int ALT_READ (int file, void *ptr, size_t len) -{ - alt_fd* fd; - int rval; - - /* - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (file < 0) ? NULL : &alt_fd_list[file]; - - if (fd) - { - /* - * If the file has not been opened with read access, or if the driver does - * not provide an implementation of read(), generate an error. Otherwise - * call the drivers read() function to process the request. - */ - - if (((fd->fd_flags & O_ACCMODE) != O_WRONLY) && - (fd->dev->read)) - { - if ((rval = fd->dev->read(fd, ptr, len)) < 0) - { - ALT_ERRNO = -rval; - return -1; - } - return rval; - } - else - { - ALT_ERRNO = EACCES; - } - } - else - { - ALT_ERRNO = EBADFD; - } - return -1; -} - -#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_release_fd.c b/software/DE2_115_ASM_bsp/HAL/src/alt_release_fd.c deleted file mode 100644 index c22a97f..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_release_fd.c +++ /dev/null @@ -1,54 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_dev.h" -#include "priv/alt_file.h" - -/* - * alt_release_fd() is called to free an allocated file descriptor. This is - * done by setting the device pointer in the file descriptor structure to zero. - * - * File descriptors correcponding to standard in, standard out and standard - * error cannont be released backed to the pool. They are always reserved. - */ - -void alt_release_fd (int fd) -{ - if (fd > 2) - { - alt_fd_list[fd].fd_flags = 0; - alt_fd_list[fd].dev = 0; - } -} - - - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_remap_cached.c b/software/DE2_115_ASM_bsp/HAL/src/alt_remap_cached.c deleted file mode 100644 index 6afc465..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_remap_cached.c +++ /dev/null @@ -1,50 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "sys/alt_cache.h" -#include "system.h" - -#ifdef NIOS2_MMU_PRESENT -/* Convert KERNEL region address to IO region address */ -#define BYPASS_DCACHE_MASK (0x1 << 29) -#else -/* Set bit 31 of address to bypass D-cache */ -#define BYPASS_DCACHE_MASK (0x1 << 31) -#endif - -/* - * Convert a pointer to a block of uncached memory, into a block of - * cached memory. - */ - -void* alt_remap_cached (volatile void* ptr, alt_u32 len) -{ - return (void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK); -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_remap_uncached.c b/software/DE2_115_ASM_bsp/HAL/src/alt_remap_uncached.c deleted file mode 100644 index e533f94..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_remap_uncached.c +++ /dev/null @@ -1,51 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "sys/alt_cache.h" -#include "system.h" - -#ifdef NIOS2_MMU_PRESENT -/* Convert KERNEL region address to IO region address */ -#define BYPASS_DCACHE_MASK (0x1 << 29) -#else -/* Set bit 31 of address to bypass D-cache */ -#define BYPASS_DCACHE_MASK (0x1 << 31) -#endif - -/* - * Convert a pointer to a block of cached memory, into a block of - * uncached memory. - */ - -volatile void* alt_remap_uncached (void* ptr, alt_u32 len) -{ - alt_dcache_flush (ptr, len); - return (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK); -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_rename.c b/software/DE2_115_ASM_bsp/HAL/src/alt_rename.c deleted file mode 100644 index 26db44d..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_rename.c +++ /dev/null @@ -1,55 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_errno.h" -#include "sys/alt_warning.h" -#include "os/alt_syscall.h" - -/* - * _rename() is used by newlib to rename an existing file. This is unsupported - * in the HAL environment. However a "do-nothing" implementation is still - * provied for newlib compatability. - * - * ALT_RENAME is mapped onto the _rename() system call in alt_syscall.h - */ - -int ALT_RENAME (char *existing, char *new) -{ - /* Generate a link time warning, should this function ever be called. */ - - ALT_STUB_WARNING(_rename); - - /* Indicate an error */ - - ALT_ERRNO = ENOSYS; - return -1; -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_sbrk.c b/software/DE2_115_ASM_bsp/HAL/src/alt_sbrk.c deleted file mode 100644 index 7ab3367..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_sbrk.c +++ /dev/null @@ -1,136 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#include "os/alt_syscall.h" - -#include "sys/alt_irq.h" -#include "sys/alt_stack.h" - -#include "system.h" - -/* - * sbrk() is called to dynamically extend the data segment for the application. - * Thie input argument "incr" is the size of the block to allocate. - * - * This simple implementation does not perform any bounds checking. Memory will - * be allocated, even if the request region colides with the stack or overflows - * the available physical memory. - * - * ALT_SBRK is mapped onto the sbrk() system call in alt_syscall.h - * - * This function is called by the profiling code to allocate memory so must be - * safe if called from an interrupt context. It must also not be instrumented - * because that would lead to an infinate loop. - */ - -extern char __alt_heap_start[]; /* set by linker */ -extern char __alt_heap_limit[]; /* set by linker */ - -static char *heap_end = __alt_heap_start; - -#if defined(ALT_EXCEPTION_STACK) && defined(ALT_STACK_CHECK) -char * alt_exception_old_stack_limit = NULL; -#endif - -caddr_t ALT_SBRK (int incr) __attribute__ ((no_instrument_function )); - -caddr_t ALT_SBRK (int incr) -{ - alt_irq_context context; - char *prev_heap_end; - - context = alt_irq_disable_all(); - - /* Always return data aligned on a word boundary */ - heap_end = (char *)(((unsigned int)heap_end + 3) & ~3); - -#ifdef ALT_MAX_HEAP_BYTES - /* - * User specified a maximum heap size. Return -1 if it would - * be exceeded by this sbrk call. - */ - if (((heap_end + incr) - __alt_heap_start) > ALT_MAX_HEAP_BYTES) { - alt_irq_enable_all(context); - return (caddr_t)-1; - } -#else - if ((heap_end + incr) > __alt_heap_limit) { - alt_irq_enable_all(context); - return (caddr_t)-1; - } -#endif - - prev_heap_end = heap_end; - heap_end += incr; - -#ifdef ALT_STACK_CHECK - /* - * If the stack and heap are contiguous then extending the heap reduces the - * space available for the stack. If we are still using the default stack - * then adjust the stack limit to note this, while checking for stack - * pointer overflow. - * If the stack limit isn't pointing at the top of the heap then the code - * is using a different stack so none of this needs to be done. - */ - - if (alt_stack_limit() == prev_heap_end) - { - if (alt_stack_pointer() <= heap_end) - alt_report_stack_overflow(); - - alt_set_stack_limit(heap_end); - } - -#ifdef ALT_EXCEPTION_STACK - /* - * If we are executing from the exception stack then compare against the - * stack we switched away from as well. The exception stack is a fixed - * size so doesn't need to be checked. - */ - - if (alt_exception_old_stack_limit == prev_heap_end) - { - if (alt_exception_old_stack_limit <= heap_end) - alt_report_stack_overflow(); - - alt_exception_old_stack_limit = heap_end; - } -#endif - -#endif - - alt_irq_enable_all(context); - - return (caddr_t) prev_heap_end; -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_settod.c b/software/DE2_115_ASM_bsp/HAL/src/alt_settod.c deleted file mode 100644 index 13349b8..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_settod.c +++ /dev/null @@ -1,96 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include - -#include "sys/alt_errno.h" -#include "sys/alt_alarm.h" -#include "os/alt_syscall.h" - -/* - * "alt_timezone" and "alt_resettime" are the values of the the reset time and - * time zone set through the last call to settimeofday(). By default they are - * zero initialised. - */ - -extern struct timezone alt_timezone; -extern struct timeval alt_resettime; - -/* - * Macro defining the number of micoseconds in a second. - */ - -#define ALT_US (1000000) - - -/* - * settimeofday() can be called to calibrate the system clock, so that - * subsequent calls to gettimeofday() will return the elapsed "wall clock" - * time. - * - * This is done by updating the global structures "alt_resettime" and - * "alt_timezone" so that an immediate call to gettimeofday() would return - * the value specified by "t" and "tz". - * - * Warning: if this function is called concurrently with a call to - * gettimeofday(), the value returned by gettimeofday() will be unreliable. - * - * ALT_SETTIMEOFDAY is mapped onto the settimeofday() system call in - * alt_syscall.h - */ - -int ALT_SETTIMEOFDAY (const struct timeval *t, - const struct timezone *tz) -{ - alt_u32 nticks = alt_nticks (); - alt_u32 tick_rate = alt_ticks_per_second (); - - /* If there is a system clock available, update the current time */ - - if (tick_rate) - { - alt_resettime.tv_sec = t->tv_sec - nticks/tick_rate; - alt_resettime.tv_usec = t->tv_usec - - ((nticks*(ALT_US/tick_rate))%ALT_US); - - alt_timezone.tz_minuteswest = tz->tz_minuteswest; - alt_timezone.tz_dsttime = tz->tz_dsttime; - - return 0; - } - - /* There's no system clock available */ - - ALT_ERRNO = ENOSYS; - return -1; -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_software_exception.S b/software/DE2_115_ASM_bsp/HAL/src/alt_software_exception.S deleted file mode 100644 index 0a9381e..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_software_exception.S +++ /dev/null @@ -1,53 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - - /* - * This file provides the global symbol: software_exception. It is provided to - * support legacy code, and should not be used by new software. - * - * It is used by legacy code to invoke the software exception handler as - * defined by version 1.0 of the Nios II kit. It should only be used when you - * are providing your own interrupt entry point, i.e. you are not using - * alt_irq_entry. - */ - -#include "system.h" - - /* - * Pull in the exception handler. - */ - - .globl alt_exception - - .section .exceptions.entry.label, "xa" - - .globl software_exception - .type software_exception, @function -software_exception: diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_stat.c b/software/DE2_115_ASM_bsp/HAL/src/alt_stat.c deleted file mode 100644 index c196d0c..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_stat.c +++ /dev/null @@ -1,59 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include -#include -#include - -#include "os/alt_syscall.h" - -/* - * The stat() function is similar to the fstat() function in that it is used to - * obtain status information about a file. Instead of using an open file - * descriptor (like fstat()), stat() takes the name of a file as an input - * argument. - * - * ALT_STAT is mapped onto the stat() system call in alt_syscall.h - */ - -int ALT_STAT (const char *file, struct stat *st) -{ - int fd; - int rc; - - fd = open (file, 0); - rc = fstat (fd, st); - close (fd); - - return rc; -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_tick.c b/software/DE2_115_ASM_bsp/HAL/src/alt_tick.c deleted file mode 100644 index 23719b1..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_tick.c +++ /dev/null @@ -1,149 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_irq.h" -#include "sys/alt_alarm.h" -#include "os/alt_hooks.h" -#include "alt_types.h" - -/* - * "_alt_tick_rate" is used to store the value of the system clock frequency - * in ticks per second. It is initialised to zero, which corresponds to there - * being no system clock facility available. - */ - -alt_u32 _alt_tick_rate = 0; - -/* - * "_alt_nticks" is the number of system clock ticks that have elapsed since - * reset. - */ - -volatile alt_u32 _alt_nticks = 0; - -/* - * "alt_alarm_list" is the head of a linked list of registered alarms. This is - * initialised to be an empty list. - */ - -ALT_LLIST_HEAD(alt_alarm_list); - -/* - * alt_alarm_stop() is called to remove an alarm from the list of registered - * alarms. Alternatively an alarm can unregister itself by returning zero when - * the alarm executes. - */ - -void alt_alarm_stop (alt_alarm* alarm) -{ - alt_irq_context irq_context; - - irq_context = alt_irq_disable_all(); - alt_llist_remove (&alarm->llist); - alt_irq_enable_all (irq_context); -} - -/* - * alt_tick() is periodically called by the system clock driver in order to - * process the registered list of alarms. Each alarm is registed with a - * callback interval, and a callback function, "callback". - * - * The return value of the callback function indicates how many ticks are to - * elapse until the next callback. A return value of zero indicates that the - * alarm should be deactivated. - * - * alt_tick() is expected to run at interrupt level. - */ - -void alt_tick (void) -{ - alt_alarm* next; - alt_alarm* alarm = (alt_alarm*) alt_alarm_list.next; - - alt_u32 next_callback; - - /* update the tick counter */ - - _alt_nticks++; - - /* process the registered callbacks */ - - while (alarm != (alt_alarm*) &alt_alarm_list) - { - next = (alt_alarm*) alarm->llist.next; - - /* - * Upon the tick-counter rolling over it is safe to clear the - * roll-over flag; once the flag is cleared this (or subsequnt) - * tick events are enabled to generate an alarm event. - */ - if ((alarm->rollover) && (_alt_nticks == 0)) - { - alarm->rollover = 0; - } - - /* if the alarm period has expired, make the callback */ - if ((alarm->time <= _alt_nticks) && (alarm->rollover == 0)) - { - next_callback = alarm->callback (alarm->context); - - /* deactivate the alarm if the return value is zero */ - - if (next_callback == 0) - { - alt_alarm_stop (alarm); - } - else - { - alarm->time += next_callback; - - /* - * If the desired alarm time causes a roll-over, set the rollover - * flag. This will prevent the subsequent tick event from causing - * an alarm too early. - */ - if(alarm->time < _alt_nticks) - { - alarm->rollover = 1; - } - } - } - alarm = next; - } - - /* - * Update the operating system specific timer facilities. - */ - - ALT_OS_TIME_TICK(); -} - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_times.c b/software/DE2_115_ASM_bsp/HAL/src/alt_times.c deleted file mode 100644 index 6543164..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_times.c +++ /dev/null @@ -1,71 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#include "sys/alt_errno.h" -#include "sys/alt_alarm.h" -#include "os/alt_syscall.h" - -/* - * The times() function is used by newlib to obtain elapsed time information. - * The return value is the elapsed time since reset in system clock ticks. Note - * that this is distinct from the strict Posix version of times(), which should - * return the time since: 0 hours, 0 minutes, 0 seconds, January 1, 1970, GMT. - * - * The input structure is filled in with time accounting information. This - * implementation attributes all cpu time to the system. - * - * ALT_TIMES is mapped onto the times() system call in alt_syscall.h - */ - -clock_t ALT_TIMES (struct tms *buf) -{ - clock_t ticks = alt_nticks(); - - /* If there is no system clock present, generate an error */ - - if (!alt_ticks_per_second()) - { - ALT_ERRNO = ENOSYS; - return 0; - } - - /* Otherwise return the elapsed time */ - - buf->tms_utime = 0; - buf->tms_stime = ticks; - buf->tms_cutime = 0; - buf->tms_cstime = 0; - - return ticks; -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_uncached_free.c b/software/DE2_115_ASM_bsp/HAL/src/alt_uncached_free.c deleted file mode 100644 index 37f4ac1..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_uncached_free.c +++ /dev/null @@ -1,49 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "sys/alt_cache.h" -#include "system.h" - -#ifdef NIOS2_MMU_PRESENT -/* Convert KERNEL region address to IO region address */ -#define BYPASS_DCACHE_MASK (0x1 << 29) -#else -/* Set bit 31 of address to bypass D-cache */ -#define BYPASS_DCACHE_MASK (0x1 << 31) -#endif - -/* - * Free a block of uncached memory. - */ - -void alt_uncached_free (volatile void* ptr) -{ - free ((void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK)); -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_uncached_malloc.c b/software/DE2_115_ASM_bsp/HAL/src/alt_uncached_malloc.c deleted file mode 100644 index 325132e..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_uncached_malloc.c +++ /dev/null @@ -1,55 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "sys/alt_cache.h" -#include "system.h" - -#ifdef NIOS2_MMU_PRESENT -/* Convert KERNEL region address to IO region address */ -#define BYPASS_DCACHE_MASK (0x1 << 29) -#else -/* Set bit 31 of address to bypass D-cache */ -#define BYPASS_DCACHE_MASK (0x1 << 31) -#endif - -/* - * Allocate a block of uncached memory. - */ - -volatile void* alt_uncached_malloc (size_t size) -{ - void* ptr; - - ptr = malloc (size); - - alt_dcache_flush (ptr, size); - - return ptr ? (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK) : NULL; -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_unlink.c b/software/DE2_115_ASM_bsp/HAL/src/alt_unlink.c deleted file mode 100644 index 606f019..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_unlink.c +++ /dev/null @@ -1,55 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_errno.h" -#include "sys/alt_warning.h" -#include "os/alt_syscall.h" - -/* - * unlink() is used by newlib to delete an existing link to a file. This is - * unsupported in the HAL environment. However a "do-nothing" implementation - * is still provied for newlib compatability. - * - * ALT_UNLINK is mapped onto the unlink() system call in alt_syscall.h - */ - -int ALT_UNLINK (char *name) -{ - /* Generate a link time warning, should this function ever be called. */ - - ALT_STUB_WARNING(unlink); - - /* Indicate an error */ - - ALT_ERRNO = ENOSYS; - return -1; -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_usleep.c b/software/DE2_115_ASM_bsp/HAL/src/alt_usleep.c deleted file mode 100644 index eea89cd..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_usleep.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. - * All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * ------------ - * - * Altera does not recommend, suggest or require that this reference design - * file be used in conjunction or combination with any other product. - * - * usleep.c - Microsecond delay routine - */ - -#include - -#include "priv/alt_busy_sleep.h" -#include "os/alt_syscall.h" - -/* - * This function simply calls alt_busy_sleep() to perform the delay. This - * function implements the delay as a calibrated "busy loop". - * - * ALT_USLEEP is mapped onto the usleep() system call in alt_syscall.h - */ - - - -#if defined (__GNUC__) && __GNUC__ >= 4 -int ALT_USLEEP (useconds_t us) -#else -unsigned int ALT_USLEEP (unsigned int us) -#endif -{ - return alt_busy_sleep(us); -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_wait.c b/software/DE2_115_ASM_bsp/HAL/src/alt_wait.c deleted file mode 100644 index dd768ad..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_wait.c +++ /dev/null @@ -1,52 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_errno.h" -#include "os/alt_syscall.h" - -/* - * wait() is used by newlib to wait for all child processes to exit. Since the - * HAL does not support spawning child processes, this returns immediately as - * there can't be anythign to wait for. - * - * ALT_WAIT is mapped onto the wait() system call in alt_syscall.h - */ - -int ALT_WAIT (int *status) -{ - *status = 0; - - ALT_ERRNO = ECHILD; - - return -1; -} - diff --git a/software/DE2_115_ASM_bsp/HAL/src/alt_write.c b/software/DE2_115_ASM_bsp/HAL/src/alt_write.c deleted file mode 100644 index d161cdf..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/alt_write.c +++ /dev/null @@ -1,138 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include - -#include "sys/alt_errno.h" -#include "sys/alt_warning.h" -#include "priv/alt_file.h" -#include "os/alt_syscall.h" - -#include "sys/alt_log_printf.h" - -/* - * The write() system call is used to write a block of data to a file or - * device. This function simply vectors the request to the device driver - * associated with the input file descriptor "file". - * - * ALT_WRITE is mapped onto the write() system call in alt_syscall.h - */ - -#ifdef ALT_USE_DIRECT_DRIVERS - -#include "system.h" -#include "sys/alt_driver.h" - -/* - * Provide minimal version that just writes to the stdout/stderr devices - * when provided. - */ - -int ALT_WRITE (int file, const void *ptr, size_t len) -{ -#ifdef ALT_STDOUT_PRESENT - ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); -#endif -#ifdef ALT_STDERR_PRESENT - ALT_DRIVER_WRITE_EXTERNS(ALT_STDERR_DEV); -#endif - -#if !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) - /* Generate a link time warning, should this function ever be called. */ - ALT_STUB_WARNING(write); -#endif - - switch (file) { -#ifdef ALT_STDOUT_PRESENT - case 1: /* stdout file descriptor */ - return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, ptr, len, 0); -#endif /* ALT_STDOUT_PRESENT */ -#ifdef ALT_STDERR_PRESENT - case 2: /* stderr file descriptor */ - return ALT_DRIVER_WRITE(ALT_STDERR_DEV, ptr, len, 0); -#endif /* ALT_STDERR_PRESENT */ - default: - ALT_ERRNO = EBADFD; - return -1; - } -} - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -int ALT_WRITE (int file, const void *ptr, size_t len) -{ - alt_fd* fd; - int rval; - - /* - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (file < 0) ? NULL : &alt_fd_list[file]; - - if (fd) - { - /* - * If the file has not been opened with write access, or if the driver does - * not provide an implementation of write(), generate an error. Otherwise - * call the drivers write() function to process the request. - */ - - if (((fd->fd_flags & O_ACCMODE) != O_RDONLY) && fd->dev->write) - { - - /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ - ALT_LOG_WRITE_FUNCTION(ptr,len); - - if ((rval = fd->dev->write(fd, ptr, len)) < 0) - { - ALT_ERRNO = -rval; - return -1; - } - return rval; - } - else - { - ALT_ERRNO = EACCES; - } - } - else - { - ALT_ERRNO = EBADFD; - } - return -1; -} - -#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/DE2_115_ASM_bsp/HAL/src/altera_nios2_qsys_irq.c b/software/DE2_115_ASM_bsp/HAL/src/altera_nios2_qsys_irq.c deleted file mode 100644 index c719dbc..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/altera_nios2_qsys_irq.c +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2009 Altera Corporation, San Jose, California, USA. - * All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * altera_nios2_irq.c - Support for Nios II internal interrupt controller. - * - */ - -#include "sys/alt_irq.h" -#include "altera_nios2_qsys_irq.h" - -/* - * To initialize the internal interrupt controller, just clear the IENABLE - * register so that all possible IRQs are disabled. - */ -void altera_nios2_qsys_irq_init(void) -{ - NIOS2_WRITE_IENABLE(0); -} diff --git a/software/DE2_115_ASM_bsp/HAL/src/crt0.S b/software/DE2_115_ASM_bsp/HAL/src/crt0.S deleted file mode 100644 index 739e45e..0000000 --- a/software/DE2_115_ASM_bsp/HAL/src/crt0.S +++ /dev/null @@ -1,456 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "system.h" -#include "nios2.h" - -/* Setup header files to work with assembler code. */ -#define ALT_ASM_SRC - -/* Debug logging facility */ -#include "sys/alt_log_printf.h" - -/*************************************************************************\ -| MACROS | -\*************************************************************************/ - -/* - * The new build tools explicitly define macros when alt_load() - * must be called. The define ALT_LOAD_EXPLICITLY_CONTROLLED tells us that - * those macros are controlling if alt_load() needs to be called. - */ -#ifdef ALT_LOAD_EXPLICITLY_CONTROLLED - -/* Need to call alt_load() if any of these sections are being copied. */ -#if defined(ALT_LOAD_COPY_RODATA) || defined(ALT_LOAD_COPY_RWDATA) || defined(ALT_LOAD_COPY_EXCEPTIONS) -#define CALL_ALT_LOAD -#endif - -#else /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ - -/* - * The legacy build tools use the following macros to detect when alt_load() - * needs to be called. - */ - -#define __ALT_LOAD_SECTIONS(res, text, rodata, exc) \ - ((res##_BASE != rodata##_BASE) || \ - (res##_BASE != rwdata##_BASE) || \ - (res##_BASE != exc##_BASE)) - -#define _ALT_LOAD_SECTIONS(res, text, rodata, exc) \ - __ALT_LOAD_SECTIONS(res, text, rodata, exc) - -#define ALT_LOAD_SECTIONS _ALT_LOAD_SECTIONS(ALT_RESET_DEVICE, \ - ALT_RODATA_DEVICE, \ - ALT_RWDATA_DEVICE, \ - ALT_EXCEPTIONS_DEVICE) - -/* Call alt_load() if there is no bootloader and ALT_LOAD_SECTIONS isn't 0. */ -#if defined(ALT_NO_BOOTLOADER) && ALT_LOAD_SECTIONS -#define CALL_ALT_LOAD -#endif - -#endif /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ - -/* - * When the legacy build tools define a macro called ALT_NO_BOOTLOADER, - * it indicates that initialization code is allowed at the reset address. - * The new build tools define a macro called ALT_ALLOW_CODE_AT_RESET for - * the same purpose. - */ -#ifdef ALT_NO_BOOTLOADER -#define ALT_ALLOW_CODE_AT_RESET -#endif - -/*************************************************************************\ -| EXTERNAL REFERENCES | -\*************************************************************************/ - -/* - * The entry point for user code is either "main" in hosted mode, or - * "alt_main" in standalone mode. These are explicitly referenced here, - * to ensure they are built into the executable. This allows the user - * to build them into libraries, rather than supplying them in object - * files at link time. - */ - .globl main - .globl alt_main - -/* - * Create a reference to the software multiply/divide and trap handers, - * so that if they are provided, they will appear in the executable. - */ -#ifndef ALT_NO_INSTRUCTION_EMULATION - .globl alt_exception_muldiv -#endif -#ifdef ALT_TRAP_HANDLER - .globl alt_exception_trap -#endif - -/* - * Linker defined symbols used to initialize bss. - */ -.globl __bss_start -.globl __bss_end - -/*************************************************************************\ -| RESET SECTION (.entry) | -\*************************************************************************/ - -/* - * This is the reset entry point for Nios II. - * - * At reset, only the cache line which contain the reset vector is - * initialized by the hardware. The code within the first cache line - * initializes the remainder of the instruction cache. - */ - - .section .entry, "xa" - .align 5 - -/* - * Explicitly allow the use of r1 (the assembler temporary register) - * within this code. This register is normally reserved for the use of - * the assembler. - */ - .set noat - -/* - * Some tools want to know where the reset vector is. - * Code isn't always provided at the reset vector but at least the - * __reset label always contains the reset vector address because - * it is defined at the start of the .entry section. - */ - - .globl __reset - .type __reset, @function -__reset: - -/* - * Initialize the instruction cache if present (i.e. size > 0) and - * reset code is allowed unless optimizing for RTL simulation. - * RTL simulations can ensure the instruction cache is already initialized - * so skipping this loop speeds up RTL simulation. - */ - -#if NIOS2_ICACHE_SIZE > 0 && defined(ALT_ALLOW_CODE_AT_RESET) && !defined(ALT_SIM_OPTIMIZE) - /* Assume the instruction cache size is always a power of two. */ -#if NIOS2_ICACHE_SIZE > 0x8000 - movhi r2, %hi(NIOS2_ICACHE_SIZE) -#else - movui r2, NIOS2_ICACHE_SIZE -#endif - -0: - initi r2 - addi r2, r2, -NIOS2_ICACHE_LINE_SIZE - bgt r2, zero, 0b -1: - - /* - * The following debug information tells the ISS not to run the loop above - * but to perform its actions using faster internal code. - */ - .pushsection .debug_alt_sim_info - .int 1, 1, 0b, 1b - .popsection -#endif /* Initialize Instruction Cache */ - -/* - * Jump to the _start entry point in the .text section if reset code - * is allowed or if optimizing for RTL simulation. - */ -#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) - /* Jump to the _start entry point in the .text section. */ - movhi r1, %hi(_start) - ori r1, r1, %lo(_start) - jmp r1 - - .size __reset, . - __reset -#endif /* Jump to _start */ - -/* - * When not using exit, provide an _exit symbol to prevent unresolved - * references to _exit from the linker script. - */ -#ifdef ALT_NO_EXIT - .globl _exit -_exit: -#endif - -/*************************************************************************\ -| TEXT SECTION (.text) | -\*************************************************************************/ - -/* - * Start of the .text section, and also the code entry point when - * the code is executed by a bootloader rather than directly from reset. - */ - .section .text - .align 2 - - .globl _start - .type _start, @function -_start: - -/* - * Initialize the data cache if present (i.e. size > 0) and not - * optimizing for RTL simulation. - * RTL simulations can ensure the data cache is already initialized - * so skipping this loop speeds up RTL simulation. - */ - -#if NIOS2_DCACHE_SIZE > 0 && !defined(ALT_SIM_OPTIMIZE) - - /* Assume the data cache size is always a power of two. */ -#if NIOS2_DCACHE_SIZE > 0x8000 - movhi r2, %hi(NIOS2_DCACHE_SIZE) -#else - movui r2, NIOS2_DCACHE_SIZE -#endif - -0: - initd 0(r2) - addi r2, r2, -NIOS2_DCACHE_LINE_SIZE - bgt r2, zero, 0b -1: - - /* - * The following debug information tells the ISS not to run the loop above - * but to perform its actions using faster internal code. - */ - .pushsection .debug_alt_sim_info - .int 2, 1, 0b, 1b - .popsection - -#endif /* Initialize Data Cache */ - - /* Log that caches have been initialized. */ - ALT_LOG_PUTS(alt_log_msg_cache) - - /* Log that the stack pointer is about to be setup. */ - ALT_LOG_PUTS(alt_log_msg_stackpointer) - -#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) - /* - * Now that the caches are initialized, set up the stack pointer. - * The value provided by the linker is assumed to be correctly aligned. - */ - movhi sp, %hi(__alt_stack_pointer) - ori sp, sp, %lo(__alt_stack_pointer) - - /* Set up the global pointer. */ - movhi gp, %hi(_gp) - ori gp, gp, %lo(_gp) - -#else /* NIOS2_NUM_OF_SHADOW_REG_SETS > 0 */ - - /* - * Set up the GP and SP in all shadow register sets. - */ - - /* - * Check current register set number, if CPU resets into a shadow register - * set, switch register set to 0 by writing zero to SSTATUS register and - * execute an ERET instruction that just jumps to the next PC address - * (use the NEXTPC instruction to get this). - */ - - rdctl r2, status - - /* Get the current register set number (STATUS.CRS). */ - andi r3, r2, NIOS2_STATUS_CRS_MSK - - /* Skip switch register set if STATUS.CRS is 0. */ - beq r3, zero, .Lskip_switch_reg_set - - .set nobreak - - /* Current register set is non-zero, set SSTATUS to 0. */ - mov sstatus, zero - - /* Get next pc and store in ea. */ - nextpc ea - - /* Point to instruction after eret. */ - addi ea, ea, 8 - - /* - * Execute ERET instruction that just jumps to the next PC address - */ - eret - -.Lskip_switch_reg_set: - mov r2, zero - - /* Reset STATUS register */ - wrctl status, r2 - - movui r3, NIOS2_NUM_OF_SHADOW_REG_SETS - - /* Set up the stack pointer in register set 0. */ - movhi sp, %hi(__alt_stack_pointer) - ori sp, sp, %lo(__alt_stack_pointer) - - /* Set up the global pointer in register set 0. */ - movhi gp, %hi(_gp) - ori gp, gp, %lo(_gp) - -.Lsetup_sp_and_gp_loop: - /* - * Setup GP and SP for shadow register set - * from NIOS2_NUM_OF_SHADOW_REG_SETS to 0 - */ - - /* Skip if number of register sets is 0. */ - beq r3, zero, .Lno_shadow_register_set - - - /* Add previous register set STATUS.PRS by 1 */ - movhi r4, 1 - add r2, r2, r4 - - /* Write STATUS */ - wrctl status, r2 - - /* Clear r0 in the shadow register set (not done by hardware) */ - wrprs r0, r0 - - /* Write the GP in previous register set */ - wrprs gp, gp - - /* Only write the SP in previous register set - * if using the seperate exception stack. For normal case (single stack), - * funnel code would read the SP from previous register set. - */ -#ifdef ALT_INTERRUPT_STACK - - movhi et, %hiadj(__alt_interrupt_stack_pointer) - addi et, et, %lo(__alt_interrupt_stack_pointer) - wrprs sp, et - -#endif /* ALT_INTERRUPT_STACK */ - - /* Decrease number of register set counter by 1 */ - addi r3, r3, -1 - - br .Lsetup_sp_and_gp_loop -.Lno_shadow_register_set: - -#endif /* NIOS2_NUM_OF_SHADOW_REG_SETS */ -/* - * Clear the BSS if not optimizing for RTL simulation. - * - * This uses the symbols: __bss_start and __bss_end, which are defined - * by the linker script. They mark the begining and the end of the bss - * region. The linker script guarantees that these values are word aligned. - */ -#ifndef ALT_SIM_OPTIMIZE - /* Log that the BSS is about to be cleared. */ - ALT_LOG_PUTS(alt_log_msg_bss) - - movhi r2, %hi(__bss_start) - ori r2, r2, %lo(__bss_start) - - movhi r3, %hi(__bss_end) - ori r3, r3, %lo(__bss_end) - - beq r2, r3, 1f - -0: - stw zero, (r2) - addi r2, r2, 4 - bltu r2, r3, 0b - -1: - - /* - * The following debug information tells the ISS not to run the loop above - * but to perform its actions using faster internal code. - */ - .pushsection .debug_alt_sim_info - .int 3, 1, 0b, 1b - .popsection -#endif /* ALT_SIM_OPTIMIZE */ - -/* - * The alt_load() facility is normally used when there is no bootloader. - * It copies some sections into RAM so it acts like a mini-bootloader. - */ -#ifdef CALL_ALT_LOAD - -#ifdef ALT_STACK_CHECK - /* - * If the user has selected stack checking then we need to set up a safe - * value in the stack limit register so that the relocation functions - * don't think the stack has overflowed (the contents of the rwdata - * section aren't defined until alt_load() has been called). - */ - mov et, zero -#endif - - call alt_load - -#endif /* CALL_ALT_LOAD */ - -#ifdef ALT_STACK_CHECK - /* - * Set up the stack limit (if required). The linker has set up the - * copy of the variable which is in memory. - */ - - ldw et, %gprel(alt_stack_limit_value)(gp) -#endif - - /* Log that alt_main is about to be called. */ - ALT_LOG_PUTS(alt_log_msg_alt_main) - - /* Call the C entry point. It should never return. */ - call alt_main - - /* Wait in infinite loop in case alt_main does return. */ -alt_after_alt_main: - br alt_after_alt_main - - .size _start, . - _start - -/* - * Add information about the stack base if stack overflow checking is enabled. - */ -#ifdef ALT_STACK_CHECK - .globl alt_stack_limit_value - .section .sdata,"aws",@progbits - .align 2 - .type alt_stack_limit_value, @object - .size alt_stack_limit_value, 4 -alt_stack_limit_value: - .long __alt_stack_limit -#endif diff --git a/software/DE2_115_ASM_bsp/Makefile b/software/DE2_115_ASM_bsp/Makefile deleted file mode 100644 index 0e63d38..0000000 --- a/software/DE2_115_ASM_bsp/Makefile +++ /dev/null @@ -1,775 +0,0 @@ -#------------------------------------------------------------------------------ -# BSP MAKEFILE -# -# This makefile was automatically generated by the nios2-bsp-generate-files -# command. Its purpose is to build a custom Board Support Package (BSP) -# targeting a specific Nios II processor in an SOPC Builder-based design. -# -# To create an application or library Makefile which uses this BSP, try the -# nios2-app-generate-makefile or nios2-lib-generate-makefile commands. -#------------------------------------------------------------------------------ - -#------------------------------------------------------------------------------ -# TOOLS -#------------------------------------------------------------------------------ - -MKDIR := mkdir -p -ECHO := echo -SPACE := $(empty) $(empty) - -#------------------------------------------------------------------------------ -# The adjust-path macro -# -# If COMSPEC is defined, Make is launched from Windows through -# Cygwin. This adjust-path macro will call 'cygpath -u' on all -# paths to ensure they are readable by Make. -# -# If COMSPEC is not defined, Make is launched from *nix, and no adjustment -# is necessary -#------------------------------------------------------------------------------ - -ifndef COMSPEC -ifdef ComSpec -COMSPEC = $(ComSpec) -endif # ComSpec -endif # !COMSPEC - -ifdef COMSPEC - adjust-path = $(subst $(SPACE),\$(SPACE),$(shell cygpath -u "$1")) - adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$(shell cygpath -m "$1")) -else - adjust-path = $(subst $(SPACE),\$(SPACE),$1) - adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$1) -endif - -#------------------------------------------------------------------------------ -# DEFAULT TARGET -# -# The default target, "all", must appear before any other target in the -# Makefile. Note that extra prerequisites are added to the "all" rule later. -#------------------------------------------------------------------------------ -.PHONY: all -all: - @$(ECHO) [BSP build complete] - - -#------------------------------------------------------------------------------ -# PATHS & DIRECTORY NAMES -# -# Explicitly locate absolute path of the BSP root -#------------------------------------------------------------------------------ - -BSP_ROOT_DIR := . - -# Define absolute path to the root of the BSP. -ABS_BSP_ROOT := $(call adjust-path-mixed,$(shell pwd)) - -# Stash all BSP object files here -OBJ_DIR := ./obj - -NEWLIB_DIR = $(BSP_ROOT_DIR)/newlib - - -#------------------------------------------------------------------------------ -# MANAGED CONTENT -# -# All content between the lines "START MANAGED" and "END MANAGED" below is -# generated based on variables in the BSP settings file when the -# nios2-bsp-generate-files command is invoked. If you wish to persist any -# information pertaining to the build process, it is recomended that you -# utilize the BSP settings mechanism to do so. -# -# Note that most variable assignments in this section have a corresponding BSP -# setting that can be changed by using the nios2-bsp-create-settings or -# nios2-bsp-update-settings command before nios2-bsp-generate-files; if you -# want any variable set to a specific value when this Makefile is re-generated -# (to prevent hand-edits from being over-written), use the BSP settings -# facilities above. -#------------------------------------------------------------------------------ - -#START MANAGED - -# The following TYPE comment allows tools to identify the 'type' of target this -# makefile is associated with. -# TYPE: BSP_PRIVATE_MAKEFILE - -# This following VERSION comment indicates the version of the tool used to -# generate this makefile. A makefile variable is provided for VERSION as well. -# ACDS_VERSION: 13.0sp1 -ACDS_VERSION := 13.0sp1 - -# This following BUILD_NUMBER comment indicates the build number of the tool -# used to generate this makefile. -# BUILD_NUMBER: 232 - -SETTINGS_FILE := settings.bsp -SOPC_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo - -#------------------------------------------------------------------------------- -# TOOL & COMMAND DEFINITIONS -# -# The base command for each build operation are expressed here. Additional -# switches may be expressed here. They will run for all instances of the -# utility. -#------------------------------------------------------------------------------- - -# Archiver command. Creates library files. -AR = nios2-elf-ar - -# Assembler command. Note that CC is used for .S files. -AS = nios2-elf-gcc - -# Custom flags only passed to the archiver. This content of this variable is -# directly passed to the archiver rather than the more standard "ARFLAGS". The -# reason for this is that GNU Make assumes some default content in ARFLAGS. -# This setting defines the value of BSP_ARFLAGS in Makefile. -BSP_ARFLAGS = -src - -# Custom flags only passed to the assembler. This setting defines the value of -# BSP_ASFLAGS in Makefile. -BSP_ASFLAGS = -Wa,-gdwarf2 - -# C/C++ compiler debug level. '-g' provides the default set of debug symbols -# typically required to debug a typical application. Omitting '-g' removes -# debug symbols from the ELF. This setting defines the value of -# BSP_CFLAGS_DEBUG in Makefile. -BSP_CFLAGS_DEBUG = -g - -# C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" -# optimization, etc. "-O0" is recommended for code that you want to debug since -# compiler optimization can remove variables and produce non-sequential -# execution of code while debugging. This setting defines the value of -# BSP_CFLAGS_OPTIMIZATION in Makefile. -BSP_CFLAGS_OPTIMIZATION = -O0 - -# C/C++ compiler warning level. "-Wall" is commonly used.This setting defines -# the value of BSP_CFLAGS_WARNINGS in Makefile. -BSP_CFLAGS_WARNINGS = -Wall - -# C compiler command. -CC = nios2-elf-gcc -xc - -# C++ compiler command. -CXX = nios2-elf-gcc -xc++ - -# Command used to remove files during 'clean' target. -RM = rm -f - - -#------------------------------------------------------------------------------- -# BUILD PRE & POST PROCESS COMMANDS -# -# The following variables are treated as shell commands in the rule -# definitions for each file-type associated with the BSP build, as well as -# commands run at the beginning and end of the entire BSP build operation. -# Pre-process commands are executed before the relevant command (for example, -# a command defined in the "CC_PRE_PROCESS" variable executes before the C -# compiler for building .c files), while post-process commands are executed -# immediately afterwards. -# -# You can view each pre/post-process command in the "Build Rules: All & -# Clean", "Pattern Rules to Build Objects", and "Library Rules" sections of -# this Makefile. -#------------------------------------------------------------------------------- - - -#------------------------------------------------------------------------------- -# BSP SOURCE BUILD SETTINGS (FLAG GENERATION) -# -# Software build settings such as compiler optimization, debug level, warning -# flags, etc., may be defined in the following variables. The variables below -# are concatenated together in the 'Flags' section of this Makefile to form -# final variables of flags passed to the build tools. -# -# These settings are considered private to the BSP and apply to all library & -# driver files in it; they do NOT automatically propagate to, for example, the -# build settings for an application. -# # For additional detail and syntax requirements, please refer to GCC help -# (example: "nios2-elf-gcc --help --verbose"). -# -# Unless indicated otherwise, multiple entries in each variable should be -# space-separated. -#------------------------------------------------------------------------------- - -# Altera HAL alt_sys_init.c generated source file -GENERATED_C_FILES := $(ABS_BSP_ROOT)/alt_sys_init.c -GENERATED_C_LIB_SRCS += alt_sys_init.c - - -#------------------------------------------------------------------------------- -# BSP SOURCE FILE LISTING -# -# All source files that comprise the BSP are listed here, along with path -# information to each file expressed relative to the BSP root. The precise -# list and location of each file is derived from the driver, operating system, -# or software package source file declarations. -# -# Following specification of the source files for each component, driver, etc., -# each source file type (C, assembly, etc.) is concatenated together and used -# to construct a list of objects. Pattern rules to build each object are then -# used to build each file. -#------------------------------------------------------------------------------- - -# altera_avalon_jtag_uart_driver sources root -altera_avalon_jtag_uart_driver_SRCS_ROOT := drivers - -# altera_avalon_jtag_uart_driver sources -altera_avalon_jtag_uart_driver_C_LIB_SRCS := \ - $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_init.c \ - $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_read.c \ - $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_write.c \ - $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_ioctl.c \ - $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_fd.c - -# altera_avalon_lcd_16207_driver sources root -altera_avalon_lcd_16207_driver_SRCS_ROOT := drivers - -# altera_avalon_lcd_16207_driver sources -altera_avalon_lcd_16207_driver_C_LIB_SRCS := \ - $(altera_avalon_lcd_16207_driver_SRCS_ROOT)/src/altera_avalon_lcd_16207.c \ - $(altera_avalon_lcd_16207_driver_SRCS_ROOT)/src/altera_avalon_lcd_16207_fd.c - -# altera_avalon_pio_driver sources root -altera_avalon_pio_driver_SRCS_ROOT := drivers - -# altera_avalon_pio_driver sources -# altera_nios2_qsys_hal_driver sources root -altera_nios2_qsys_hal_driver_SRCS_ROOT := HAL - -# altera_nios2_qsys_hal_driver sources -altera_nios2_qsys_hal_driver_C_LIB_SRCS := \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/altera_nios2_qsys_irq.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_usleep.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_busy_sleep.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_vars.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush_all.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_all.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_no_writeback.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_instruction_exception_entry.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_register.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_iic.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_cached.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_uncached.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_free.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_malloc.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_ctors.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_dtors.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_gmon.c - -altera_nios2_qsys_hal_driver_ASM_LIB_SRCS := \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_entry.S \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_trap.S \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_muldiv.S \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_entry.S \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_software_exception.S \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_mcount.S \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_log_macro.S \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/crt0.S - -# hal sources root -hal_SRCS_ROOT := HAL - -# hal sources -hal_C_LIB_SRCS := \ - $(hal_SRCS_ROOT)/src/alt_alarm_start.c \ - $(hal_SRCS_ROOT)/src/alt_close.c \ - $(hal_SRCS_ROOT)/src/alt_dev.c \ - $(hal_SRCS_ROOT)/src/alt_dev_llist_insert.c \ - $(hal_SRCS_ROOT)/src/alt_dma_rxchan_open.c \ - $(hal_SRCS_ROOT)/src/alt_dma_txchan_open.c \ - $(hal_SRCS_ROOT)/src/alt_environ.c \ - $(hal_SRCS_ROOT)/src/alt_env_lock.c \ - $(hal_SRCS_ROOT)/src/alt_errno.c \ - $(hal_SRCS_ROOT)/src/alt_execve.c \ - $(hal_SRCS_ROOT)/src/alt_exit.c \ - $(hal_SRCS_ROOT)/src/alt_fcntl.c \ - $(hal_SRCS_ROOT)/src/alt_fd_lock.c \ - $(hal_SRCS_ROOT)/src/alt_fd_unlock.c \ - $(hal_SRCS_ROOT)/src/alt_find_dev.c \ - $(hal_SRCS_ROOT)/src/alt_find_file.c \ - $(hal_SRCS_ROOT)/src/alt_flash_dev.c \ - $(hal_SRCS_ROOT)/src/alt_fork.c \ - $(hal_SRCS_ROOT)/src/alt_fs_reg.c \ - $(hal_SRCS_ROOT)/src/alt_fstat.c \ - $(hal_SRCS_ROOT)/src/alt_get_fd.c \ - $(hal_SRCS_ROOT)/src/alt_getchar.c \ - $(hal_SRCS_ROOT)/src/alt_getpid.c \ - $(hal_SRCS_ROOT)/src/alt_gettod.c \ - $(hal_SRCS_ROOT)/src/alt_iic_isr_register.c \ - $(hal_SRCS_ROOT)/src/alt_instruction_exception_register.c \ - $(hal_SRCS_ROOT)/src/alt_ioctl.c \ - $(hal_SRCS_ROOT)/src/alt_io_redirect.c \ - $(hal_SRCS_ROOT)/src/alt_irq_handler.c \ - $(hal_SRCS_ROOT)/src/alt_isatty.c \ - $(hal_SRCS_ROOT)/src/alt_kill.c \ - $(hal_SRCS_ROOT)/src/alt_link.c \ - $(hal_SRCS_ROOT)/src/alt_load.c \ - $(hal_SRCS_ROOT)/src/alt_log_printf.c \ - $(hal_SRCS_ROOT)/src/alt_lseek.c \ - $(hal_SRCS_ROOT)/src/alt_main.c \ - $(hal_SRCS_ROOT)/src/alt_malloc_lock.c \ - $(hal_SRCS_ROOT)/src/alt_open.c \ - $(hal_SRCS_ROOT)/src/alt_printf.c \ - $(hal_SRCS_ROOT)/src/alt_putchar.c \ - $(hal_SRCS_ROOT)/src/alt_putstr.c \ - $(hal_SRCS_ROOT)/src/alt_read.c \ - $(hal_SRCS_ROOT)/src/alt_release_fd.c \ - $(hal_SRCS_ROOT)/src/alt_rename.c \ - $(hal_SRCS_ROOT)/src/alt_sbrk.c \ - $(hal_SRCS_ROOT)/src/alt_settod.c \ - $(hal_SRCS_ROOT)/src/alt_stat.c \ - $(hal_SRCS_ROOT)/src/alt_tick.c \ - $(hal_SRCS_ROOT)/src/alt_times.c \ - $(hal_SRCS_ROOT)/src/alt_unlink.c \ - $(hal_SRCS_ROOT)/src/alt_wait.c \ - $(hal_SRCS_ROOT)/src/alt_write.c - - -# Assemble all component C source files -COMPONENT_C_LIB_SRCS += \ - $(altera_avalon_jtag_uart_driver_C_LIB_SRCS) \ - $(altera_avalon_lcd_16207_driver_C_LIB_SRCS) \ - $(altera_nios2_qsys_hal_driver_C_LIB_SRCS) \ - $(hal_C_LIB_SRCS) - -# Assemble all component assembly source files -COMPONENT_ASM_LIB_SRCS += \ - $(altera_nios2_qsys_hal_driver_ASM_LIB_SRCS) - -# Assemble all component C++ source files -COMPONENT_CPP_LIB_SRCS += \ - -#END MANAGED - -#------------------------------------------------------------------------------ -# PUBLIC.MK -# -# The generated public.mk file contains BSP information that is shared with -# other external makefiles, such as a Nios II application makefile. System- -# dependent information such as hardware-specific compiler flags and -# simulation file generation are stored here. -# -# In addition, public.mk contains include paths that various software, -# such as a device driver, may need for the C compiler. These paths are -# written to public.mk with respect to the BSP root. In public.mk, each -# path is prefixed with a special variable, $(ALT_LIBRARY_ROOT_DIR). The -# purpose of this variable is to allow an external Makefile to append on -# path information to precisely locate paths expressed in public.mk -# Since this is the BSP Makefile, we set ALT_LIBRARY_ROOT_DIR to point right -# here ("."), at the BSP root. -# -# ALT_LIBRARY_ROOT_DIR must always be set before public.mk is included. -#------------------------------------------------------------------------------ -ALT_LIBRARY_ROOT_DIR := . -include public.mk - - -#------------------------------------------------------------------------------ -# FLAGS -# -# Include paths for BSP files are written into the public.mk file and must -# be added to the existing list of pre-processor flags. In addition, "hooks" -# for standard flags left intentionally empty (CFLAGS, CPPFLAGS, ASFLAGS, -# and CXXFLAGS) are provided for conveniently adding to the relevant flags -# on the command-line or via script that calls make. -#------------------------------------------------------------------------------ -# Assemble final list of compiler flags from generated content -BSP_CFLAGS += \ - $(BSP_CFLAGS_DEFINED_SYMBOLS) \ - $(BSP_CFLAGS_UNDEFINED_SYMBOLS) \ - $(BSP_CFLAGS_OPTIMIZATION) \ - $(BSP_CFLAGS_DEBUG) \ - $(BSP_CFLAGS_WARNINGS) \ - $(BSP_CFLAGS_USER_FLAGS) \ - $(ALT_CFLAGS) \ - $(CFLAGS) - -# Make ready the final list of include directories and other C pre-processor -# flags. Each include path is made ready by prefixing it with "-I". -BSP_CPPFLAGS += \ - $(addprefix -I, $(BSP_INC_DIRS)) \ - $(addprefix -I, $(ALT_INCLUDE_DIRS)) \ - $(ALT_CPPFLAGS) \ - $(CPPFLAGS) - -# Finish off assembler flags with any user-provided flags -BSP_ASFLAGS += $(ASFLAGS) - -# Finish off C++ flags with any user-provided flags -BSP_CXXFLAGS += $(CXXFLAGS) - -# And finally, the ordered list -C_SRCS += $(GENERATED_C_LIB_SRCS) \ - $(COMPONENT_C_LIB_SRCS) - -CXX_SRCS += $(GENERATED_CPP_LIB_SRCS) \ - $(COMPONENT_CPP_LIB_SRCS) - -ASM_SRCS += $(GENERATED_ASM_LIB_SRCS) \ - $(COMPONENT_ASM_LIB_SRCS) - - -#------------------------------------------------------------------------------ -# LIST OF GENERATED FILES -# -# A Nios II BSP relies on the generation of several source files used -# by both the BSP and any applications referencing the BSP. -#------------------------------------------------------------------------------ - - -GENERATED_H_FILES := $(ABS_BSP_ROOT)/system.h - -GENERATED_LINKER_SCRIPT := $(ABS_BSP_ROOT)/linker.x - -GENERATED_FILES += $(GENERATED_H_FILES) \ - $(GENERATED_LINKER_SCRIPT) - - -#------------------------------------------------------------------------------ -# SETUP TO BUILD OBJECTS -# -# List of object files which are to be built. This is constructed from the input -# list of C source files (C_SRCS), C++ source files (CXX_SRCS), and assembler -# source file (ASM_SRCS). The permitted file extensions are: -# -# .c .C - for C files -# .cxx .cc .cpp .CXX .CC .CPP - for C++ files -# .S .s - for assembly files -# -# Extended description: The list of objects is a sorted list (duplicates -# removed) of all possible objects, placed beneath the ./obj directory, -# including any path information stored in the "*_SRCS" variable. The -# "patsubst" commands are used to concatenate together multiple file suffix -# types for common files (i.e. c++ as .cxx, .cc, .cpp). -# -# File extensions are case-insensitive in build rules with the exception of -# assembly sources. Nios II assembly sources with the ".S" extension are first -# run through the C preprocessor. Sources with the ".s" extension are not. -#------------------------------------------------------------------------------ -OBJS = $(sort $(addprefix $(OBJ_DIR)/, \ - $(patsubst %.c, %.o, $(patsubst %.C, %.o, $(C_SRCS))) \ - $(patsubst %.cxx, %.o, $(patsubst %.CXX, %.o, \ - $(patsubst %.cc, %.o, $(patsubst %.CC, %.o, \ - $(patsubst %.cpp, %.o, $(patsubst %.CPP, %.o, \ - $(CXX_SRCS) )))))) \ - $(patsubst %.S, %.o, $(patsubst %.s, %.o, $(ASM_SRCS))) )) - -# List of dependancy files for each object file. -DEPS = $(OBJS:.o=.d) - - -# Rules to force your project to rebuild or relink -# .force_relink file will cause any application that depends on this project to relink -# .force_rebuild file will cause this project to rebuild object files -# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files - -FORCE_RELINK_DEP := .force_relink -FORCE_REBUILD_DEP := .force_rebuild -FORCE_REBUILD_ALL_DEP := .force_rebuild_all -FORCE_REBUILD_DEP_LIST := $(FORCE_RELINK_DEP) $(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) - -$(FORCE_REBUILD_DEP_LIST): - -$(OBJS): $(wildcard $(FORCE_REBUILD_DEP)) $(wildcard $(FORCE_REBUILD_ALL_DEP)) - - -#------------------------------------------------------------------------------ -# BUILD RULES: ALL & CLEAN -#------------------------------------------------------------------------------ -.DELETE_ON_ERROR: - -.PHONY: all -all: build_pre_process -all: Makefile $(GENERATED_FILES) $(BSP_LIB) $(NEWLIB_DIR) -all: build_post_process - - -# clean: remove .o/.a/.d -.PHONY: clean -clean: - @$(RM) -r $(BSP_LIB) $(OBJ_DIR) $(FORCE_REBUILD_DEP_LIST) -ifneq ($(wildcard $(NEWLIB_DIR)),) - @$(RM) -r $(NEWLIB_DIR) -endif - @$(ECHO) [BSP clean complete] - - -#------------------------------------------------------------------------------ -# BUILD PRE/POST PROCESS -#------------------------------------------------------------------------------ -build_pre_process : - $(BUILD_PRE_PROCESS) - -build_post_process : - $(BUILD_POST_PROCESS) - -.PHONY: build_pre_process build_post_process - - - -#------------------------------------------------------------------------------ -# MAKEFILE UP TO DATE? -# -# Is this very Makefile up to date? Someone may have changed the BSP settings -# file or the associated target hardware. -#------------------------------------------------------------------------------ -# Skip this check when clean is the only target -ifneq ($(MAKECMDGOALS),clean) - -ifneq ($(wildcard $(SETTINGS_FILE)),$(SETTINGS_FILE)) -$(warning Warning: BSP Settings File $(SETTINGS_FILE) could not be found.) -endif - -Makefile: $(wildcard $(SETTINGS_FILE)) - @$(ECHO) Makefile not up to date. - @$(ECHO) $(SETTINGS_FILE) has been modified since the BSP Makefile was generated. - @$(ECHO) - @$(ECHO) Generate the BSP to update the Makefile, and then build again. - @$(ECHO) - @$(ECHO) To generate from Eclipse: - @$(ECHO) " 1. Right-click the BSP project." - @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." - @$(ECHO) - @$(ECHO) To generate from the command line: - @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" - @$(ECHO) - @exit 1 - -ifneq ($(wildcard $(SOPC_FILE)),$(SOPC_FILE)) -$(warning Warning: SOPC File $(SOPC_FILE) could not be found.) -endif - -public.mk: $(wildcard $(SOPC_FILE)) - @$(ECHO) Makefile not up to date. - @$(ECHO) $(SOPC_FILE) has been modified since the BSP was generated. - @$(ECHO) - @$(ECHO) Generate the BSP to update the Makefile, and then build again. - @$(ECHO) - @$(ECHO) To generate from Eclipse: - @$(ECHO) " 1. Right-click the BSP project." - @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." - @$(ECHO) - @$(ECHO) To generate from the command line: - @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" - @$(ECHO) - @exit 1 - -endif # $(MAKECMDGOALS) != clean - -#------------------------------------------------------------------------------ -# PATTERN RULES TO BUILD OBJECTS -#------------------------------------------------------------------------------ -$(OBJ_DIR)/%.o: %.c - @$(ECHO) Compiling $( - -/* - * Device headers - */ - -#include "altera_nios2_qsys_irq.h" -#include "altera_avalon_jtag_uart.h" -#include "altera_avalon_lcd_16207.h" - -/* - * Allocate the device storage - */ - -ALTERA_NIOS2_QSYS_IRQ_INSTANCE ( NIOS2_PROCESSOR, nios2_processor); -ALTERA_AVALON_JTAG_UART_INSTANCE ( JTAG_UART, jtag_uart); -ALTERA_AVALON_LCD_16207_INSTANCE ( LCD_16207_0, lcd_16207_0); - -/* - * Initialize the interrupt controller devices - * and then enable interrupts in the CPU. - * Called before alt_sys_init(). - * The "base" parameter is ignored and only - * present for backwards-compatibility. - */ - -void alt_irq_init ( const void* base ) -{ - ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); - alt_irq_cpu_enable_interrupts(); -} - -/* - * Initialize the non-interrupt controller devices. - * Called after alt_irq_init(). - */ - -void alt_sys_init( void ) -{ - ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); - ALTERA_AVALON_LCD_16207_INIT ( LCD_16207_0, lcd_16207_0); -} diff --git a/software/DE2_115_ASM_bsp/create-this-bsp b/software/DE2_115_ASM_bsp/create-this-bsp deleted file mode 100644 index 1228b16..0000000 --- a/software/DE2_115_ASM_bsp/create-this-bsp +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash -# -# This script creates the ucosii_net_zipfs Board Support Package (BSP). - -BSP_TYPE=hal -BSP_DIR=. -SOPC_DIR=../../ -SOPC_FILE=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo -NIOS2_BSP_ARGS="" -CPU_NAME= - - -# Don't run make if create-this-app script is called with --no-make arg -SKIP_MAKE= -while [ $# -gt 0 ] -do - case "$1" in - --no-make) - SKIP_MAKE=1 - ;; - *) - NIOS2_BSP_ARGS="$NIOS2_BSP_ARGS $1" - ;; - esac - shift -done - - -# Run nios2-bsp utility to create a hal BSP in this directory -# for the system with a .sopc file in $SOPC_FILE. -# Deprecating $SOPC_DIR in 10.1. Multiple .sopcinfo files in a directory may exist. - -if [ -z "$SOPC_FILE" ]; then - echo "WARNING: Use of a directory for locating a .sopcinfo file is deprecated in 10.1. Multiple .sopcinfo files may exist. You must specify the full .sopcinfo path." - cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_DIR $NIOS2_BSP_ARGS $CPU_NAME" -else - cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_FILE $NIOS2_BSP_ARGS $CPU_NAME" -fi - - -echo "create-this-bsp: Running \"$cmd\"" -$cmd || { - echo "$cmd failed" - exit 1 -} -if [ -z "$SKIP_MAKE" ]; then - echo "create-this-bsp: Running make" - make -fi diff --git a/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_jtag_uart.h b/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_jtag_uart.h deleted file mode 100644 index 3168183..0000000 --- a/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_jtag_uart.h +++ /dev/null @@ -1,198 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#ifndef __ALT_AVALON_JTAG_UART_H__ -#define __ALT_AVALON_JTAG_UART_H__ - -#include - -#include "sys/alt_alarm.h" -#include "sys/alt_warning.h" - -#include "os/alt_sem.h" -#include "os/alt_flag.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * If the user wants all drivers to be small rather than fast then make sure - * this one is marked as needing to be small. - */ -#if defined ALT_USE_SMALL_DRIVERS && !defined ALTERA_AVALON_JTAG_UART_SMALL -#define ALTERA_AVALON_JTAG_UART_SMALL -#endif - -/* - * If the user wants to ignore FIFO full error after timeout - */ -#if defined ALT_JTAG_UART_IGNORE_FIFO_FULL_ERROR && !defined ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR -#define ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR -#endif - -/* - * Constants that can be overriden. - */ -#ifndef ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT -#define ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT 10 -#endif - -#ifndef ALTERA_AVALON_JTAG_UART_BUF_LEN -#define ALTERA_AVALON_JTAG_UART_BUF_LEN 2048 -#endif - -/* - * ALT_JTAG_UART_READ_RDY and ALT_JTAG_UART_WRITE_RDY are the bitmasks - * that define uC/OS-II event flags that are releated to this device. - * - * ALT_JTAG_UART_READ_RDY indicates that there is read data in the buffer - * ready to be processed. ALT_JTAG_UART_WRITE_RDY indicates that the transmitter is - * ready for more data. - */ -#define ALT_JTAG_UART_READ_RDY 0x1 -#define ALT_JTAG_UART_WRITE_RDY 0x2 -#define ALT_JTAG_UART_TIMEOUT 0x4 - -/* - * State structure definition. Each instance of the driver uses one - * of these structures to hold its associated state. - */ - -typedef struct altera_avalon_jtag_uart_state_s -{ - unsigned int base; - -#ifndef ALTERA_AVALON_JTAG_UART_SMALL - - unsigned int timeout; /* Timeout until host is assumed inactive */ - alt_alarm alarm; - unsigned int irq_enable; - unsigned int host_inactive; - - ALT_SEM (read_lock) - ALT_SEM (write_lock) - ALT_FLAG_GRP (events) - - /* The variables below are volatile because they are modified by the - * interrupt routine. Making them volatile and reading them atomically - * means that we don't need any large critical sections. - */ - volatile unsigned int rx_in; - unsigned int rx_out; - unsigned int tx_in; - volatile unsigned int tx_out; - char rx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; - char tx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; - -#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ - -} altera_avalon_jtag_uart_state; - -/* - * Macros used by alt_sys_init when the ALT file descriptor facility isn't used. - */ - -#ifdef ALTERA_AVALON_JTAG_UART_SMALL - -#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ - altera_avalon_jtag_uart_state state = \ - { \ - name##_BASE, \ - } - -#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) - -#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ - -#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ - altera_avalon_jtag_uart_state state = \ - { \ - name##_BASE, \ - ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ - } - -/* - * Externally referenced routines - */ -extern void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, - int irq_controller_id, int irq); - -#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) \ - { \ - if (name##_IRQ == ALT_IRQ_NOT_CONNECTED) \ - { \ - ALT_LINK_ERROR ("Error: Interrupt not connected for " #name ". " \ - "You have selected the interrupt driven version of " \ - "the ALTERA Avalon JTAG UART driver, but the " \ - "interrupt is not connected for this device. You can " \ - "select a polled mode driver by checking the 'small " \ - "driver' option in the HAL configuration window, or " \ - "by using the -DALTERA_AVALON_JTAG_UART_SMALL " \ - "preprocessor flag."); \ - } \ - else \ - altera_avalon_jtag_uart_init(&state, \ - name##_IRQ_INTERRUPT_CONTROLLER_ID, \ - name##_IRQ); \ - } - -#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ - -/* - * Include in case non-direct version of driver required. - */ -#include "altera_avalon_jtag_uart_fd.h" - -/* - * Map alt_sys_init macros to direct or non-direct versions. - */ -#ifdef ALT_USE_DIRECT_DRIVERS - -#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, state) \ - ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) -#define ALTERA_AVALON_JTAG_UART_INIT(name, state) \ - ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, dev) \ - ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, dev) -#define ALTERA_AVALON_JTAG_UART_INIT(name, dev) \ - ALTERA_AVALON_JTAG_UART_DEV_INIT(name, dev) - -#endif /* ALT_USE_DIRECT_DRIVERS */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __ALT_AVALON_JTAG_UART_H__ */ diff --git a/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h b/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h deleted file mode 100644 index 183bd3f..0000000 --- a/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h +++ /dev/null @@ -1,125 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#ifndef __ALT_AVALON_JTAG_UART_FD_H__ -#define __ALT_AVALON_JTAG_UART_FD_H__ - -#include "sys/alt_dev.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * Externally referenced routines - */ -extern int altera_avalon_jtag_uart_read_fd (alt_fd* fd, char* ptr, int len); -extern int altera_avalon_jtag_uart_write_fd (alt_fd* fd, const char* ptr, - int len); - -/* - * Device structure definition. This is needed by alt_sys_init in order to - * reserve memory for the device instance. - */ - -typedef struct altera_avalon_jtag_uart_dev_s -{ - alt_dev dev; - altera_avalon_jtag_uart_state state; -} altera_avalon_jtag_uart_dev; - -/* - * Macros used by alt_sys_init when the ALT file descriptor facility is used. - */ - -#ifdef ALTERA_AVALON_JTAG_UART_SMALL - -#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ - static altera_avalon_jtag_uart_dev d = \ - { \ - { \ - ALT_LLIST_ENTRY, \ - name##_NAME, \ - NULL, /* open */ \ - NULL, /* close */ \ - altera_avalon_jtag_uart_read_fd, \ - altera_avalon_jtag_uart_write_fd, \ - NULL, /* lseek */ \ - NULL, /* fstat */ \ - NULL, /* ioctl */ \ - }, \ - { \ - name##_BASE, \ - } \ - } - -#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) alt_dev_reg (&d.dev) - -#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ - -extern int altera_avalon_jtag_uart_close_fd(alt_fd* fd); -extern int altera_avalon_jtag_uart_ioctl_fd (alt_fd* fd, int req, void* arg); - -#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ - static altera_avalon_jtag_uart_dev d = \ - { \ - { \ - ALT_LLIST_ENTRY, \ - name##_NAME, \ - NULL, /* open */ \ - altera_avalon_jtag_uart_close_fd, \ - altera_avalon_jtag_uart_read_fd, \ - altera_avalon_jtag_uart_write_fd, \ - NULL, /* lseek */ \ - NULL, /* fstat */ \ - altera_avalon_jtag_uart_ioctl_fd, \ - }, \ - { \ - name##_BASE, \ - ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ - } \ - } - -#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) \ - { \ - ALTERA_AVALON_JTAG_UART_STATE_INIT(name, d.state); \ - \ - /* make the device available to the system */ \ - alt_dev_reg(&d.dev); \ - } - -#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __ALT_AVALON_JTAG_UART_FD_H__ */ diff --git a/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h b/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h deleted file mode 100644 index 8fe6b80..0000000 --- a/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h +++ /dev/null @@ -1,73 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#ifndef __ALTERA_AVALON_JTAG_UART_REGS_H__ -#define __ALTERA_AVALON_JTAG_UART_REGS_H__ - -#include - -#define ALTERA_AVALON_JTAG_UART_DATA_REG 0 -#define IOADDR_ALTERA_AVALON_JTAG_UART_DATA(base) \ - __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_DATA_REG) -#define IORD_ALTERA_AVALON_JTAG_UART_DATA(base) \ - IORD(base, ALTERA_AVALON_JTAG_UART_DATA_REG) -#define IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, data) \ - IOWR(base, ALTERA_AVALON_JTAG_UART_DATA_REG, data) - -#define ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK (0x000000FF) -#define ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST (0) -#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK (0x00008000) -#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_OFST (15) -#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK (0xFFFF0000) -#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST (16) - - -#define ALTERA_AVALON_JTAG_UART_CONTROL_REG 1 -#define IOADDR_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ - __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) -#define IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ - IORD(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) -#define IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, data) \ - IOWR(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG, data) - -#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK (0x00000001) -#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST (0) -#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK (0x00000002) -#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST (1) -#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK (0x00000100) -#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST (8) -#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK (0x00000200) -#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST (9) -#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK (0x00000400) -#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST (10) -#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK (0xFFFF0000) -#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST (16) - -#endif /* __ALTERA_AVALON_JTAG_UART_REGS_H__ */ diff --git a/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_lcd_16207.h b/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_lcd_16207.h deleted file mode 100644 index 526ef17..0000000 --- a/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_lcd_16207.h +++ /dev/null @@ -1,158 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#ifndef __ALTERA_AVALON_LCD_16207_H__ -#define __ALTERA_AVALON_LCD_16207_H__ - -#include - -#include "sys/alt_alarm.h" -#include "os/alt_sem.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * The altera_avalon_lcd_16207_dev structure is used to hold device specific - * data. This includes the transmit and receive buffers. - * - * An instance of this structure is created in the auto-generated - * alt_sys_init.c file for each UART listed in the systems PTF file. This is - * done using the ALTERA_AVALON_LCD_16207_STATE_INSTANCE macro given below. - */ - -#define ALT_LCD_HEIGHT 2 -#define ALT_LCD_WIDTH 16 -#define ALT_LCD_VIRTUAL_WIDTH 80 - -typedef struct altera_avalon_lcd_16207_state_s -{ - int base; - - alt_alarm alarm; - int period; - - char broken; - - unsigned char x; - unsigned char y; - char address; - char esccount; - - char scrollpos; - char scrollmax; - char active; /* If non-zero then the foreground routines are - * active so the timer call must not update the - * display. */ - - char escape[8]; - - struct - { - char visible[ALT_LCD_WIDTH]; - char data[ALT_LCD_VIRTUAL_WIDTH+1]; - char width; - unsigned char speed; - - } line[ALT_LCD_HEIGHT]; - - ALT_SEM (write_lock)/* Semaphore used to control access to the - * write buffer in multi-threaded mode */ -} altera_avalon_lcd_16207_state; - -/* - * Called by alt_sys_init.c to initialize the driver. - */ -extern void altera_avalon_lcd_16207_init(altera_avalon_lcd_16207_state* sp); - -/* - * The LCD panel driver is not trivial, so leave it out in the small - * drivers case. Also leave it out in simulation because there is no - * simulated hardware for the LCD panel. These two can be overridden - * by defining ALT_USE_LCE_16207 if you really want it. - */ - -#if (!defined(ALT_USE_SMALL_DRIVERS) && !defined(ALT_SIM_OPTIMIZE)) || defined ALT_USE_LCD_16207 - -/* - * Used by the auto-generated file - * alt_sys_init.c to create an instance of this device driver. - */ -#define ALTERA_AVALON_LCD_16207_STATE_INSTANCE(name, state) \ - altera_avalon_lcd_16207_state state = \ - { \ - name##_BASE \ - } - -/* - * The macro ALTERA_AVALON_LCD_16207_INIT is used by the auto-generated file - * alt_sys_init.c to initialize an instance of the device driver. - */ -#define ALTERA_AVALON_LCD_16207_STATE_INIT(name, state) \ - altera_avalon_lcd_16207_init(&state) - -#else /* exclude driver */ - -#define ALTERA_AVALON_LCD_16207_STATE_INSTANCE(name, state) extern int alt_no_storage -#define ALTERA_AVALON_LCD_16207_STATE_INIT(name, state) while (0) - -#endif /* exclude driver */ - -/* - * Include in case non-direct version of driver required. - */ -#include "altera_avalon_lcd_16207_fd.h" - -/* - * Map alt_sys_init macros to direct or non-direct versions. - */ -#ifdef ALT_USE_DIRECT_DRIVERS - -#define ALTERA_AVALON_LCD_16207_INSTANCE(name, state) \ - ALTERA_AVALON_LCD_16207_STATE_INSTANCE(name, state) -#define ALTERA_AVALON_LCD_16207_INIT(name, state) \ - ALTERA_AVALON_LCD_16207_STATE_INIT(name, state) - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -#define ALTERA_AVALON_LCD_16207_INSTANCE(name, dev) \ - ALTERA_AVALON_LCD_16207_DEV_INSTANCE(name, dev) -#define ALTERA_AVALON_LCD_16207_INIT(name, dev) \ - ALTERA_AVALON_LCD_16207_DEV_INIT(name, dev) - -#endif /* ALT_USE_DIRECT_DRIVERS */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __ALTERA_AVALON_LCD_16207_H__ */ diff --git a/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_lcd_16207_fd.h b/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_lcd_16207_fd.h deleted file mode 100644 index 88436c0..0000000 --- a/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_lcd_16207_fd.h +++ /dev/null @@ -1,108 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#ifndef __ALTERA_AVALON_LCD_16207_FD_H__ -#define __ALTERA_AVALON_LCD_16207_FD_H__ - -#include "sys/alt_dev.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * Externally referenced routines - */ -extern int altera_avalon_lcd_16207_write_fd(alt_fd* fd, const char* ptr, - int len); - -/* - * Device structure definition. This is needed by alt_sys_init in order to - * reserve memory for the device instance. - */ - -typedef struct altera_avalon_lcd_16207_dev_s -{ - alt_dev dev; - altera_avalon_lcd_16207_state state; -} altera_avalon_lcd_16207_dev; - -/* - * The LCD panel driver is not trivial, so leave it out in the small - * drivers case. Also leave it out in simulation because there is no - * simulated hardware for the LCD panel. These two can be overridden - * by defining ALT_USE_LCE_16207 if you really want it. - */ - -#if (!defined(ALT_USE_SMALL_DRIVERS) && !defined(ALT_SIM_OPTIMIZE)) || defined ALT_USE_LCD_16207 - -/* - * Macros used by alt_sys_init when the ALT file descriptor facility is used. - */ -#define ALTERA_AVALON_LCD_16207_DEV_INSTANCE(name, d) \ - static altera_avalon_lcd_16207_dev d = \ - { \ - { \ - ALT_LLIST_ENTRY, \ - name##_NAME, \ - NULL, /* open */ \ - NULL, /* close */ \ - NULL, /* read */ \ - altera_avalon_lcd_16207_write_fd, \ - NULL, /* lseek */ \ - NULL, /* fstat */ \ - NULL, /* ioctl */ \ - }, \ - { \ - name##_BASE \ - }, \ - } - -#define ALTERA_AVALON_LCD_16207_DEV_INIT(name, d) \ - { \ - ALTERA_AVALON_LCD_16207_STATE_INIT(name, d.state); \ - \ - /* make the device available to the system */ \ - alt_dev_reg(&d.dev); \ - } - -#else /* exclude driver */ - -#define ALTERA_AVALON_LCD_16207_DEV_INSTANCE(name, d) extern int alt_no_storage -#define ALTERA_AVALON_LCD_16207_DEV_INIT(name, d) while (0) - -#endif - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __ALTERA_AVALON_LCD_16207_FD_H__ */ diff --git a/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_lcd_16207_regs.h b/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_lcd_16207_regs.h deleted file mode 100644 index bc35f1a..0000000 --- a/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_lcd_16207_regs.h +++ /dev/null @@ -1,83 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#ifndef __ALTERA_AVALON_LCD_16207_REGS_H__ -#define __ALTERA_AVALON_LCD_16207_REGS_H__ - -/* -/////////////////////////////////////////////////////////////////////////// -// -// ALTERA_AVALON_LCD_16207 PERIPHERAL -// -// Provides a hardware interface that allows software to -// access the two (2) internal 8-bit registers in an Optrex -// model 16207 (or equivalent) character LCD display (the kind -// shipped with the Nios Development Kit, 2 rows x 16 columns). -// -// Because the interface to the LCD module is "not quite Avalon," -// the hardware in this module ends-up mapping the module's -// two physical read-write registers into four Avalon-visible -// registers: Two read-only registers and two write-only registers. -// A picture is worth a thousand words: -// -// THE REGISTER MAP -// -// 7 6 5 4 3 2 1 0 Offset -// +-----+-----+-----+-----+-----+-----+-----+-----+ -// RS = 0 | Command Register (WRITE-Only) | 0 -// +-----+-----+-----+-----+-----+-----+-----+-----+ -// RS = 0 | Status Register (READ -Only) | 1 -// +-----+-----+-----+-----+-----+-----+-----+-----+ -// RS = 1 | Data Register (WRITE-Only) | 2 -// +-----+-----+-----+-----+-----+-----+-----+-----+ -// RS = 1 | Data Register (READ -Only) | 3 -// +-----+-----+-----+-----+-----+-----+-----+-----+ -// -/////////////////////////////////////////////////////////////////////////// -*/ - -#include - -#define IOADDR_ALTERA_AVALON_LCD_16207_COMMAND(base) __IO_CALC_ADDRESS_NATIVE(base, 0) -#define IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, data) IOWR(base, 0, data) - -#define IOADDR_ALTERA_AVALON_LCD_16207_STATUS(base) __IO_CALC_ADDRESS_NATIVE(base, 1) -#define IORD_ALTERA_AVALON_LCD_16207_STATUS(base) IORD(base, 1) - -#define ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK (0x00000080u) -#define ALTERA_AVALON_LCD_16207_STATUS_BUSY_OFST (7) - -#define IOADDR_ALTERA_AVALON_LCD_16207_DATA_WR(base) __IO_CALC_ADDRESS_NATIVE(base, 2) -#define IOWR_ALTERA_AVALON_LCD_16207_DATA(base, data) IOWR(base, 2, data) - -#define IOADDR_ALTERA_AVALON_LCD_16207_DATA_RD(base) __IO_CALC_ADDRESS_NATIVE(base, 3) -#define IORD_ALTERA_AVALON_LCD_16207_DATA(base) IORD(base, 3) - -#endif diff --git a/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_pio_regs.h b/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_pio_regs.h deleted file mode 100644 index a829ddd..0000000 --- a/software/DE2_115_ASM_bsp/drivers/inc/altera_avalon_pio_regs.h +++ /dev/null @@ -1,67 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#ifndef __ALTERA_AVALON_PIO_REGS_H__ -#define __ALTERA_AVALON_PIO_REGS_H__ - -#include - -#define IOADDR_ALTERA_AVALON_PIO_DATA(base) __IO_CALC_ADDRESS_NATIVE(base, 0) -#define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0) -#define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data) - -#define IOADDR_ALTERA_AVALON_PIO_DIRECTION(base) __IO_CALC_ADDRESS_NATIVE(base, 1) -#define IORD_ALTERA_AVALON_PIO_DIRECTION(base) IORD(base, 1) -#define IOWR_ALTERA_AVALON_PIO_DIRECTION(base, data) IOWR(base, 1, data) - -#define IOADDR_ALTERA_AVALON_PIO_IRQ_MASK(base) __IO_CALC_ADDRESS_NATIVE(base, 2) -#define IORD_ALTERA_AVALON_PIO_IRQ_MASK(base) IORD(base, 2) -#define IOWR_ALTERA_AVALON_PIO_IRQ_MASK(base, data) IOWR(base, 2, data) - -#define IOADDR_ALTERA_AVALON_PIO_EDGE_CAP(base) __IO_CALC_ADDRESS_NATIVE(base, 3) -#define IORD_ALTERA_AVALON_PIO_EDGE_CAP(base) IORD(base, 3) -#define IOWR_ALTERA_AVALON_PIO_EDGE_CAP(base, data) IOWR(base, 3, data) - - -#define IOADDR_ALTERA_AVALON_PIO_SET_BIT(base) __IO_CALC_ADDRESS_NATIVE(base, 4) -#define IORD_ALTERA_AVALON_PIO_SET_BITS(base) IORD(base, 4) -#define IOWR_ALTERA_AVALON_PIO_SET_BITS(base, data) IOWR(base, 4, data) - -#define IOADDR_ALTERA_AVALON_PIO_CLEAR_BITS(base) __IO_CALC_ADDRESS_NATIVE(base, 5) -#define IORD_ALTERA_AVALON_PIO_CLEAR_BITS(base) IORD(base, 5) -#define IOWR_ALTERA_AVALON_PIO_CLEAR_BITS(base, data) IOWR(base, 5, data) - - - -/* Defintions for direction-register operation with bi-directional PIOs */ -#define ALTERA_AVALON_PIO_DIRECTION_INPUT 0 -#define ALTERA_AVALON_PIO_DIRECTION_OUTPUT 1 - -#endif /* __ALTERA_AVALON_PIO_REGS_H__ */ diff --git a/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_jtag_uart_fd.c b/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_jtag_uart_fd.c deleted file mode 100644 index c2a882a..0000000 --- a/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_jtag_uart_fd.c +++ /dev/null @@ -1,86 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "alt_types.h" -#include "sys/alt_dev.h" -#include "altera_avalon_jtag_uart.h" - -extern int altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, - char* buffer, int space, int flags); -extern int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, - const char* ptr, int count, int flags); -extern int altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, - int req, void* arg); -extern int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, - int flags); - -/* ----------------------------------------------------------------------- */ -/* --------------------- WRAPPERS FOR ALT FD SUPPORT --------------------- */ -/* - * - */ - -int -altera_avalon_jtag_uart_read_fd(alt_fd* fd, char* buffer, int space) -{ - altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; - - return altera_avalon_jtag_uart_read(&dev->state, buffer, space, - fd->fd_flags); -} - -int -altera_avalon_jtag_uart_write_fd(alt_fd* fd, const char* buffer, int space) -{ - altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; - - return altera_avalon_jtag_uart_write(&dev->state, buffer, space, - fd->fd_flags); -} - -#ifndef ALTERA_AVALON_JTAG_UART_SMALL - -int -altera_avalon_jtag_uart_close_fd(alt_fd* fd) -{ - altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; - - return altera_avalon_jtag_uart_close(&dev->state, fd->fd_flags); -} - -int -altera_avalon_jtag_uart_ioctl_fd(alt_fd* fd, int req, void* arg) -{ - altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; - - return altera_avalon_jtag_uart_ioctl(&dev->state, req, arg); -} - -#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_jtag_uart_init.c b/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_jtag_uart_init.c deleted file mode 100644 index 16376e3..0000000 --- a/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_jtag_uart_init.c +++ /dev/null @@ -1,256 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include -#include -#include -#include - -#include - -#include "sys/alt_irq.h" -#include "sys/alt_alarm.h" -#include "sys/ioctl.h" -#include "alt_types.h" - -#include "altera_avalon_jtag_uart_regs.h" -#include "altera_avalon_jtag_uart.h" - -#include "sys/alt_log_printf.h" - -#ifndef ALTERA_AVALON_JTAG_UART_SMALL - -/* ----------------------------------------------------------- */ -/* ------------------------- FAST DRIVER --------------------- */ -/* ----------------------------------------------------------- */ -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT -static void altera_avalon_jtag_uart_irq(void* context); -#else -static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id); -#endif -static alt_u32 altera_avalon_jtag_uart_timeout(void* context); - -/* - * Driver initialization code. Register interrupts and start a timer - * which we can use to check whether the host is there. - * Return 1 on sucessful IRQ register and 0 on failure. - */ - -void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, - int irq_controller_id, int irq) -{ - ALT_FLAG_CREATE(&sp->events, 0); - ALT_SEM_CREATE(&sp->read_lock, 1); - ALT_SEM_CREATE(&sp->write_lock, 1); - - /* enable read interrupts at the device */ - sp->irq_enable = ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; - - IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); - - /* register the interrupt handler */ -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT - alt_ic_isr_register(irq_controller_id, irq, altera_avalon_jtag_uart_irq, - sp, NULL); -#else - alt_irq_register(irq, sp, altera_avalon_jtag_uart_irq); -#endif - - /* Register an alarm to go off every second to check for presence of host */ - sp->host_inactive = 0; - - if (alt_alarm_start(&sp->alarm, alt_ticks_per_second(), - &altera_avalon_jtag_uart_timeout, sp) < 0) - { - /* If we can't set the alarm then record "don't know if host present" - * and behave as though the host is present. - */ - sp->timeout = INT_MAX; - } - - /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ - ALT_LOG_JTAG_UART_ALARM_REGISTER(sp, sp->base); -} - -/* - * Interrupt routine - */ -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT -static void altera_avalon_jtag_uart_irq(void* context) -#else -static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id) -#endif -{ - altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state*) context; - unsigned int base = sp->base; - - /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ - ALT_LOG_JTAG_UART_ISR_FUNCTION(base, sp); - - for ( ; ; ) - { - unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); - - /* Return once nothing more to do */ - if ((control & (ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK | ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)) == 0) - break; - - if (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) - { - /* process a read irq. Start by assuming that there is data in the - * receive FIFO (otherwise why would we have been interrupted?) - */ - unsigned int data = 1 << ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST; - - for ( ; ; ) - { - /* Check whether there is space in the buffer. If not then we must not - * read any characters from the buffer as they will be lost. - */ - unsigned int next = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; - if (next == sp->rx_out) - break; - - /* Try to remove a character from the FIFO and find out whether there - * are any more characters remaining. - */ - data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); - - if ((data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) == 0) - break; - - sp->rx_buf[sp->rx_in] = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; - sp->rx_in = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; - - /* Post an event to notify jtag_uart_read that a character has been read */ - ALT_FLAG_POST (sp->events, ALT_JTAG_UART_READ_RDY, OS_FLAG_SET); - } - - if (data & ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK) - { - /* If there is still data available here then the buffer is full - * so turn off receive interrupts until some space becomes available. - */ - sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; - IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, sp->irq_enable); - - /* Dummy read to ensure IRQ is cleared prior to ISR completion */ - IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); - } - } - - if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) - { - /* process a write irq */ - unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; - - while (space > 0 && sp->tx_out != sp->tx_in) - { - IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, sp->tx_buf[sp->tx_out]); - - sp->tx_out = (sp->tx_out + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; - - /* Post an event to notify jtag_uart_write that a character has been written */ - ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET); - - space--; - } - - if (space > 0) - { - /* If we don't have any more data available then turn off the TX interrupt */ - sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; - IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); - - /* Dummy read to ensure IRQ is cleared prior to ISR completion */ - IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); - } - } - } -} - -/* - * Timeout routine is called every second - */ - -static alt_u32 -altera_avalon_jtag_uart_timeout(void* context) -{ - altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state *) context; - - unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base); - - if (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) - { - IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable | ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK); - sp->host_inactive = 0; - } - else if (sp->host_inactive < INT_MAX - 2) { - sp->host_inactive++; - - if (sp->host_inactive >= sp->timeout) { - /* Post an event to indicate host is inactive (for jtag_uart_read */ - ALT_FLAG_POST (sp->events, ALT_JTAG_UART_TIMEOUT, OS_FLAG_SET); - } - } - - return alt_ticks_per_second(); -} - -/* - * The close() routine is implemented to drain the JTAG UART transmit buffer - * when not in "small" mode. This routine will wait for transimt data to be - * emptied unless a timeout from host-activity occurs. If the driver flags - * have been set to non-blocking mode, this routine will exit immediately if - * any data remains. This routine should be called indirectly (i.e. though - * the C library close() routine) so that the file descriptor associated - * with the relevant stream (i.e. stdout) can be closed as well. This routine - * does not manage file descriptors. - * - * The close routine is not implemented for the small driver; instead it will - * map to null. This is because the small driver simply waits while characters - * are transmitted; there is no interrupt-serviced buffer to empty - */ -int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, int flags) -{ - /* - * Wait for all transmit data to be emptied by the JTAG UART ISR, or - * for a host-inactivity timeout, in which case transmit data will be lost - */ - while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) { - if (flags & O_NONBLOCK) { - return -EWOULDBLOCK; - } - } - - return 0; -} - -#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c b/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c deleted file mode 100644 index 15d97a6..0000000 --- a/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c +++ /dev/null @@ -1,86 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include -#include -#include -#include - -#include - -#include "sys/ioctl.h" -#include "alt_types.h" - -#include "altera_avalon_jtag_uart_regs.h" -#include "altera_avalon_jtag_uart.h" - -#include "sys/alt_log_printf.h" - -#ifndef ALTERA_AVALON_JTAG_UART_SMALL - -/* ----------------------------------------------------------- */ -/* ------------------------- FAST DRIVER --------------------- */ -/* ----------------------------------------------------------- */ - -int -altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, int req, - void* arg) -{ - int rc = -ENOTTY; - - switch (req) - { - case TIOCSTIMEOUT: - /* Set the time to wait until assuming host is not connected */ - if (sp->timeout != INT_MAX) - { - int timeout = *((int *)arg); - sp->timeout = (timeout >= 2 && timeout < INT_MAX) ? timeout : INT_MAX - 1; - rc = 0; - } - break; - - case TIOCGCONNECTED: - /* Find out whether host is connected */ - if (sp->timeout != INT_MAX) - { - *((int *)arg) = (sp->host_inactive < sp->timeout) ? 1 : 0; - rc = 0; - } - break; - - default: - break; - } - - return rc; -} - -#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_jtag_uart_read.c b/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_jtag_uart_read.c deleted file mode 100644 index f97baa8..0000000 --- a/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_jtag_uart_read.c +++ /dev/null @@ -1,205 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include -#include -#include -#include - -#include - -#include "sys/alt_irq.h" -#include "sys/alt_alarm.h" -#include "sys/ioctl.h" -#include "alt_types.h" - -#include "altera_avalon_jtag_uart_regs.h" -#include "altera_avalon_jtag_uart.h" - -#include "sys/alt_log_printf.h" - -#ifdef __ucosii__ -#include "includes.h" -#endif /* __ucosii__ */ - -#ifdef ALTERA_AVALON_JTAG_UART_SMALL - -/* ----------------------------------------------------------- */ -/* ----------------------- SMALL DRIVER ---------------------- */ -/* ----------------------------------------------------------- */ - -/* Read routine. The small version blocks until it has at least one byte - * available, it then returns as much as is immediately available without - * waiting any more. It's performance will be very poor without - * interrupts. - */ - -int -altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, - char* buffer, int space, int flags) -{ - unsigned int base = sp->base; - - char * ptr = buffer; - char * end = buffer + space; - - while (ptr < end) - { - unsigned int data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); - - if (data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) - *ptr++ = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; - else if (ptr != buffer) - break; - else if(flags & O_NONBLOCK) - break; - - } - - if (ptr != buffer) - return ptr - buffer; - else if (flags & O_NONBLOCK) - return -EWOULDBLOCK; - else - return -EIO; -} - -#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ - -/* ----------------------------------------------------------- */ -/* ----------------------- FAST DRIVER ----------------------- */ -/* ----------------------------------------------------------- */ - -int -altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, - char * buffer, int space, int flags) -{ - char * ptr = buffer; - - alt_irq_context context; - unsigned int n; - - /* - * When running in a multi threaded environment, obtain the "read_lock" - * semaphore. This ensures that reading from the device is thread-safe. - */ - ALT_SEM_PEND (sp->read_lock, 0); - - while (space > 0) - { - unsigned int in, out; - - /* Read as much data as possible */ - do - { - in = sp->rx_in; - out = sp->rx_out; - - if (in >= out) - n = in - out; - else - n = ALTERA_AVALON_JTAG_UART_BUF_LEN - out; - - if (n == 0) - break; /* No more data available */ - - if (n > space) - n = space; - - memcpy(ptr, sp->rx_buf + out, n); - ptr += n; - space -= n; - - sp->rx_out = (out + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; - } - while (space > 0); - - /* If we read any data then return it */ - if (ptr != buffer) - break; - - /* If in non-blocking mode then return error */ - if (flags & O_NONBLOCK) - break; - -#ifdef __ucosii__ - /* OS Present: Pend on a flag if the OS is running, otherwise spin */ - if(OSRunning == OS_TRUE) { - /* - * When running in a multi-threaded mode, we pend on the read event - * flag set and timeout event flag set in the isr. This avoids wasting CPU - * cycles waiting in this thread, when we could be doing something more - * profitable elsewhere. - */ - ALT_FLAG_PEND (sp->events, - ALT_JTAG_UART_READ_RDY | ALT_JTAG_UART_TIMEOUT, - OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, - 0); - } - else { - /* Spin until more data arrives or until host disconnects */ - while (in == sp->rx_in && sp->host_inactive < sp->timeout) - ; - } -#else - /* No OS: Always spin */ - while (in == sp->rx_in && sp->host_inactive < sp->timeout) - ; -#endif /* __ucosii__ */ - - if (in == sp->rx_in) - break; - } - - /* - * Now that access to the circular buffer is complete, release the read - * semaphore so that other threads can access the buffer. - */ - - ALT_SEM_POST (sp->read_lock); - - if (ptr != buffer) - { - /* If we read any data then there is space in the buffer so enable interrupts */ - context = alt_irq_disable_all(); - sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; - IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); - alt_irq_enable_all(context); - } - - if (ptr != buffer) - return ptr - buffer; - else if (flags & O_NONBLOCK) - return -EWOULDBLOCK; - else - return -EIO; -} - -#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_jtag_uart_write.c b/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_jtag_uart_write.c deleted file mode 100644 index 9562562..0000000 --- a/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_jtag_uart_write.c +++ /dev/null @@ -1,217 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include -#include -#include -#include - -#include - -#include "sys/alt_irq.h" -#include "sys/alt_alarm.h" -#include "sys/ioctl.h" -#include "alt_types.h" - -#include "altera_avalon_jtag_uart_regs.h" -#include "altera_avalon_jtag_uart.h" - -#include "sys/alt_log_printf.h" - -#ifdef __ucosii__ -#include "includes.h" -#endif /* __ucosii__ */ - -#ifdef ALTERA_AVALON_JTAG_UART_SMALL - -/* ----------------------------------------------------------- */ -/* ------------------------ SMALL DRIVER --------------------- */ -/* ----------------------------------------------------------- */ - -/* Write routine. The small version blocks when there is no space to write - * into, so it's performance will be very bad if you are writing more than - * one FIFOs worth of data. But you said you didn't want to use interrupts :-) - */ - -int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, - const char * ptr, int count, int flags) -{ - unsigned int base = sp->base; - - const char * end = ptr + count; - - while (ptr < end) - if ((IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) != 0) - IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, *ptr++); - - return count; -} - -#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ - -/* ----------------------------------------------------------- */ -/* ------------------------- FAST DRIVER --------------------- */ -/* ----------------------------------------------------------- */ - -int -altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, - const char * ptr, int count, int flags) -{ - /* Remove warning at optimisation level 03 by seting out to 0 */ - unsigned int in, out=0; - unsigned int n; - alt_irq_context context; - - const char * start = ptr; - - /* - * When running in a multi threaded environment, obtain the "write_lock" - * semaphore. This ensures that writing to the device is thread-safe. - */ - ALT_SEM_PEND (sp->write_lock, 0); - - do - { - /* Copy as much as we can into the transmit buffer */ - while (count > 0) - { - /* We need a stable value of the out pointer to calculate the space available */ - in = sp->tx_in; - out = sp->tx_out; - - if (in < out) - n = out - 1 - in; - else if (out > 0) - n = ALTERA_AVALON_JTAG_UART_BUF_LEN - in; - else - n = ALTERA_AVALON_JTAG_UART_BUF_LEN - 1 - in; - - if (n == 0) - break; - - if (n > count) - n = count; - - memcpy(sp->tx_buf + in, ptr, n); - ptr += n; - count -= n; - - sp->tx_in = (in + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; - } - - /* - * If interrupts are disabled then we could transmit here, we only need - * to enable interrupts if there is no space left in the FIFO - * - * For now kick the interrupt routine every time to make it transmit - * the data - */ - context = alt_irq_disable_all(); - sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; - IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); - alt_irq_enable_all(context); - - /* - * If there is any data left then either return now or block until - * some has been sent - */ - /* consider: test whether there is anything there while doing this and delay for at most 2s. */ - if (count > 0) - { - if (flags & O_NONBLOCK) - break; - -#ifdef __ucosii__ - /* OS Present: Pend on a flag if the OS is running, otherwise spin */ - if(OSRunning == OS_TRUE) { - /* - * When running in a multi-threaded mode, we pend on the write event - * flag set or the timeout flag in the isr. This avoids wasting CPU - * cycles waiting in this thread, when we could be doing something - * more profitable elsewhere. - */ -#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR - if(!sp->host_inactive) -#endif - ALT_FLAG_PEND (sp->events, - ALT_JTAG_UART_WRITE_RDY | ALT_JTAG_UART_TIMEOUT, - OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, - 0); - } - else { - /* - * OS not running: Wait for data to be removed from buffer. - * Once the interrupt routine has removed some data then we - * will be able to insert some more. - */ - while (out == sp->tx_out && sp->host_inactive < sp->timeout) - ; - } -#else - /* - * No OS present: Always wait for data to be removed from buffer. Once - * the interrupt routine has removed some data then we will be able to - * insert some more. - */ - while (out == sp->tx_out && sp->host_inactive < sp->timeout) - ; -#endif /* __ucosii__ */ - - if (out == sp->tx_out) - break; - } - } - while (count > 0); - - /* - * Now that access to the circular buffer is complete, release the write - * semaphore so that other threads can access the buffer. - */ - ALT_SEM_POST (sp->write_lock); - - if (ptr != start) - return ptr - start; - else if (flags & O_NONBLOCK) - return -EWOULDBLOCK; -#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR - else if (sp->host_inactive >= sp->timeout) { - /* - * Reset the software FIFO, hardware FIFO could not be reset. - * Just throw away characters without reporting error. - */ - sp->tx_out = sp->tx_in = 0; - return ptr - start + count; - } -#endif - else - return -EIO; /* Host not connected */ -} - -#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_lcd_16207.c b/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_lcd_16207.c deleted file mode 100644 index 102e202..0000000 --- a/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_lcd_16207.c +++ /dev/null @@ -1,605 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* ===================================================================== */ - -/* - * This file provides the implementation of the functions used to drive a - * LCD panel. - * - * Characters written to the device will appear on the LCD panel as though - * it is a very small terminal. If the lines written to the terminal are - * longer than the number of characters on the terminal then it will scroll - * the lines of text automatically to display them all. - * - * If more lines are written than will fit on the terminal then it will scroll - * when characters are written to the line "below" the last displayed one - - * the cursor is allowed to sit below the visible area of the screen providing - * that this line is entirely blank. - * - * The following control sequences may be used to move around and do useful - * stuff: - * CR Moves back to the start of the current line - * LF Moves down a line and back to the start - * BS Moves back a character without erasing - * ESC Starts a VT100 style escape sequence - * - * The following escape sequences are recognised: - * ESC [ ; H Move to row and column specified (positions are - * counted from the top left which is 1;1) - * ESC [ K Clear from current position to end of line - * ESC [ 2 J Clear screen and go to top left - * - */ - -/* ===================================================================== */ - -#include -#include - -#include -#include -#include - -#include "sys/alt_alarm.h" - -#include "altera_avalon_lcd_16207_regs.h" -#include "altera_avalon_lcd_16207.h" - -/* --------------------------------------------------------------------- */ - -/* Commands which can be written to the COMMAND register */ - -enum /* Write to character RAM */ -{ - LCD_CMD_WRITE_DATA = 0x80 - /* Bits 6:0 hold character RAM address */ -}; - -enum /* Write to character generator RAM */ -{ - LCD_CMD_WRITE_CGR = 0x40 - /* Bits 5:0 hold character generator RAM address */ -}; - -enum /* Function Set command */ -{ - LCD_CMD_FUNCTION_SET = 0x20, - LCD_CMD_8BIT = 0x10, - LCD_CMD_TWO_LINE = 0x08, - LCD_CMD_BIGFONT = 0x04 -}; - -enum /* Shift command */ -{ - LCD_CMD_SHIFT = 0x10, - LCD_CMD_SHIFT_DISPLAY = 0x08, - LCD_CMD_SHIFT_RIGHT = 0x04 -}; - -enum /* On/Off command */ -{ - LCD_CMD_ONOFF = 0x08, - LCD_CMD_ENABLE_DISP = 0x04, - LCD_CMD_ENABLE_CURSOR = 0x02, - LCD_CMD_ENABLE_BLINK = 0x01 -}; - -enum /* Entry Mode command */ -{ - LCD_CMD_MODES = 0x04, - LCD_CMD_MODE_INC = 0x02, - LCD_CMD_MODE_SHIFT = 0x01 -}; - -enum /* Home command */ -{ - LCD_CMD_HOME = 0x02 -}; - -enum /* Clear command */ -{ - LCD_CMD_CLEAR = 0x01 -}; - -/* Where in LCD character space do the rows start */ -static char colstart[4] = { 0x00, 0x40, 0x20, 0x60 }; - -/* --------------------------------------------------------------------- */ - -static void lcd_write_command(altera_avalon_lcd_16207_state* sp, - unsigned char command) -{ - unsigned int base = sp->base; - - /* We impose a timeout on the driver in case the LCD panel isn't connected. - * The first time we call this function the timeout is approx 25ms - * (assuming 5 cycles per loop and a 200MHz clock). Obviously systems - * with slower clocks, or debug builds, or slower memory will take longer. - */ - int i = 1000000; - - /* Don't bother if the LCD panel didn't work before */ - if (sp->broken) - return; - - /* Wait until LCD isn't busy. */ - while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) - if (--i == 0) - { - sp->broken = 1; - return; - } - - /* Despite what it says in the datasheet, the LCD isn't ready to accept - * a write immediately after it returns BUSY=0. Wait for 100us more. - */ - usleep(100); - - IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, command); -} - -/* --------------------------------------------------------------------- */ - -static void lcd_write_data(altera_avalon_lcd_16207_state* sp, - unsigned char data) -{ - unsigned int base = sp->base; - - /* We impose a timeout on the driver in case the LCD panel isn't connected. - * The first time we call this function the timeout is approx 25ms - * (assuming 5 cycles per loop and a 200MHz clock). Obviously systems - * with slower clocks, or debug builds, or slower memory will take longer. - */ - int i = 1000000; - - /* Don't bother if the LCD panel didn't work before */ - if (sp->broken) - return; - - /* Wait until LCD isn't busy. */ - while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) - if (--i == 0) - { - sp->broken = 1; - return; - } - - /* Despite what it says in the datasheet, the LCD isn't ready to accept - * a write immediately after it returns BUSY=0. Wait for 100us more. - */ - usleep(100); - - IOWR_ALTERA_AVALON_LCD_16207_DATA(base, data); - - sp->address++; -} - -/* --------------------------------------------------------------------- */ - -static void lcd_clear_screen(altera_avalon_lcd_16207_state* sp) -{ - int y; - - lcd_write_command(sp, LCD_CMD_CLEAR); - - sp->x = 0; - sp->y = 0; - sp->address = 0; - - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - { - memset(sp->line[y].data, ' ', sizeof(sp->line[0].data)); - memset(sp->line[y].visible, ' ', sizeof(sp->line[0].visible)); - sp->line[y].width = 0; - } -} - -/* --------------------------------------------------------------------- */ - -static void lcd_repaint_screen(altera_avalon_lcd_16207_state* sp) -{ - int y, x; - - /* scrollpos controls how much the lines have scrolled round. The speed - * each line scrolls at is controlled by its speed variable - while - * scrolline lines will wrap at the position set by width - */ - - int scrollpos = sp->scrollpos; - - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - { - int width = sp->line[y].width; - int offset = (scrollpos * sp->line[y].speed) >> 8; - if (offset >= width) - offset = 0; - - for (x = 0 ; x < ALT_LCD_WIDTH ; x++) - { - char c = sp->line[y].data[(x + offset) % width]; - - /* Writing data takes 40us, so don't do it unless required */ - if (sp->line[y].visible[x] != c) - { - unsigned char address = x + colstart[y]; - - if (address != sp->address) - { - lcd_write_command(sp, LCD_CMD_WRITE_DATA | address); - sp->address = address; - } - - lcd_write_data(sp, c); - sp->line[y].visible[x] = c; - } - } - } -} - -/* --------------------------------------------------------------------- */ - -static void lcd_scroll_up(altera_avalon_lcd_16207_state* sp) -{ - int y; - - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - { - if (y < ALT_LCD_HEIGHT-1) - memcpy(sp->line[y].data, sp->line[y+1].data, ALT_LCD_VIRTUAL_WIDTH); - else - memset(sp->line[y].data, ' ', ALT_LCD_VIRTUAL_WIDTH); - } - - sp->y--; -} - -/* --------------------------------------------------------------------- */ - -static void lcd_handle_escape(altera_avalon_lcd_16207_state* sp, char c) -{ - int parm1 = 0, parm2 = 0; - - if (sp->escape[0] == '[') - { - char * ptr = sp->escape+1; - while (isdigit(*ptr)) - parm1 = (parm1 * 10) + (*ptr++ - '0'); - - if (*ptr == ';') - { - ptr++; - while (isdigit(*ptr)) - parm2 = (parm2 * 10) + (*ptr++ - '0'); - } - } - else - parm1 = -1; - - switch (c) - { - case 'H': /* ESC '[' ';' 'H' : Move cursor to location */ - case 'f': /* Same as above */ - if (parm2 > 0) - sp->x = parm2 - 1; - if (parm1 > 0) - { - sp->y = parm1 - 1; - if (sp->y > ALT_LCD_HEIGHT * 2) - sp->y = ALT_LCD_HEIGHT * 2; - while (sp->y > ALT_LCD_HEIGHT) - lcd_scroll_up(sp); - } - break; - - case 'J': - /* ESC J is clear to beginning of line [unimplemented] - * ESC [ 0 J is clear to bottom of screen [unimplemented] - * ESC [ 1 J is clear to beginning of screen [unimplemented] - * ESC [ 2 J is clear screen - */ - if (parm1 == 2) - lcd_clear_screen(sp); - break; - - case 'K': - /* ESC K is clear to end of line - * ESC [ 0 K is clear to end of line - * ESC [ 1 K is clear to beginning of line [unimplemented] - * ESC [ 2 K is clear line [unimplemented] - */ - if (parm1 < 1) - { - if (sp->x < ALT_LCD_VIRTUAL_WIDTH) - memset(sp->line[sp->y].data + sp->x, ' ', ALT_LCD_VIRTUAL_WIDTH - sp->x); - } - break; - } -} - -/* --------------------------------------------------------------------- */ - -int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp, - const char* ptr, int len, int flags) -{ - const char* end = ptr + len; - - int y; - int widthmax; - - /* When running in a multi threaded environment, obtain the "write_lock" - * semaphore. This ensures that writing to the device is thread-safe. - */ - - ALT_SEM_PEND (sp->write_lock, 0); - - /* Tell the routine which is called off the timer interrupt that the - * foreground routines are active so it must not repaint the display. */ - sp->active = 1; - - for ( ; ptr < end ; ptr++) - { - char c = *ptr; - - if (sp->esccount >= 0) - { - unsigned int esccount = sp->esccount; - - /* Single character escape sequences can end with any character - * Multi character escape sequences start with '[' and contain - * digits and semicolons before terminating - */ - if ((esccount == 0 && c != '[') || - (esccount > 0 && !isdigit(c) && c != ';')) - { - sp->escape[esccount] = 0; - - lcd_handle_escape(sp, c); - - sp->esccount = -1; - } - else if (sp->esccount < sizeof(sp->escape)-1) - { - sp->escape[esccount] = c; - sp->esccount++; - } - } - else if (c == 27) /* ESC */ - { - sp->esccount = 0; - } - else if (c == '\r') - { - sp->x = 0; - } - else if (c == '\n') - { - sp->x = 0; - sp->y++; - - /* Let the cursor sit at X=0, Y=HEIGHT without scrolling so the user - * can print two lines of data without losing one. - */ - if (sp->y > ALT_LCD_HEIGHT) - lcd_scroll_up(sp); - } - else if (c == '\b') - { - if (sp->x > 0) - sp->x--; - } - else if (isprint(c)) - { - /* If we didn't scroll on the last linefeed then we might need to do - * it now. */ - if (sp->y >= ALT_LCD_HEIGHT) - lcd_scroll_up(sp); - - if (sp->x < ALT_LCD_VIRTUAL_WIDTH) - sp->line[sp->y].data[sp->x] = c; - - sp->x++; - } - } - - /* Recalculate the scrolling parameters */ - widthmax = ALT_LCD_WIDTH; - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - { - int width; - for (width = ALT_LCD_VIRTUAL_WIDTH ; width > 0 ; width--) - if (sp->line[y].data[width-1] != ' ') - break; - - /* The minimum width is the size of the LCD panel. If the real width - * is long enough to require scrolling then add an extra space so the - * end of the message doesn't run into the beginning of it. - */ - if (width <= ALT_LCD_WIDTH) - width = ALT_LCD_WIDTH; - else - width++; - - sp->line[y].width = width; - if (widthmax < width) - widthmax = width; - sp->line[y].speed = 0; /* By default lines don't scroll */ - } - - if (widthmax <= ALT_LCD_WIDTH) - sp->scrollmax = 0; - else - { - widthmax *= 2; - sp->scrollmax = widthmax; - - /* Now calculate how fast each of the other lines should go */ - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - if (sp->line[y].width > ALT_LCD_WIDTH) - { - /* You have three options for how to make the display scroll, chosen - * using the preprocessor directives below - */ -#if 1 - /* This option makes all the lines scroll round at different speeds - * which are chosen so that all the scrolls finish at the same time. - */ - sp->line[y].speed = 256 * sp->line[y].width / widthmax; -#elif 1 - /* This option pads the shorter lines with spaces so that they all - * scroll together. - */ - sp->line[y].width = widthmax / 2; - sp->line[y].speed = 256/2; -#else - /* This option makes the shorter lines stop after they have rotated - * and waits for the longer lines to catch up - */ - sp->line[y].speed = 256/2; -#endif - } - } - - /* Repaint once, then check whether there has been a missed repaint - * (because active was set when the timer interrupt occurred). If there - * has been a missed repaint then paint again. And again. etc. - */ - for ( ; ; ) - { - int old_scrollpos = sp->scrollpos; - - lcd_repaint_screen(sp); - - /* Let the timer routines repaint the display again */ - sp->active = 0; - - /* Have the timer routines tried to scroll while we were painting? - * If not then we can exit */ - if (sp->scrollpos == old_scrollpos) - break; - - /* We need to repaint again since the display scrolled while we were - * painting last time */ - sp->active = 1; - } - - /* Now that access to the display is complete, release the write - * semaphore so that other threads can access the buffer. - */ - - ALT_SEM_POST (sp->write_lock); - - return len; -} - -/* --------------------------------------------------------------------- */ - -/* This should be in a top level header file really */ -#define container_of(ptr, type, member) ((type *)((char *)ptr - offsetof(type, member))) - -/* - * Timeout routine is called every second - */ - -static alt_u32 alt_lcd_16207_timeout(void* context) -{ - altera_avalon_lcd_16207_state* sp = (altera_avalon_lcd_16207_state*)context; - - /* Update the scrolling position */ - if (sp->scrollpos + 1 >= sp->scrollmax) - sp->scrollpos = 0; - else - sp->scrollpos = sp->scrollpos + 1; - - /* Repaint the panel unless the foreground will do it again soon */ - if (sp->scrollmax > 0 && !sp->active) - lcd_repaint_screen(sp); - - return sp->period; -} - -/* --------------------------------------------------------------------- */ - -/* - * Called at boot time to initialise the LCD driver - */ -void altera_avalon_lcd_16207_init(altera_avalon_lcd_16207_state* sp) -{ - unsigned int base = sp->base; - - /* Mark the device as functional */ - sp->broken = 0; - - ALT_SEM_CREATE (&sp->write_lock, 1); - - /* The initialisation sequence below is copied from the datasheet for - * the 16207 LCD display. The first commands need to be timed because - * the BUSY bit in the status register doesn't work until the display - * has been reset three times. - */ - - /* Wait for 15 ms then reset */ - usleep(15000); - IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); - - /* Wait for another 4.1ms and reset again */ - usleep(4100); - IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); - - /* Wait a further 1 ms and reset a third time */ - usleep(1000); - IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); - - /* Setup interface parameters: 8 bit bus, 2 rows, 5x7 font */ - lcd_write_command(sp, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT | LCD_CMD_TWO_LINE); - - /* Turn display off */ - lcd_write_command(sp, LCD_CMD_ONOFF); - - /* Clear display */ - lcd_clear_screen(sp); - - /* Set mode: increment after writing, don't shift display */ - lcd_write_command(sp, LCD_CMD_MODES | LCD_CMD_MODE_INC); - - /* Turn display on */ - lcd_write_command(sp, LCD_CMD_ONOFF | LCD_CMD_ENABLE_DISP); - - sp->esccount = -1; - memset(sp->escape, 0, sizeof(sp->escape)); - - sp->scrollpos = 0; - sp->scrollmax = 0; - sp->active = 0; - - sp->period = alt_ticks_per_second() / 10; /* Call every 100ms */ - - alt_alarm_start(&sp->alarm, sp->period, &alt_lcd_16207_timeout, sp); -} diff --git a/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_lcd_16207_fd.c b/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_lcd_16207_fd.c deleted file mode 100644 index 08c9371..0000000 --- a/software/DE2_115_ASM_bsp/drivers/src/altera_avalon_lcd_16207_fd.c +++ /dev/null @@ -1,45 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "alt_types.h" -#include "sys/alt_dev.h" -#include "altera_avalon_lcd_16207.h" - -extern int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp, - const char* ptr, int count, int flags); - -int -altera_avalon_lcd_16207_write_fd(alt_fd* fd, const char* buffer, int space) -{ - altera_avalon_lcd_16207_dev* dev = (altera_avalon_lcd_16207_dev*) fd->dev; - - return altera_avalon_lcd_16207_write(&dev->state, buffer, space, - fd->fd_flags); -} diff --git a/software/DE2_115_ASM_bsp/libhal_bsp.a b/software/DE2_115_ASM_bsp/libhal_bsp.a deleted file mode 100644 index 430ad5f..0000000 --- a/software/DE2_115_ASM_bsp/libhal_bsp.a +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/linker.h b/software/DE2_115_ASM_bsp/linker.h deleted file mode 100644 index 3dcbf16..0000000 --- a/software/DE2_115_ASM_bsp/linker.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - * linker.h - Linker script mapping information - * - * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' - * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo - * - * Generated: Thu Dec 22 10:08:01 JST 2016 - */ - -/* - * DO NOT MODIFY THIS FILE - * - * Changing this file will have subtle consequences - * which will almost certainly lead to a nonfunctioning - * system. If you do modify this file, be aware that your - * changes will be overwritten and lost when this file - * is generated again. - * - * DO NOT MODIFY THIS FILE - */ - -/* - * License Agreement - * - * Copyright (c) 2008 - * Altera Corporation, San Jose, California, USA. - * All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * This agreement shall be governed in all respects by the laws of the State - * of California and by the laws of the United States of America. - */ - -#ifndef __LINKER_H_ -#define __LINKER_H_ - - -/* - * BSP controls alt_load() behavior in crt0. - * - */ - -#define ALT_LOAD_EXPLICITLY_CONTROLLED - - -/* - * Base address and span (size in bytes) of each linker region - * - */ - -#define ONCHIP_MEMORY_REGION_BASE 0x20 -#define ONCHIP_MEMORY_REGION_SPAN 204768 -#define RESET_REGION_BASE 0x0 -#define RESET_REGION_SPAN 32 - - -/* - * Devices associated with code sections - * - */ - -#define ALT_EXCEPTIONS_DEVICE ONCHIP_MEMORY -#define ALT_RESET_DEVICE ONCHIP_MEMORY -#define ALT_RODATA_DEVICE ONCHIP_MEMORY -#define ALT_RWDATA_DEVICE ONCHIP_MEMORY -#define ALT_TEXT_DEVICE ONCHIP_MEMORY - - -/* - * Initialization code at the reset address is allowed (e.g. no external bootloader). - * - */ - -#define ALT_ALLOW_CODE_AT_RESET - - -/* - * The alt_load() facility is called from crt0 to copy sections into RAM. - * - */ - -#define ALT_LOAD_COPY_RWDATA - -#endif /* __LINKER_H_ */ diff --git a/software/DE2_115_ASM_bsp/linker.x b/software/DE2_115_ASM_bsp/linker.x deleted file mode 100644 index 0d9509a..0000000 --- a/software/DE2_115_ASM_bsp/linker.x +++ /dev/null @@ -1,385 +0,0 @@ -/* - * linker.x - Linker script - * - * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' - * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo - * - * Generated: Thu Dec 22 10:08:01 JST 2016 - */ - -/* - * DO NOT MODIFY THIS FILE - * - * Changing this file will have subtle consequences - * which will almost certainly lead to a nonfunctioning - * system. If you do modify this file, be aware that your - * changes will be overwritten and lost when this file - * is generated again. - * - * DO NOT MODIFY THIS FILE - */ - -/* - * License Agreement - * - * Copyright (c) 2008 - * Altera Corporation, San Jose, California, USA. - * All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * This agreement shall be governed in all respects by the laws of the State - * of California and by the laws of the United States of America. - */ - -MEMORY -{ - reset : ORIGIN = 0x0, LENGTH = 32 - onchip_memory : ORIGIN = 0x20, LENGTH = 204768 -} - -/* Define symbols for each memory base-address */ -__alt_mem_onchip_memory = 0x0; - -OUTPUT_FORMAT( "elf32-littlenios2", - "elf32-littlenios2", - "elf32-littlenios2" ) -OUTPUT_ARCH( nios2 ) -ENTRY( _start ) - -/* - * The alt_load() facility is enabled. This typically happens when there isn't - * an external bootloader (e.g. flash bootloader). - * The LMA (aka physical address) of each loaded section is - * set to the .text memory device. - * The HAL alt_load() routine called from crt0 copies sections from - * the .text memory to RAM as needed. - */ - -SECTIONS -{ - - /* - * Output sections associated with reset and exceptions (they have to be first) - */ - - .entry : - { - KEEP (*(.entry)) - } > reset - - .exceptions : - { - PROVIDE (__ram_exceptions_start = ABSOLUTE(.)); - . = ALIGN(0x20); - KEEP (*(.irq)); - KEEP (*(.exceptions.entry.label)); - KEEP (*(.exceptions.entry.user)); - KEEP (*(.exceptions.entry)); - KEEP (*(.exceptions.irqtest.user)); - KEEP (*(.exceptions.irqtest)); - KEEP (*(.exceptions.irqhandler.user)); - KEEP (*(.exceptions.irqhandler)); - KEEP (*(.exceptions.irqreturn.user)); - KEEP (*(.exceptions.irqreturn)); - KEEP (*(.exceptions.notirq.label)); - KEEP (*(.exceptions.notirq.user)); - KEEP (*(.exceptions.notirq)); - KEEP (*(.exceptions.soft.user)); - KEEP (*(.exceptions.soft)); - KEEP (*(.exceptions.unknown.user)); - KEEP (*(.exceptions.unknown)); - KEEP (*(.exceptions.exit.label)); - KEEP (*(.exceptions.exit.user)); - KEEP (*(.exceptions.exit)); - KEEP (*(.exceptions)); - PROVIDE (__ram_exceptions_end = ABSOLUTE(.)); - } > onchip_memory - - PROVIDE (__flash_exceptions_start = LOADADDR(.exceptions)); - - .text : - { - /* - * All code sections are merged into the text output section, along with - * the read only data sections. - * - */ - - PROVIDE (stext = ABSOLUTE(.)); - - *(.interp) - *(.hash) - *(.dynsym) - *(.dynstr) - *(.gnu.version) - *(.gnu.version_d) - *(.gnu.version_r) - *(.rel.init) - *(.rela.init) - *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) - *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) - *(.rel.fini) - *(.rela.fini) - *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) - *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) - *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) - *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) - *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) - *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) - *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) - *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) - *(.rel.ctors) - *(.rela.ctors) - *(.rel.dtors) - *(.rela.dtors) - *(.rel.got) - *(.rela.got) - *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) - *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) - *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) - *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) - *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) - *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) - *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) - *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) - *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) - *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) - *(.rel.plt) - *(.rela.plt) - *(.rel.dyn) - - KEEP (*(.init)) - *(.plt) - *(.text .stub .text.* .gnu.linkonce.t.*) - - /* .gnu.warning sections are handled specially by elf32.em. */ - - *(.gnu.warning.*) - KEEP (*(.fini)) - PROVIDE (__etext = ABSOLUTE(.)); - PROVIDE (_etext = ABSOLUTE(.)); - PROVIDE (etext = ABSOLUTE(.)); - - *(.eh_frame_hdr) - /* Ensure the __preinit_array_start label is properly aligned. We - could instead move the label definition inside the section, but - the linker would then create the section even if it turns out to - be empty, which isn't pretty. */ - . = ALIGN(4); - PROVIDE (__preinit_array_start = ABSOLUTE(.)); - *(.preinit_array) - PROVIDE (__preinit_array_end = ABSOLUTE(.)); - PROVIDE (__init_array_start = ABSOLUTE(.)); - *(.init_array) - PROVIDE (__init_array_end = ABSOLUTE(.)); - PROVIDE (__fini_array_start = ABSOLUTE(.)); - *(.fini_array) - PROVIDE (__fini_array_end = ABSOLUTE(.)); - SORT(CONSTRUCTORS) - KEEP (*(.eh_frame)) - *(.gcc_except_table) - *(.dynamic) - PROVIDE (__CTOR_LIST__ = ABSOLUTE(.)); - KEEP (*(.ctors)) - KEEP (*(SORT(.ctors.*))) - PROVIDE (__CTOR_END__ = ABSOLUTE(.)); - PROVIDE (__DTOR_LIST__ = ABSOLUTE(.)); - KEEP (*(.dtors)) - KEEP (*(SORT(.dtors.*))) - PROVIDE (__DTOR_END__ = ABSOLUTE(.)); - KEEP (*(.jcr)) - . = ALIGN(4); - } > onchip_memory = 0x3a880100 /* Nios II NOP instruction */ - - .rodata : - { - PROVIDE (__ram_rodata_start = ABSOLUTE(.)); - . = ALIGN(4); - *(.rodata .rodata.* .gnu.linkonce.r.*) - *(.rodata1) - . = ALIGN(4); - PROVIDE (__ram_rodata_end = ABSOLUTE(.)); - } > onchip_memory - - PROVIDE (__flash_rodata_start = LOADADDR(.rodata)); - - /* - * - * This section's LMA is set to the .text region. - * crt0 will copy to this section's specified mapped region virtual memory address (VMA) - * - * .rwdata region equals the .text region, and is set to be loaded into .text region. - * This requires two copies of .rwdata in the .text region. One read writable at VMA. - * and one read-only at LMA. crt0 will copy from LMA to VMA on reset - * - */ - - .rwdata LOADADDR (.rodata) + SIZEOF (.rodata) : AT ( LOADADDR (.rodata) + SIZEOF (.rodata)+ SIZEOF (.rwdata) ) - { - PROVIDE (__ram_rwdata_start = ABSOLUTE(.)); - . = ALIGN(4); - *(.got.plt) *(.got) - *(.data1) - *(.data .data.* .gnu.linkonce.d.*) - - _gp = ABSOLUTE(. + 0x8000); - PROVIDE(gp = _gp); - - *(.rwdata .rwdata.*) - *(.sdata .sdata.* .gnu.linkonce.s.*) - *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) - - . = ALIGN(4); - _edata = ABSOLUTE(.); - PROVIDE (edata = ABSOLUTE(.)); - PROVIDE (__ram_rwdata_end = ABSOLUTE(.)); - } > onchip_memory - - PROVIDE (__flash_rwdata_start = LOADADDR(.rwdata)); - - /* - * - * This section's LMA is set to the .text region. - * crt0 will copy to this section's specified mapped region virtual memory address (VMA) - * - */ - - .bss LOADADDR (.rwdata) + SIZEOF (.rwdata) : AT ( LOADADDR (.rwdata) + SIZEOF (.rwdata) ) - { - __bss_start = ABSOLUTE(.); - PROVIDE (__sbss_start = ABSOLUTE(.)); - PROVIDE (___sbss_start = ABSOLUTE(.)); - - *(.dynsbss) - *(.sbss .sbss.* .gnu.linkonce.sb.*) - *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) - *(.scommon) - - PROVIDE (__sbss_end = ABSOLUTE(.)); - PROVIDE (___sbss_end = ABSOLUTE(.)); - - *(.dynbss) - *(.bss .bss.* .gnu.linkonce.b.*) - *(COMMON) - - . = ALIGN(4); - __bss_end = ABSOLUTE(.); - } > onchip_memory - - /* - * - * One output section mapped to the associated memory device for each of - * the available memory devices. These are not used by default, but can - * be used by user applications by using the .section directive. - * - * The output section used for the heap is treated in a special way, - * i.e. the symbols "end" and "_end" are added to point to the heap start. - * - * Because alt_load() is enabled, these sections have - * their LMA set to be loaded into the .text memory region. - * However, the alt_load() code will NOT automatically copy - * these sections into their mapped memory region. - * - */ - - /* - * - * This section's LMA is set to the .text region. - * crt0 will copy to this section's specified mapped region virtual memory address (VMA) - * - */ - - .onchip_memory LOADADDR (.bss) + SIZEOF (.bss) : AT ( LOADADDR (.bss) + SIZEOF (.bss) ) - { - PROVIDE (_alt_partition_onchip_memory_start = ABSOLUTE(.)); - *(.onchip_memory. onchip_memory.*) - . = ALIGN(4); - PROVIDE (_alt_partition_onchip_memory_end = ABSOLUTE(.)); - _end = ABSOLUTE(.); - end = ABSOLUTE(.); - __alt_stack_base = ABSOLUTE(.); - } > onchip_memory - - PROVIDE (_alt_partition_onchip_memory_load_addr = LOADADDR(.onchip_memory)); - - /* - * Stabs debugging sections. - * - */ - - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - /* DWARF debug sections. - Symbols in the DWARF debugging sections are relative to the beginning - of the section so we begin them at 0. */ - /* DWARF 1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - /* GNU DWARF 1 extensions */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - /* DWARF 1.1 and DWARF 2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - /* DWARF 2 */ - .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - /* SGI/MIPS DWARF 2 extensions */ - .debug_weaknames 0 : { *(.debug_weaknames) } - .debug_funcnames 0 : { *(.debug_funcnames) } - .debug_typenames 0 : { *(.debug_typenames) } - .debug_varnames 0 : { *(.debug_varnames) } - - /* Altera debug extensions */ - .debug_alt_sim_info 0 : { *(.debug_alt_sim_info) } -} - -/* provide a pointer for the stack */ - -/* - * Don't override this, override the __alt_stack_* symbols instead. - */ -__alt_data_end = 0x32000; - -/* - * The next two symbols define the location of the default stack. You can - * override them to move the stack to a different memory. - */ -PROVIDE( __alt_stack_pointer = __alt_data_end ); -PROVIDE( __alt_stack_limit = __alt_stack_base ); - -/* - * This symbol controls where the start of the heap is. If the stack is - * contiguous with the heap then the stack will contract as memory is - * allocated to the heap. - * Override this symbol to put the heap in a different memory. - */ -PROVIDE( __alt_heap_start = end ); -PROVIDE( __alt_heap_limit = 0x32000 ); diff --git a/software/DE2_115_ASM_bsp/mem_init.mk b/software/DE2_115_ASM_bsp/mem_init.mk deleted file mode 100644 index 4bdd7f1..0000000 --- a/software/DE2_115_ASM_bsp/mem_init.mk +++ /dev/null @@ -1,322 +0,0 @@ - -######################################################################### -####### M E M I N I T M A K E F I L E C O N T E N T ###### -######################################################################### - -######################################################################### -# This file is intended to be included by public.mk -# -# -# The following variables must be defined before including this file: -# - ELF -# -# The following variables may be defined to override the default behavior: -# - HDL_SIM_DIR -# - HDL_SIM_INSTALL_DIR -# - MEM_INIT_DIR -# - MEM_INIT_INSTALL_DIR -# - QUARTUS_PROJECT_DIR -# - SOPC_NAME -# - SIM_OPTIMIZE -# - RESET_ADDRESS -# -######################################################################### - -ifeq ($(MEM_INIT_FILE),) -# MEM_INIT_FILE should be set equal to the working relative path to this -# mem_init.mk makefile fragment -MEM_INIT_FILE := $(wildcard $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) -endif - -ifeq ($(ELF2DAT),) -ELF2DAT := elf2dat -endif - -ifeq ($(ELF2HEX),) -ELF2HEX := elf2hex -endif - -ifeq ($(ELF2FLASH),) -ELF2FLASH := elf2flash -endif - -ifeq ($(FLASH2DAT),) -FLASH2DAT := flash2dat -endif - -ifeq ($(NM),) -NM := nios2-elf-nm -endif - -ifeq ($(MKDIR),) -MKDIR := mkdir -p -endif - -ifeq ($(RM),) -RM := rm -f -endif - -ifeq ($(CP),) -CP := cp -endif - -ifeq ($(ECHO),) -ECHO := echo -endif - -MEM_INIT_DIR ?= mem_init -HDL_SIM_DIR ?= $(MEM_INIT_DIR)/hdl_sim - -ifdef QUARTUS_PROJECT_DIR -MEM_INIT_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR)) -ifdef SOPC_NAME -HDL_SIM_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR))/$(SOPC_NAME)_sim -endif -endif - -MEM_INIT_DESCRIPTOR_FILE ?= $(MEM_INIT_DIR)/meminit.spd - -MEM_INIT_QIP_FILE ?= $(MEM_INIT_DIR)/meminit.qip - -#------------------------------------- -# Default Flash Boot Loaders -#------------------------------------- - -BOOT_LOADER_PATH ?= $(SOPC_KIT_NIOS2)/components/altera_nios2 -BOOT_LOADER_CFI ?= $(BOOT_LOADER_PATH)/boot_loader_cfi.srec -BOOT_LOADER_CFI_BE ?= $(BOOT_LOADER_PATH)/boot_loader_cfi_be.srec - - -#------------------------------------- -# Default Target -#------------------------------------- - -.PHONY: default_mem_init -ifeq ($(QSYS),1) -default_mem_init: mem_init_generate -else -default_mem_init: mem_init_install -endif -#------------------------------------- -# Runtime Macros -#------------------------------------- - -define post-process-info - @echo Post-processing to create $@... -endef - -target_stem = $(notdir $(basename $@)) - -mem_start_address = $($(target_stem)_START) -mem_end_address = $($(target_stem)_END) -mem_width = $($(target_stem)_WIDTH) -mem_endianness = $($(target_stem)_ENDIANNESS) -mem_create_lanes = $($(target_stem)_CREATE_LANES) - -mem_pad_flag = $($(target_stem)_PAD_FLAG) -mem_reloc_input_flag = $($(target_stem)_RELOC_INPUT_FLAG) -mem_no_zero_fill_flag = $($(target_stem)_NO_ZERO_FILL_FLAG) - -flash_mem_epcs_flag = $($(target_stem)_EPCS_FLAGS) -flash_mem_cfi_flag = $($(target_stem)_CFI_FLAGS) -flash_mem_boot_loader_flag = $($(target_stem)_BOOT_LOADER_FLAG) - -elf2dat_extra_args = $(mem_pad_flag) -elf2hex_extra_args = $(mem_no_zero_fill_flag) -elf2flash_extra_args = $(flash_mem_cfi_flag) $(flash_mem_epcs_flag) $(flash_mem_boot_loader_flag) -flash2dat_extra_args = $(mem_pad_flag) $(mem_reloc_input_flag) - -#------------------------------------------------------------------------------ -# BSP SPECIFIC CONTENT -# -# The content below is controlled by the BSP and SOPC System -#------------------------------------------------------------------------------ -#START OF BSP SPECIFIC - -#------------------------------------- -# Global Settings -#------------------------------------- - - -# The following TYPE comment allows tools to identify the 'type' of target this -# makefile is associated with. -# TYPE: BSP_MEMINIT_MAKEFILE - -# This following VERSION comment indicates the version of the tool used to -# generate this makefile. A makefile variable is provided for VERSION as well. -# ACDS_VERSION: 13.0sp1 -ACDS_VERSION := 13.0sp1 - -# This following BUILD_NUMBER comment indicates the build number of the tool -# used to generate this makefile. -# BUILD_NUMBER: 232 - -# Optimize for simulation -SIM_OPTIMIZE ?= 0 - -# The CPU reset address as needed by elf2flash -RESET_ADDRESS ?= 0x00000000 - -#------------------------------------- -# Pre-Initialized Memory Descriptions -#------------------------------------- - -# Memory: onchip_memory -MEM_0 := nios_system_onchip_memory -$(MEM_0)_NAME := onchip_memory -$(MEM_0)_MEM_INIT_FILE_PARAM_NAME := INIT_FILE -HEX_FILES += $(MEM_INIT_DIR)/$(MEM_0).hex -MEM_INIT_INSTALL_FILES += $(MEM_INIT_INSTALL_DIR)/$(MEM_0).hex -DAT_FILES += $(HDL_SIM_DIR)/$(MEM_0).dat -HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).dat -SYM_FILES += $(HDL_SIM_DIR)/$(MEM_0).sym -HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).sym -$(MEM_0)_START := 0x00000000 -$(MEM_0)_END := 0x00031fff -$(MEM_0)_HIERARCHICAL_PATH := onchip_memory -$(MEM_0)_WIDTH := 32 -$(MEM_0)_ENDIANNESS := --little-endian-mem -$(MEM_0)_CREATE_LANES := 0 - -.PHONY: onchip_memory -onchip_memory: check_elf_exists $(MEM_INIT_DIR)/$(MEM_0).hex $(HDL_SIM_DIR)/$(MEM_0).dat $(HDL_SIM_DIR)/$(MEM_0).sym - - -#END OF BSP SPECIFIC - -#------------------------------------- -# Pre-Initialized Memory Targets -#------------------------------------- - -.PHONY: mem_init_install mem_init_generate mem_init_clean - -ifeq ($(QSYS),1) -# Target mem_init_install is deprecated for QSys based systems -# To initialize onchip memories for Quartus II Synthesis with Qsys based systems: -# 1) Use "make mem_init_genearate" -# 2) Add the generated mem_init/meminit.qip file to your Quartus II Project -# -mem_init_install: - $(error Deprecated Makefile Target: '$@'. Use target 'mem_init_generate' and then add $(MEM_INIT_QIP_FILE) to your Quartus II Project) - -else # QSYS != 1, if SopcBuilder based system - -ifneq ($(MEM_INIT_INSTALL_DIR),) -mem_init_install: $(MEM_INIT_INSTALL_FILES) -endif - -ifneq ($(HDL_SIM_INSTALL_DIR),) -mem_init_install: $(HDL_SIM_INSTALL_FILES) -endif - -mem_init_install: mem_init_generate -ifeq ($(MEM_INIT_INSTALL_DIR),) - @echo "WARNING: MEM_INIT_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR environment variable." -endif -ifeq ($(HDL_SIM_INSTALL_DIR),) - @echo "WARNING: HDL_SIM_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR and SOPC_NAME environment variable." -endif - -$(MEM_INIT_INSTALL_FILES): $(MEM_INIT_INSTALL_DIR)/%: $(MEM_INIT_DIR)/% - @$(MKDIR) $(@D) - @$(CP) -v $< $@ - -$(HDL_SIM_INSTALL_FILES): $(HDL_SIM_INSTALL_DIR)/%: $(HDL_SIM_DIR)/% - @$(MKDIR) $(@D) - @$(CP) -v $< $@ - -endif # QSYS == 1 - - -mem_init_generate: hex dat sym flash $(MEM_INIT_DESCRIPTOR_FILE) $(MEM_INIT_QIP_FILE) - -mem_init_clean: - @$(RM) -r $(MEM_INIT_DIR) $(HDL_SIM_DIR) $(FLASH_FILES) - -.PHONY: hex dat sym flash - -hex: check_elf_exists $(HEX_FILES) - -dat: check_elf_exists $(DAT_FILES) - -sym: check_elf_exists $(SYM_FILES) - -flash: check_elf_exists $(FLASH_FILES) - -#------------------------------------- -# Pre-Initialized Memory Rules -#------------------------------------- - -.PHONY: check_elf_exists -check_elf_exists: $(ELF) -ifeq ($(ELF),) - $(error ELF var not set in mem_init.mk) -endif - -$(filter-out $(FLASH_DAT_FILES),$(DAT_FILES)): %.dat: $(ELF) - $(post-process-info) - @$(MKDIR) $(@D) - bash -c '$(ELF2DAT) --infile=$< --outfile=$@ \ - --base=$(mem_start_address) --end=$(mem_end_address) --width=$(mem_width) \ - $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2dat_extra_args)' - -$(foreach i,0 1 2 3 4 5 6 7,%_lane$(i).dat): %.dat - @true - -$(HEX_FILES): %.hex: $(ELF) - $(post-process-info) - @$(MKDIR) $(@D) - bash -c '$(ELF2HEX) $< $(mem_start_address) $(mem_end_address) --width=$(mem_width) \ - $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2hex_extra_args) $@' - -$(SYM_FILES): %.sym: $(ELF) - $(post-process-info) - @$(MKDIR) $(@D) - $(NM) -n $< > $@ - -$(FLASH_FILES): %.flash: $(ELF) - $(post-process-info) - @$(MKDIR) $(@D) - bash -c '$(ELF2FLASH) --input=$< --outfile=$@ --sim_optimize=$(SIM_OPTIMIZE) $(mem_endianness) \ - $(elf2flash_extra_args)' - -# -# Function generate_spd_entry -# Arg1: path to the memory initialization file -# Arg2: Type HEX or DAT -# Arg3: Output spd file to append -gen_spd_entry.BASE_FILE = $(basename $(notdir $1)) -gen_spd_entry.PARAM_NAME = $($(gen_spd_entry.BASE_FILE)_MEM_INIT_FILE_PARAM_NAME) -gen_spd_entry.MEM_PATH = $($(gen_spd_entry.BASE_FILE)_HIERARCHICAL_PATH) -gen_spd_entry.SETTINGS = $(strip \ - path=\"$1\" \ - type=\"$2\" \ - $(if $(gen_spd_entry.PARAM_NAME),initParamName=\"$(gen_spd_entry.PARAM_NAME)\") \ - $(if $(gen_spd_entry.MEM_PATH),memoryPath=\"$(gen_spd_entry.MEM_PATH)\") \ -) -define gen_spd_entry -$(ECHO) "" >> $3 -endef - -$(MEM_INIT_DESCRIPTOR_FILE).DAT_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(DAT_FILES)) -$(MEM_INIT_DESCRIPTOR_FILE).HEX_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(HEX_FILES)) - -$(MEM_INIT_DESCRIPTOR_FILE): %.spd: $(MEM_INIT_FILE) - $(post-process-info) - @$(MKDIR) $(@D) - @$(RM) $@ - @$(ECHO) "" > $@ - @$(ECHO) "" >> $@ - @$(foreach dat_file,$($@.DAT_FILESET),$(call gen_spd_entry,$(dat_file),DAT,$@) &&)true - @$(foreach hex_file,$($@.HEX_FILESET),$(call gen_spd_entry,$(hex_file),HEX,$@) &&)true - @$(ECHO) "" >> $@ - -.DELETE_ON_ERROR: $(MEM_INIT_DESCRIPTOR_FILE) - -$(MEM_INIT_QIP_FILE): %.qip: $(MEM_INIT_FILE) - $(post-process-info) - @$(MKDIR) $(@D) - @$(RM) $@ - @$(ECHO) "set_global_assignment -name SEARCH_PATH $$::quartus(qip_path)" > $@ - -.DELETE_ON_ERROR: $(MEM_INIT_QIP_FILE) diff --git a/software/DE2_115_ASM_bsp/memory.gdb b/software/DE2_115_ASM_bsp/memory.gdb deleted file mode 100644 index c73c453..0000000 --- a/software/DE2_115_ASM_bsp/memory.gdb +++ /dev/null @@ -1,50 +0,0 @@ -# memory.gdb - GDB memory region definitions -# -# Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' -# SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo -# -# Generated: Thu Dec 22 10:08:01 JST 2016 - -# DO NOT MODIFY THIS FILE -# -# Changing this file will have subtle consequences -# which will almost certainly lead to a nonfunctioning -# system. If you do modify this file, be aware that your -# changes will be overwritten and lost when this file -# is generated again. -# -# DO NOT MODIFY THIS FILE - -# License Agreement -# -# Copyright (c) 2008 -# Altera Corporation, San Jose, California, USA. -# All rights reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -# DEALINGS IN THE SOFTWARE. -# -# This agreement shall be governed in all respects by the laws of the State -# of California and by the laws of the United States of America. - -# Define memory regions for each memory connected to the CPU. -# The cache attribute is specified which improves GDB performance -# by allowing GDB to cache memory contents on the host. - -# onchip_memory -memory 0x0 0x32000 cache diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_alarm_start.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_alarm_start.d deleted file mode 100644 index a293917..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_alarm_start.d +++ /dev/null @@ -1,22 +0,0 @@ -obj/HAL/src/alt_alarm_start.o: HAL/src/alt_alarm_start.c \ - HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ - HAL/inc/nios2.h system.h linker.h - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -system.h: - -linker.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_alarm_start.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_alarm_start.o deleted file mode 100644 index 4f3bca0..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_alarm_start.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_busy_sleep.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_busy_sleep.d deleted file mode 100644 index 0441737..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_busy_sleep.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/HAL/src/alt_busy_sleep.o: HAL/src/alt_busy_sleep.c system.h linker.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_busy_sleep.h - -system.h: - -linker.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_busy_sleep.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_busy_sleep.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_busy_sleep.o deleted file mode 100644 index 2a164b8..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_busy_sleep.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_close.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_close.d deleted file mode 100644 index c678dc5..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_close.d +++ /dev/null @@ -1,34 +0,0 @@ -obj/HAL/src/alt_close.o: HAL/src/alt_close.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ - HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_close.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_close.o deleted file mode 100644 index 04d3b24..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_close.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dcache_flush.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dcache_flush.d deleted file mode 100644 index cc01756..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dcache_flush.d +++ /dev/null @@ -1,15 +0,0 @@ -obj/HAL/src/alt_dcache_flush.o: HAL/src/alt_dcache_flush.c \ - HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ - HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h - -HAL/inc/nios2.h: - -system.h: - -linker.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_cache.h: - -HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dcache_flush.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dcache_flush.o deleted file mode 100644 index 7d27351..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dcache_flush.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dcache_flush_all.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dcache_flush_all.d deleted file mode 100644 index 9b4b55d..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dcache_flush_all.d +++ /dev/null @@ -1,15 +0,0 @@ -obj/HAL/src/alt_dcache_flush_all.o: HAL/src/alt_dcache_flush_all.c \ - HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ - HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h - -HAL/inc/nios2.h: - -system.h: - -linker.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_cache.h: - -HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dcache_flush_all.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dcache_flush_all.o deleted file mode 100644 index 31cfc13..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dcache_flush_all.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d deleted file mode 100644 index a1291f0..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d +++ /dev/null @@ -1,16 +0,0 @@ -obj/HAL/src/alt_dcache_flush_no_writeback.o: \ - HAL/src/alt_dcache_flush_no_writeback.c HAL/inc/nios2.h system.h \ - linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h \ - HAL/inc/alt_types.h - -HAL/inc/nios2.h: - -system.h: - -linker.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_cache.h: - -HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o deleted file mode 100644 index 8fd2093..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dev.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dev.d deleted file mode 100644 index 89b9883..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dev.d +++ /dev/null @@ -1,34 +0,0 @@ -obj/HAL/src/alt_dev.o: HAL/src/alt_dev.c HAL/inc/sys/alt_dev.h system.h \ - linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ - HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ - system.h - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/alt_types.h: - -system.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dev.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dev.o deleted file mode 100644 index ebfcb30..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dev.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dev_llist_insert.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dev_llist_insert.d deleted file mode 100644 index f23980f..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dev_llist_insert.d +++ /dev/null @@ -1,13 +0,0 @@ -obj/HAL/src/alt_dev_llist_insert.o: HAL/src/alt_dev_llist_insert.c \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_errno.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dev_llist_insert.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dev_llist_insert.o deleted file mode 100644 index b692363..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dev_llist_insert.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dma_rxchan_open.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dma_rxchan_open.d deleted file mode 100644 index 71aa62d..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dma_rxchan_open.d +++ /dev/null @@ -1,35 +0,0 @@ -obj/HAL/src/alt_dma_rxchan_open.o: HAL/src/alt_dma_rxchan_open.c \ - HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ - HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ - HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h - -HAL/inc/sys/alt_dma.h: - -HAL/inc/sys/alt_dma_dev.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_errno.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dma_rxchan_open.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dma_rxchan_open.o deleted file mode 100644 index 365a4cb..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dma_rxchan_open.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dma_txchan_open.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dma_txchan_open.d deleted file mode 100644 index 2a33dba..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dma_txchan_open.d +++ /dev/null @@ -1,35 +0,0 @@ -obj/HAL/src/alt_dma_txchan_open.o: HAL/src/alt_dma_txchan_open.c \ - HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ - HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ - HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h - -HAL/inc/sys/alt_dma.h: - -HAL/inc/sys/alt_dma_dev.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_errno.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dma_txchan_open.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dma_txchan_open.o deleted file mode 100644 index 0c1b725..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_dma_txchan_open.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_do_ctors.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_do_ctors.d deleted file mode 100644 index 0898fbc..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_do_ctors.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_do_ctors.o: HAL/src/alt_do_ctors.c diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_do_ctors.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_do_ctors.o deleted file mode 100644 index 60716f5..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_do_ctors.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_do_dtors.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_do_dtors.d deleted file mode 100644 index abdadfa..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_do_dtors.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_do_dtors.o: HAL/src/alt_do_dtors.c diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_do_dtors.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_do_dtors.o deleted file mode 100644 index 4ad3900..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_do_dtors.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_env_lock.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_env_lock.d deleted file mode 100644 index fd8a733..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_env_lock.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_env_lock.o: HAL/src/alt_env_lock.c diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_env_lock.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_env_lock.o deleted file mode 100644 index 0d3164d..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_env_lock.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_environ.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_environ.d deleted file mode 100644 index b622e4b..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_environ.d +++ /dev/null @@ -1,3 +0,0 @@ -obj/HAL/src/alt_environ.o: HAL/src/alt_environ.c HAL/inc/os/alt_syscall.h - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_environ.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_environ.o deleted file mode 100644 index 2649aa8..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_environ.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_errno.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_errno.d deleted file mode 100644 index 51c7dcd..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_errno.d +++ /dev/null @@ -1,8 +0,0 @@ -obj/HAL/src/alt_errno.o: HAL/src/alt_errno.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/alt_types.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_errno.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_errno.o deleted file mode 100644 index 937978d..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_errno.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exception_entry.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exception_entry.d deleted file mode 100644 index 7960631..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exception_entry.d +++ /dev/null @@ -1,6 +0,0 @@ -obj/HAL/src/alt_exception_entry.o: HAL/src/alt_exception_entry.S system.h \ - linker.h - -system.h: - -linker.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exception_entry.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exception_entry.o deleted file mode 100644 index 6ea2624..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exception_entry.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exception_muldiv.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exception_muldiv.d deleted file mode 100644 index a1e5556..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exception_muldiv.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_exception_muldiv.o: HAL/src/alt_exception_muldiv.S diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exception_muldiv.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exception_muldiv.o deleted file mode 100644 index 6b29f2a..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exception_muldiv.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exception_trap.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exception_trap.d deleted file mode 100644 index ef4edc6..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exception_trap.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_exception_trap.o: HAL/src/alt_exception_trap.S diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exception_trap.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exception_trap.o deleted file mode 100644 index c6ae459..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exception_trap.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_execve.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_execve.d deleted file mode 100644 index 0060a9d..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_execve.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/HAL/src/alt_execve.o: HAL/src/alt_execve.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_execve.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_execve.o deleted file mode 100644 index 44ac212..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_execve.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exit.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exit.d deleted file mode 100644 index 09ed618..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exit.d +++ /dev/null @@ -1,26 +0,0 @@ -obj/HAL/src/alt_exit.o: HAL/src/alt_exit.c HAL/inc/sys/alt_irq.h \ - HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ - HAL/inc/sys/alt_sim.h HAL/inc/os/alt_hooks.h HAL/inc/os/alt_syscall.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_log_printf.h system.h - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_sim.h: - -HAL/inc/os/alt_hooks.h: - -HAL/inc/os/alt_syscall.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_log_printf.h: - -system.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exit.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exit.o deleted file mode 100644 index d0a1f5c..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_exit.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fcntl.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fcntl.d deleted file mode 100644 index b8835a6..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fcntl.d +++ /dev/null @@ -1,34 +0,0 @@ -obj/HAL/src/alt_fcntl.o: HAL/src/alt_fcntl.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ - system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ - HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fcntl.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fcntl.o deleted file mode 100644 index 51a1893..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fcntl.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fd_lock.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fd_lock.d deleted file mode 100644 index f6d94e1..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fd_lock.d +++ /dev/null @@ -1,27 +0,0 @@ -obj/HAL/src/alt_fd_lock.o: HAL/src/alt_fd_lock.c HAL/inc/priv/alt_file.h \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fd_lock.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fd_lock.o deleted file mode 100644 index 14a91cd..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fd_lock.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fd_unlock.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fd_unlock.d deleted file mode 100644 index 9778463..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fd_unlock.d +++ /dev/null @@ -1,27 +0,0 @@ -obj/HAL/src/alt_fd_unlock.o: HAL/src/alt_fd_unlock.c \ - HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fd_unlock.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fd_unlock.o deleted file mode 100644 index b864aaf..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fd_unlock.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_find_dev.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_find_dev.d deleted file mode 100644 index 7b37308..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_find_dev.d +++ /dev/null @@ -1,31 +0,0 @@ -obj/HAL/src/alt_find_dev.o: HAL/src/alt_find_dev.c HAL/inc/sys/alt_dev.h \ - system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ - HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_find_dev.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_find_dev.o deleted file mode 100644 index a5d234e..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_find_dev.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_find_file.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_find_file.d deleted file mode 100644 index 4f15c6d..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_find_file.d +++ /dev/null @@ -1,32 +0,0 @@ -obj/HAL/src/alt_find_file.o: HAL/src/alt_find_file.c \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ - HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ - HAL/inc/alt_types.h - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_find_file.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_find_file.o deleted file mode 100644 index 7eb6407..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_find_file.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_flash_dev.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_flash_dev.d deleted file mode 100644 index e665b37..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_flash_dev.d +++ /dev/null @@ -1,34 +0,0 @@ -obj/HAL/src/alt_flash_dev.o: HAL/src/alt_flash_dev.c \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/sys/alt_flash_dev.h \ - HAL/inc/sys/alt_flash_types.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ - system.h linker.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_flash_dev.h: - -HAL/inc/sys/alt_flash_types.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_flash_dev.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_flash_dev.o deleted file mode 100644 index f94c9bb..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_flash_dev.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fork.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fork.d deleted file mode 100644 index ef5b637..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fork.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/HAL/src/alt_fork.o: HAL/src/alt_fork.c HAL/inc/sys/alt_warning.h \ - HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_warning.h: - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fork.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fork.o deleted file mode 100644 index fc9ff9e..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fork.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fs_reg.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fs_reg.d deleted file mode 100644 index f56b56f..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fs_reg.d +++ /dev/null @@ -1,29 +0,0 @@ -obj/HAL/src/alt_fs_reg.o: HAL/src/alt_fs_reg.c HAL/inc/sys/alt_dev.h \ - system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ - HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fs_reg.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fs_reg.o deleted file mode 100644 index 5dac05e..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fs_reg.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fstat.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fstat.d deleted file mode 100644 index b1c4a1e..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fstat.d +++ /dev/null @@ -1,36 +0,0 @@ -obj/HAL/src/alt_fstat.o: HAL/src/alt_fstat.c HAL/inc/sys/alt_dev.h \ - system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/sys/alt_errno.h \ - HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/sys/alt_errno.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fstat.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fstat.o deleted file mode 100644 index c336fad..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_fstat.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_get_fd.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_get_fd.d deleted file mode 100644 index 5524f68..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_get_fd.d +++ /dev/null @@ -1,34 +0,0 @@ -obj/HAL/src/alt_get_fd.o: HAL/src/alt_get_fd.c HAL/inc/sys/alt_dev.h \ - system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ - HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ - system.h - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/alt_types.h: - -system.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_get_fd.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_get_fd.o deleted file mode 100644 index 99a830d..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_get_fd.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_getchar.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_getchar.d deleted file mode 100644 index aa88591..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_getchar.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_getchar.o: HAL/src/alt_getchar.c diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_getchar.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_getchar.o deleted file mode 100644 index 9510525..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_getchar.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_getpid.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_getpid.d deleted file mode 100644 index 365651b..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_getpid.d +++ /dev/null @@ -1,3 +0,0 @@ -obj/HAL/src/alt_getpid.o: HAL/src/alt_getpid.c HAL/inc/os/alt_syscall.h - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_getpid.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_getpid.o deleted file mode 100644 index d6d72cd..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_getpid.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_gettod.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_gettod.d deleted file mode 100644 index ffd23b8..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_gettod.d +++ /dev/null @@ -1,17 +0,0 @@ -obj/HAL/src/alt_gettod.o: HAL/src/alt_gettod.c HAL/inc/sys/alt_alarm.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_alarm.h \ - HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_gettod.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_gettod.o deleted file mode 100644 index f31c5e4..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_gettod.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_gmon.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_gmon.d deleted file mode 100644 index 6a213bf..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_gmon.d +++ /dev/null @@ -1,24 +0,0 @@ -obj/HAL/src/alt_gmon.o: HAL/src/alt_gmon.c HAL/inc/priv/nios2_gmon_data.h \ - HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ - linker.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h - -HAL/inc/priv/nios2_gmon_data.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_gmon.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_gmon.o deleted file mode 100644 index aa23eb5..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_gmon.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_icache_flush.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_icache_flush.d deleted file mode 100644 index a6048d7..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_icache_flush.d +++ /dev/null @@ -1,15 +0,0 @@ -obj/HAL/src/alt_icache_flush.o: HAL/src/alt_icache_flush.c \ - HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ - HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h - -HAL/inc/nios2.h: - -system.h: - -linker.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_cache.h: - -HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_icache_flush.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_icache_flush.o deleted file mode 100644 index 422343c..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_icache_flush.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_icache_flush_all.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_icache_flush_all.d deleted file mode 100644 index 19ee42e..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_icache_flush_all.d +++ /dev/null @@ -1,15 +0,0 @@ -obj/HAL/src/alt_icache_flush_all.o: HAL/src/alt_icache_flush_all.c \ - HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ - HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h - -HAL/inc/nios2.h: - -system.h: - -linker.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_cache.h: - -HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_icache_flush_all.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_icache_flush_all.o deleted file mode 100644 index 3238a51..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_icache_flush_all.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_iic.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_iic.d deleted file mode 100644 index 444ca68..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_iic.d +++ /dev/null @@ -1,29 +0,0 @@ -obj/HAL/src/alt_iic.o: HAL/src/alt_iic.c system.h linker.h \ - HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ - HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ - HAL/inc/sys/alt_irq.h HAL/inc/priv/alt_legacy_irq.h system.h \ - HAL/inc/nios2.h - -system.h: - -linker.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -HAL/inc/priv/alt_iic_isr_register.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/priv/alt_legacy_irq.h: - -system.h: - -HAL/inc/nios2.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_iic.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_iic.o deleted file mode 100644 index ac4935a..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_iic.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_iic_isr_register.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_iic_isr_register.d deleted file mode 100644 index 93b9138..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_iic_isr_register.d +++ /dev/null @@ -1,30 +0,0 @@ -obj/HAL/src/alt_iic_isr_register.o: HAL/src/alt_iic_isr_register.c \ - system.h linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ - HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ - HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ - HAL/inc/sys/alt_irq.h HAL/inc/sys/alt_irq_entry.h \ - HAL/inc/priv/alt_irq_table.h - -system.h: - -linker.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -HAL/inc/priv/alt_iic_isr_register.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/sys/alt_irq_entry.h: - -HAL/inc/priv/alt_irq_table.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_iic_isr_register.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_iic_isr_register.o deleted file mode 100644 index c29d140..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_iic_isr_register.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_instruction_exception_entry.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_instruction_exception_entry.d deleted file mode 100644 index f91b75a..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_instruction_exception_entry.d +++ /dev/null @@ -1,18 +0,0 @@ -obj/HAL/src/alt_instruction_exception_entry.o: \ - HAL/src/alt_instruction_exception_entry.c HAL/inc/sys/alt_exceptions.h \ - HAL/inc/alt_types.h system.h linker.h HAL/inc/nios2.h \ - HAL/inc/alt_types.h system.h - -HAL/inc/sys/alt_exceptions.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_instruction_exception_entry.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_instruction_exception_entry.o deleted file mode 100644 index 0684da4..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_instruction_exception_entry.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_instruction_exception_register.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_instruction_exception_register.d deleted file mode 100644 index 24c4435..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_instruction_exception_register.d +++ /dev/null @@ -1,16 +0,0 @@ -obj/HAL/src/alt_instruction_exception_register.o: \ - HAL/src/alt_instruction_exception_register.c \ - HAL/inc/sys/alt_exceptions.h HAL/inc/alt_types.h system.h linker.h \ - HAL/inc/alt_types.h system.h - -HAL/inc/sys/alt_exceptions.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: - -HAL/inc/alt_types.h: - -system.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_instruction_exception_register.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_instruction_exception_register.o deleted file mode 100644 index 4801278..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_instruction_exception_register.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_io_redirect.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_io_redirect.d deleted file mode 100644 index d84ac28..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_io_redirect.d +++ /dev/null @@ -1,29 +0,0 @@ -obj/HAL/src/alt_io_redirect.o: HAL/src/alt_io_redirect.c \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ - HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_io_redirect.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_io_redirect.o deleted file mode 100644 index 09e3da5..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_io_redirect.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_ioctl.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_ioctl.d deleted file mode 100644 index 0b46e82..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_ioctl.d +++ /dev/null @@ -1,36 +0,0 @@ -obj/HAL/src/alt_ioctl.o: HAL/src/alt_ioctl.c HAL/inc/sys/ioctl.h \ - HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ - HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ - HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/ioctl.h: - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_ioctl.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_ioctl.o deleted file mode 100644 index 450be60..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_ioctl.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_entry.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_entry.d deleted file mode 100644 index c2477c1..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_entry.d +++ /dev/null @@ -1,5 +0,0 @@ -obj/HAL/src/alt_irq_entry.o: HAL/src/alt_irq_entry.S system.h linker.h - -system.h: - -linker.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_entry.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_entry.o deleted file mode 100644 index 5231892..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_entry.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_handler.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_handler.d deleted file mode 100644 index c6ee821..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_handler.d +++ /dev/null @@ -1,19 +0,0 @@ -obj/HAL/src/alt_irq_handler.o: HAL/src/alt_irq_handler.c system.h \ - linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ - system.h HAL/inc/os/alt_hooks.h HAL/inc/alt_types.h - -system.h: - -linker.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -HAL/inc/os/alt_hooks.h: - -HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_handler.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_handler.o deleted file mode 100644 index b426af1..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_handler.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_register.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_register.d deleted file mode 100644 index ad1830e..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_register.d +++ /dev/null @@ -1,36 +0,0 @@ -obj/HAL/src/alt_irq_register.o: HAL/src/alt_irq_register.c system.h \ - linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ - system.h HAL/inc/priv/alt_legacy_irq.h system.h HAL/inc/nios2.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h HAL/inc/os/alt_hooks.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_irq_entry.h \ - HAL/inc/priv/alt_irq_table.h - -system.h: - -linker.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -HAL/inc/priv/alt_legacy_irq.h: - -system.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/os/alt_hooks.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_irq_entry.h: - -HAL/inc/priv/alt_irq_table.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_register.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_register.o deleted file mode 100644 index 0972295..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_register.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_vars.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_vars.d deleted file mode 100644 index c339fc6..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_vars.d +++ /dev/null @@ -1,8 +0,0 @@ -obj/HAL/src/alt_irq_vars.o: HAL/src/alt_irq_vars.c HAL/inc/alt_types.h \ - system.h linker.h - -HAL/inc/alt_types.h: - -system.h: - -linker.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_vars.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_vars.o deleted file mode 100644 index 5959d94..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_irq_vars.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_isatty.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_isatty.d deleted file mode 100644 index 1b9868b..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_isatty.d +++ /dev/null @@ -1,36 +0,0 @@ -obj/HAL/src/alt_isatty.o: HAL/src/alt_isatty.c HAL/inc/sys/alt_dev.h \ - system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h HAL/inc/sys/alt_warning.h \ - HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_errno.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_isatty.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_isatty.o deleted file mode 100644 index 1037442..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_isatty.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_kill.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_kill.d deleted file mode 100644 index 7ced1b6..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_kill.d +++ /dev/null @@ -1,8 +0,0 @@ -obj/HAL/src/alt_kill.o: HAL/src/alt_kill.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_kill.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_kill.o deleted file mode 100644 index 97c2fd2..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_kill.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_link.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_link.d deleted file mode 100644 index 2156c3d..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_link.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/HAL/src/alt_link.o: HAL/src/alt_link.c HAL/inc/sys/alt_warning.h \ - HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_warning.h: - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_link.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_link.o deleted file mode 100644 index 9f255ee..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_link.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_load.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_load.d deleted file mode 100644 index ff64508..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_load.d +++ /dev/null @@ -1,8 +0,0 @@ -obj/HAL/src/alt_load.o: HAL/src/alt_load.c HAL/inc/sys/alt_load.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h - -HAL/inc/sys/alt_load.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_cache.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_load.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_load.o deleted file mode 100644 index e0c7367..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_load.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_log_macro.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_log_macro.d deleted file mode 100644 index b6c30c4..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_log_macro.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_log_macro.o: HAL/src/alt_log_macro.S diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_log_macro.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_log_macro.o deleted file mode 100644 index 489e2cc..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_log_macro.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_log_printf.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_log_printf.d deleted file mode 100644 index ddd7cdb..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_log_printf.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_log_printf.o: HAL/src/alt_log_printf.c diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_log_printf.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_log_printf.o deleted file mode 100644 index a03c33d..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_log_printf.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_lseek.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_lseek.d deleted file mode 100644 index a103673..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_lseek.d +++ /dev/null @@ -1,34 +0,0 @@ -obj/HAL/src/alt_lseek.o: HAL/src/alt_lseek.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ - HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_lseek.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_lseek.o deleted file mode 100644 index 47d3ab4..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_lseek.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_main.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_main.d deleted file mode 100644 index 67b6a7b..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_main.d +++ /dev/null @@ -1,47 +0,0 @@ -obj/HAL/src/alt_main.o: HAL/src/alt_main.c HAL/inc/sys/alt_dev.h system.h \ - linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_sys_init.h HAL/inc/sys/alt_irq.h \ - HAL/inc/nios2.h HAL/inc/os/alt_hooks.h HAL/inc/priv/alt_file.h \ - HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ - HAL/inc/alt_types.h system.h HAL/inc/sys/alt_log_printf.h system.h - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_sys_init.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/os/alt_hooks.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/alt_types.h: - -system.h: - -HAL/inc/sys/alt_log_printf.h: - -system.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_main.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_main.o deleted file mode 100644 index 8cbd03c..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_main.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_malloc_lock.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_malloc_lock.d deleted file mode 100644 index 981b056..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_malloc_lock.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_malloc_lock.o: HAL/src/alt_malloc_lock.c diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_malloc_lock.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_malloc_lock.o deleted file mode 100644 index fa7f6c1..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_malloc_lock.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_mcount.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_mcount.d deleted file mode 100644 index 4fa3643..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_mcount.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_mcount.o: HAL/src/alt_mcount.S diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_mcount.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_mcount.o deleted file mode 100644 index 25a99a8..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_mcount.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_open.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_open.d deleted file mode 100644 index a5c2358..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_open.d +++ /dev/null @@ -1,36 +0,0 @@ -obj/HAL/src/alt_open.o: HAL/src/alt_open.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ - HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_open.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_open.o deleted file mode 100644 index 2c3dce1..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_open.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_printf.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_printf.d deleted file mode 100644 index 0fe3550..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_printf.d +++ /dev/null @@ -1,3 +0,0 @@ -obj/HAL/src/alt_printf.o: HAL/src/alt_printf.c HAL/inc/sys/alt_stdio.h - -HAL/inc/sys/alt_stdio.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_printf.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_printf.o deleted file mode 100644 index 98fe49b..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_printf.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_putchar.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_putchar.d deleted file mode 100644 index fa6d19f..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_putchar.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_putchar.o: HAL/src/alt_putchar.c diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_putchar.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_putchar.o deleted file mode 100644 index 619c07a..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_putchar.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_putstr.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_putstr.d deleted file mode 100644 index a28ce55..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_putstr.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_putstr.o: HAL/src/alt_putstr.c diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_putstr.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_putstr.o deleted file mode 100644 index ffcb95a..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_putstr.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_read.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_read.d deleted file mode 100644 index f5d459d..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_read.d +++ /dev/null @@ -1,34 +0,0 @@ -obj/HAL/src/alt_read.o: HAL/src/alt_read.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ - HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_read.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_read.o deleted file mode 100644 index 6e5b532..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_read.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_release_fd.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_release_fd.d deleted file mode 100644 index 137f496..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_release_fd.d +++ /dev/null @@ -1,29 +0,0 @@ -obj/HAL/src/alt_release_fd.o: HAL/src/alt_release_fd.c \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ - HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_release_fd.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_release_fd.o deleted file mode 100644 index e26e93e..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_release_fd.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_remap_cached.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_remap_cached.d deleted file mode 100644 index abacaa4..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_remap_cached.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/HAL/src/alt_remap_cached.o: HAL/src/alt_remap_cached.c \ - HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h - -HAL/inc/sys/alt_cache.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_remap_cached.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_remap_cached.o deleted file mode 100644 index 0977747..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_remap_cached.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_remap_uncached.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_remap_uncached.d deleted file mode 100644 index 19b8e4c..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_remap_uncached.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/HAL/src/alt_remap_uncached.o: HAL/src/alt_remap_uncached.c \ - HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h - -HAL/inc/sys/alt_cache.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_remap_uncached.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_remap_uncached.o deleted file mode 100644 index 6690e93..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_remap_uncached.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_rename.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_rename.d deleted file mode 100644 index f16ad38..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_rename.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/HAL/src/alt_rename.o: HAL/src/alt_rename.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_rename.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_rename.o deleted file mode 100644 index efd10ac..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_rename.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_sbrk.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_sbrk.d deleted file mode 100644 index cc6de28..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_sbrk.d +++ /dev/null @@ -1,19 +0,0 @@ -obj/HAL/src/alt_sbrk.o: HAL/src/alt_sbrk.c HAL/inc/os/alt_syscall.h \ - HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ - linker.h HAL/inc/sys/alt_stack.h system.h - -HAL/inc/os/alt_syscall.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_stack.h: - -system.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_sbrk.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_sbrk.o deleted file mode 100644 index ce37cb2..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_sbrk.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_settod.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_settod.d deleted file mode 100644 index f8e7109..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_settod.d +++ /dev/null @@ -1,17 +0,0 @@ -obj/HAL/src/alt_settod.o: HAL/src/alt_settod.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_settod.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_settod.o deleted file mode 100644 index 69ee2bd..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_settod.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_software_exception.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_software_exception.d deleted file mode 100644 index d17d10b..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_software_exception.d +++ /dev/null @@ -1,6 +0,0 @@ -obj/HAL/src/alt_software_exception.o: HAL/src/alt_software_exception.S \ - system.h linker.h - -system.h: - -linker.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_software_exception.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_software_exception.o deleted file mode 100644 index f9e01c2..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_software_exception.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_stat.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_stat.d deleted file mode 100644 index b66e05e..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_stat.d +++ /dev/null @@ -1,3 +0,0 @@ -obj/HAL/src/alt_stat.o: HAL/src/alt_stat.c HAL/inc/os/alt_syscall.h - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_stat.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_stat.o deleted file mode 100644 index 447fdd4..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_stat.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_tick.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_tick.d deleted file mode 100644 index 88d8e2a..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_tick.d +++ /dev/null @@ -1,27 +0,0 @@ -obj/HAL/src/alt_tick.o: HAL/src/alt_tick.c HAL/inc/sys/alt_irq.h \ - HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ - HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_hooks.h \ - HAL/inc/alt_types.h - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_hooks.h: - -HAL/inc/alt_types.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_tick.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_tick.o deleted file mode 100644 index 804371d..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_tick.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_times.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_times.d deleted file mode 100644 index e0ded1e..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_times.d +++ /dev/null @@ -1,17 +0,0 @@ -obj/HAL/src/alt_times.o: HAL/src/alt_times.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_times.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_times.o deleted file mode 100644 index f55a589..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_times.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_uncached_free.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_uncached_free.d deleted file mode 100644 index 7d5ae2b..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_uncached_free.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/HAL/src/alt_uncached_free.o: HAL/src/alt_uncached_free.c \ - HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h - -HAL/inc/sys/alt_cache.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_uncached_free.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_uncached_free.o deleted file mode 100644 index fb1dd20..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_uncached_free.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_uncached_malloc.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_uncached_malloc.d deleted file mode 100644 index 05d57d8..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_uncached_malloc.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/HAL/src/alt_uncached_malloc.o: HAL/src/alt_uncached_malloc.c \ - HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h - -HAL/inc/sys/alt_cache.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_uncached_malloc.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_uncached_malloc.o deleted file mode 100644 index c34d431..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_uncached_malloc.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_unlink.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_unlink.d deleted file mode 100644 index 04b6dcd..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_unlink.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/HAL/src/alt_unlink.o: HAL/src/alt_unlink.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_unlink.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_unlink.o deleted file mode 100644 index f9f197a..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_unlink.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_usleep.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_usleep.d deleted file mode 100644 index c3ccee2..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_usleep.d +++ /dev/null @@ -1,6 +0,0 @@ -obj/HAL/src/alt_usleep.o: HAL/src/alt_usleep.c \ - HAL/inc/priv/alt_busy_sleep.h HAL/inc/os/alt_syscall.h - -HAL/inc/priv/alt_busy_sleep.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_usleep.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_usleep.o deleted file mode 100644 index c0fce84..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_usleep.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_wait.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_wait.d deleted file mode 100644 index 98bf5df..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_wait.d +++ /dev/null @@ -1,8 +0,0 @@ -obj/HAL/src/alt_wait.o: HAL/src/alt_wait.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_wait.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_wait.o deleted file mode 100644 index 5414f98..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_wait.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_write.d b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_write.d deleted file mode 100644 index 722e8bc..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_write.d +++ /dev/null @@ -1,38 +0,0 @@ -obj/HAL/src/alt_write.o: HAL/src/alt_write.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ - HAL/inc/os/alt_syscall.h HAL/inc/sys/alt_log_printf.h system.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_syscall.h: - -HAL/inc/sys/alt_log_printf.h: - -system.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_write.o b/software/DE2_115_ASM_bsp/obj/HAL/src/alt_write.o deleted file mode 100644 index 76bbfa3..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/alt_write.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/altera_nios2_qsys_irq.d b/software/DE2_115_ASM_bsp/obj/HAL/src/altera_nios2_qsys_irq.d deleted file mode 100644 index 45223c8..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/altera_nios2_qsys_irq.d +++ /dev/null @@ -1,15 +0,0 @@ -obj/HAL/src/altera_nios2_qsys_irq.o: HAL/src/altera_nios2_qsys_irq.c \ - HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ - linker.h HAL/inc/altera_nios2_qsys_irq.h - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: - -HAL/inc/altera_nios2_qsys_irq.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/altera_nios2_qsys_irq.o b/software/DE2_115_ASM_bsp/obj/HAL/src/altera_nios2_qsys_irq.o deleted file mode 100644 index c44ed71..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/altera_nios2_qsys_irq.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/crt0.d b/software/DE2_115_ASM_bsp/obj/HAL/src/crt0.d deleted file mode 100644 index c1049a0..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/crt0.d +++ /dev/null @@ -1,12 +0,0 @@ -obj/HAL/src/crt0.o: HAL/src/crt0.S system.h linker.h HAL/inc/nios2.h \ - HAL/inc/sys/alt_log_printf.h system.h - -system.h: - -linker.h: - -HAL/inc/nios2.h: - -HAL/inc/sys/alt_log_printf.h: - -system.h: diff --git a/software/DE2_115_ASM_bsp/obj/HAL/src/crt0.o b/software/DE2_115_ASM_bsp/obj/HAL/src/crt0.o deleted file mode 100644 index b1e00ac..0000000 --- a/software/DE2_115_ASM_bsp/obj/HAL/src/crt0.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/alt_sys_init.d b/software/DE2_115_ASM_bsp/obj/alt_sys_init.d deleted file mode 100644 index df7e15a..0000000 --- a/software/DE2_115_ASM_bsp/obj/alt_sys_init.d +++ /dev/null @@ -1,59 +0,0 @@ -obj/alt_sys_init.o: alt_sys_init.c system.h linker.h \ - HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ - HAL/inc/sys/alt_sys_init.h HAL/inc/altera_nios2_qsys_irq.h \ - drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ - HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h \ - HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ - drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ - HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h drivers/inc/altera_avalon_lcd_16207.h \ - drivers/inc/altera_avalon_lcd_16207_fd.h - -system.h: - -linker.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -HAL/inc/sys/alt_sys_init.h: - -HAL/inc/altera_nios2_qsys_irq.h: - -drivers/inc/altera_avalon_jtag_uart.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_flag.h: - -drivers/inc/altera_avalon_jtag_uart_fd.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -drivers/inc/altera_avalon_lcd_16207.h: - -drivers/inc/altera_avalon_lcd_16207_fd.h: diff --git a/software/DE2_115_ASM_bsp/obj/alt_sys_init.o b/software/DE2_115_ASM_bsp/obj/alt_sys_init.o deleted file mode 100644 index f3cc066..0000000 --- a/software/DE2_115_ASM_bsp/obj/alt_sys_init.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d b/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d deleted file mode 100644 index 5fd0251..0000000 --- a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d +++ /dev/null @@ -1,48 +0,0 @@ -obj/drivers/src/altera_avalon_jtag_uart_fd.o: \ - drivers/src/altera_avalon_jtag_uart_fd.c HAL/inc/alt_types.h \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ - HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h \ - HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ - drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_jtag_uart.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_flag.h: - -drivers/inc/altera_avalon_jtag_uart_fd.h: - -HAL/inc/sys/alt_dev.h: diff --git a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o b/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o deleted file mode 100644 index ab5f6c0..0000000 --- a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d b/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d deleted file mode 100644 index 39101c1..0000000 --- a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d +++ /dev/null @@ -1,66 +0,0 @@ -obj/drivers/src/altera_avalon_jtag_uart_init.o: \ - drivers/src/altera_avalon_jtag_uart_init.c HAL/inc/sys/alt_irq.h \ - HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ - HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ - HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ - HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ - HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ - drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ - HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/ioctl.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_jtag_uart_regs.h: - -HAL/inc/io.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_jtag_uart.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_flag.h: - -drivers/inc/altera_avalon_jtag_uart_fd.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/sys/alt_log_printf.h: - -system.h: diff --git a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o b/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o deleted file mode 100644 index a4ae140..0000000 --- a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d b/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d deleted file mode 100644 index 39508a1..0000000 --- a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d +++ /dev/null @@ -1,58 +0,0 @@ -obj/drivers/src/altera_avalon_jtag_uart_ioctl.o: \ - drivers/src/altera_avalon_jtag_uart_ioctl.c HAL/inc/sys/ioctl.h \ - HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ - HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ - HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ - HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ - drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h system.h \ - linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h - -HAL/inc/sys/ioctl.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_jtag_uart_regs.h: - -HAL/inc/io.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_jtag_uart.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_flag.h: - -drivers/inc/altera_avalon_jtag_uart_fd.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/sys/alt_log_printf.h: - -system.h: diff --git a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o b/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o deleted file mode 100644 index 3de41e3..0000000 --- a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d b/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d deleted file mode 100644 index 915c27a..0000000 --- a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d +++ /dev/null @@ -1,66 +0,0 @@ -obj/drivers/src/altera_avalon_jtag_uart_read.o: \ - drivers/src/altera_avalon_jtag_uart_read.c HAL/inc/sys/alt_irq.h \ - HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ - HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ - HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ - HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ - HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ - drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ - HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/ioctl.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_jtag_uart_regs.h: - -HAL/inc/io.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_jtag_uart.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_flag.h: - -drivers/inc/altera_avalon_jtag_uart_fd.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/sys/alt_log_printf.h: - -system.h: diff --git a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o b/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o deleted file mode 100644 index 5684a51..0000000 --- a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d b/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d deleted file mode 100644 index 4e67aaa..0000000 --- a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d +++ /dev/null @@ -1,66 +0,0 @@ -obj/drivers/src/altera_avalon_jtag_uart_write.o: \ - drivers/src/altera_avalon_jtag_uart_write.c HAL/inc/sys/alt_irq.h \ - HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ - HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ - HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ - HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ - HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ - drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ - HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/ioctl.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_jtag_uart_regs.h: - -HAL/inc/io.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_jtag_uart.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_flag.h: - -drivers/inc/altera_avalon_jtag_uart_fd.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/sys/alt_log_printf.h: - -system.h: diff --git a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o b/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o deleted file mode 100644 index 7e753e7..0000000 --- a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_lcd_16207.d b/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_lcd_16207.d deleted file mode 100644 index 238baea..0000000 --- a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_lcd_16207.d +++ /dev/null @@ -1,47 +0,0 @@ -obj/drivers/src/altera_avalon_lcd_16207.o: \ - drivers/src/altera_avalon_lcd_16207.c HAL/inc/sys/alt_alarm.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_alarm.h \ - HAL/inc/alt_types.h drivers/inc/altera_avalon_lcd_16207_regs.h \ - HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_lcd_16207.h \ - HAL/inc/sys/alt_alarm.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h drivers/inc/altera_avalon_lcd_16207_fd.h \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_lcd_16207_regs.h: - -HAL/inc/io.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_lcd_16207.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -drivers/inc/altera_avalon_lcd_16207_fd.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: diff --git a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_lcd_16207.o b/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_lcd_16207.o deleted file mode 100644 index 4c2016c..0000000 --- a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_lcd_16207.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.d b/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.d deleted file mode 100644 index d45be02..0000000 --- a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.d +++ /dev/null @@ -1,43 +0,0 @@ -obj/drivers/src/altera_avalon_lcd_16207_fd.o: \ - drivers/src/altera_avalon_lcd_16207_fd.c HAL/inc/alt_types.h \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - drivers/inc/altera_avalon_lcd_16207.h HAL/inc/sys/alt_alarm.h \ - HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h drivers/inc/altera_avalon_lcd_16207_fd.h \ - HAL/inc/sys/alt_dev.h - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_lcd_16207.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -drivers/inc/altera_avalon_lcd_16207_fd.h: - -HAL/inc/sys/alt_dev.h: diff --git a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.o b/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.o deleted file mode 100644 index a926c2b..0000000 --- a/software/DE2_115_ASM_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.o +++ /dev/null Binary files differ diff --git a/software/DE2_115_ASM_bsp/public.mk b/software/DE2_115_ASM_bsp/public.mk deleted file mode 100644 index a8f9076..0000000 --- a/software/DE2_115_ASM_bsp/public.mk +++ /dev/null @@ -1,377 +0,0 @@ -#------------------------------------------------------------------------------ -# BSP "PUBLIC" MAKEFILE CONTENT -# -# This file is intended to be included in an application or library -# Makefile that is using this BSP. You can create such a Makefile with -# the nios2-app-generate-makefile or nios2-lib-generate-makefile -# commands. -# -# The following variables must be defined before including this file: -# -# ALT_LIBRARY_ROOT_DIR -# Contains the path to the BSP top-level (aka root) directory -#------------------------------------------------------------------------------ - -#------------------------------------------------------------------------------ -# PATHS -#------------------------------------------------------------------------------ - - - -# Path to the provided linker script. -BSP_LINKER_SCRIPT := $(ALT_LIBRARY_ROOT_DIR)/linker.x - -# Include paths: -# The path to root of all header files that a library wishes to make -# available for an application's use is specified here. Note that this -# may not be *all* folders within a hierarchy. For example, if it is -# desired that the application developer type: -# #include -# #include -# With files laid out like this: -# /inc/sockets.h -# /inc/ip/tcpip.h -# -# Then, only /inc need be added to the list of include -# directories. Alternatively, if you wish to be able to directly include -# all files in a hierarchy, separate paths to each folder in that -# hierarchy must be defined. - -# The following are the "base" set of include paths for a BSP. -# These paths are appended to the list that individual software -# components, drivers, etc., add in the generated portion of this -# file (below). -ALT_INCLUDE_DIRS_TO_APPEND += \ - $(ALT_LIBRARY_ROOT_DIR) \ - $(ALT_LIBRARY_ROOT_DIR)/drivers/inc - -# Additions to linker library search-path: -# Here we provide a path to "our self" for the application to construct a -# "-L " out of. This should contain a list of directories, -# relative to the library root, of all directories with .a files to link -# against. -ALT_LIBRARY_DIRS += $(ALT_LIBRARY_ROOT_DIR) - - -#------------------------------------------------------------------------------ -# COMPILATION FLAGS -#------------------------------------------------------------------------------ -# Default C pre-processor flags for a BSP: -ALT_CPPFLAGS += -DSYSTEM_BUS_WIDTH=32 \ - -pipe - - -#------------------------------------------------------------------------------ -# MANAGED CONTENT -# -# All content between the lines "START MANAGED" and "END MANAGED" below is -# generated based on variables in the BSP settings file when the -# nios2-bsp-generate-files command is invoked. If you wish to persist any -# information pertaining to the build process, it is recomended that you -# utilize the BSP settings mechanism to do so. -#------------------------------------------------------------------------------ -#START MANAGED - -# The following TYPE comment allows tools to identify the 'type' of target this -# makefile is associated with. -# TYPE: BSP_PUBLIC_MAKEFILE - -# This following VERSION comment indicates the version of the tool used to -# generate this makefile. A makefile variable is provided for VERSION as well. -# ACDS_VERSION: 13.0sp1 -ACDS_VERSION := 13.0sp1 - -# This following BUILD_NUMBER comment indicates the build number of the tool -# used to generate this makefile. -# BUILD_NUMBER: 232 - -# Qsys--generated SOPCINFO file. Required for resolving node instance ID's with -# design component names. -SOPCINFO_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo - -# Big-Endian operation. -# setting BIG_ENDIAN is false -ALT_CFLAGS += -EL - -# Path to the provided C language runtime initialization code. -BSP_CRT0 := $(ALT_LIBRARY_ROOT_DIR)/obj/HAL/src/crt0.o - -# Name of BSP library as provided to linker using the "-msys-lib" flag or -# linker script GROUP command. -# setting BSP_SYS_LIB is hal_bsp -BSP_SYS_LIB := hal_bsp -ELF_PATCH_FLAG += --thread_model hal - -# Type identifier of the BSP library -# setting BSP_TYPE is hal -ALT_CPPFLAGS += -D__hal__ -BSP_TYPE := hal - -# CPU Name -# setting CPU_NAME is nios2_processor -CPU_NAME = nios2_processor -ELF_PATCH_FLAG += --cpu_name $(CPU_NAME) - -# Hardware Divider present. -# setting HARDWARE_DIVIDE is false -ALT_CFLAGS += -mno-hw-div - -# Hardware Multiplier present. -# setting HARDWARE_MULTIPLY is false -ALT_CFLAGS += -mno-hw-mul - -# Hardware Mulx present. -# setting HARDWARE_MULX is false -ALT_CFLAGS += -mno-hw-mulx - -# Debug Core present. -# setting HAS_DEBUG_CORE is true -CPU_HAS_DEBUG_CORE = 1 - -# Qsys generated design -# setting QSYS is 1 -QSYS := 1 -ELF_PATCH_FLAG += --qsys true - -# Design Name -# setting SOPC_NAME is nios_system -SOPC_NAME := nios_system - -# SopcBuilder Simulation Enabled -# setting SOPC_SIMULATION_ENABLED is false -ELF_PATCH_FLAG += --simulation_enabled false - -# Enable JTAG UART driver to recover when host is inactive causing buffer to -# full without returning error. Printf will not fail with this recovery. none -# setting altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error is false - -# Small-footprint (polled mode) driver none -# setting altera_avalon_jtag_uart_driver.enable_small_driver is false - -# Build a custom version of newlib with the specified space-separated compiler -# flags. The custom newlib build will be placed in the <bsp root>/newlib -# directory, and will be used only for applications that utilize this BSP. -# setting hal.custom_newlib_flags is none - -# Enable support for a subset of the C++ language. This option increases code -# footprint by adding support for C++ constructors. Certain features, such as -# multiple inheritance and exceptions are not supported. If false, adds -# -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code -# footprint. none -# setting hal.enable_c_plus_plus is true - -# When your application exits, close file descriptors, call C++ destructors, -# etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -# -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to -# ALT_LDFLAGS in public.mk. none -# setting hal.enable_clean_exit is true - -# Add exit() support. This option increases code footprint if your "main()" -# routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to -# ALT_CPPFLAGS in public.mk, and reduces footprint none -# setting hal.enable_exit is true - -# Causes code to be compiled with gprof profiling enabled and the application -# ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to -# ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. none -# setting hal.enable_gprof is false - -# Enables lightweight device driver API. This reduces code and data footprint -# by removing the HAL layer that maps device names (e.g. /dev/uart0) to file -# descriptors. Instead, driver routines are called directly. The open(), -# close(), and lseek() routines will always fail if called. The read(), -# write(), fstat(), ioctl(), and isatty() routines only work for the stdio -# devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. -# The Altera Host and read-only ZIP file systems can't be used if -# hal.enable_lightweight_device_driver_api is true. -# setting hal.enable_lightweight_device_driver_api is false - -# Adds code to emulate multiply and divide instructions in case they are -# executed but aren't present in the CPU. Normally this isn't required because -# the compiler won't use multiply and divide instructions that aren't present -# in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in -# public.mk. none -# setting hal.enable_mul_div_emulation is false -ALT_CPPFLAGS += -DALT_NO_INSTRUCTION_EMULATION - -# Certain drivers are compiled with reduced functionality to reduce code -# footprint. Not all drivers observe this setting. The altera_avalon_uart and -# altera_avalon_jtag_uart drivers switch from interrupt-driven to polled -# operation. CAUTION: Several device drivers are disabled entirely. These -# include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and -# altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash -# access routines) to fail. You can define a symbol provided by each driver to -# prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to -# ALT_CPPFLAGS in public.mk. none -# setting hal.enable_reduced_device_drivers is false - -# Turns on HAL runtime stack checking feature. Enabling this setting causes -# additional code to be placed into each subroutine call to generate an -# exception if a stack collision occurs with the heap or statically allocated -# data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in -# public.mk. none -# setting hal.enable_runtime_stack_checking is false - -# The BSP is compiled with optimizations to speedup HDL simulation such as -# initializing the cache, clearing the .bss section, and skipping long delay -# loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. When -# this setting is true, the BSP shouldn't be used to build applications that -# are expected to run real hardware. -# setting hal.enable_sim_optimize is false - -# Causes the small newlib (C library) to be used. This reduces code and data -# footprint at the expense of reduced functionality. Several newlib features -# are removed such as floating-point support in printf(), stdin input routines, -# and buffered I/O. The small C library is not compatible with Micrium -# MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. none -# setting hal.enable_small_c_library is false - -# Enable SOPC Builder System ID. If a System ID SOPC Builder component is -# connected to the CPU associated with this BSP, it will be enabled in the -# creation of command-line arguments to download an ELF to the target. -# Otherwise, system ID and timestamp values are left out of public.mk for -# application Makefile "download-elf" target definition. With the system ID -# check disabled, the Nios II EDS tools will not automatically ensure that the -# application .elf file (and BSP it is linked against) corresponds to the -# hardware design on the target. If false, adds --accept-bad-sysid to -# SOPC_SYSID_FLAG in public.mk. none -# setting hal.enable_sopc_sysid_check is true - -# Enable BSP generation to query if SOPC system is big endian. If true ignores -# export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true -# ignores export of 'ALT_CFLAGS += -EL' if little endian system. none -# setting hal.make.ignore_system_derived.big_endian is false - -# Enable BSP generation to query if SOPC system has a debug core present. If -# true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core -# is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if -# no debug core is found in the system. none -# setting hal.make.ignore_system_derived.debug_core_present is false - -# Enable BSP generation to query if SOPC system has FPU present. If true -# ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found -# in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU -# is not found in the system. none -# setting hal.make.ignore_system_derived.fpu_present is false - -# Enable BSP generation to query if SOPC system has hardware divide present. If -# true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no -# division is found in system. If true ignores export of 'ALT_CFLAGS += -# -mhw-div' if division is found in the system. none -# setting hal.make.ignore_system_derived.hardware_divide_present is false - -# Enable BSP generation to query if SOPC system floating point custom -# instruction with a divider is present. If true ignores export of 'ALT_CFLAGS -# += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to -# public.mk if the custom instruction is found in the system. none -# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present is false - -# Enable BSP generation to query if SOPC system floating point custom -# instruction without a divider is present. If true ignores export of -# 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -# -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the -# system. none -# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present is false - -# Enable BSP generation to query if SOPC system has multiplier present. If true -# ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier -# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if -# multiplier is found in the system. none -# setting hal.make.ignore_system_derived.hardware_multiplier_present is false - -# Enable BSP generation to query if SOPC system has hardware mulx present. If -# true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx -# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' -# if mulx is found in the system. none -# setting hal.make.ignore_system_derived.hardware_mulx_present is false - -# Enable BSP generation to query if SOPC system has simulation enabled. If true -# ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. none -# setting hal.make.ignore_system_derived.sopc_simulation_enabled is false - -# Enable BSP generation to query SOPC system for system ID base address. If -# true ignores export of 'SOPC_SYSID_FLAG += --sidp=
' and -# 'ELF_PATCH_FLAG += --sidp=
' to public.mk. none -# setting hal.make.ignore_system_derived.sopc_system_base_address is false - -# Enable BSP generation to query SOPC system for system ID. If true ignores -# export of 'SOPC_SYSID_FLAG += --id=' and 'ELF_PATCH_FLAG += -# --id=' to public.mk. none -# setting hal.make.ignore_system_derived.sopc_system_id is false - -# Enable BSP generation to query SOPC system for system timestamp. If true -# ignores export of 'SOPC_SYSID_FLAG += --timestamp=' and -# 'ELF_PATCH_FLAG += --timestamp=' to public.mk. none -# setting hal.make.ignore_system_derived.sopc_system_timestamp is false - -# Slave descriptor of STDERR character-mode device. This setting is used by the -# ALT_STDERR family of defines in system.h. none -# setting hal.stderr is jtag_uart -ELF_PATCH_FLAG += --stderr_dev jtag_uart - -# Slave descriptor of STDIN character-mode device. This setting is used by the -# ALT_STDIN family of defines in system.h. none -# setting hal.stdin is jtag_uart -ELF_PATCH_FLAG += --stdin_dev jtag_uart - -# Slave descriptor of STDOUT character-mode device. This setting is used by the -# ALT_STDOUT family of defines in system.h. none -# setting hal.stdout is jtag_uart -ELF_PATCH_FLAG += --stdout_dev jtag_uart - - -#------------------------------------------------------------------------------ -# SOFTWARE COMPONENT & DRIVER INCLUDE PATHS -#------------------------------------------------------------------------------ - -ALT_INCLUDE_DIRS += $(ALT_LIBRARY_ROOT_DIR)/HAL/inc - -#------------------------------------------------------------------------------ -# SOFTWARE COMPONENT & DRIVER PRODUCED ALT_CPPFLAGS ADDITIONS -#------------------------------------------------------------------------------ - -ALT_CPPFLAGS += -DALT_SINGLE_THREADED - -#END MANAGED - - -#------------------------------------------------------------------------------ -# LIBRARY INFORMATION -#------------------------------------------------------------------------------ -# Assemble the name of the BSP *.a file using the BSP library name -# (BSP_SYS_LIB) in generated content above. -BSP_LIB := lib$(BSP_SYS_LIB).a - -# Additional libraries to link against: -# An application including this file will prefix each library with "-l". -# For example, to include the Newlib math library "m" is included, which -# becomes "-lm" when linking the application. -ALT_LIBRARY_NAMES += m - -# Additions to linker dependencies: -# An application Makefile will typically add these directly to the list -# of dependencies required to build the executable target(s). The BSP -# library (*.a) file is specified here. -ALT_LDDEPS += $(ALT_LIBRARY_ROOT_DIR)/$(BSP_LIB) - -# Is this library "Makeable"? -# Add to list of root library directories that support running 'make' -# to build them. Because libraries may or may not have a Makefile in their -# root, appending to this variable tells an application to run 'make' in -# the library root to build/update this library. -MAKEABLE_LIBRARY_ROOT_DIRS += $(ALT_LIBRARY_ROOT_DIR) - -# Additional Assembler Flags -# -gdwarf2 flag is required for stepping through assembly code -ALT_ASFLAGS += -gdwarf2 - -#------------------------------------------------------------------------------ -# FINAL INCLUDE PATH LIST -#------------------------------------------------------------------------------ -# Append static include paths to paths specified by OS/driver/sw package -# additions to the BSP thus giving them precedence in case a BSP addition -# is attempting to override BSP sources. -ALT_INCLUDE_DIRS += $(ALT_INCLUDE_DIRS_TO_APPEND) - - - diff --git a/software/DE2_115_ASM_bsp/settings.bsp b/software/DE2_115_ASM_bsp/settings.bsp deleted file mode 100644 index b972903..0000000 --- a/software/DE2_115_ASM_bsp/settings.bsp +++ /dev/null @@ -1,991 +0,0 @@ - - - hal - default - 2016/12/22 10:07:59 - 1482368879543 - C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\DE2_115_ASM_bsp - .\settings.bsp - C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo - default - nios2_processor - 1.9 - - hal.sys_clk_timer - ALT_SYS_CLK - UnquotedString - none - none - system_h_define - Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h. - none - false - common - - - hal.timestamp_timer - ALT_TIMESTAMP_CLK - UnquotedString - none - none - system_h_define - Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h. - none - false - common - - - hal.max_file_descriptors - ALT_MAX_FD - DecimalNumber - 32 - 32 - system_h_define - Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h. - If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr. - false - - - - hal.enable_instruction_related_exceptions_api - ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API - BooleanDefineOnly - false - false - system_h_define - Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code. - These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types. - false - - - - hal.linker.allow_code_at_reset - ALT_ALLOW_CODE_AT_RESET - Boolean - 1 - 0 - none - Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. - If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present. - false - - - - hal.linker.enable_alt_load - NONE - Boolean - 1 - 0 - none - Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory. - This setting is typically false if an external bootloader (e.g. flash bootloader) is present. - false - - - - hal.linker.enable_alt_load_copy_rodata - NONE - Boolean - 0 - 0 - none - Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h. - none - false - - - - hal.linker.enable_alt_load_copy_rwdata - NONE - Boolean - 1 - 0 - none - Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h. - none - false - - - - hal.linker.enable_alt_load_copy_exceptions - NONE - Boolean - 0 - 0 - none - Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h. - none - false - - - - hal.linker.enable_exception_stack - NONE - Boolean - 0 - 0 - none - Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x. - The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. - false - common - - - hal.linker.exception_stack_size - NONE - DecimalNumber - 1024 - 1024 - none - Size of the exception stack in bytes. - Only used if hal.linker.enable_exception_stack is true. - false - common - - - hal.linker.exception_stack_memory_region_name - NONE - UnquotedString - onchip_memory - none - none - Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region. - Only used if hal.linker.enable_exception_stack is true. - false - common - - - hal.linker.enable_interrupt_stack - NONE - Boolean - 0 - 0 - none - Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x. - The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. - false - common - - - hal.linker.interrupt_stack_size - NONE - DecimalNumber - 1024 - 1024 - none - Size of the interrupt stack in bytes. - Only used if hal.linker.enable_interrupt_stack is true. - false - common - - - hal.linker.interrupt_stack_memory_region_name - NONE - UnquotedString - onchip_memory - none - none - Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region. - Only used if hal.linker.enable_interrupt_stack is true. - false - common - - - hal.stdin - NONE - UnquotedString - jtag_uart - none - system_h_define - Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h. - none - false - common - - - hal.stdout - NONE - UnquotedString - jtag_uart - none - system_h_define - Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h. - none - false - common - - - hal.stderr - NONE - UnquotedString - jtag_uart - none - system_h_define - Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h. - none - false - common - - - hal.log_port - NONE - UnquotedString - none - none - public_mk_define - Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h. - none - false - none - - - hal.make.build_pre_process - BUILD_PRE_PROCESS - UnquotedString - none - none - makefile_variable - Command executed before BSP built. - none - false - none - - - hal.make.ar_pre_process - AR_PRE_PROCESS - UnquotedString - none - none - makefile_variable - Command executed before archiver execution. - none - false - none - - - hal.make.bsp_cflags_defined_symbols - BSP_CFLAGS_DEFINED_SYMBOLS - UnquotedString - none - none - makefile_variable - Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile. - none - false - none - - - hal.make.ar_post_process - AR_POST_PROCESS - UnquotedString - none - none - makefile_variable - Command executed after archiver execution. - none - false - none - - - hal.make.as - AS - UnquotedString - nios2-elf-gcc - nios2-elf-gcc - makefile_variable - Assembler command. Note that CC is used for .S files. - none - false - none - - - hal.make.build_post_process - BUILD_POST_PROCESS - UnquotedString - none - none - makefile_variable - Command executed after BSP built. - none - false - none - - - hal.make.bsp_cflags_debug - BSP_CFLAGS_DEBUG - UnquotedString - -g - -g - makefile_variable - C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile. - none - false - common - - - hal.make.ar - AR - UnquotedString - nios2-elf-ar - nios2-elf-ar - makefile_variable - Archiver command. Creates library files. - none - false - none - - - hal.make.rm - RM - UnquotedString - rm -f - rm -f - makefile_variable - Command used to remove files during 'clean' target. - none - false - none - - - hal.make.cxx_pre_process - CXX_PRE_PROCESS - UnquotedString - none - none - makefile_variable - Command executed before each C++ file is compiled. - none - false - none - - - hal.make.bsp_cflags_warnings - BSP_CFLAGS_WARNINGS - UnquotedString - -Wall - -Wall - makefile_variable - C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile. - none - false - none - - - hal.make.bsp_arflags - BSP_ARFLAGS - UnquotedString - -src - -src - makefile_variable - Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile. - none - false - none - - - hal.make.bsp_cflags_optimization - BSP_CFLAGS_OPTIMIZATION - UnquotedString - -O0 - -O0 - makefile_variable - C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile. - none - false - common - - - hal.make.as_post_process - AS_POST_PROCESS - UnquotedString - none - none - makefile_variable - Command executed after each assembly file is compiled. - none - false - none - - - hal.make.cc_pre_process - CC_PRE_PROCESS - UnquotedString - none - none - makefile_variable - Command executed before each .c/.S file is compiled. - none - false - none - - - hal.make.bsp_asflags - BSP_ASFLAGS - UnquotedString - -Wa,-gdwarf2 - -Wa,-gdwarf2 - makefile_variable - Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile. - none - false - none - - - hal.make.as_pre_process - AS_PRE_PROCESS - UnquotedString - none - none - makefile_variable - Command executed before each assembly file is compiled. - none - false - none - - - hal.make.bsp_cflags_undefined_symbols - BSP_CFLAGS_UNDEFINED_SYMBOLS - UnquotedString - none - none - makefile_variable - Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile. - none - false - none - - - hal.make.cc_post_process - CC_POST_PROCESS - UnquotedString - none - none - makefile_variable - Command executed after each .c/.S file is compiled. - none - false - none - - - hal.make.cxx_post_process - CXX_POST_PROCESS - UnquotedString - none - none - makefile_variable - Command executed before each C++ file is compiled. - none - false - none - - - hal.make.cc - CC - UnquotedString - nios2-elf-gcc -xc - nios2-elf-gcc -xc - makefile_variable - C compiler command. - none - false - none - - - hal.make.bsp_cxx_flags - BSP_CXXFLAGS - UnquotedString - none - none - makefile_variable - Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile. - none - false - none - - - hal.make.bsp_inc_dirs - BSP_INC_DIRS - UnquotedString - none - none - makefile_variable - Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile. - none - false - none - - - hal.make.cxx - CXX - UnquotedString - nios2-elf-gcc -xc++ - nios2-elf-gcc -xc++ - makefile_variable - C++ compiler command. - none - false - none - - - hal.make.bsp_cflags_user_flags - BSP_CFLAGS_USER_FLAGS - UnquotedString - none - none - makefile_variable - Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile. - none - false - none - - - hal.make.ignore_system_derived.sopc_system_id - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk. - none - false - none - - - hal.make.ignore_system_derived.sopc_system_timestamp - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk. - none - false - none - - - hal.make.ignore_system_derived.sopc_system_base_address - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk. - none - false - none - - - hal.make.ignore_system_derived.sopc_simulation_enabled - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. - none - false - none - - - hal.make.ignore_system_derived.fpu_present - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system. - none - false - none - - - hal.make.ignore_system_derived.hardware_multiplier_present - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system. - none - false - none - - - hal.make.ignore_system_derived.hardware_mulx_present - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system. - none - false - none - - - hal.make.ignore_system_derived.hardware_divide_present - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system. - none - false - none - - - hal.make.ignore_system_derived.debug_core_present - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system. - none - false - none - - - hal.make.ignore_system_derived.big_endian - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system. - none - false - none - - - hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system. - none - false - none - - - hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system. - none - false - none - - - hal.enable_exit - ALT_NO_EXIT - Boolean - 1 - 1 - public_mk_define - Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint - none - false - none - - - hal.enable_small_c_library - NONE - Boolean - 0 - 0 - public_mk_define - Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. - none - false - common - - - hal.enable_clean_exit - ALT_NO_CLEAN_EXIT - Boolean - 1 - 1 - public_mk_define - When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk. - none - false - none - - - hal.enable_runtime_stack_checking - ALT_STACK_CHECK - Boolean - 0 - 0 - public_mk_define - Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk. - none - false - none - - - hal.enable_gprof - ALT_PROVIDE_GMON - Boolean - 0 - 0 - public_mk_define - Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. - none - false - common - - - hal.enable_c_plus_plus - ALT_NO_C_PLUS_PLUS - Boolean - 1 - 1 - public_mk_define - Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint. - none - false - none - - - hal.enable_reduced_device_drivers - ALT_USE_SMALL_DRIVERS - Boolean - 0 - 0 - public_mk_define - Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk. - none - false - common - - - hal.enable_lightweight_device_driver_api - ALT_USE_DIRECT_DRIVERS - Boolean - 0 - 0 - public_mk_define - Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. - The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true. - false - none - - - hal.enable_mul_div_emulation - ALT_NO_INSTRUCTION_EMULATION - Boolean - 0 - 0 - public_mk_define - Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk. - none - false - none - - - hal.enable_sim_optimize - ALT_SIM_OPTIMIZE - Boolean - 0 - 0 - public_mk_define - The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. - When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware. - false - common - - - hal.enable_sopc_sysid_check - NONE - Boolean - 1 - 1 - public_mk_define - Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk. - none - false - none - - - hal.custom_newlib_flags - CUSTOM_NEWLIB_FLAGS - UnquotedString - none - none - public_mk_define - Build a custom version of newlib with the specified space-separated compiler flags. - The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP. - false - none - - - hal.log_flags - ALT_LOG_FLAGS - DecimalNumber - 0 - 0 - public_mk_define - The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3. - hal.log_port must be set for this to be used. - false - none - - - altera_avalon_jtag_uart_driver.enable_small_driver - ALTERA_AVALON_JTAG_UART_SMALL - BooleanDefineOnly - false - false - public_mk_define - Small-footprint (polled mode) driver - none - false - - - - altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error - ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR - BooleanDefineOnly - false - false - public_mk_define - Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery. - none - false - - - - onchip_memory - 0x00000000 - 0x00031FFF - 204800 - memory - - - lcd_on - 0x00041010 - 0x0004101F - 16 - - - - lcd_blon - 0x00041020 - 0x0004102F - 16 - - - - lcd_16207_0 - 0x00041030 - 0x0004103F - 16 - printable - - - hex7 - 0x00041040 - 0x0004104F - 16 - - - - hex6 - 0x00041050 - 0x0004105F - 16 - - - - hex5 - 0x00041060 - 0x0004106F - 16 - - - - hex4 - 0x00041070 - 0x0004107F - 16 - - - - hex3 - 0x00041080 - 0x0004108F - 16 - - - - hex2 - 0x00041090 - 0x0004109F - 16 - - - - hex1 - 0x000410A0 - 0x000410AF - 16 - - - - hex0 - 0x000410B0 - 0x000410BF - 16 - - - - push_switches - 0x000410C0 - 0x000410CF - 16 - - - - switches - 0x000410D0 - 0x000410DF - 16 - - - - LEDRs - 0x000410E0 - 0x000410EF - 16 - - - - LEDs - 0x000410F0 - 0x000410FF - 16 - - - - jtag_uart - 0x00041100 - 0x00041107 - 8 - printable - - - .text - onchip_memory - - - .rodata - onchip_memory - - - .rwdata - onchip_memory - - - .bss - onchip_memory - - - .heap - onchip_memory - - - .stack - onchip_memory - - \ No newline at end of file diff --git a/software/DE2_115_ASM_bsp/summary.html b/software/DE2_115_ASM_bsp/summary.html deleted file mode 100644 index 285ce87..0000000 --- a/software/DE2_115_ASM_bsp/summary.html +++ /dev/null @@ -1,2047 +0,0 @@ - -Altera Nios II BSP Summary - -

BSP Description

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BSP Type:hal
SOPC Design File:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo
Quartus JDI File:default
CPU:nios2_processor
BSP Settings File:.\settings.bsp
BSP Version:default
BSP Generated On:2016/12/22 10:07:59
BSP Generated Timestamp:1482368879543
BSP Generated Location:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\DE2_115_ASM_bsp
-
-

Nios II Memory Map

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slave DescriptorAddress RangeSizeAttributes
jtag_uart0x00041100 - 0x000411078printable
LEDs0x000410F0 - 0x000410FF16 
LEDRs0x000410E0 - 0x000410EF16 
switches0x000410D0 - 0x000410DF16 
push_switches0x000410C0 - 0x000410CF16 
hex00x000410B0 - 0x000410BF16 
hex10x000410A0 - 0x000410AF16 
hex20x00041090 - 0x0004109F16 
hex30x00041080 - 0x0004108F16 
hex40x00041070 - 0x0004107F16 
hex50x00041060 - 0x0004106F16 
hex60x00041050 - 0x0004105F16 
hex70x00041040 - 0x0004104F16 
lcd_16207_00x00041030 - 0x0004103F16printable
lcd_blon0x00041020 - 0x0004102F16 
lcd_on0x00041010 - 0x0004101F16 
onchip_memory0x00000000 - 0x00031FFF204800memory
-
-
-

Linker Regions

- - - - -
RegionAddress RangeSizeMemoryOffset
-
-
-

Linker Section Mappings

- - - - - - - - - - - - - - - - - - - - - - -
SectionRegion
.textonchip_memory
.rodataonchip_memory
.rwdataonchip_memory
.bssonchip_memory
.heaponchip_memory
.stackonchip_memory
-

Settings

- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error
Identifier:ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:altera_avalon_jtag_uart_driver.enable_small_driver
Identifier:ALTERA_AVALON_JTAG_UART_SMALL
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Small-footprint (polled mode) driver
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.custom_newlib_flags
Identifier:CUSTOM_NEWLIB_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Build a custom version of newlib with the specified space-separated compiler flags.
Restrictions:The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_c_plus_plus
Identifier:ALT_NO_C_PLUS_PLUS
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_clean_exit
Identifier:ALT_NO_CLEAN_EXIT
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_exit
Identifier:ALT_NO_EXIT
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_gprof
Identifier:ALT_PROVIDE_GMON
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_instruction_related_exceptions_api
Identifier:ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:system_h_define
Description:Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code.
Restrictions:These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_lightweight_device_driver_api
Identifier:ALT_USE_DIRECT_DRIVERS
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_mul_div_emulation
Identifier:ALT_NO_INSTRUCTION_EMULATION
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_reduced_device_drivers
Identifier:ALT_USE_SMALL_DRIVERS
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_runtime_stack_checking
Identifier:ALT_STACK_CHECK
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_sim_optimize
Identifier:ALT_SIM_OPTIMIZE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk.
Restrictions:When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_small_c_library
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_sopc_sysid_check
Identifier:NONE
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.allow_code_at_reset
Identifier:ALT_ALLOW_CODE_AT_RESET
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h.
Restrictions:If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.enable_alt_load
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory.
Restrictions:This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.enable_alt_load_copy_exceptions
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.enable_alt_load_copy_rodata
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.enable_alt_load_copy_rwdata
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.enable_exception_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x.
Restrictions:The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.enable_interrupt_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x.
Restrictions:The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.exception_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.exception_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the exception stack in bytes.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.interrupt_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.interrupt_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the interrupt stack in bytes.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.log_flags
Identifier:ALT_LOG_FLAGS
Default Value:0
Value:0
Type:DecimalNumber
Destination:public_mk_define
Description:The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3.
Restrictions:hal.log_port must be set for this to be used.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.log_port
Identifier:NONE
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ar
Identifier:AR
Default Value:nios2-elf-ar
Value:nios2-elf-ar
Type:UnquotedString
Destination:makefile_variable
Description:Archiver command. Creates library files.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ar_post_process
Identifier:AR_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after archiver execution.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ar_pre_process
Identifier:AR_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before archiver execution.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.as
Identifier:AS
Default Value:nios2-elf-gcc
Value:nios2-elf-gcc
Type:UnquotedString
Destination:makefile_variable
Description:Assembler command. Note that CC is used for .S files.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.as_post_process
Identifier:AS_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each assembly file is compiled.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.as_pre_process
Identifier:AS_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each assembly file is compiled.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.bsp_arflags
Identifier:BSP_ARFLAGS
Default Value:-src
Value:-src
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.bsp_asflags
Identifier:BSP_ASFLAGS
Default Value:-Wa,-gdwarf2
Value:-Wa,-gdwarf2
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.bsp_cflags_debug
Identifier:BSP_CFLAGS_DEBUG
Default Value:-g
Value:-g
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.bsp_cflags_defined_symbols
Identifier:BSP_CFLAGS_DEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.bsp_cflags_optimization
Identifier:BSP_CFLAGS_OPTIMIZATION
Default Value:-O0
Value:-O0
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.bsp_cflags_undefined_symbols
Identifier:BSP_CFLAGS_UNDEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.bsp_cflags_user_flags
Identifier:BSP_CFLAGS_USER_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.bsp_cflags_warnings
Identifier:BSP_CFLAGS_WARNINGS
Default Value:-Wall
Value:-Wall
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.bsp_cxx_flags
Identifier:BSP_CXXFLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.bsp_inc_dirs
Identifier:BSP_INC_DIRS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.build_post_process
Identifier:BUILD_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after BSP built.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.build_pre_process
Identifier:BUILD_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before BSP built.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.cc
Identifier:CC
Default Value:nios2-elf-gcc -xc
Value:nios2-elf-gcc -xc
Type:UnquotedString
Destination:makefile_variable
Description:C compiler command.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.cc_post_process
Identifier:CC_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each .c/.S file is compiled.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.cc_pre_process
Identifier:CC_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each .c/.S file is compiled.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.cxx
Identifier:CXX
Default Value:nios2-elf-gcc -xc++
Value:nios2-elf-gcc -xc++
Type:UnquotedString
Destination:makefile_variable
Description:C++ compiler command.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.cxx_post_process
Identifier:CXX_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.cxx_pre_process
Identifier:CXX_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.big_endian
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.debug_core_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.fpu_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.hardware_divide_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.hardware_multiplier_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.hardware_mulx_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.sopc_simulation_enabled
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.sopc_system_base_address
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.sopc_system_id
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.sopc_system_timestamp
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.rm
Identifier:RM
Default Value:rm -f
Value:rm -f
Type:UnquotedString
Destination:makefile_variable
Description:Command used to remove files during 'clean' target.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.max_file_descriptors
Identifier:ALT_MAX_FD
Default Value:32
Value:32
Type:DecimalNumber
Destination:system_h_define
Description:Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h.
Restrictions:If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.stderr
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.stdin
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.stdout
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.sys_clk_timer
Identifier:ALT_SYS_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.timestamp_timer
Identifier:ALT_TIMESTAMP_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h.
Restrictions:none
-
-
-
- - diff --git a/software/DE2_115_ASM_bsp/system.h b/software/DE2_115_ASM_bsp/system.h deleted file mode 100644 index 6ff122a..0000000 --- a/software/DE2_115_ASM_bsp/system.h +++ /dev/null @@ -1,617 +0,0 @@ -/* - * system.h - SOPC Builder system and BSP software package information - * - * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' - * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo - * - * Generated: Thu Dec 22 10:08:01 JST 2016 - */ - -/* - * DO NOT MODIFY THIS FILE - * - * Changing this file will have subtle consequences - * which will almost certainly lead to a nonfunctioning - * system. If you do modify this file, be aware that your - * changes will be overwritten and lost when this file - * is generated again. - * - * DO NOT MODIFY THIS FILE - */ - -/* - * License Agreement - * - * Copyright (c) 2008 - * Altera Corporation, San Jose, California, USA. - * All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * This agreement shall be governed in all respects by the laws of the State - * of California and by the laws of the United States of America. - */ - -#ifndef __SYSTEM_H_ -#define __SYSTEM_H_ - -/* Include definitions from linker script generator */ -#include "linker.h" - - -/* - * CPU configuration - * - */ - -#define ALT_CPU_ARCHITECTURE "altera_nios2_qsys" -#define ALT_CPU_BIG_ENDIAN 0 -#define ALT_CPU_BREAK_ADDR 0x40820 -#define ALT_CPU_CPU_FREQ 50000000u -#define ALT_CPU_CPU_ID_SIZE 1 -#define ALT_CPU_CPU_ID_VALUE 0x00000000 -#define ALT_CPU_CPU_IMPLEMENTATION "tiny" -#define ALT_CPU_DATA_ADDR_WIDTH 0x13 -#define ALT_CPU_DCACHE_LINE_SIZE 0 -#define ALT_CPU_DCACHE_LINE_SIZE_LOG2 0 -#define ALT_CPU_DCACHE_SIZE 0 -#define ALT_CPU_EXCEPTION_ADDR 0x20 -#define ALT_CPU_FLUSHDA_SUPPORTED -#define ALT_CPU_FREQ 50000000 -#define ALT_CPU_HARDWARE_DIVIDE_PRESENT 0 -#define ALT_CPU_HARDWARE_MULTIPLY_PRESENT 0 -#define ALT_CPU_HARDWARE_MULX_PRESENT 0 -#define ALT_CPU_HAS_DEBUG_CORE 1 -#define ALT_CPU_HAS_DEBUG_STUB -#define ALT_CPU_HAS_JMPI_INSTRUCTION -#define ALT_CPU_ICACHE_LINE_SIZE 0 -#define ALT_CPU_ICACHE_LINE_SIZE_LOG2 0 -#define ALT_CPU_ICACHE_SIZE 0 -#define ALT_CPU_INST_ADDR_WIDTH 0x13 -#define ALT_CPU_NAME "nios2_processor" -#define ALT_CPU_RESET_ADDR 0x0 - - -/* - * CPU configuration (with legacy prefix - don't use these anymore) - * - */ - -#define NIOS2_BIG_ENDIAN 0 -#define NIOS2_BREAK_ADDR 0x40820 -#define NIOS2_CPU_FREQ 50000000u -#define NIOS2_CPU_ID_SIZE 1 -#define NIOS2_CPU_ID_VALUE 0x00000000 -#define NIOS2_CPU_IMPLEMENTATION "tiny" -#define NIOS2_DATA_ADDR_WIDTH 0x13 -#define NIOS2_DCACHE_LINE_SIZE 0 -#define NIOS2_DCACHE_LINE_SIZE_LOG2 0 -#define NIOS2_DCACHE_SIZE 0 -#define NIOS2_EXCEPTION_ADDR 0x20 -#define NIOS2_FLUSHDA_SUPPORTED -#define NIOS2_HARDWARE_DIVIDE_PRESENT 0 -#define NIOS2_HARDWARE_MULTIPLY_PRESENT 0 -#define NIOS2_HARDWARE_MULX_PRESENT 0 -#define NIOS2_HAS_DEBUG_CORE 1 -#define NIOS2_HAS_DEBUG_STUB -#define NIOS2_HAS_JMPI_INSTRUCTION -#define NIOS2_ICACHE_LINE_SIZE 0 -#define NIOS2_ICACHE_LINE_SIZE_LOG2 0 -#define NIOS2_ICACHE_SIZE 0 -#define NIOS2_INST_ADDR_WIDTH 0x13 -#define NIOS2_RESET_ADDR 0x0 - - -/* - * Define for each module class mastered by the CPU - * - */ - -#define __ALTERA_AVALON_JTAG_UART -#define __ALTERA_AVALON_LCD_16207 -#define __ALTERA_AVALON_ONCHIP_MEMORY2 -#define __ALTERA_AVALON_PIO -#define __ALTERA_NIOS2_QSYS - - -/* - * LEDRs configuration - * - */ - -#define ALT_MODULE_CLASS_LEDRs altera_avalon_pio -#define LEDRS_BASE 0x410e0 -#define LEDRS_BIT_CLEARING_EDGE_REGISTER 0 -#define LEDRS_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define LEDRS_CAPTURE 0 -#define LEDRS_DATA_WIDTH 18 -#define LEDRS_DO_TEST_BENCH_WIRING 0 -#define LEDRS_DRIVEN_SIM_VALUE 0 -#define LEDRS_EDGE_TYPE "NONE" -#define LEDRS_FREQ 50000000 -#define LEDRS_HAS_IN 0 -#define LEDRS_HAS_OUT 1 -#define LEDRS_HAS_TRI 0 -#define LEDRS_IRQ -1 -#define LEDRS_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define LEDRS_IRQ_TYPE "NONE" -#define LEDRS_NAME "/dev/LEDRs" -#define LEDRS_RESET_VALUE 0 -#define LEDRS_SPAN 16 -#define LEDRS_TYPE "altera_avalon_pio" - - -/* - * LEDs configuration - * - */ - -#define ALT_MODULE_CLASS_LEDs altera_avalon_pio -#define LEDS_BASE 0x410f0 -#define LEDS_BIT_CLEARING_EDGE_REGISTER 0 -#define LEDS_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define LEDS_CAPTURE 0 -#define LEDS_DATA_WIDTH 8 -#define LEDS_DO_TEST_BENCH_WIRING 0 -#define LEDS_DRIVEN_SIM_VALUE 0 -#define LEDS_EDGE_TYPE "NONE" -#define LEDS_FREQ 50000000 -#define LEDS_HAS_IN 0 -#define LEDS_HAS_OUT 1 -#define LEDS_HAS_TRI 0 -#define LEDS_IRQ -1 -#define LEDS_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define LEDS_IRQ_TYPE "NONE" -#define LEDS_NAME "/dev/LEDs" -#define LEDS_RESET_VALUE 0 -#define LEDS_SPAN 16 -#define LEDS_TYPE "altera_avalon_pio" - - -/* - * System configuration - * - */ - -#define ALT_DEVICE_FAMILY "Cyclone IV E" -#define ALT_ENHANCED_INTERRUPT_API_PRESENT -#define ALT_IRQ_BASE NULL -#define ALT_LOG_PORT "/dev/null" -#define ALT_LOG_PORT_BASE 0x0 -#define ALT_LOG_PORT_DEV null -#define ALT_LOG_PORT_TYPE "" -#define ALT_NUM_EXTERNAL_INTERRUPT_CONTROLLERS 0 -#define ALT_NUM_INTERNAL_INTERRUPT_CONTROLLERS 1 -#define ALT_NUM_INTERRUPT_CONTROLLERS 1 -#define ALT_STDERR "/dev/jtag_uart" -#define ALT_STDERR_BASE 0x41100 -#define ALT_STDERR_DEV jtag_uart -#define ALT_STDERR_IS_JTAG_UART -#define ALT_STDERR_PRESENT -#define ALT_STDERR_TYPE "altera_avalon_jtag_uart" -#define ALT_STDIN "/dev/jtag_uart" -#define ALT_STDIN_BASE 0x41100 -#define ALT_STDIN_DEV jtag_uart -#define ALT_STDIN_IS_JTAG_UART -#define ALT_STDIN_PRESENT -#define ALT_STDIN_TYPE "altera_avalon_jtag_uart" -#define ALT_STDOUT "/dev/jtag_uart" -#define ALT_STDOUT_BASE 0x41100 -#define ALT_STDOUT_DEV jtag_uart -#define ALT_STDOUT_IS_JTAG_UART -#define ALT_STDOUT_PRESENT -#define ALT_STDOUT_TYPE "altera_avalon_jtag_uart" -#define ALT_SYSTEM_NAME "nios_system" - - -/* - * hal configuration - * - */ - -#define ALT_MAX_FD 32 -#define ALT_SYS_CLK none -#define ALT_TIMESTAMP_CLK none - - -/* - * hex0 configuration - * - */ - -#define ALT_MODULE_CLASS_hex0 altera_avalon_pio -#define HEX0_BASE 0x410b0 -#define HEX0_BIT_CLEARING_EDGE_REGISTER 0 -#define HEX0_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define HEX0_CAPTURE 0 -#define HEX0_DATA_WIDTH 7 -#define HEX0_DO_TEST_BENCH_WIRING 0 -#define HEX0_DRIVEN_SIM_VALUE 0 -#define HEX0_EDGE_TYPE "NONE" -#define HEX0_FREQ 50000000 -#define HEX0_HAS_IN 0 -#define HEX0_HAS_OUT 1 -#define HEX0_HAS_TRI 0 -#define HEX0_IRQ -1 -#define HEX0_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define HEX0_IRQ_TYPE "NONE" -#define HEX0_NAME "/dev/hex0" -#define HEX0_RESET_VALUE 0 -#define HEX0_SPAN 16 -#define HEX0_TYPE "altera_avalon_pio" - - -/* - * hex1 configuration - * - */ - -#define ALT_MODULE_CLASS_hex1 altera_avalon_pio -#define HEX1_BASE 0x410a0 -#define HEX1_BIT_CLEARING_EDGE_REGISTER 0 -#define HEX1_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define HEX1_CAPTURE 0 -#define HEX1_DATA_WIDTH 7 -#define HEX1_DO_TEST_BENCH_WIRING 0 -#define HEX1_DRIVEN_SIM_VALUE 0 -#define HEX1_EDGE_TYPE "NONE" -#define HEX1_FREQ 50000000 -#define HEX1_HAS_IN 0 -#define HEX1_HAS_OUT 1 -#define HEX1_HAS_TRI 0 -#define HEX1_IRQ -1 -#define HEX1_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define HEX1_IRQ_TYPE "NONE" -#define HEX1_NAME "/dev/hex1" -#define HEX1_RESET_VALUE 0 -#define HEX1_SPAN 16 -#define HEX1_TYPE "altera_avalon_pio" - - -/* - * hex2 configuration - * - */ - -#define ALT_MODULE_CLASS_hex2 altera_avalon_pio -#define HEX2_BASE 0x41090 -#define HEX2_BIT_CLEARING_EDGE_REGISTER 0 -#define HEX2_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define HEX2_CAPTURE 0 -#define HEX2_DATA_WIDTH 7 -#define HEX2_DO_TEST_BENCH_WIRING 0 -#define HEX2_DRIVEN_SIM_VALUE 0 -#define HEX2_EDGE_TYPE "NONE" -#define HEX2_FREQ 50000000 -#define HEX2_HAS_IN 0 -#define HEX2_HAS_OUT 1 -#define HEX2_HAS_TRI 0 -#define HEX2_IRQ -1 -#define HEX2_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define HEX2_IRQ_TYPE "NONE" -#define HEX2_NAME "/dev/hex2" -#define HEX2_RESET_VALUE 0 -#define HEX2_SPAN 16 -#define HEX2_TYPE "altera_avalon_pio" - - -/* - * hex3 configuration - * - */ - -#define ALT_MODULE_CLASS_hex3 altera_avalon_pio -#define HEX3_BASE 0x41080 -#define HEX3_BIT_CLEARING_EDGE_REGISTER 0 -#define HEX3_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define HEX3_CAPTURE 0 -#define HEX3_DATA_WIDTH 7 -#define HEX3_DO_TEST_BENCH_WIRING 0 -#define HEX3_DRIVEN_SIM_VALUE 0 -#define HEX3_EDGE_TYPE "NONE" -#define HEX3_FREQ 50000000 -#define HEX3_HAS_IN 0 -#define HEX3_HAS_OUT 1 -#define HEX3_HAS_TRI 0 -#define HEX3_IRQ -1 -#define HEX3_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define HEX3_IRQ_TYPE "NONE" -#define HEX3_NAME "/dev/hex3" -#define HEX3_RESET_VALUE 0 -#define HEX3_SPAN 16 -#define HEX3_TYPE "altera_avalon_pio" - - -/* - * hex4 configuration - * - */ - -#define ALT_MODULE_CLASS_hex4 altera_avalon_pio -#define HEX4_BASE 0x41070 -#define HEX4_BIT_CLEARING_EDGE_REGISTER 0 -#define HEX4_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define HEX4_CAPTURE 0 -#define HEX4_DATA_WIDTH 7 -#define HEX4_DO_TEST_BENCH_WIRING 0 -#define HEX4_DRIVEN_SIM_VALUE 0 -#define HEX4_EDGE_TYPE "NONE" -#define HEX4_FREQ 50000000 -#define HEX4_HAS_IN 0 -#define HEX4_HAS_OUT 1 -#define HEX4_HAS_TRI 0 -#define HEX4_IRQ -1 -#define HEX4_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define HEX4_IRQ_TYPE "NONE" -#define HEX4_NAME "/dev/hex4" -#define HEX4_RESET_VALUE 0 -#define HEX4_SPAN 16 -#define HEX4_TYPE "altera_avalon_pio" - - -/* - * hex5 configuration - * - */ - -#define ALT_MODULE_CLASS_hex5 altera_avalon_pio -#define HEX5_BASE 0x41060 -#define HEX5_BIT_CLEARING_EDGE_REGISTER 0 -#define HEX5_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define HEX5_CAPTURE 0 -#define HEX5_DATA_WIDTH 7 -#define HEX5_DO_TEST_BENCH_WIRING 0 -#define HEX5_DRIVEN_SIM_VALUE 0 -#define HEX5_EDGE_TYPE "NONE" -#define HEX5_FREQ 50000000 -#define HEX5_HAS_IN 0 -#define HEX5_HAS_OUT 1 -#define HEX5_HAS_TRI 0 -#define HEX5_IRQ -1 -#define HEX5_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define HEX5_IRQ_TYPE "NONE" -#define HEX5_NAME "/dev/hex5" -#define HEX5_RESET_VALUE 0 -#define HEX5_SPAN 16 -#define HEX5_TYPE "altera_avalon_pio" - - -/* - * hex6 configuration - * - */ - -#define ALT_MODULE_CLASS_hex6 altera_avalon_pio -#define HEX6_BASE 0x41050 -#define HEX6_BIT_CLEARING_EDGE_REGISTER 0 -#define HEX6_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define HEX6_CAPTURE 0 -#define HEX6_DATA_WIDTH 7 -#define HEX6_DO_TEST_BENCH_WIRING 0 -#define HEX6_DRIVEN_SIM_VALUE 0 -#define HEX6_EDGE_TYPE "NONE" -#define HEX6_FREQ 50000000 -#define HEX6_HAS_IN 0 -#define HEX6_HAS_OUT 1 -#define HEX6_HAS_TRI 0 -#define HEX6_IRQ -1 -#define HEX6_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define HEX6_IRQ_TYPE "NONE" -#define HEX6_NAME "/dev/hex6" -#define HEX6_RESET_VALUE 0 -#define HEX6_SPAN 16 -#define HEX6_TYPE "altera_avalon_pio" - - -/* - * hex7 configuration - * - */ - -#define ALT_MODULE_CLASS_hex7 altera_avalon_pio -#define HEX7_BASE 0x41040 -#define HEX7_BIT_CLEARING_EDGE_REGISTER 0 -#define HEX7_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define HEX7_CAPTURE 0 -#define HEX7_DATA_WIDTH 7 -#define HEX7_DO_TEST_BENCH_WIRING 0 -#define HEX7_DRIVEN_SIM_VALUE 0 -#define HEX7_EDGE_TYPE "NONE" -#define HEX7_FREQ 50000000 -#define HEX7_HAS_IN 0 -#define HEX7_HAS_OUT 1 -#define HEX7_HAS_TRI 0 -#define HEX7_IRQ -1 -#define HEX7_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define HEX7_IRQ_TYPE "NONE" -#define HEX7_NAME "/dev/hex7" -#define HEX7_RESET_VALUE 0 -#define HEX7_SPAN 16 -#define HEX7_TYPE "altera_avalon_pio" - - -/* - * jtag_uart configuration - * - */ - -#define ALT_MODULE_CLASS_jtag_uart altera_avalon_jtag_uart -#define JTAG_UART_BASE 0x41100 -#define JTAG_UART_IRQ 5 -#define JTAG_UART_IRQ_INTERRUPT_CONTROLLER_ID 0 -#define JTAG_UART_NAME "/dev/jtag_uart" -#define JTAG_UART_READ_DEPTH 64 -#define JTAG_UART_READ_THRESHOLD 8 -#define JTAG_UART_SPAN 8 -#define JTAG_UART_TYPE "altera_avalon_jtag_uart" -#define JTAG_UART_WRITE_DEPTH 64 -#define JTAG_UART_WRITE_THRESHOLD 8 - - -/* - * lcd_16207_0 configuration - * - */ - -#define ALT_MODULE_CLASS_lcd_16207_0 altera_avalon_lcd_16207 -#define LCD_16207_0_BASE 0x41030 -#define LCD_16207_0_IRQ -1 -#define LCD_16207_0_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define LCD_16207_0_NAME "/dev/lcd_16207_0" -#define LCD_16207_0_SPAN 16 -#define LCD_16207_0_TYPE "altera_avalon_lcd_16207" - - -/* - * lcd_blon configuration - * - */ - -#define ALT_MODULE_CLASS_lcd_blon altera_avalon_pio -#define LCD_BLON_BASE 0x41020 -#define LCD_BLON_BIT_CLEARING_EDGE_REGISTER 0 -#define LCD_BLON_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define LCD_BLON_CAPTURE 0 -#define LCD_BLON_DATA_WIDTH 1 -#define LCD_BLON_DO_TEST_BENCH_WIRING 0 -#define LCD_BLON_DRIVEN_SIM_VALUE 0 -#define LCD_BLON_EDGE_TYPE "NONE" -#define LCD_BLON_FREQ 50000000 -#define LCD_BLON_HAS_IN 0 -#define LCD_BLON_HAS_OUT 1 -#define LCD_BLON_HAS_TRI 0 -#define LCD_BLON_IRQ -1 -#define LCD_BLON_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define LCD_BLON_IRQ_TYPE "NONE" -#define LCD_BLON_NAME "/dev/lcd_blon" -#define LCD_BLON_RESET_VALUE 0 -#define LCD_BLON_SPAN 16 -#define LCD_BLON_TYPE "altera_avalon_pio" - - -/* - * lcd_on configuration - * - */ - -#define ALT_MODULE_CLASS_lcd_on altera_avalon_pio -#define LCD_ON_BASE 0x41010 -#define LCD_ON_BIT_CLEARING_EDGE_REGISTER 0 -#define LCD_ON_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define LCD_ON_CAPTURE 0 -#define LCD_ON_DATA_WIDTH 1 -#define LCD_ON_DO_TEST_BENCH_WIRING 0 -#define LCD_ON_DRIVEN_SIM_VALUE 0 -#define LCD_ON_EDGE_TYPE "NONE" -#define LCD_ON_FREQ 50000000 -#define LCD_ON_HAS_IN 0 -#define LCD_ON_HAS_OUT 1 -#define LCD_ON_HAS_TRI 0 -#define LCD_ON_IRQ -1 -#define LCD_ON_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define LCD_ON_IRQ_TYPE "NONE" -#define LCD_ON_NAME "/dev/lcd_on" -#define LCD_ON_RESET_VALUE 0 -#define LCD_ON_SPAN 16 -#define LCD_ON_TYPE "altera_avalon_pio" - - -/* - * onchip_memory configuration - * - */ - -#define ALT_MODULE_CLASS_onchip_memory altera_avalon_onchip_memory2 -#define ONCHIP_MEMORY_ALLOW_IN_SYSTEM_MEMORY_CONTENT_EDITOR 0 -#define ONCHIP_MEMORY_ALLOW_MRAM_SIM_CONTENTS_ONLY_FILE 0 -#define ONCHIP_MEMORY_BASE 0x0 -#define ONCHIP_MEMORY_CONTENTS_INFO "" -#define ONCHIP_MEMORY_DUAL_PORT 0 -#define ONCHIP_MEMORY_GUI_RAM_BLOCK_TYPE "AUTO" -#define ONCHIP_MEMORY_INIT_CONTENTS_FILE "nios_system_onchip_memory" -#define ONCHIP_MEMORY_INIT_MEM_CONTENT 1 -#define ONCHIP_MEMORY_INSTANCE_ID "NONE" -#define ONCHIP_MEMORY_IRQ -1 -#define ONCHIP_MEMORY_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define ONCHIP_MEMORY_NAME "/dev/onchip_memory" -#define ONCHIP_MEMORY_NON_DEFAULT_INIT_FILE_ENABLED 0 -#define ONCHIP_MEMORY_RAM_BLOCK_TYPE "AUTO" -#define ONCHIP_MEMORY_READ_DURING_WRITE_MODE "DONT_CARE" -#define ONCHIP_MEMORY_SINGLE_CLOCK_OP 0 -#define ONCHIP_MEMORY_SIZE_MULTIPLE 1 -#define ONCHIP_MEMORY_SIZE_VALUE 204800 -#define ONCHIP_MEMORY_SPAN 204800 -#define ONCHIP_MEMORY_TYPE "altera_avalon_onchip_memory2" -#define ONCHIP_MEMORY_WRITABLE 1 - - -/* - * push_switches configuration - * - */ - -#define ALT_MODULE_CLASS_push_switches altera_avalon_pio -#define PUSH_SWITCHES_BASE 0x410c0 -#define PUSH_SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 -#define PUSH_SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define PUSH_SWITCHES_CAPTURE 0 -#define PUSH_SWITCHES_DATA_WIDTH 3 -#define PUSH_SWITCHES_DO_TEST_BENCH_WIRING 0 -#define PUSH_SWITCHES_DRIVEN_SIM_VALUE 0 -#define PUSH_SWITCHES_EDGE_TYPE "NONE" -#define PUSH_SWITCHES_FREQ 50000000 -#define PUSH_SWITCHES_HAS_IN 1 -#define PUSH_SWITCHES_HAS_OUT 0 -#define PUSH_SWITCHES_HAS_TRI 0 -#define PUSH_SWITCHES_IRQ -1 -#define PUSH_SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define PUSH_SWITCHES_IRQ_TYPE "NONE" -#define PUSH_SWITCHES_NAME "/dev/push_switches" -#define PUSH_SWITCHES_RESET_VALUE 0 -#define PUSH_SWITCHES_SPAN 16 -#define PUSH_SWITCHES_TYPE "altera_avalon_pio" - - -/* - * switches configuration - * - */ - -#define ALT_MODULE_CLASS_switches altera_avalon_pio -#define SWITCHES_BASE 0x410d0 -#define SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 -#define SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define SWITCHES_CAPTURE 0 -#define SWITCHES_DATA_WIDTH 18 -#define SWITCHES_DO_TEST_BENCH_WIRING 0 -#define SWITCHES_DRIVEN_SIM_VALUE 0 -#define SWITCHES_EDGE_TYPE "NONE" -#define SWITCHES_FREQ 50000000 -#define SWITCHES_HAS_IN 1 -#define SWITCHES_HAS_OUT 0 -#define SWITCHES_HAS_TRI 0 -#define SWITCHES_IRQ -1 -#define SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define SWITCHES_IRQ_TYPE "NONE" -#define SWITCHES_NAME "/dev/switches" -#define SWITCHES_RESET_VALUE 0 -#define SWITCHES_SPAN 16 -#define SWITCHES_TYPE "altera_avalon_pio" - -#endif /* __SYSTEM_H_ */ diff --git a/software/qsys_tutorial_lcd4/.cproject b/software/qsys_tutorial_lcd4/.cproject deleted file mode 100644 index 32f327b..0000000 --- a/software/qsys_tutorial_lcd4/.cproject +++ /dev/null @@ -1,508 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - make - - mem_init_install - true - false - false - - - make - - mem_init_generate - true - false - false - - - make - - help - true - false - false - - - - diff --git a/software/qsys_tutorial_lcd4/.force_relink b/software/qsys_tutorial_lcd4/.force_relink deleted file mode 100644 index e69de29..0000000 --- a/software/qsys_tutorial_lcd4/.force_relink +++ /dev/null diff --git a/software/qsys_tutorial_lcd4/LCD.c b/software/qsys_tutorial_lcd4/LCD.c deleted file mode 100644 index 10ff2ea..0000000 --- a/software/qsys_tutorial_lcd4/LCD.c +++ /dev/null @@ -1,50 +0,0 @@ -#include -#include -#include -#include "system.h" -#include "LCD.h" -//------------------------------------------------------------------------- -void LCD_Init() -{ - lcd_write_cmd(LCD_16207_0_BASE,0x38); - usleep(2000); - lcd_write_cmd(LCD_16207_0_BASE,0x0C); - usleep(2000); - lcd_write_cmd(LCD_16207_0_BASE,0x01); - usleep(2000); - lcd_write_cmd(LCD_16207_0_BASE,0x06); - usleep(2000); - lcd_write_cmd(LCD_16207_0_BASE,0x80); - usleep(2000); -} -//------------------------------------------------------------------------- -void LCD_Show_Text(const char* Text) -{ - int i; - for(i=0;i /c/dir). This will ensture -# paths are readable by GNU Make. -# -# If COMSPEC/ComSpec is not defined, Make is launched from linux, and no -# adjustment is necessary -# -#------------------------------------------------------------------------------ - -ifndef COMSPEC -ifdef ComSpec -COMSPEC = $(ComSpec) -endif # ComSpec -endif # COMSPEC - -ifdef COMSPEC # if Windows OS - -ifeq ($(MAKE_VERSION),3.81) -# -# adjust-path/adjust-path-mixed for Mingw Gnu Make on Windows -# -# Example Usage: -# $(call adjust-path,c:/aaa/bbb) => /c/aaa/bbb -# $(call adjust-path-mixed,/c/aaa/bbb) => c:/aaa/bbb -# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) => c:/aaa/bbb -# - -# -# adjust-path -# - converts back slash characters into forward slashes -# - if input arg ($1) is an empty string then return the empty string -# - if input arg ($1) does not contain the string ":/", then return input arg -# - using sed, convert mixed path [c:/...] into mingw path [/c/...] -define adjust-path -$(strip \ -$(if $1,\ -$(if $(findstring :/,$(subst \,/,$1)),\ -$(shell echo $(subst \,/,$1) | sed -e 's,^\([a-zA-Z]\):/,/\1/,'),\ -$(subst \,/,$1)))) -endef - -# -# adjust-path-mixed -# - converts back slash characters into forward slashes -# - if input arg ($1) is an empty string then return the empty string -# - if input arg ($1) does not begin with a forward slash '/' char, then -# return input arg -# - using sed, convert mingw path [/c/...] or cygwin path [/c/cygdrive/...] -# into a mixed path [c:/...] -define adjust-path-mixed -$(strip \ -$(if $1,\ -$(if $(findstring $(subst \,/,$1),$(patsubst /%,%,$(subst \,/,$1))),\ -$(subst \,/,$1),\ -$(shell echo $(subst \,/,$1) | sed -e 's,^/cygdrive/\([a-zA-Z]\)/,\1:/,' -e 's,^/\([a-zA-Z]\)/,\1:/,')))) -endef - -else # MAKE_VERSION != 3.81 (MAKE_VERSION == 3.80 or MAKE_VERSION == 3.79) -# -# adjust-path for Cygwin Gnu Make -# $(call adjust-path,c:/aaa/bbb) = /cygdrive/c/aaa/bbb -# $(call adjust-path-mixed,/cygdrive/c/aaa/bbb) = c:/aaa/bbb -# -adjust-path = $(if $1,$(shell cygpath -u "$1"),) -adjust-path-mixed = $(if $1,$(shell cygpath -m "$1"),) -endif - -else # !COMSPEC - -adjust-path = $1 -adjust-path-mixed = $1 - -endif # COMSPEC - - -#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv -# GENERATED SETTINGS START v -#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv - -#START GENERATED -ACTIVE_BUILD_CONFIG := default -BUILD_CONFIGS := default - -# The following TYPE comment allows tools to identify the 'type' of target this -# makefile is associated with. -# TYPE: APP_MAKEFILE - -# This following VERSION comment indicates the version of the tool used to -# generate this makefile. A makefile variable is provided for VERSION as well. -# ACDS_VERSION: 13.0sp1 -ACDS_VERSION := 13.0sp1 - -# This following BUILD_NUMBER comment indicates the build number of the tool -# used to generate this makefile. -# BUILD_NUMBER: 232 - -# Define path to the application ELF. -# It may be used by the makefile fragments so is defined before including them. -# -ELF := qsys_tutorial_lcd4.elf - -# Paths to C, C++, and assembly source files. -C_SRCS += LCD.c -C_SRCS += hello_world_small.c -C_SRCS += hex_encoder.c -C_SRCS += hex_out.c -C_SRCS += input_int.c -C_SRCS += inst_decoder.c -C_SRCS += sys_memory.c -C_SRCS += sys_register.c -C_SRCS += sys_except.c -C_SRCS += lcd_out.c -C_SRCS += sys_debug.c -C_SRCS += sys_prog.c -CXX_SRCS := -ASM_SRCS := - - -# Path to root of object file tree. -OBJ_ROOT_DIR := obj - -# Options to control objdump. -CREATE_OBJDUMP := 1 -OBJDUMP_INCLUDE_SOURCE := 1 -OBJDUMP_FULL_CONTENTS := 0 - -# Options to enable/disable optional files. -CREATE_ELF_DERIVED_FILES := 0 -CREATE_LINKER_MAP := 1 - -# Common arguments for ALT_CFLAGSs -APP_CFLAGS_DEFINED_SYMBOLS := -APP_CFLAGS_UNDEFINED_SYMBOLS := -APP_CFLAGS_OPTIMIZATION := -O0 -APP_CFLAGS_DEBUG_LEVEL := -g -APP_CFLAGS_WARNINGS := -Wall -APP_CFLAGS_USER_FLAGS := - -APP_ASFLAGS_USER := -APP_LDFLAGS_USER := - -# Linker options that have default values assigned later if not -# assigned here. -LINKER_SCRIPT := -CRT0 := -SYS_LIB := - -# Define path to the root of the BSP. -BSP_ROOT_DIR := ../qsys_tutorial_lcd4_bsp/ - -# List of application specific include directories, library directories and library names -APP_INCLUDE_DIRS := -APP_LIBRARY_DIRS := -APP_LIBRARY_NAMES := - -# Pre- and post- processor settings. -BUILD_PRE_PROCESS := -BUILD_POST_PROCESS := - -QUARTUS_PROJECT_DIR := ../../ - - -#END GENERATED - -#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -# GENERATED SETTINGS END ^ -#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - - -#------------------------------------------------------------------------------ -# DEFAULT TARGET -#------------------------------------------------------------------------------ - -# Define the variable used to echo output if not already defined. -ifeq ($(ECHO),) -ECHO := echo -endif - -# Put "all" rule before included makefile fragments because they may -# define rules and we don't want one of those to become the default rule. -.PHONY : all - -all: - @$(ECHO) [$(APP_NAME) build complete] - -all : build_pre_process libs app build_post_process - - -#------------------------------------------------------------------------------ -# VARIABLES DEPENDENT ON GENERATED CONTENT -#------------------------------------------------------------------------------ - -# Define object file directory per build configuration -CONFIG_OBJ_DIR := $(OBJ_ROOT_DIR)/$(ACTIVE_BUILD_CONFIG) - -ifeq ($(BSP_ROOT_DIR),) -$(error Edit Makefile and provide a value for BSP_ROOT_DIR) -endif - -ifeq ($(wildcard $(BSP_ROOT_DIR)),) -$(error BSP directory does not exist: $(BSP_ROOT_DIR)) -endif - -# Define absolute path to the root of the BSP. -ABS_BSP_ROOT_DIR := $(call adjust-path-mixed,$(shell cd "$(BSP_ROOT_DIR)"; pwd)) - -# Include makefile fragments. Define variable ALT_LIBRARY_ROOT_DIR before -# including each makefile fragment so that it knows the path to itself. -BSP_INCLUDE_FILE := $(BSP_ROOT_DIR)/public.mk -ALT_LIBRARY_ROOT_DIR := $(BSP_ROOT_DIR) -include $(BSP_INCLUDE_FILE) -# C2H will need this to touch the BSP public.mk and avoid the sopc file -# out-of-date error during a BSP make -ABS_BSP_INCLUDE_FILE := $(ABS_BSP_ROOT_DIR)/public.mk - - -ifneq ($(WARNING.SMALL_STACK_SIZE),) -# This WARNING is here to protect you from unknowingly using a very small stack -# If the warning is set, increase your stack size or enable the BSP small stack -# setting to eliminate the warning -$(warning WARNING: $(WARNING.SMALL_STACK_SIZE)) -endif - - -# If the BSP public.mk indicates that ALT_SIM_OPTIMIZE is set, rename the ELF -# by prefixing it with RUN_ON_HDL_SIMULATOR_ONLY_. -ifneq ($(filter -DALT_SIM_OPTIMIZE,$(ALT_CPPFLAGS)),) -ELF := RUN_ON_HDL_SIMULATOR_ONLY_$(ELF) -endif - -# If the BSP public.mk indicates that ALT_PROVIDE_GMON is set, add option to -# download_elf target -ifneq ($(filter -DALT_PROVIDE_GMON,$(ALT_CPPFLAGS)),) -GMON_OUT_FILENAME := gmon.out -WRITE_GMON_OPTION := --write-gmon $(GMON_OUT_FILENAME) -endif - -# Name of ELF application. -APP_NAME := $(basename $(ELF)) - -# Set to defaults if variables not already defined in settings. -ifeq ($(LINKER_SCRIPT),) -LINKER_SCRIPT := $(BSP_LINKER_SCRIPT) -endif -ifeq ($(CRT0),) -CRT0 := $(BSP_CRT0) -endif -ifeq ($(SYS_LIB),) -SYS_LIB := $(BSP_SYS_LIB) -endif - -OBJDUMP_NAME := $(APP_NAME).objdump -OBJDUMP_FLAGS := --disassemble --syms --all-header -ifeq ($(OBJDUMP_INCLUDE_SOURCE),1) -OBJDUMP_FLAGS += --source -endif -ifeq ($(OBJDUMP_FULL_CONTENTS),1) -OBJDUMP_FLAGS += --full-contents -endif - -# Create list of linker dependencies (*.a files). -APP_LDDEPS := $(ALT_LDDEPS) $(LDDEPS) - -# Take lists and add required prefixes. -APP_INC_DIRS := $(addprefix -I, $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) -ASM_INC_PREFIX := -Wa,-I -APP_ASM_INC_DIRS := $(addprefix $(ASM_INC_PREFIX), $(ALT_INCLUDE_DIRS) $(APP_INCLUDE_DIRS) $(INC_DIRS)) -APP_LIB_DIRS := $(addprefix -L, $(ALT_LIBRARY_DIRS) $(APP_LIBRARY_DIRS) $(LIB_DIRS)) -APP_LIBS := $(addprefix -l, $(ALT_LIBRARY_NAMES) $(APP_LIBRARY_NAMES) $(LIBS)) - -ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) - -# -# Avoid Nios II GCC 3.X options. -# - -# Detect if small newlib C library is requested. -# If yes, remove the -msmallc option because it is -# now handled by other means. -ifneq ($(filter -msmallc,$(ALT_LDFLAGS)),) - ALT_LDFLAGS := $(filter-out -msmallc,$(ALT_LDFLAGS)) - ALT_C_LIBRARY := smallc -else - ALT_C_LIBRARY := c -endif - -# Put each BSP dependent library in a group to avoid circular dependencies. -APP_BSP_DEP_LIBS := $(foreach l,$(ALT_BSP_DEP_LIBRARY_NAMES),-Wl,--start-group -l$(ALT_C_LIBRARY) -lgcc -l$(l) -Wl,--end-group) - -else # !AVOID_NIOS2_GCC3_OPTIONS - -# -# Use Nios II GCC 3.X options. -# -APP_BSP_DEP_LIBS := $(addprefix -msys-lib=, $(ALT_BSP_DEP_LIBRARY_NAMES)) - -endif # !AVOID_NIOS2_GCC3_OPTIONS - -# Arguments for the C preprocessor, C/C++ compiler, assembler, and linker. -APP_CFLAGS := $(APP_CFLAGS_DEFINED_SYMBOLS) \ - $(APP_CFLAGS_UNDEFINED_SYMBOLS) \ - $(APP_CFLAGS_OPTIMIZATION) \ - $(APP_CFLAGS_DEBUG_LEVEL) \ - $(APP_CFLAGS_WARNINGS) \ - $(APP_CFLAGS_USER_FLAGS) \ - $(ALT_CFLAGS) \ - $(CFLAGS) - -# Arguments only for the C++ compiler. -APP_CXXFLAGS := $(ALT_CXXFLAGS) $(CXXFLAGS) - -# Arguments only for the C preprocessor. -# Prefix each include directory with -I. -APP_CPPFLAGS := $(APP_INC_DIRS) \ - $(ALT_CPPFLAGS) \ - $(CPPFLAGS) - -# Arguments only for the assembler. -APP_ASFLAGS := $(APP_ASM_INC_DIRS) \ - $(ALT_ASFLAGS) \ - $(APP_ASFLAGS_USER) \ - $(ASFLAGS) - -# Arguments only for the linker. -APP_LDFLAGS := $(APP_LDFLAGS_USER) - -ifneq ($(LINKER_SCRIPT),) -APP_LDFLAGS += -T'$(LINKER_SCRIPT)' -endif - -ifneq ($(AVOID_NIOS2_GCC3_OPTIONS),) - -# Avoid Nios II GCC 3.x options. -ifneq ($(CRT0),) -APP_LDFLAGS += $(CRT0) -endif - -# The equivalent of the -msys-lib option is provided -# by the GROUP() command in the linker script. -# Note this means the SYS_LIB variable is now ignored. - -else # !AVOID_NIOS2_GCC3_OPTIONS - -# Use Nios II GCC 3.x options. -ifneq ($(CRT0),) -APP_LDFLAGS += -msys-crt0='$(CRT0)' -endif -ifneq ($(SYS_LIB),) -APP_LDFLAGS += -msys-lib=$(SYS_LIB) -endif - -endif # !AVOID_NIOS2_GCC3_OPTIONS - -APP_LDFLAGS += \ - $(APP_LIB_DIRS) \ - $(ALT_LDFLAGS) \ - $(LDFLAGS) - -LINKER_MAP_NAME := $(APP_NAME).map -ifeq ($(CREATE_LINKER_MAP), 1) -APP_LDFLAGS += -Wl,-Map=$(LINKER_MAP_NAME) -endif - -# QUARTUS_PROJECT_DIR and SOPC_NAME need to be defined if you want the -# mem_init_install target of the mem_init.mk (located in the associated BSP) -# to know how to copy memory initialization files (e.g. .dat, .hex) into -# directories required for Quartus compilation or RTL simulation. - -# Defining QUARTUS_PROJECT_DIR causes mem_init_install to copy memory -# initialization files into your Quartus project directory. This is required -# to provide the initial memory contents of FPGA memories that can be -# initialized by the programming file (.sof) or Hardcopy ROMs. It is also used -# for VHDL simulation of on-chip memories. - -# Defining SOPC_NAME causes the mem_init_install target to copy memory -# initialization files into your RTL simulation directory. This is required -# to provide the initial memory contents of all memories that can be -# initialized by RTL simulation. This variable should be set to the same name -# as your SOPC Builder system name. For example, if you have a system called -# "foo.sopc", this variable should be set to "foo". - -# If SOPC_NAME is not set and QUARTUS_PROJECT_DIR is set, then derive SOPC_NAME. -ifeq ($(SOPC_NAME),) -ifneq ($(QUARTUS_PROJECT_DIR),) -SOPC_NAME := $(basename $(notdir $(wildcard $(QUARTUS_PROJECT_DIR)/*.sopcinfo))) -endif -endif - -# Defining JDI_FILE is required to specify the JTAG Debug Information File -# path. This file is generated by Quartus, and is needed along with the -# .sopcinfo file to resolve processor instance ID's from names in a multi-CPU -# systems. For multi-CPU systems, the processor instance ID is used to select -# from multiple CPU's during ELF download. - -# Both JDI_FILE and SOPCINFO_FILE are provided by the BSP if they found during -# BSP creation. If JDI_FILE is not set and QUARTUS_PROJECT_DIR is set, then -# derive JDI_FILE. We do not attempt to derive SOPCINFO_FILE since there may be -# multiple .sopcinfo files in a Quartus project. -ifeq ($(JDI_FILE),) -ifneq ($(QUARTUS_PROJECT_DIR),) -JDI_FILE := $(wildcard $(QUARTUS_PROJECT_DIR)/*.jdi) -endif -endif - -# Path to root runtime directory used for hdl simulation -RUNTIME_ROOT_DIR := $(CONFIG_OBJ_DIR)/runtime - - - -#------------------------------------------------------------------------------ -# MAKEFILE INCLUDES DEPENDENT ON GENERATED CONTENT -#------------------------------------------------------------------------------ -# mem_init.mk is a generated makefile fragment. This file defines all targets -# used to generate HDL initialization simulation files and pre-initialized -# onchip memory files. -MEM_INIT_FILE := $(BSP_ROOT_DIR)/mem_init.mk -include $(MEM_INIT_FILE) - -# Create list of object files to be built using the list of source files. -# The source file hierarchy is preserved in the object tree. -# The supported file extensions are: -# -# .c - for C files -# .cxx .cc .cpp - for C++ files -# .S .s - for assembler files -# -# Handle source files specified by --src-dir & --src-rdir differently, to -# save some processing time in calling the adjust-path macro. - -OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(C_SRCS))) -OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(CXX_SRCS))) -OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(CXX_SRCS))) -OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(CXX_SRCS))) -OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(ASM_SRCS))) -OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(ASM_SRCS))) - -OBJ_LIST := $(sort $(OBJ_LIST_C) $(OBJ_LIST_CPP) $(OBJ_LIST_CXX) \ - $(OBJ_LIST_CC) $(OBJ_LIST_S) $(OBJ_LIST_SS)) - -SDIR_OBJ_LIST_C := $(patsubst %.c,%.o,$(filter %.c,$(SDIR_C_SRCS))) -SDIR_OBJ_LIST_CPP := $(patsubst %.cpp,%.o,$(filter %.cpp,$(SDIR_CXX_SRCS))) -SDIR_OBJ_LIST_CXX := $(patsubst %.cxx,%.o,$(filter %.cxx,$(SDIR_CXX_SRCS))) -SDIR_OBJ_LIST_CC := $(patsubst %.cc,%.o,$(filter %.cc,$(SDIR_CXX_SRCS))) -SDIR_OBJ_LIST_S := $(patsubst %.S,%.o,$(filter %.S,$(SDIR_ASM_SRCS))) -SDIR_OBJ_LIST_SS := $(patsubst %.s,%.o,$(filter %.s,$(SDIR_ASM_SRCS))) - -SDIR_OBJ_LIST := $(sort $(SDIR_OBJ_LIST_C) $(SDIR_OBJ_LIST_CPP) \ - $(SDIR_OBJ_LIST_CXX) $(SDIR_OBJ_LIST_CC) $(SDIR_OBJ_LIST_S) \ - $(SDIR_OBJ_LIST_SS)) - -# Relative-pathed objects that being with "../" are handled differently. -# -# Regular objects are created as -# $(CONFIG_OBJ_DIR)//.o -# where the path structure is maintained under the obj directory. This -# applies for both absolute and relative paths; in the absolute path -# case this means the entire source path will be recreated under the obj -# directory. This is done to allow two source files with the same name -# to be included as part of the project. -# -# Note: On Cygwin, the path recreated under the obj directory will be -# the cygpath -u output path. -# -# Relative-path objects that begin with "../" cause problems under this -# scheme, as $(CONFIG_OBJ_DIR)/..// can potentially put the object -# files anywhere in the system, creating clutter and polluting the source tree. -# As such, their paths are flattened - the object file created will be -# $(CONFIG_OBJ_DIR)/.o. Due to this, two files specified with -# "../" in the beginning cannot have the same name in the project. VPATH -# will be set for these sources to allow make to relocate the source file -# via %.o rules. -# -# The following lines separate the object list into the flatten and regular -# lists, and then handles them as appropriate. - -FLATTEN_OBJ_LIST := $(filter ../%,$(OBJ_LIST)) -FLATTEN_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_OBJ_LIST))) - -REGULAR_OBJ_LIST := $(filter-out $(FLATTEN_OBJ_LIST),$(OBJ_LIST)) -REGULAR_OBJ_LIST_C := $(filter $(OBJ_LIST_C),$(REGULAR_OBJ_LIST)) -REGULAR_OBJ_LIST_CPP := $(filter $(OBJ_LIST_CPP),$(REGULAR_OBJ_LIST)) -REGULAR_OBJ_LIST_CXX := $(filter $(OBJ_LIST_CXX),$(REGULAR_OBJ_LIST)) -REGULAR_OBJ_LIST_CC := $(filter $(OBJ_LIST_CC),$(REGULAR_OBJ_LIST)) -REGULAR_OBJ_LIST_S := $(filter $(OBJ_LIST_S),$(REGULAR_OBJ_LIST)) -REGULAR_OBJ_LIST_SS := $(filter $(OBJ_LIST_SS),$(REGULAR_OBJ_LIST)) - -FLATTEN_SDIR_OBJ_LIST := $(filter ../%,$(SDIR_OBJ_LIST)) -FLATTEN_SDIR_APP_OBJS := $(addprefix $(CONFIG_OBJ_DIR)/,$(notdir $(FLATTEN_SDIR_OBJ_LIST))) - -REGULAR_SDIR_OBJ_LIST := $(filter-out $(FLATTEN_SDIR_OBJ_LIST),$(SDIR_OBJ_LIST)) -REGULAR_SDIR_OBJ_LIST_C := $(filter $(SDIR_OBJ_LIST_C),$(REGULAR_SDIR_OBJ_LIST)) -REGULAR_SDIR_OBJ_LIST_CPP := $(filter $(SDIR_OBJ_LIST_CPP),$(REGULAR_SDIR_OBJ_LIST)) -REGULAR_SDIR_OBJ_LIST_CXX := $(filter $(SDIR_OBJ_LIST_CXX),$(REGULAR_SDIR_OBJ_LIST)) -REGULAR_SDIR_OBJ_LIST_CC := $(filter $(SDIR_OBJ_LIST_CC),$(REGULAR_SDIR_OBJ_LIST)) -REGULAR_SDIR_OBJ_LIST_S := $(filter $(SDIR_OBJ_LIST_S),$(REGULAR_SDIR_OBJ_LIST)) -REGULAR_SDIR_OBJ_LIST_SS := $(filter $(SDIR_OBJ_LIST_SS),$(REGULAR_SDIR_OBJ_LIST)) - -VPATH := $(sort $(dir $(FLATTEN_OBJ_LIST)) $(dir $(FLATTEN_SDIR_OBJ_LIST))) - -APP_OBJS_C := $(addprefix $(CONFIG_OBJ_DIR)/,\ - $(REGULAR_SDIR_OBJ_LIST_C) \ - $(foreach s,$(REGULAR_OBJ_LIST_C),$(call adjust-path,$s))) - -APP_OBJS_CPP := $(addprefix $(CONFIG_OBJ_DIR)/,\ - $(REGULAR_SDIR_OBJ_LIST_CPP) \ - $(foreach s,$(REGULAR_OBJ_LIST_CPP),$(call adjust-path,$s))) - -APP_OBJS_CXX := $(addprefix $(CONFIG_OBJ_DIR)/,\ - $(REGULAR_SDIR_OBJ_LIST_CXX) \ - $(foreach s,$(REGULAR_OBJ_LIST_CXX),$(call adjust-path,$s))) - -APP_OBJS_CC := $(addprefix $(CONFIG_OBJ_DIR)/,\ - $(REGULAR_SDIR_OBJ_LIST_CC) \ - $(foreach s,$(REGULAR_OBJ_LIST_CC),$(call adjust-path,$s))) - -APP_OBJS_S := $(addprefix $(CONFIG_OBJ_DIR)/,\ - $(REGULAR_SDIR_OBJ_LIST_S) \ - $(foreach s,$(REGULAR_OBJ_LIST_S),$(call adjust-path,$s))) - -APP_OBJS_SS := $(addprefix $(CONFIG_OBJ_DIR)/,\ - $(REGULAR_SDIR_OBJ_LIST_SS) \ - $(foreach s,$(REGULAR_OBJ_LIST_SS),$(call adjust-path,$s))) - -APP_OBJS := $(APP_OBJS_C) $(APP_OBJS_CPP) $(APP_OBJS_CXX) $(APP_OBJS_CC) \ - $(APP_OBJS_S) $(APP_OBJS_SS) \ - $(FLATTEN_APP_OBJS) $(FLATTEN_SDIR_APP_OBJS) - -# Add any extra user-provided object files. -APP_OBJS += $(OBJS) - -# Create list of dependancy files for each object file. -APP_DEPS := $(APP_OBJS:.o=.d) - -# Patch the Elf file with system specific information - -# Patch the Elf with the name of the sopc system -ifneq ($(SOPC_NAME),) -ELF_PATCH_FLAG += --sopc_system_name $(SOPC_NAME) -endif - -# Patch the Elf with the absolute path to the Quartus Project Directory -ifneq ($(QUARTUS_PROJECT_DIR),) -ABS_QUARTUS_PROJECT_DIR := $(call adjust-path-mixed,$(shell cd "$(QUARTUS_PROJECT_DIR)"; pwd)) -ELF_PATCH_FLAG += --quartus_project_dir "$(ABS_QUARTUS_PROJECT_DIR)" -endif - -# Patch the Elf and download args with the JDI_FILE if specified -ifneq ($(wildcard $(JDI_FILE)),) -ELF_PATCH_FLAG += --jdi $(JDI_FILE) -DOWNLOAD_JDI_FLAG := --jdi $(JDI_FILE) -endif - -# Patch the Elf with the SOPCINFO_FILE if specified -ifneq ($(wildcard $(SOPCINFO_FILE)),) -ELF_PATCH_FLAG += --sopcinfo $(SOPCINFO_FILE) -endif - -# Use the DOWNLOAD_CABLE variable to specify which JTAG cable to use. -# This is not needed if you only have one cable. -ifneq ($(DOWNLOAD_CABLE),) -DOWNLOAD_CABLE_FLAG := --cable '$(DOWNLOAD_CABLE)' -endif - - -#------------------------------------------------------------------------------ -# BUILD PRE/POST PROCESS -#------------------------------------------------------------------------------ -build_pre_process : - $(BUILD_PRE_PROCESS) - -build_post_process : - $(BUILD_POST_PROCESS) - -.PHONY: build_pre_process build_post_process - - -#------------------------------------------------------------------------------ -# TOOLS -#------------------------------------------------------------------------------ - -# -# Set tool default variables if not already defined. -# If these are defined, they would typically be defined in an -# included makefile fragment. -# -ifeq ($(DEFAULT_CROSS_COMPILE),) -DEFAULT_CROSS_COMPILE := nios2-elf- -endif - -ifeq ($(DEFAULT_STACK_REPORT),) -DEFAULT_STACKREPORT := nios2-stackreport -endif - -ifeq ($(DEFAULT_DOWNLOAD),) -DEFAULT_DOWNLOAD := nios2-download -endif - -ifeq ($(DEFAULT_FLASHPROG),) -DEFAULT_FLASHPROG := nios2-flash-programmer -endif - -ifeq ($(DEFAULT_ELFPATCH),) -DEFAULT_ELFPATCH := nios2-elf-insert -endif - -ifeq ($(DEFAULT_RM),) -DEFAULT_RM := rm -f -endif - -ifeq ($(DEFAULT_CP),) -DEFAULT_CP := cp -f -endif - -ifeq ($(DEFAULT_MKDIR),) -DEFAULT_MKDIR := mkdir -p -endif - -# -# Set tool variables to defaults if not already defined. -# If these are defined, they would typically be defined by a -# setting in the generated portion of this makefile. -# -ifeq ($(CROSS_COMPILE),) -CROSS_COMPILE := $(DEFAULT_CROSS_COMPILE) -endif - -ifeq ($(origin CC),default) -CC := $(CROSS_COMPILE)gcc -xc -endif - -ifeq ($(origin CXX),default) -CXX := $(CROSS_COMPILE)gcc -xc++ -endif - -ifeq ($(origin AS),default) -AS := $(CROSS_COMPILE)gcc -endif - -ifeq ($(origin AR),default) -AR := $(CROSS_COMPILE)ar -endif - -ifeq ($(origin LD),default) -LD := $(CROSS_COMPILE)g++ -endif - -ifeq ($(origin NM),default) -NM := $(CROSS_COMPILE)nm -endif - -ifeq ($(origin RM),default) -RM := $(DEFAULT_RM) -endif - -ifeq ($(origin CP),default) -CP := $(DEFAULT_CP) -endif - -ifeq ($(OBJDUMP),) -OBJDUMP := $(CROSS_COMPILE)objdump -endif - -ifeq ($(OBJCOPY),) -OBJCOPY := $(CROSS_COMPILE)objcopy -endif - -ifeq ($(STACKREPORT),) -ifeq ($(CROSS_COMPILE),nios2-elf-) -STACKREPORT := $(DEFAULT_STACKREPORT) -else -DISABLE_STACKREPORT := 1 -endif -endif - -ifeq ($(DOWNLOAD),) -DOWNLOAD := $(DEFAULT_DOWNLOAD) -endif - -ifeq ($(FLASHPROG),) -FLASHPROG := $(DEFAULT_FLASHPROG) -endif - -ifeq ($(ELFPATCH),) -ELFPATCH := $(DEFAULT_ELFPATCH) -endif - -ifeq ($(MKDIR),) -MKDIR := $(DEFAULT_MKDIR) -endif - -#------------------------------------------------------------------------------ -# PATTERN RULES TO BUILD OBJECTS -#------------------------------------------------------------------------------ - -define compile.c -@$(ECHO) Info: Compiling $< to $@ -@$(MKDIR) $(@D) -$(CC) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< -$(CC_POST_PROCESS) -endef - -define compile.cpp -@$(ECHO) Info: Compiling $< to $@ -@$(MKDIR) $(@D) -$(CXX) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< -$(CXX_POST_PROCESS) -endef - -# If assembling with the compiler, ensure "-Wa," is prepended to all APP_ASFLAGS -ifeq ($(AS),$(patsubst %as,%,$(AS))) -COMMA := , -APP_ASFLAGS := $(filter-out $(APP_CFLAGS),$(addprefix -Wa$(COMMA),$(patsubst -Wa$(COMMA)%,%,$(APP_ASFLAGS)))) -endif - -define compile.s -@$(ECHO) Info: Assembling $< to $@ -@$(MKDIR) $(@D) -$(AS) -MP -MMD -c $(APP_CPPFLAGS) $(APP_CFLAGS) $(APP_ASFLAGS) -o $@ $< -$(AS_POST_PROCESS) -endef - -ifeq ($(MAKE_VERSION),3.81) -.SECONDEXPANSION: - -$(APP_OBJS_C): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.c) - $(compile.c) - -$(APP_OBJS_CPP): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cpp) - $(compile.cpp) - -$(APP_OBJS_CC): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cc) - $(compile.cpp) - -$(APP_OBJS_CXX): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.cxx) - $(compile.cpp) - -$(APP_OBJS_S): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.S) - $(compile.s) - -$(APP_OBJS_SS): $(CONFIG_OBJ_DIR)/%.o: $$(call adjust-path-mixed,%.s) - $(compile.s) - -endif # MAKE_VERSION != 3.81 - -$(CONFIG_OBJ_DIR)/%.o: %.c - $(compile.c) - -$(CONFIG_OBJ_DIR)/%.o: %.cpp - $(compile.cpp) - -$(CONFIG_OBJ_DIR)/%.o: %.cc - $(compile.cpp) - -$(CONFIG_OBJ_DIR)/%.o: %.cxx - $(compile.cpp) - -$(CONFIG_OBJ_DIR)/%.o: %.S - $(compile.s) - -$(CONFIG_OBJ_DIR)/%.o: %.s - $(compile.s) - - -#------------------------------------------------------------------------------ -# PATTERN RULES TO INTERMEDIATE FILES -#------------------------------------------------------------------------------ - -$(CONFIG_OBJ_DIR)/%.s: %.c - @$(ECHO) Info: Compiling $< to $@ - @$(MKDIR) $(@D) - $(CC) -S $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< - -$(CONFIG_OBJ_DIR)/%.s: %.cpp - @$(ECHO) Info: Compiling $< to $@ - @$(MKDIR) $(@D) - $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< - -$(CONFIG_OBJ_DIR)/%.s: %.cc - @$(ECHO) Info: Compiling $< to $@ - @$(MKDIR) $(@D) - $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< - -$(CONFIG_OBJ_DIR)/%.s: %.cxx - @$(ECHO) Info: Compiling $< to $@ - @$(MKDIR) $(@D) - $(CXX) -S $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< - -$(CONFIG_OBJ_DIR)/%.i: %.c - @$(ECHO) Info: Compiling $< to $@ - @$(MKDIR) $(@D) - $(CC) -E $(APP_CPPFLAGS) $(APP_CFLAGS) -o $@ $< - -$(CONFIG_OBJ_DIR)/%.i: %.cpp - @$(ECHO) Info: Compiling $< to $@ - @$(MKDIR) $(@D) - $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< - -$(CONFIG_OBJ_DIR)/%.i: %.cc - @$(ECHO) Info: Compiling $< to $@ - @$(MKDIR) $(@D) - $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< - -$(CONFIG_OBJ_DIR)/%.i: %.cxx - @$(ECHO) Info: Compiling $< to $@ - @$(MKDIR) $(@D) - $(CXX) -E $(APP_CPPFLAGS) $(APP_CXXFLAGS) $(APP_CFLAGS) -o $@ $< - - -#------------------------------------------------------------------------------ -# TARGET RULES -#------------------------------------------------------------------------------ - -.PHONY : help -help : - @$(ECHO) "Summary of Makefile targets" - @$(ECHO) " Build targets:" - @$(ECHO) " all (default) - Application and all libraries (including BSP)" - @$(ECHO) " bsp - Just the BSP" - @$(ECHO) " libs - All libraries (including BSP)" - @$(ECHO) " flash - All flash files" - @$(ECHO) " mem_init_generate - All memory initialization files" -ifeq ($(QSYS),1) - @$(ECHO) " mem_init_install - This target is deprecated for QSys Systems" - @$(ECHO) " --> Use the mem_init_generate target and then" - @$(ECHO) " add the generated meminit.qip file to your" - @$(ECHO) " Quartus II Project." -else # if QSYS != 1 - @$(ECHO) " mem_init_install - Copy memory initialization files to Quartus II project" -endif # QSYS == 1 - @$(ECHO) - @$(ECHO) " Clean targets:" - @$(ECHO) " clean_all - Application and all libraries (including BSP)" - @$(ECHO) " clean - Just the application" - @$(ECHO) " clean_bsp - Just the BSP" - @$(ECHO) " clean_libs - All libraries (including BSP)" - @$(ECHO) - @$(ECHO) " Run targets:" - @$(ECHO) " download-elf - Download and run your elf executable" - @$(ECHO) " program-flash - Program flash contents to the board" - -# Handy rule to skip making libraries and just make application. -.PHONY : app -app : $(ELF) - -ifeq ($(CREATE_OBJDUMP), 1) -app : $(OBJDUMP_NAME) -endif - -ifeq ($(CREATE_ELF_DERIVED_FILES),1) -app : elf_derived_files -endif - -.PHONY: elf_derived_files -elf_derived_files: default_mem_init - -# Handy rule for making just the BSP. -.PHONY : bsp -bsp : - @$(ECHO) Info: Building $(BSP_ROOT_DIR) - @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) - - -# Make sure all makeable libraries (including the BSP) are up-to-date. -LIB_TARGETS := $(patsubst %,%-recurs-make-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) - -.PHONY : libs -libs : $(LIB_TARGETS) - -ifneq ($(strip $(LIB_TARGETS)),) -$(LIB_TARGETS): %-recurs-make-lib: - @$(ECHO) Info: Building $* - $(MAKE) --no-print-directory -C $* -endif - -ifneq ($(strip $(APP_LDDEPS)),) -$(APP_LDDEPS): libs - @true -endif - -# Rules to force your project to rebuild or relink -# .force_relink file will cause any application that depends on this project to relink -# .force_rebuild file will cause this project to rebuild object files -# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files - -FORCE_RELINK_DEP := .force_relink -FORCE_REBUILD_DEP := .force_rebuild -FORCE_REBUILD_ALL_DEP := .force_rebuild_all -FORCE_REBUILD_DEP_LIST := $(CONFIG_OBJ_DIR)/$(FORCE_RELINK_DEP) $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) - -$(FORCE_REBUILD_DEP_LIST): - -$(APP_OBJS): $(wildcard $(CONFIG_OBJ_DIR)/$(FORCE_REBUILD_DEP)) $(wildcard $(addsuffix /$(FORCE_REBUILD_ALL_DEP), . $(ALT_LIBRARY_DIRS))) - -$(ELF): $(wildcard $(addsuffix /$(FORCE_RELINK_DEP), $(CONFIG_OBJ_DIR) $(ALT_LIBRARY_DIRS))) - - -# Clean just the application. -.PHONY : clean -ifeq ($(CREATE_ELF_DERIVED_FILES),1) -clean : clean_elf_derived_files -endif - -clean : - @$(RM) -r $(ELF) $(OBJDUMP_NAME) $(LINKER_MAP_NAME) $(OBJ_ROOT_DIR) $(RUNTIME_ROOT_DIR) $(FORCE_REBUILD_DEP_LIST) - @$(ECHO) [$(APP_NAME) clean complete] - -# Clean just the BSP. -.PHONY : clean_bsp -clean_bsp : - @$(ECHO) Info: Cleaning $(BSP_ROOT_DIR) - @$(MAKE) --no-print-directory -C $(BSP_ROOT_DIR) clean - -# Clean all makeable libraries including the BSP. -LIB_CLEAN_TARGETS := $(patsubst %,%-recurs-make-clean-lib,$(MAKEABLE_LIBRARY_ROOT_DIRS)) - -.PHONY : clean_libs -clean_libs : $(LIB_CLEAN_TARGETS) - -ifneq ($(strip $(LIB_CLEAN_TARGETS)),) -$(LIB_CLEAN_TARGETS): %-recurs-make-clean-lib: - @$(ECHO) Info: Cleaning $* - $(MAKE) --no-print-directory -C $* clean -endif - -.PHONY: clean_elf_derived_files -clean_elf_derived_files: mem_init_clean - -# Clean application and all makeable libraries including the BSP. -.PHONY : clean_all -clean_all : clean mem_init_clean clean_libs - -# Include the dependency files unless the make goal is performing a clean -# of the application. -ifneq ($(firstword $(MAKECMDGOALS)),clean) -ifneq ($(firstword $(MAKECMDGOALS)),clean_all) --include $(APP_DEPS) -endif -endif - -.PHONY : download-elf -download-elf : $(ELF) - @if [ "$(DOWNLOAD)" = "none" ]; \ - then \ - $(ECHO) Downloading $(ELF) not supported; \ - else \ - $(ECHO) Info: Downloading $(ELF); \ - $(DOWNLOAD) --go --cpu_name=$(CPU_NAME) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) $(DOWNLOAD_JDI_FLAG) $(WRITE_GMON_OPTION) $(ELF); \ - fi - -# Delete the target of a rule if it has changed and its commands exit -# with a nonzero exit status. -.DELETE_ON_ERROR: - -# Rules for flash programming commands -PROGRAM_FLASH_SUFFIX := -program -PROGRAM_FLASH_TARGET := $(addsuffix $(PROGRAM_FLASH_SUFFIX), $(FLASH_FILES)) - -.PHONY : program-flash -program-flash : $(PROGRAM_FLASH_TARGET) - -.PHONY : $(PROGRAM_FLASH_TARGET) -$(PROGRAM_FLASH_TARGET) : flash - @if [ "$(FLASHPROG)" = "none" ]; \ - then \ - $(ECHO) Programming flash not supported; \ - else \ - $(ECHO) Info: Programming $(basename $@).flash; \ - if [ -z "$($(basename $@)_EPCS_FLAGS)" ]; \ - then \ - $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ - $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --base=$($(basename $@)_START) $(basename $@).flash; \ - else \ - $(ECHO) $(FLASHPROG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ - $(FLASHPROG) $(DOWNLOAD_CABLE_FLAG) $(SOPC_SYSID_FLAG) --epcs --base=$($(basename $@)_START) $(basename $@).flash; \ - fi \ - fi - - -# Rules for simulating with an HDL Simulator [QSYS only] -ifeq ($(QSYS),1) -IP_MAKE_SIMSCRIPT := ip-make-simscript - -ifeq ($(VSIM),) -VSIM_EXE := "$(if $(VSIM_DIR),$(VSIM_DIR)/,)vsim" -ifeq ($(ENABLE_VSIM_GUI),1) -VSIM := $(VSIM_EXE) -gui -else -VSIM := $(VSIM_EXE) -c -endif # ENABLE_VSIM_GUI == 1 -endif # VSIM not set - -ifeq ($(SPD),) -ifneq ($(ABS_QUARTUS_PROJECT_DIR),) -ifneq ($(SOPC_NAME),) -SPD := $(ABS_QUARTUS_PROJECT_DIR)/$(SOPC_NAME)_tb.spd -endif # SOPC_NAME set -endif # ABS_QUARTUS_PROJECT_DIR set -endif # SPD == empty string - -ifeq ($(MSIM_SCRIPT),) -SIM_SCRIPT_DIR := $(RUNTIME_ROOT_DIR)/sim -MSIM_SCRIPT := $(SIM_SCRIPT_DIR)/mentor/msim_setup.tcl -endif # MSIM_SCRIPT == empty string - -ifeq ($(MAKE_VERSION),3.81) -ABS_MEM_INIT_DESCRIPTOR_FILE := $(abspath $(MEM_INIT_DESCRIPTOR_FILE)) -else -ABS_MEM_INIT_DESCRIPTOR_FILE := $(call adjust-path-mixed,$(shell pwd))/$(MEM_INIT_DESCRIPTOR_FILE) -endif - -$(MSIM_SCRIPT): $(SPD) $(MEM_INIT_DESCRIPTOR_FILE) -ifeq ($(SPD),) - $(error No SPD file specified. Ensure QUARTUS_PROJECT_DIR variable is set) -endif - @$(MKDIR) $(SIM_SCRIPT_DIR) - $(IP_MAKE_SIMSCRIPT) --spd=$(SPD) --spd=$(MEM_INIT_DESCRIPTOR_FILE) --output-directory=$(SIM_SCRIPT_DIR) - -VSIM_COMMAND = \ - cd $(dir $(MSIM_SCRIPT)) && \ - $(VSIM) -do "do $(notdir $(MSIM_SCRIPT)); ld; $(if $(VSIM_RUN_TIME),run ${VSIM_RUN_TIME};quit;)" - -.PHONY: sim -sim: $(MSIM_SCRIPT) mem_init_generate -ifeq ($(MSIM_SCRIPT),) - $(error MSIM_SCRIPT not set) -endif - $(VSIM_COMMAND) - -endif # QSYS == 1 - - -#------------------------------------------------------------------------------ -# ELF TARGET RULE -#------------------------------------------------------------------------------ -# Rule for constructing the executable elf file. -$(ELF) : $(APP_OBJS) $(LINKER_SCRIPT) $(APP_LDDEPS) - @$(ECHO) Info: Linking $@ - $(LD) $(APP_LDFLAGS) $(APP_CFLAGS) -o $@ $(filter-out $(CRT0),$(APP_OBJS)) $(APP_LIBS) $(APP_BSP_DEP_LIBS) -ifneq ($(DISABLE_ELFPATCH),1) - $(ELFPATCH) $@ $(ELF_PATCH_FLAG) -endif -ifneq ($(DISABLE_STACKREPORT),1) - @bash -c "$(STACKREPORT) $@" -endif - -$(OBJDUMP_NAME) : $(ELF) - @$(ECHO) Info: Creating $@ - $(OBJDUMP) $(OBJDUMP_FLAGS) $< >$@ - -# Rule for printing the name of the elf file -.PHONY: print-elf-name -print-elf-name: - @$(ECHO) $(ELF) - - diff --git a/software/qsys_tutorial_lcd4/create-this-app b/software/qsys_tutorial_lcd4/create-this-app deleted file mode 100644 index a71c979..0000000 --- a/software/qsys_tutorial_lcd4/create-this-app +++ /dev/null @@ -1,114 +0,0 @@ -#!/bin/bash -# -# This script creates the hello_world application in this directory. - - -BSP_DIR=../qsys_tutorial_lcd4_bsp -QUARTUS_PROJECT_DIR=../../ -NIOS2_APP_GEN_ARGS="--elf-name qsys_tutorial_lcd4.elf --set OBJDUMP_INCLUDE_SOURCE 1 --src-files hello_world.c" - - -# First, check to see if $SOPC_KIT_NIOS2 environmental variable is set. -# This variable is required for the command line tools to execute correctly. -if [ -z "${SOPC_KIT_NIOS2}" ] -then - echo Required \$SOPC_KIT_NIOS2 Environmental Variable is not set! - exit 1 -fi - - -# Also make sure that the APP has not been created already. Check for -# existence of Makefile in the app directory -if [ -f ./Makefile ] -then - echo Application has already been created! Delete Makefile if you want to create a new application makefile - exit 1 -fi - - -# We are selecting hal_default bsp because it supports this application. -# Check to see if the hal_default has already been generated by checking for -# existence of the public.mk file. If not, we need to run -# create-this-bsp file to generate the bsp. -if [ ! -f ${BSP_DIR}/public.mk ]; then - # Since BSP doesn't exist, create the BSP - # Pass any command line arguments passed to this script to the BSP. - pushd ${BSP_DIR} >> /dev/null - ./create-this-bsp "$@" || { - echo "create-this-bsp failed" - exit 1 - } - popd >> /dev/null -fi - - -# Don't run make if create-this-app script is called with --no-make arg -SKIP_MAKE= -while [ $# -gt 0 ] -do - case "$1" in - --no-make) - SKIP_MAKE=1 - ;; - esac - shift -done - - -# Now we also need to go copy the sources for this application to the -# local directory. -find "${SOPC_KIT_NIOS2}/examples/software/hello_world/" -name '*.c' -or -name '*.h' -or -name 'hostfs*' | xargs -i cp -L {} ./ || { - echo "failed during copying example source files" - exit 1 -} - -find "${SOPC_KIT_NIOS2}/examples/software/hello_world/" -name 'readme.txt' -or -name 'Readme.txt' | xargs -i cp -L {} ./ || { - echo "failed copying readme file" -} - -if [ -d "${SOPC_KIT_NIOS2}/examples/software/hello_world/system" ] -then - cp -RL "${SOPC_KIT_NIOS2}/examples/software/hello_world/system" . || { - echo "failed during copying project support files" - exit 1 - } -fi - -chmod -R +w . || { - echo "failed during changing file permissions" - exit 1 -} - -cmd="nios2-app-generate-makefile --bsp-dir ${BSP_DIR} --set QUARTUS_PROJECT_DIR=${QUARTUS_PROJECT_DIR} ${NIOS2_APP_GEN_ARGS}" - -echo "create-this-app: Running \"${cmd}\"" -$cmd || { - echo "nios2-app-generate-makefile failed" - exit 1 -} - -if [ -z "$SKIP_MAKE" ]; then - cmd="make" - - echo "create-this-app: Running \"$cmd\"" - $cmd || { - echo "make failed" - exit 1 - } - - echo - echo "To download and run the application:" - echo " 1. Make sure the board is connected to the system." - echo " 2. Run 'nios2-configure-sof ' to configure the FPGA with the hardware design." - echo " 3. If you have a stdio device, run 'nios2-terminal' in a different shell." - echo " 4. Run 'make download-elf' from the application directory." - echo - echo "To debug the application:" - echo " Import the project into Nios II Software Build Tools for Eclipse." - echo " Refer to Nios II Software Build Tools for Eclipse Documentation for more information." - echo - echo -e "" -fi - - -exit 0 diff --git a/software/qsys_tutorial_lcd4/hello_world_small.c b/software/qsys_tutorial_lcd4/hello_world_small.c deleted file mode 100644 index 5d06d9b..0000000 --- a/software/qsys_tutorial_lcd4/hello_world_small.c +++ /dev/null @@ -1,214 +0,0 @@ -#include "sys/alt_stdio.h" -#include -#include "system.h" -#include "hex_out.h" -#include "lcd_out.h" -#include "sys_register.h" -#include "sys_memory.h" -#include "input_int.h" -#include "sys_debug.h" -#include "sys_prog.h" - -#define ledrs (volatile int *) LEDRS_BASE - -static void init() { - // lcd - lcd_init(); - lcd_print("Starting now..."); - - registers_init(); - memory_init(); - // hex - clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); - print_block("he", 2, HEX6_7); - print_block("lo", 2, HEX4_5); - print_block("you1", 4, HEX0_3); - delay10ms(200); - clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); - - lcd_caret_reset2(); - lcd_print("Ok!"); -} - -char stack[5]; - -void store_value(){ - unsigned int memi = global_registers[Ssw_memi]; - memory_store(memi, Ssw_data); - - { // �f�o�b�N�\�� - char buf[5]; - sprintf(buf, "%02x", (unsigned char)memi); - print_block(buf, 2, HEX6_7); - print_block("--", 2, HEX4_5); - sprintf(buf, "%04d", global_registers[Ssw_data]); - print_block(buf, 4, HEX0_3); - - display_mem((unsigned char)memi, global_registers[Ssw_data]); - } -} -void store_inst(){ - char inst; - char mem_index; - char reg_index; - unsigned int stored_pc; - struct InstRec inst_rec; - - // �K�v�ȏ��̎擾 - inst = global_registers[Ssw_inst]; - mem_index = global_registers[Ssw_memi]; - reg_index = global_registers[Ssw_regi]; - inst_rec.inst = (unsigned int)inst; - inst_rec.memi = (unsigned int)mem_index; - inst_rec.regi = (unsigned int)reg_index; - - // �X�g�A���� - stored_pc = get_pc(); - inst_memory_store(get_pc(), inst_rec); - inc_pc(); - { // �f�o�b�N�\�� - char buf[5]; - sprintf(buf, "%04d", inst_rec.inst); - print_block(buf, 4, HEX0_3); - sprintf(buf, "%02x", get_pc()); - print_block(buf, 2, HEX4_5); - - display_inst(inst_rec, stored_pc); - } -} - -void print_change_memory(unsigned int current_memory) { - char buf[17]; - sprintf(buf, "Current page:%2d", current_memory); - lcd_caret_reset(); - lcd_print("Change program"); - lcd_caret_reset2(); - lcd_print(buf); - clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); -} - -static void reset_mem_cancel() { - lcd_caret_reset(); - lcd_print("rewrite all 0?"); - lcd_caret_reset2(); - lcd_print("push again -> NG"); -} -static char reset_mem(char confirmed) { - if (confirmed == 0) { - lcd_caret_reset(); - lcd_print("rewrite all 0?"); - lcd_caret_reset2(); - lcd_print("push again"); - // �m�F�v�� - return 1; - } else { - int i; - for (i = 0; i < MEM_SIZE; i++){ - memory_store(i,Szero); - } - lcd_caret_reset(); - lcd_print("rewrite all 0?"); - lcd_caret_reset2(); - lcd_print("push again -> OK"); - - // PC���Z�b�g���� - return 0; - } -} -static void reset_pc_cancel() { - lcd_caret_reset(); - lcd_print("reset pc?"); - lcd_caret_reset2(); - lcd_print("push again -> NG"); -} -static char reset_pc(char confirmed) { - if (confirmed == 0) { - lcd_caret_reset(); - lcd_print("reset pc?"); - lcd_caret_reset2(); - lcd_print("push again"); - // �m�F�v�� - return 1; - } else { - set_pc(0); - - lcd_caret_reset(); - lcd_print("reset pc?"); - lcd_caret_reset2(); - lcd_print("push again -> OK"); - - // PC���Z�b�g���� - return 0; - } -} - - -int main() -{ - init(); - - enum RunMode fRun = RUN_STOP; - char reset_pc_confirmed = 0; - char reset_mem_confirmed = 0; - - while(1) { - // interrupt - in_int(); - - // event - // CANCEL - if (global_registers[Ssw_rw] == 0 - || ((PUSH_EVENT & PUSH_ANY) && !(PUSH_EVENT & PUSH_VALSTR))) { - if (reset_mem_confirmed == 1) { - reset_mem_confirmed = 0; //�m�F�L�����Z�� - reset_mem_cancel(); - } - } - if (global_registers[Ssw_rw] == 0 - || ((PUSH_EVENT & PUSH_ANY) && !(PUSH_EVENT & PUSH_INSSTR))) { - if (reset_pc_confirmed == 1) { - reset_pc_confirmed = 0; //�m�F�L�����Z�� - reset_pc_cancel(); - } - } - // CONFIRM - if (PUSH_EVENT & PUSH_VALSTR) { - // �l�̃X�g�A - if (global_registers[Ssw_rw] == 1) { - //�폜 - char res = reset_mem(reset_mem_confirmed);//���m�F�̏��F - if (1 == res) reset_mem_confirmed = 1; //���m�F - if (0 == res) reset_mem_confirmed = 0; //���Z�b�g�̊m�F - } else { - store_value(); - } - } - if (PUSH_EVENT & PUSH_INSSTR) { - // ���߂̃X�g�A - if (global_registers[Ssw_rw] == 1) { - //PC�̃��Z�b�g - char res = reset_pc(reset_pc_confirmed);//���m�F�̏��F - if (1 == res) reset_pc_confirmed = 1; //���m�F - if (0 == res) reset_pc_confirmed = 0; //���Z�b�g�̊m�F - } else { - store_inst(); - } - } - // RUN - if (PUSH_EVENT & PUSH_RUN) { - if (global_current_memory != (unsigned int)global_registers[Ssw_psel]) { - global_current_memory = (unsigned int)global_registers[Ssw_psel]; - print_change_memory(global_current_memory); - } - else { - // �v���O�����������ݒ� - fRun = RUN_INIT; - } - } - if (fRun != RUN_STOP) { - // �v���O�������s���荞�� & ���s���[�h�X�V - fRun = run_proc(fRun); - } - } - return 0; -} diff --git a/software/qsys_tutorial_lcd4/hex_encoder.c b/software/qsys_tutorial_lcd4/hex_encoder.c deleted file mode 100644 index 9639775..0000000 --- a/software/qsys_tutorial_lcd4/hex_encoder.c +++ /dev/null @@ -1,205 +0,0 @@ -/* - * hex_encoder.c - * - * Created on: 2016/11/17 - * Author: takayun - */ - -#include "hex_encoder.h" -#include - -void encodeNumHex(int hex_i, int num) { - char encoded = 0; - switch (num) { - case 0: - encoded = (char)0x40; // 100 0000 - break; - case 1: - encoded = (char)0xF9; // 111 1001 - break; - case 2: - encoded = (char)0x24; // 010 0100 - break; - case 3: - encoded = (char)0x30; // 011 0000 - break; - case 4: - encoded = (char)0x19; // 001 1001 - break; - case 5: - encoded = (char)0x12; // 001 0010 - break; - case 6: - encoded = (char)0x02; // 000 0010 - break; - case 7: - encoded = (char)0x58; // 101 1000 - break; - case 8: - encoded = (char)0x00; // 000 0000 - break; - case 9: - encoded = (char)0x10; // 001 0000 - break; - default: - encoded = 0; - break; - } - - switch (hex_i) { - case 0: - *hex0 = encoded; - break; - case 1: - *hex1 = encoded; - break; - case 2: - *hex2 = encoded; - break; - case 3: - *hex3 = encoded; - break; - case 4: - *hex4 = encoded; - break; - case 5: - *hex5 = encoded; - break; - case 6: - *hex6 = encoded; - break; - case 7: - *hex7 = encoded; - break; - default: - break; - } -} - -void encodeLatHex(int hex_i, char c) { - char encoded = 0; - - if (isdigit(c)) { - encodeNumHex(hex_i, c-'0'); - return; - } - - switch (c) { - case ' ': - encoded = (char)0xFF; // 111 1111 - break; - case '-': - encoded = (char)0x3F; // 011 1111 - break; - case 'a': - encoded = (char)0x08; // 000 1000 - break; - case 'b': - encoded = (char)0x03; // 000 0011 - break; - case 'c': - encoded = (char)0x27; // 010 0111 - break; - case 'd': - encoded = (char)0x21; // 010 0001 - break; - case 'e': - encoded = (char)0x06; // 000 0110 - break; - case 'f': - encoded = (char)0x0E; // 000 1110 - break; - case 'g': - encoded = (char)0x42; // 100 0010 - break; - case 'h': - encoded = (char)0x0B; // 000 1011 - break; - case 'i': - encoded = (char)0xFB; // 111 1011 - break; - case 'j': - encoded = (char)0x61; // 110 0001 - break; - case 'k': - encoded = (char)0x0A; // 000 1010 - break; - case 'l': - encoded = (char)0x47; // 100 0111 - break; - case 'm': - encoded = (char)0x48; // 100 1000 - break; - case 'n': - encoded = (char)0x2B; // 010 1011 - break; - case 'o': - encoded = (char)0x23; // 010 0011 - break; - case 'p': - encoded = (char)0x0C; // 000 1100 - break; - case 'q': - encoded = (char)0x04; // 000 0100 - break; - case 'r': - encoded = (char)0x2F; // 010 1111 - break; - case 's': - encoded = (char)0x13; // 001 0011 - break; - case 't': - encoded = (char)0x07; // 000 0111 - break; - case 'u': - encoded = (char)0x63; // 110 0011 - break; - case 'v': - encoded = (char)0x41; // 100 0001 - break; - case 'w': - encoded = (char)0x01; // 000 0001 - break; - case 'x': - encoded = (char)0x09; // 000 1001 - break; - case 'y': - encoded = (char)0x11; // 001 0001 - break; - case 'z': - encoded = (char)0x64; // 110 0100 - break; - default: - encoded = 0; - break; - } - - switch (hex_i) { - case 0: - *hex0 = encoded; - break; - case 1: - *hex1 = encoded; - break; - case 2: - *hex2 = encoded; - break; - case 3: - *hex3 = encoded; - break; - case 4: - *hex4 = encoded; - break; - case 5: - *hex5 = encoded; - break; - case 6: - *hex6 = encoded; - break; - case 7: - *hex7 = encoded; - break; - default: - break; - } -} diff --git a/software/qsys_tutorial_lcd4/hex_encoder.h b/software/qsys_tutorial_lcd4/hex_encoder.h deleted file mode 100644 index 7909cf8..0000000 --- a/software/qsys_tutorial_lcd4/hex_encoder.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * hex_encoder.h - * - * Created on: 2016/11/17 - * Author: takayun - */ - -#ifndef HEX_ENCODER_H_ -#define HEX_ENCODER_H_ - -#include "system.h" - -/************************************************** - * Defines - **************************************************/ - -#define hex0 (volatile char *) HEX0_BASE -#define hex1 (volatile char *) HEX1_BASE -#define hex2 (volatile char *) HEX2_BASE -#define hex3 (volatile char *) HEX3_BASE -#define hex4 (volatile char *) HEX4_BASE -#define hex5 (volatile char *) HEX5_BASE -#define hex6 (volatile char *) HEX6_BASE -#define hex7 (volatile char *) HEX7_BASE - -/************************************************** - * Variables - **************************************************/ - - -/************************************************** - * Functions - **************************************************/ - -void encodeNumHex(int hex_i, int num); -void encodeLatHex(int hex_i, char c); - -#endif /* HEX_ENCODER_H_ */ diff --git a/software/qsys_tutorial_lcd4/hex_out.c b/software/qsys_tutorial_lcd4/hex_out.c deleted file mode 100644 index 874dbac..0000000 --- a/software/qsys_tutorial_lcd4/hex_out.c +++ /dev/null @@ -1,67 +0,0 @@ -/* - * hex_out.c - * - * Created on: 2016/11/24 - * Author: takayun - */ -#include "hex_out.h" -#include "hex_encoder.h" -#include "sys_except.h" - -void print_block(char * str, unsigned int size, enum BLOCK_N block_i) { - int i; - if (block_i == HEX0_3) { - if (size > 4) panic(); - for (i = 0; i < size; i++) { - encodeLatHex(i,str[size-1-i]); - } - } - else if (block_i == HEX4_5) { - if (size > 2) panic(); - for (i = 0; i < size; i++) { - encodeLatHex(i+4,str[size-1-i]); - } - } - else if (block_i == HEX6_7) { - if (size > 2) panic(); - for (i = 0; i < size; i++) { - encodeLatHex(i+6,str[size-1-i]); - } - } -} - -void clear_block(enum BLOCK_N block_i) { - if (block_i == HEX0_3) { - print_block(" ", 4, HEX0_3); - } - else if (block_i == HEX4_5) { - print_block(" ", 2, HEX4_5); - } - else if (block_i == HEX6_7) { - print_block(" ", 2, HEX6_7); - } -} - -void print_number(char num) { - int i; - char buf[5]; - char val; - for (i = 0; i < 4; i++) { - if (num < 0) { - buf[0] = '-'; - val = -num; - } else { - buf[0] = ' '; - val = num; - } - buf[1] = val/100%10 + '0'; - buf[2] = val/10%10 + '0'; - buf[3] = val%10 + '0'; - } - clear_block(HEX0_3); - print_block(buf, 4, HEX0_3); -} - - - - diff --git a/software/qsys_tutorial_lcd4/hex_out.h b/software/qsys_tutorial_lcd4/hex_out.h deleted file mode 100644 index 99219b5..0000000 --- a/software/qsys_tutorial_lcd4/hex_out.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * hex_out.h - * - * Created on: 2016/11/24 - * Author: takayun - */ - -#ifndef HEX_IO_H_ -#define HEX_IO_H_ - -/************************************************** - * Defines - **************************************************/ - -enum BLOCK_N { - HEX0_3, HEX4_5, HEX6_7 -}; - -/************************************************** - * Variables - **************************************************/ - - -/************************************************** - * Functions - **************************************************/ - -void print_block(char * str, unsigned int size, enum BLOCK_N block_i); -void clear_block(enum BLOCK_N block_i); -void print_number(char num); - - -#endif /* HEX_IO_H_ */ diff --git a/software/qsys_tutorial_lcd4/input_int.c b/software/qsys_tutorial_lcd4/input_int.c deleted file mode 100644 index 0145286..0000000 --- a/software/qsys_tutorial_lcd4/input_int.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * input_int.c - * - * Created on: 2016/11/24 - * Author: takayun - */ -#include "input_int.h" -#include "sys_register.h" - -unsigned char PUSH_EVENT = PUSH_NONE; - -void in_int() { - push_int(); -} - -static void update_sw_reg(sw_t s) { - global_registers[Ssw_data] = (char)s.data.value; - global_registers[Ssw_inst] = (char)s.splited.instruction_code; - global_registers[Ssw_memi] = (char)s.splited.memory_index; - global_registers[Ssw_regi] = (char)s.splited.register_index; - global_registers[Ssw_psel] = (char)s.splited.program_selecter; - global_registers[Ssw_rw] = (char)s.splited.rw_mode; - global_registers[Ssw_run] = (char)s.splited.run_mode; -} - -enum PushEvent push_decode(char psw) { - int result = PUSH_NONE; - switch(psw) { - case 0x3: - result += PUSH_ANY; - result += PUSH_VALSTR; - break; - case 0x5: - result += PUSH_ANY; - result += PUSH_INSSTR; - break; - case 0x6: - result += PUSH_ANY; - result += PUSH_RUN; - break; - } - return result; -} - -void push_int() { - static unsigned char status = 0; - static enum PushEvent event_code; - volatile sw_t s; - s.sw = *switches; - - switch (status) { - case 0: - PUSH_EVENT = PUSH_NONE; - if (*push_switches != 7) { - event_code = push_decode(*push_switches); - status = 1; - } - update_sw_reg(s); // �X�C�b�`���W�X�^�X�V - break; - case 1: - if (*push_switches == 7) status = 2; - break; - case 2: - PUSH_EVENT = event_code; - status = 0; - break; - default: - status = 0; - break; - } -} diff --git a/software/qsys_tutorial_lcd4/input_int.h b/software/qsys_tutorial_lcd4/input_int.h deleted file mode 100644 index e1d0612..0000000 --- a/software/qsys_tutorial_lcd4/input_int.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * input_int.h - * - * Created on: 2016/11/24 - * Author: takayun - */ - -#ifndef SWITCHES_INT_H_ -#define SWITCHES_INT_H_ - -#include "system.h" - -/************************************************** - * Defines - **************************************************/ - -#define switches (volatile int *) SWITCHES_BASE -#define push_switches (volatile char *) PUSH_SWITCHES_BASE - -typedef union { - int sw; - struct { - unsigned int run_mode : 1; - unsigned int rw_mode : 1; - unsigned int program_selecter : 4; - unsigned int memory_index : 4; - unsigned int register_index : 4; - unsigned int instruction_code : 4; - } splited; - struct { - unsigned int : 10; - unsigned int value : 8; - } data; -} sw_t; - -enum PushEvent{ - PUSH_NONE = 1<<0, - PUSH_ANY = 1<<1, - PUSH_VALSTR = 1<<2, - PUSH_INSSTR = 1<<3, - PUSH_RUN = 1<<4 -}; - -/************************************************** - * Variables - **************************************************/ - -extern unsigned char PUSH_EVENT; - -/************************************************** - * Functions - **************************************************/ - -/* Function: in_int - * Sammary: - * �S�Ă̓��͊��荞�݂��s�� - * */ -void in_int(); - -void push_int(); - -#endif /* SWITCHES_INT_H_ */ diff --git a/software/qsys_tutorial_lcd4/inst_decoder.c b/software/qsys_tutorial_lcd4/inst_decoder.c deleted file mode 100644 index 3e6e8a9..0000000 --- a/software/qsys_tutorial_lcd4/inst_decoder.c +++ /dev/null @@ -1,120 +0,0 @@ -/* - * inst_decoder.c - * - * Created on: 2016/11/25 - * Author: takayun - */ - -#include "inst_decoder.h" -#include "sys_memory.h" -#include "sys_register.h" -#include "hex_out.h" -#include "sys_prog.h" -#include -#include - -struct InstRec inst_fetch(){ - struct InstRec rec = inst_memory_load((unsigned int)global_registers[Spc]); - inc_pc(); - return rec; -} - -void inst_decode(struct InstRec inst_rec){ - switch(inst_rec.inst) { - case INST_END: - break; - case INST_JUMP: - inst_jump(inst_rec.regi, inst_rec.memi); - break; - case INST_OUTPUT: - inst_output(inst_rec.regi, inst_rec.memi); - break; - case INST_LOAD: - inst_load(inst_rec.regi, inst_rec.memi); - break; - case INST_STORE: - inst_store(inst_rec.regi, inst_rec.memi); - break; - case INST_DELAY: - inst_delay(inst_rec.regi, inst_rec.memi); - break; - case INST_ADD: - inst_add(inst_rec.regi, inst_rec.memi); - break; - case INST_SUB: - inst_sub(inst_rec.regi, inst_rec.memi); - break; - case INST_COMP: - inst_comp(inst_rec.regi, inst_rec.memi); - break; - case INST_JEQ: - inst_jeq(inst_rec.regi, inst_rec.memi); - break; - case INST_JNE: - inst_jne(inst_rec.regi, inst_rec.memi); - break; - case INST_JIEQ: - inst_jieq(inst_rec.regi, inst_rec.memi); - break; - case INST_JINE: - inst_jine(inst_rec.regi, inst_rec.memi); - break; - } -} - -void inst_jump(enum Register reg, unsigned char memory_index){ - set_pc(global_registers[reg]+memory_index); -} -void inst_output(enum Register reg, unsigned char memory_index){ - //�������̒l��7�Z�O�ɕ\�� - char buf[5]; - memory_load(memory_index, Sseg); - sprintf(buf, "%04d", global_registers[Sseg]); - print_block(buf, 4, HEX0_3); -} -void inst_load(enum Register reg, unsigned char memory_index){ - memory_load(memory_index, reg); -} -void inst_store(enum Register reg, unsigned char memory_index){ - memory_store(memory_index, reg); -} -void inst_delay(enum Register reg, unsigned char memory_index){ - //���W�X�^�̒l*10ms�҂� - usleep((int)global_registers[reg]*10000); -} -void inst_add(enum Register reg, unsigned char memory_index){ - global_registers[Sacc]+=global_registers[reg]; -} -void inst_sub(enum Register reg, unsigned char memory_index){ - global_registers[Sacc]-=global_registers[reg]; -} -void inst_comp(enum Register reg, unsigned char memory_index){ - if(global_registers[Sacc]==global_registers[reg]){ - global_registers[Sflg]=0; - } else if(global_registers[Sacc] > global_registers[reg]){ - global_registers[Sflg]=-1; - }else{ - global_registers[Sflg]=1; - } -} -void inst_jeq(enum Register reg, unsigned char memory_index){ - if(global_registers[Sflg]==global_registers[reg]){ - inc_pc(); - } -} -void inst_jne(enum Register reg, unsigned char memory_index){ - if(global_registers[Sflg]!=global_registers[reg]){ - inc_pc(); - } -} -void inst_jieq(char im, unsigned char memory_index){ - if(global_registers[Sflg]==im){ - inc_pc(); - } -} -void inst_jine(char im, unsigned char memory_index){ - if(global_registers[Sflg]!=im){ - inc_pc(); - } -} - diff --git a/software/qsys_tutorial_lcd4/inst_decoder.h b/software/qsys_tutorial_lcd4/inst_decoder.h deleted file mode 100644 index 036e179..0000000 --- a/software/qsys_tutorial_lcd4/inst_decoder.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * inst_decoder.h - * - * Created on: 2016/11/25 - * Author: takayun - */ - -#ifndef INST_DECODER_H_ -#define INST_DECODER_H_ - -#include "sys_register.h" - -#define INST_END 0x0 -#define INST_JUMP 0x1 -#define INST_OUTPUT 0x2 -#define INST_LOAD 0x3 -#define INST_STORE 0x4 -#define INST_DELAY 0x5 -#define INST_ADD 0x6 -#define INST_COMP 0x7 -#define INST_JEQ 0x8 -#define INST_JNE 0x9 -#define INST_JIEQ 0xA -#define INST_JINE 0xB -#define INST_SUB 0xC - -struct InstRec { - unsigned int inst : 4; - unsigned int memi : 4; - unsigned int regi : 4; -}; - -struct InstRec inst_fetch(); - -void inst_decode(struct InstRec inst_rec); - -void inst_jump(enum Register reg, unsigned char memory_index); -void inst_output(enum Register reg, unsigned char memory_index); -void inst_load(enum Register reg, unsigned char memory_index); -void inst_store(enum Register reg, unsigned char memory_index); -void inst_delay(enum Register reg, unsigned char memory_index); -void inst_add(enum Register reg, unsigned char memory_index); -void inst_sub(enum Register reg, unsigned char memory_index); -void inst_comp(enum Register reg, unsigned char memory_index); -void inst_jeq(enum Register reg, unsigned char memory_index); -void inst_jne(enum Register reg, unsigned char memory_index); -void inst_jieq(char im, unsigned char memory_index); -void inst_jine(char im, unsigned char memory_index); - - -#endif /* INST_DECODER_H_ */ diff --git a/software/qsys_tutorial_lcd4/lcd_out.c b/software/qsys_tutorial_lcd4/lcd_out.c deleted file mode 100644 index b09a0bb..0000000 --- a/software/qsys_tutorial_lcd4/lcd_out.c +++ /dev/null @@ -1,29 +0,0 @@ -#include "lcd_out.h" -#include -#include -#include -#include -#include "system.h" -#include "LCD.h" - -// LCD�̏����� -void lcd_init() { - *lcd_on = 1; - *lcd_blon = 1; - LCD_Init(); -} - -// LCD�̃L�����b�g���P�s�ڂ̂͂��߂Ɉړ����� -void lcd_caret_reset() { - LCD_Init(); -} - -// LCD�̃L�����b�g���Q�s�ڂ̂͂��߂Ɉړ����� -void lcd_caret_reset2() { - LCD_Line2(); -} - -// LCD�ɕ�����\������ -void lcd_print(const char *str) { - LCD_Show_Text(str); -} diff --git a/software/qsys_tutorial_lcd4/lcd_out.h b/software/qsys_tutorial_lcd4/lcd_out.h deleted file mode 100644 index 7c51dd4..0000000 --- a/software/qsys_tutorial_lcd4/lcd_out.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * lcd_out.h - * - * Created on: 2016/12/02 - * Author: takayun - */ - -#ifndef LCD_OUT_H_ -#define LCD_OUT_H_ - -#include "system.h" - -#define lcd_on (volatile char *) LCD_ON_BASE -#define lcd_blon (volatile char *) LCD_BLON_BASE - -// LCD�̏����� -void lcd_init(); - -// LCD�̃L�����b�g���P�s�ڂ̂͂��߂Ɉړ����� -void lcd_caret_reset(); - -// LCD�̃L�����b�g���Q�s�ڂ̂͂��߂Ɉړ����� -void lcd_caret_reset2(); - -// LCD�ɕ�����\������ -void lcd_print(const char *str); - -#endif /* LCD_OUT_H_ */ diff --git a/software/qsys_tutorial_lcd4/readme.txt b/software/qsys_tutorial_lcd4/readme.txt deleted file mode 100644 index a949aa6..0000000 --- a/software/qsys_tutorial_lcd4/readme.txt +++ /dev/null @@ -1,26 +0,0 @@ -Readme - Hello World Software Example - -DESCRIPTION: -Simple program that prints "Hello from Nios II" - -The memory footprint of this hosted application is intended to be small (under 100 kbytes) by default -using a standard reference deisgn. - -For an even smaller, reduced footprint version of this template, and an explanation of how -to reduce the memory footprint for a given application, see the -"small_hello_world" template. - - -PERIPHERALS USED: -This example exercises the following peripherals: -- STDOUT device (UART or JTAG UART) - -SOFTWARE SOURCE FILES: -This example includes the following software source files: -- hello_world.c: Everyone needs a Hello World program, right? - -BOARD/HOST REQUIREMENTS: -This example requires only a JTAG connection with a Nios Development board. If -the host communication settings are changed from JTAG UART (default) to use a -conventional UART, a serial cable between board DB-9 connector and the host is -required. diff --git a/software/qsys_tutorial_lcd4/sys_debug.c b/software/qsys_tutorial_lcd4/sys_debug.c deleted file mode 100644 index 0a8cf77..0000000 --- a/software/qsys_tutorial_lcd4/sys_debug.c +++ /dev/null @@ -1,118 +0,0 @@ -/* - * sys_debug.c - * - * Created on: 2016/12/02 - * Author: takayun - */ - -#include "sys_debug.h" -#include -#include "lcd_out.h" -#include - -void display_inst(struct InstRec inst, unsigned int pc) { - char inst_name[INST_NAME_ARRAY_LEN]; // ���ߖ� - char reg_name[REG_NAME_ARRAY_LEN]; // ���W�X�^�� - char buf[17]; - - // ���߂̖��O�̎擾 - convertInstName(inst_name, inst.inst); - // ���W�X�^�̖��O�̎擾 - convertRegName(reg_name, inst.regi); - - lcd_caret_reset(); - sprintf(buf, "PC:0x%02x -> %4s",pc,inst_name); - lcd_print(buf); - lcd_caret_reset2(); - sprintf(buf, "REG:%3s,MEM:0x%1x",reg_name,inst.memi); - lcd_print(buf); -} - -void display_mem(unsigned char memi, char memv) { - char buf[17]; - - lcd_caret_reset(); - sprintf(buf, "MEM:0x%1x",memi); - lcd_print(buf); - lcd_caret_reset2(); - sprintf(buf, "value:%d",memv); - lcd_print(buf); -} - -void convertRegName(char reg_name[REG_NAME_ARRAY_LEN], enum Register reg_code) { - switch(reg_code) { - case Szero: - sprintf(reg_name, STRING_REG_ZERO); - break; - case Spc: - sprintf(reg_name, STRING_REG_PC); - break; - case Ssp: - sprintf(reg_name, STRING_REG_SP); - break; - case Sgp0: - sprintf(reg_name, STRING_REG_GP0); - break; - case Sgp1: - sprintf(reg_name, STRING_REG_GP1); - break; - case Sacc: - sprintf(reg_name, STRING_REG_ACC); - break; - case Sflg: - sprintf(reg_name, STRING_REG_FLG); - break; - default: - sprintf(reg_name, "non"); - break; - } -} - - -void convertInstName(char inst_name[INST_NAME_ARRAY_LEN], unsigned char inst_code) { - switch(inst_code) { - case INST_END: - sprintf(inst_name, STRING_INST_END); - break; - case INST_JUMP: - sprintf(inst_name, STRING_INST_JUMP); - break; - case INST_OUTPUT: - sprintf(inst_name, STRING_INST_OUTPUT); - break; - case INST_LOAD: - sprintf(inst_name, STRING_INST_LOAD); - break; - case INST_STORE: - sprintf(inst_name, STRING_INST_STORE); - break; - case INST_DELAY: - sprintf(inst_name, STRING_INST_DELAY); - break; - case INST_ADD: - sprintf(inst_name, STRING_INST_ADD); - break; - case INST_COMP: - sprintf(inst_name, STRING_INST_COMP); - break; - case INST_JEQ: - sprintf(inst_name, STRING_INST_JEQ); - break; - case INST_JNE: - sprintf(inst_name, STRING_INST_JNE); - break; - case INST_JIEQ: - sprintf(inst_name, STRING_INST_JIEQ); - break; - case INST_JINE: - sprintf(inst_name, STRING_INST_JINE); - break; - default: - sprintf(inst_name, "NoOp"); - break; - } -} - -void delay10ms(unsigned int s) { - usleep(s*10000); -} diff --git a/software/qsys_tutorial_lcd4/sys_debug.h b/software/qsys_tutorial_lcd4/sys_debug.h deleted file mode 100644 index dcbba39..0000000 --- a/software/qsys_tutorial_lcd4/sys_debug.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * sys_debug.h - * - * Created on: 2016/12/02 - * Author: takayun - */ - -#ifndef SYS_DEBUG_H_ -#define SYS_DEBUG_H_ - -#include "inst_decoder.h" -#include "sys_register.h" - -/************************************************** - * Defines - **************************************************/ - -#define INST_NAME_ARRAY_LEN 5 - -#define STRING_INST_END "END" -#define STRING_INST_JUMP "JUMP" -#define STRING_INST_OUTPUT "OUT" -#define STRING_INST_LOAD "LOAD" -#define STRING_INST_STORE "STOR" -#define STRING_INST_DELAY "DELY" -#define STRING_INST_ADD "ADD" -#define STRING_INST_COMP "COMP" -#define STRING_INST_JEQ "JEQ" -#define STRING_INST_JNE "JNE" -#define STRING_INST_JIEQ "JIEQ" -#define STRING_INST_JINE "JINE" - - -#define REG_NAME_ARRAY_LEN 4 - -#define STRING_REG_ZERO "ZE" -#define STRING_REG_PC "PC" -#define STRING_REG_SP "SP" -#define STRING_REG_GP0 "GP0" -#define STRING_REG_GP1 "GP1" -#define STRING_REG_ACC "ACC" -#define STRING_REG_FLG "FLG" - -/************************************************** - * Variables - **************************************************/ - - -/************************************************** - * Functions - **************************************************/ - -void convertInstName(char inst_name[INST_NAME_ARRAY_LEN], unsigned char inst_code); -void convertRegName(char reg_name[REG_NAME_ARRAY_LEN], enum Register reg_code); - -void display_inst(struct InstRec inst, unsigned int pc); -void display_mem(unsigned char memi, char memv); - -void delay10ms(unsigned int s); - -#endif /* SYS_DEBUG_H_ */ diff --git a/software/qsys_tutorial_lcd4/sys_except.c b/software/qsys_tutorial_lcd4/sys_except.c deleted file mode 100644 index 82420a4..0000000 --- a/software/qsys_tutorial_lcd4/sys_except.c +++ /dev/null @@ -1,14 +0,0 @@ -/* - * sys_except.c - * - * Created on: 2016/11/24 - * Author: takayun - */ -#include "system.h" -#include "hex_out.h" - -void panic() { - clear_block(HEX0_3); - print_block("err ", 4, HEX0_3); -} - diff --git a/software/qsys_tutorial_lcd4/sys_except.h b/software/qsys_tutorial_lcd4/sys_except.h deleted file mode 100644 index fa6f420..0000000 --- a/software/qsys_tutorial_lcd4/sys_except.h +++ /dev/null @@ -1,13 +0,0 @@ -/* - * sys_except.h - * - * Created on: 2016/11/24 - * Author: takayun - */ - -#ifndef SYSTEM_H_ -#define SYSTEM_H_ - -void panic(); - -#endif /* SYSTEM_H_ */ diff --git a/software/qsys_tutorial_lcd4/sys_memory.c b/software/qsys_tutorial_lcd4/sys_memory.c deleted file mode 100644 index 71b9d69..0000000 --- a/software/qsys_tutorial_lcd4/sys_memory.c +++ /dev/null @@ -1,59 +0,0 @@ -/* - * sys_memory.c - * - * Created on: 2016/11/24 - * Author: takayun - */ -#include "system.h" -#include "sys_memory.h" -#include "sys_register.h" -#include "sys_except.h" - -/************************************************** - * Public - **************************************************/ - -// �����������̂ǂ̃�������(0 < global_current_memory < MEMS_COUNT) -unsigned int global_current_memory = 0; - -/************************************************** - * Private - **************************************************/ - -// �����������̕ϐ� -static char memory[MEMS_COUNT][MEM_SIZE]; - -static struct InstRec inst_memory[MEMS_COUNT][MEM_SIZE]; - - -/************************************************** - * Impl - **************************************************/ - -void memory_init() { - int i, j; - for (i = 0; i < MEMS_COUNT; i++) - for (j = 0; j < MEM_SIZE; j++) { - memory[i][j] = 0; - } -} - -void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec){ - inst_memory[global_current_memory][mem_addr] = inst_rec; -} -struct InstRec inst_memory_load(unsigned int mem_addr){ - return inst_memory[global_current_memory][mem_addr]; -} - -char memory_store(unsigned int mem_addr, enum Register reg) { - if (!(mem_addr < MEM_SIZE)) panic(); - memory[global_current_memory][mem_addr] = global_registers[reg]; - return memory[global_current_memory][mem_addr]; -} - -char memory_load(unsigned int mem_addr, enum Register reg) { - if (!(mem_addr < MEM_SIZE)) panic(); - global_registers[reg] = memory[global_current_memory][mem_addr]; - return global_registers[reg]; -} - diff --git a/software/qsys_tutorial_lcd4/sys_memory.h b/software/qsys_tutorial_lcd4/sys_memory.h deleted file mode 100644 index f67c9a4..0000000 --- a/software/qsys_tutorial_lcd4/sys_memory.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * sys_memory.h - * - * Created on: 2016/11/24 - * Author: takayun - */ - -#ifndef SYS_MEMORY_H_ -#define SYS_MEMORY_H_ - -#include "sys_register.h" -#include "inst_decoder.h" - -/************************************************** - * Defines - **************************************************/ - -// �������̐� -#define MEMS_COUNT 16 - -// 1�������̃T�C�Y -#define MEM_SIZE 16 - -/************************************************** - * Variables - **************************************************/ - -extern unsigned int global_current_memory; - -/************************************************** - * Functions - **************************************************/ - -/* Function: memory_init - * Sammary: - * ������������������(All 0) */ -void memory_init(); - -/* ���ߗp�������ɖ��߂̃X�g�A&���[�h */ - -/* Function: memory_store -> char - * Sammary: - * �������̎w��Ԓn�Ɏw�肵�����W�X�^����l���i�[���� - * Return: - * �������Ɋi�[���ꂽ�l */ -void inst_memory_store(unsigned int mem_addr, struct InstRec inst_rec); -struct InstRec inst_memory_load(unsigned int mem_addr); - - -/* ������-���W�X�^�Ԃ̑��� */ - -/* Function: memory_store -> char - * Sammary: - * �������̎w��Ԓn�Ɏw�肵�����W�X�^����l���i�[���� - * Return: - * �������Ɋi�[���ꂽ�l */ -char memory_store(unsigned int mem_addr, enum Register reg); - -/* Function: memory_store -> char - * Sammary: - * �w�肵�����W�X�^�Ƀ������̎w��Ԓn����l���i�[���� - * Return: - * ���W�X�^�Ɋi�[���ꂽ�l */ -char memory_load(unsigned int mem_addr, enum Register reg); - - -#endif /* SYS_MEMORY_H_ */ diff --git a/software/qsys_tutorial_lcd4/sys_prog.c b/software/qsys_tutorial_lcd4/sys_prog.c deleted file mode 100644 index bbcc395..0000000 --- a/software/qsys_tutorial_lcd4/sys_prog.c +++ /dev/null @@ -1,84 +0,0 @@ -/* - * sys_prog.c - * - * Created on: 2016/12/15 - * Author: takayun - */ - -#include "sys_prog.h" -#include -#include "sys_debug.h" -#include "sys_register.h" -#include "sys_memory.h" -#include "hex_out.h" -#include "lcd_out.h" - -unsigned int inc_pc() { - if ((unsigned char)global_registers[Spc]+1 < MEM_SIZE*MEMS_COUNT - global_current_memory*MEM_SIZE ) { - global_registers[Spc] = (unsigned char)global_registers[Spc] + 1; - } else { - global_registers[Spc] = 0; - } - return 0; -} -unsigned int add_pc(unsigned int cnt) { - int i; - for (i = 0; i < cnt; i++) inc_pc(); - return 0; -} -unsigned int set_pc(unsigned int cnt) { - global_registers[Spc]=cnt; - return 0; -} -unsigned int get_pc() { - if ((unsigned char)global_registers[Spc] < MEM_SIZE*MEMS_COUNT - global_current_memory*MEM_SIZE ) { - return (unsigned int)global_registers[Spc]; - } else { - return 0; - } -} - -enum RunMode run_proc(enum RunMode mode) { - volatile struct InstRec inst_rec; - - if (RUN_INIT == mode) { - lcd_caret_reset(); - lcd_print("Run...now"); - - global_registers[Spc] = 0; - clear_block(HEX0_3); clear_block(HEX4_5); clear_block(HEX6_7); - - // �v���O�������s���֑J�� - return RUN_PROC; - } - - if (RUN_PROC == mode) { - // ���߃t�F�b�` - inst_rec = inst_fetch(); - // ���߃f�R�[�h���s - inst_decode(inst_rec); - // pc�\�� - { - char buf[5]; - sprintf(buf, "%02x", (unsigned char)global_registers[Spc]); - print_block("pc", 2, HEX6_7); - print_block(buf, 2, HEX4_5); - } - - // �f�o�b�N�p - if ( global_registers[Ssw_run] ) delay10ms(100U); - - // �v���O�����I������ - if (inst_rec.inst != INST_END) return RUN_PROC; - return RUN_TERM; - } - - if (RUN_TERM == mode) { - lcd_caret_reset(); - lcd_print("Run...Exit"); - return RUN_STOP; - } - - // Default - return RUN_STOP; -} diff --git a/software/qsys_tutorial_lcd4/sys_prog.h b/software/qsys_tutorial_lcd4/sys_prog.h deleted file mode 100644 index b112e4c..0000000 --- a/software/qsys_tutorial_lcd4/sys_prog.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * sys_prog.h - * - * Created on: 2016/12/15 - * Author: takayun - */ - -#ifndef SYS_PROG_H_ -#define SYS_PROG_H_ - -/************************************************** - * Defines - **************************************************/ - -// �v���O�������s��� -enum RunMode { RUN_STOP, RUN_INIT, RUN_PROC, RUN_TERM }; - -/************************************************** - * Variables - **************************************************/ - -/************************************************** - * Functions - **************************************************/ - -// ���S��PC�̃J�E���g�A�b�v���s�� -unsigned int inc_pc(); -unsigned int add_pc(unsigned int); -unsigned int set_pc(unsigned int); -unsigned int get_pc(); - -enum RunMode run_proc(enum RunMode mode); - -#endif /* SYS_PROG_H_ */ diff --git a/software/qsys_tutorial_lcd4/sys_register.c b/software/qsys_tutorial_lcd4/sys_register.c deleted file mode 100644 index 26ba99b..0000000 --- a/software/qsys_tutorial_lcd4/sys_register.c +++ /dev/null @@ -1,17 +0,0 @@ -/* - * sys_register.c - * - * Created on: 2016/11/24 - * Author: takayun - */ -#include "sys_register.h" - -char global_registers[REG_MAX_COUNT]; - -void registers_init() { - int i; - for (i = 0; i < REG_MAX_COUNT; i++) global_registers[i] = 0; -} - - - diff --git a/software/qsys_tutorial_lcd4/sys_register.h b/software/qsys_tutorial_lcd4/sys_register.h deleted file mode 100644 index 2603f26..0000000 --- a/software/qsys_tutorial_lcd4/sys_register.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * sys_register.h - * - * Created on: 2016/11/24 - * Author: takayun - */ - -#ifndef SYS_REGISTER_H_ -#define SYS_REGISTER_H_ - -/************************************************** - * Defines - **************************************************/ - -// ���W�X�^�̒�` -enum Register { - /* �ʏ�̃��W�X�^ */ - Szero, //�[�����W�X�^ - Spc, //�v���O�����J�E���^ - Ssp, //�X�^�b�N�|�C���^ - Sgp0, //�ėp���W�X�^0 - Sgp1, //�ėp���W�X�^1 - Sacc, //�A�L�������[�^ - Sflg, //�t���O���W�X�^ - /* �X�C�b�`�ǂݏo���p���W�X�^ */ - Ssw_data, //�f�[�^(8bit) - Ssw_inst, //����(4bit) - Ssw_regi, //���W�X�^�ԍ�(4bit) - Ssw_memi, //�������Ԓn(4bit) - Ssw_psel, //�v���O�����Z���N�^(4bit) - Ssw_rw, //�ǂݏ������[�h(1bit) - Ssw_run, //���s���[�h(1bit) - /* 7�Z�O�p���W�X�^ */ - Sseg, - - /* �z��錾�p */ - REG_MAX_COUNT -}; - -/************************************************** - * Variables - **************************************************/ - -// ���W�X�^�p�̕ϐ� -extern char global_registers[REG_MAX_COUNT]; - -/************************************************** - * Functions - **************************************************/ - -void registers_init(); - - -#endif /* SYS_REGISTER_H_ */ diff --git a/software/qsys_tutorial_lcd4_bsp/.cproject b/software/qsys_tutorial_lcd4_bsp/.cproject deleted file mode 100644 index 2927f5c..0000000 --- a/software/qsys_tutorial_lcd4_bsp/.cproject +++ /dev/null @@ -1,481 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/alt_types.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/alt_types.h deleted file mode 100644 index 8eb438f..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/alt_types.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef __ALT_TYPES_H__ -#define __ALT_TYPES_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/* - * Don't declare these typedefs if this file is included by assembly source. - */ -#ifndef ALT_ASM_SRC -typedef signed char alt_8; -typedef unsigned char alt_u8; -typedef signed short alt_16; -typedef unsigned short alt_u16; -typedef signed long alt_32; -typedef unsigned long alt_u32; -typedef long long alt_64; -typedef unsigned long long alt_u64; -#endif - -#define ALT_INLINE __inline__ -#define ALT_ALWAYS_INLINE __attribute__ ((always_inline)) -#define ALT_WEAK __attribute__((weak)) - -#endif /* __ALT_TYPES_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/altera_nios2_qsys_irq.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/altera_nios2_qsys_irq.h deleted file mode 100644 index 910c91c..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/altera_nios2_qsys_irq.h +++ /dev/null @@ -1,80 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* - * Support for the Nios II internal interrupt controller. - */ - -#ifndef __ALT_NIOS2_QSYS_IRQ_H__ -#define __ALT_NIOS2_QSYS_IRQ_H__ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * The macro ALTERA_NIOS2_IRQ_INSTANCE is used by the alt_irq_init() - * function in the auto-generated file alt_sys_init.c to create an - * instance of this interrupt controller device driver state if this - * module contains an interrupt controller. - * Only one instance of a Nios II is allowed so this macro is just empty. - */ - -#define ALTERA_NIOS2_QSYS_IRQ_INSTANCE(name, state) - -/* - * altera_nios2_irq_init() is called by the auto-generated function - * alt_irq_init() once for the Nios II if it contains an interrupt controller. - * The altera_nios2_irq_init() routine is called using the - * ALTERA_NIOS2_IRQ_INIT macro given below. - * - * This function initializes the internal interrupt controller - * so is not called if the Nios II contains an external interrupt - * controller port (because the internal interrupt controller - * is removed if this port is present). - */ - -extern void altera_nios2_qsys_irq_init( void ); - -/* - * The macro ALTERA_NIOS2_IRQ_INIT is used by the alt_irq_init() routine - * in the auto-generated file alt_sys_init.c to initialize an instance - * of the interrupt controller device driver state. - */ - -#define ALTERA_NIOS2_QSYS_IRQ_INIT(name, state) altera_nios2_qsys_irq_init() - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __ALT_NIOS2_QSYS_IRQ_H__ */ - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/io.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/io.h deleted file mode 100644 index 867e87d..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/io.h +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef __IO_H__ -#define __IO_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/* IO Header file for Nios II Toolchain */ - -#include "alt_types.h" -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#ifndef SYSTEM_BUS_WIDTH -#error SYSTEM_BUS_WIDTH undefined -#endif - -/* Dynamic bus access functions */ - -#define __IO_CALC_ADDRESS_DYNAMIC(BASE, OFFSET) \ - ((void *)(((alt_u8*)BASE) + (OFFSET))) - -#define IORD_32DIRECT(BASE, OFFSET) \ - __builtin_ldwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) -#define IORD_16DIRECT(BASE, OFFSET) \ - __builtin_ldhuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) -#define IORD_8DIRECT(BASE, OFFSET) \ - __builtin_ldbuio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET))) - -#define IOWR_32DIRECT(BASE, OFFSET, DATA) \ - __builtin_stwio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) -#define IOWR_16DIRECT(BASE, OFFSET, DATA) \ - __builtin_sthio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) -#define IOWR_8DIRECT(BASE, OFFSET, DATA) \ - __builtin_stbio (__IO_CALC_ADDRESS_DYNAMIC ((BASE), (OFFSET)), (DATA)) - -/* Native bus access functions */ - -#define __IO_CALC_ADDRESS_NATIVE(BASE, REGNUM) \ - ((void *)(((alt_u8*)BASE) + ((REGNUM) * (SYSTEM_BUS_WIDTH/8)))) - -#define IORD(BASE, REGNUM) \ - __builtin_ldwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM))) -#define IOWR(BASE, REGNUM, DATA) \ - __builtin_stwio (__IO_CALC_ADDRESS_NATIVE ((BASE), (REGNUM)), (DATA)) - -#ifdef __cplusplus -} -#endif - -#endif /* __IO_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/nios2.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/nios2.h deleted file mode 100644 index eec4e35..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/nios2.h +++ /dev/null @@ -1,230 +0,0 @@ -#ifndef __NIOS2_H__ -#define __NIOS2_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* - * This header provides processor specific macros for accessing the Nios2 - * control registers. - */ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * Macros for accessing selected processor registers - */ - -#define NIOS2_READ_ET(et) \ - do { __asm ("mov %0, et" : "=r" (et) ); } while (0) - -#define NIOS2_WRITE_ET(et) \ - do { __asm volatile ("mov et, %z0" : : "rM" (et)); } while (0) - -#define NIOS2_READ_SP(sp) \ - do { __asm ("mov %0, sp" : "=r" (sp) ); } while (0) - -/* - * Macros for useful processor instructions - */ - -#define NIOS2_BREAK() \ - do { __asm volatile ("break"); } while (0) - -#define NIOS2_REPORT_STACK_OVERFLOW() \ - do { __asm volatile("break 3"); } while (0) - -/* - * Macros for accessing the control registers. - */ - -#define NIOS2_READ_STATUS(dest) \ - do { dest = __builtin_rdctl(0); } while (0) - -#define NIOS2_WRITE_STATUS(src) \ - do { __builtin_wrctl(0, src); } while (0) - -#define NIOS2_READ_ESTATUS(dest) \ - do { dest = __builtin_rdctl(1); } while (0) - -#define NIOS2_READ_BSTATUS(dest) \ - do { dest = __builtin_rdctl(2); } while (0) - -#define NIOS2_READ_IENABLE(dest) \ - do { dest = __builtin_rdctl(3); } while (0) - -#define NIOS2_WRITE_IENABLE(src) \ - do { __builtin_wrctl(3, src); } while (0) - -#define NIOS2_READ_IPENDING(dest) \ - do { dest = __builtin_rdctl(4); } while (0) - -#define NIOS2_READ_CPUID(dest) \ - do { dest = __builtin_rdctl(5); } while (0) - - -/* - * Macros for accessing extra exception registers. These - * are always enabled wit the MPU or MMU, and optionally - * with other advanced exception types/ - */ -#define NIOS2_READ_EXCEPTION(dest) \ - do { dest = __builtin_rdctl(7); } while (0) - -#define NIOS2_READ_BADADDR(dest) \ - do { dest = __builtin_rdctl(12); } while (0) - - -/* - * Macros for accessing control registers for MPU - * operation. These should not be used unless the - * MPU is enabled. - * - * The config register may be augmented for future - * enhancements. For now, only MPU support is provided. - */ -/* Config register */ -#define NIOS2_WRITE_CONFIG(src) \ - do { __builtin_wrctl(13, src); } while (0) - -#define NIOS2_READ_CONFIG(dest) \ - do { dest = __builtin_rdctl(13); } while (0) - -/* MPU Base Address Register */ -#define NIOS2_WRITE_MPUBASE(src) \ - do { __builtin_wrctl(14, src); } while (0) - -#define NIOS2_READ_MPUBASE(dest) \ - do { dest = __builtin_rdctl(14); } while (0) - -/* MPU Access Register */ -#define NIOS2_WRITE_MPUACC(src) \ - do { __builtin_wrctl(15, src); } while (0) - -#define NIOS2_READ_MPUACC(dest) \ - do { dest = __builtin_rdctl(15); } while (0) - - -/* - * Nios II control registers that are always present - */ -#define NIOS2_STATUS status -#define NIOS2_ESTATUS estatus -#define NIOS2_BSTATUS bstatus -#define NIOS2_IENABLE ienable -#define NIOS2_IPENDING ipending -#define NIOS2_CPUID cpuid - -/* - * STATUS, BSTATUS, ESTATUS, and SSTATUS fields. - * The presence of fields is a function of the Nios II configuration. - */ -#define NIOS2_STATUS_PIE_MSK (0x00000001) -#define NIOS2_STATUS_PIE_OFST (0) -#define NIOS2_STATUS_U_MSK (0x00000002) -#define NIOS2_STATUS_U_OFST (1) -#define NIOS2_STATUS_EH_MSK (0x00000004) -#define NIOS2_STATUS_EH_OFST (2) -#define NIOS2_STATUS_IH_MSK (0x00000008) -#define NIOS2_STATUS_IH_OFST (3) -#define NIOS2_STATUS_IL_MSK (0x000003f0) -#define NIOS2_STATUS_IL_OFST (4) -#define NIOS2_STATUS_CRS_MSK (0x0000fc00) -#define NIOS2_STATUS_CRS_OFST (10) -#define NIOS2_STATUS_PRS_MSK (0x003f0000) -#define NIOS2_STATUS_PRS_OFST (16) -#define NIOS2_STATUS_NMI_MSK (0x00400000) -#define NIOS2_STATUS_NMI_OFST (22) -#define NIOS2_STATUS_RSIE_MSK (0x00800000) -#define NIOS2_STATUS_RSIE_OFST (23) -#define NIOS2_STATUS_SRS_MSK (0x80000000) -#define NIOS2_STATUS_SRS_OFST (31) - -/* - * Bit masks & offsets available with extra exceptions support - */ - -/* Exception register */ -#define NIOS2_EXCEPTION_REG_CAUSE_MASK (0x0000007c) -#define NIOS2_EXCEPTION_REG_CAUSE_OFST (2) - -/* - * Bit masks & offsets for MPU support - * - * All bit-masks are expressed relative to the position - * of the data with a register. To read data that is LSB- - * aligned, the register read data should be masked, then - * right-shifted by the designated "OFST" macro value. The - * opposite should be used for register writes when starting - * with LSB-aligned data. - */ - -/* Config register */ -#define NIOS2_CONFIG_REG_PE_MASK (0x00000001) -#define NIOS2_CONFIG_REG_PE_OFST (0) -#define NIOS2_CONFIG_REG_ANI_MASK (0x00000002) -#define NIOS2_CONFIG_REG_ANI_OFST (1) - -/* MPU Base Address Register */ -#define NIOS2_MPUBASE_D_MASK (0x00000001) -#define NIOS2_MPUBASE_D_OFST (0) -#define NIOS2_MPUBASE_INDEX_MASK (0x0000003e) -#define NIOS2_MPUBASE_INDEX_OFST (1) -#define NIOS2_MPUBASE_BASE_ADDR_MASK (0xffffffc0) -#define NIOS2_MPUBASE_BASE_ADDR_OFST (6) - -/* MPU Access Register */ -#define NIOS2_MPUACC_LIMIT_MASK (0xffffffc0) -#define NIOS2_MPUACC_LIMIT_OFST (6) -#define NIOS2_MPUACC_MASK_MASK (0xffffffc0) -#define NIOS2_MPUACC_MASK_OFST (6) -#define NIOS2_MPUACC_C_MASK (0x00000020) -#define NIOS2_MPUACC_C_OFST (5) -#define NIOS2_MPUACC_PERM_MASK (0x0000001c) -#define NIOS2_MPUACC_PERM_OFST (2) -#define NIOS2_MPUACC_RD_MASK (0x00000002) -#define NIOS2_MPUACC_RD_OFST (1) -#define NIOS2_MPUACC_WR_MASK (0x00000001) -#define NIOS2_MPUACC_WR_OFST (0) - -/* - * Number of available IRQs in internal interrupt controller. - */ -#define NIOS2_NIRQ 32 - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __NIOS2_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_flag.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_flag.h deleted file mode 100644 index 86493c2..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_flag.h +++ /dev/null @@ -1,98 +0,0 @@ -#ifndef __ALT_FLAG_H__ -#define __ALT_FLAG_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -/* - * This header provides macro definitions that can be used to create and use - * uc/OS-II style event flags. These macros can be used in both a uC/OS-II based - * environment, and a single threaded HAL based environment. - * - * The motivation for these macros is to allow code to be developed which is - * thread safe under uC/OS-II, but incurs no additional overhead when used in a - * single threaded HAL environment. - * - * In the case of a single threaded HAL environment, they compile to - * "do nothing" directives, which ensures they do not contribute to the final - * executable. - * - * The following macros are available: - * - * ALT_FLAG_GRP - Create a flag group instance. - * ALT_EXTERN_FLAG_GRP - Create a reference to an external flag group instance. - * ALT_STATIC_FLAG_GRP - Create a static flag group instance. - * ALT_FLAG_CREATE - Initialise a flag group. - * ALT_FLAG_PEND - Pend on a flag group. - * ALT_FLAG_POST - Set a flag condition. - - * - * Input arguments and return codes are all consistant with the equivalent - * uC/OS-II function. - * - * It's important to be careful in the use of the macros: ALT_FLAG_GRP, - * ALT_EXTERN_FLAG_GRP, and ALT_STATIC_FLAG_GRP. In these three cases the - * semi-colon is included in the macro definition; so, for example, you should - * use: - * - * ALT_FLAG_GRP(mygroup) - * - * not: - * - * ALT_FLAG_GRP(mygroup); - * - * The inclusion of the semi-colon has been necessary to ensure the macros can - * compile with no warnings when used in a single threaded HAL environment. - * - */ - -#include "priv/alt_no_error.h" - -#define ALT_FLAG_GRP(group) -#define ALT_EXTERN_FLAG_GRP(group) -#define ALT_STATIC_FLAG_GRP(group) - -#define ALT_FLAG_CREATE(group, flags) alt_no_error () -#define ALT_FLAG_PEND(group, flags, wait_type, timeout) alt_no_error () -#define ALT_FLAG_POST(group, flags, opt) alt_no_error () - -#ifndef ALT_SINGLE_THREADED -#define ALT_SINGLE_THREADED -#endif - -#endif /* __ALT_FLAG_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_hooks.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_hooks.h deleted file mode 100644 index ba1100e..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_hooks.h +++ /dev/null @@ -1,61 +0,0 @@ -#ifndef __ALT_HOOKS_H__ -#define __ALT_HOOKS_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -/* - * This header provides "do-nothing" macro definitions for operating system - * hooks within the HAL. The O/S component can override these to provide it's - * own implementation. - */ - -#define ALT_OS_TIME_TICK() while(0) -#define ALT_OS_INIT() while(0) -#define ALT_OS_STOP() while(0) - -/* Call from assembly code */ -#define ALT_OS_INT_ENTER_ASM -#define ALT_OS_INT_EXIT_ASM - -/* Call from C code */ -#define ALT_OS_INT_ENTER() while(0) -#define ALT_OS_INT_EXIT() while(0) - - -#endif /* __ALT_HOOKS_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_sem.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_sem.h deleted file mode 100644 index ed0f4a8..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_sem.h +++ /dev/null @@ -1,96 +0,0 @@ -#ifndef __ALT_SEM_H__ -#define __ALT_SEM_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -/* - * This header provides macro definitions that can be used to create and use - * semaphores. These macros can be used in both a uC/OS-II based environment, - * and a single threaded HAL based environment. - * - * The motivation for these macros is to allow code to be developed which is - * thread safe under uC/OS-II, but incurs no additional overhead when used in a - * single threaded HAL environment. - * - * In the case of a single threaded HAL environment, they compile to - * "do nothing" directives, which ensures they do not contribute to the final - * executable. - * - * The following macros are available: - * - * ALT_SEM - Create a semaphore instance. - * ALT_EXTERN_SEM - Create a reference to an external semaphore instance. - * ALT_STATIC_SEM - Create a static semaphore instance. - * ALT_SEM_CREATE - Initialise a semaphore. - * ALT_SEM_PEND - Pend on a semaphore. - * ALT_SEM_POST - Increment a semaphore. - * - * Input arguments and return codes are all consistant with the equivalent - * uC/OS-II function. - * - * It's important to be careful in the use of the macros: ALT_SEM, - * ALT_EXTERN_SEM, and ALT_STATIC_SEM. In these three cases the semi-colon is - * included in the macro definition; so, for example, you should use: - * - * ALT_SEM(mysem) - * - * not: - * - * ALT_SEM(mysem); - * - * The inclusion of the semi-colon has been necessary to ensure the macros can - * compile with no warnings when used in a single threaded HAL environment. - * - */ - -#include "priv/alt_no_error.h" - -#define ALT_SEM(sem) -#define ALT_EXTERN_SEM(sem) -#define ALT_STATIC_SEM(sem) - -#define ALT_SEM_CREATE(sem, value) alt_no_error () -#define ALT_SEM_PEND(sem, timeout) alt_no_error () -#define ALT_SEM_POST(sem) alt_no_error () - -#ifndef ALT_SINGLE_THREADED -#define ALT_SINGLE_THREADED -#endif - -#endif /* __ALT_SEM_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_syscall.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_syscall.h deleted file mode 100644 index 2b1165a..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/os/alt_syscall.h +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef __ALT_SYSCALL_H__ -#define __ALT_SYSCALL_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* - * The macros defined in this file are used to provide the function names used - * for the HAL 'UNIX style' interface, e.g. read(), write() etc. - * - * Operating systems which are ported to the HAL can provide their own - * version of this file, which will be used in preference. This allows - * the operating system to provide it's own implementation of the top level - * system calls, while retaining the HAL functions under a different name, - * for example, alt_read(), alt_write() etc. - */ - -#define ALT_CLOSE close -#define ALT_ENVIRON environ -#define ALT_EXECVE execve -#define ALT_EXIT _exit -#define ALT_FCNTL fcntl -#define ALT_FORK fork -#define ALT_FSTAT fstat -#define ALT_GETPID getpid -#define ALT_GETTIMEOFDAY gettimeofday -#define ALT_IOCTL ioctl -#define ALT_ISATTY isatty -#define ALT_KILL kill -#define ALT_LINK link -#define ALT_LSEEK lseek -#define ALT_OPEN open -#define ALT_READ read -#define ALT_RENAME _rename -#define ALT_SBRK sbrk -#define ALT_SETTIMEOFDAY settimeofday -#define ALT_STAT stat -#define ALT_UNLINK unlink -#define ALT_USLEEP usleep -#define ALT_WAIT wait -#define ALT_WRITE write -#define ALT_TIMES times - -/* - * - */ - -#endif /* __ALT_SYSCALL_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_alarm.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_alarm.h deleted file mode 100644 index ae687bb..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_alarm.h +++ /dev/null @@ -1,101 +0,0 @@ -#ifndef __ALT_PRIV_ALARM_H__ -#define __ALT_PRIV_ALARM_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include "alt_types.h" - -/* - * This header provides the internal defenitions required by the public - * interface alt_alarm.h. These variables and structures are not guaranteed to - * exist in future implementations of the HAL. - */ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * "alt_alarm_s" is a structure type used to maintain lists of alarm callback - * functions. - */ - -struct alt_alarm_s -{ - alt_llist llist; /* linked list */ - alt_u32 time; /* time in system ticks of the callback */ - alt_u32 (*callback) (void* context); /* callback function. The return - * value is the period for the next callback; where - * zero indicates that the alarm should be removed - * from the list. - */ - alt_u8 rollover; /* set when desired alarm time + current time causes - overflow, to prevent premature alarm */ - void* context; /* Argument for the callback */ -}; - -/* - * "_alt_tick_rate" is a global variable used to store the system clock rate - * in ticks per second. This is initialised to zero, which coresponds to there - * being no system clock available. - * - * It is then set to it's final value by the system clock driver through a call - * to alt_sysclk_init(). - */ - -extern alt_u32 _alt_tick_rate; - -/* - * "_alt_nticks" is a global variable which records the elapsed number of - * system clock ticks since the last call to settimeofday() or since reset if - * settimeofday() has not been called. - */ - -extern volatile alt_u32 _alt_nticks; - -/* The list of registered alarms. */ - -extern alt_llist alt_alarm_list; - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_PRIV_ALARM_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_busy_sleep.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_busy_sleep.h deleted file mode 100644 index a165e93..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_busy_sleep.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __ALT_BUSY_SLEEP_H -#define __ALT_BUSY_SLEEP_H - -/* - * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. - * All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - */ - -/* - * The function alt_busy_sleep provides a busy loop implementation of usleep. - * This is used to provide usleep for the standalone HAL, or when the timer is - * unavailable in uC/OS-II. - */ - -extern unsigned int alt_busy_sleep (unsigned int us); - -#endif /* __ALT_BUSY_SLEEP_H */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_dev_llist.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_dev_llist.h deleted file mode 100644 index 0ab7a28..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_dev_llist.h +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef __ALT_DEV_LLIST_H__ -#define __ALT_DEV_LLIST_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include "sys/alt_llist.h" -#include "alt_types.h" - -/* - * This header provides the internal defenitions required to control file - * access. These variables and functions are not guaranteed to exist in - * future implementations of the HAL. - */ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * The alt_dev_llist is an internal structure used to form a common base - * class for all device types. The use of this structure allows common code - * to be used to manipulate the various device lists. - */ - -typedef struct { - alt_llist llist; - const char* name; -} alt_dev_llist; - -/* - * - */ - -extern int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list); - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_DEV_LLIST_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_exception_handler_registry.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_exception_handler_registry.h deleted file mode 100644 index 4502ea7..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_exception_handler_registry.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef __ALT_EXCEPTION_HANDLER_REGISTRY_H__ -#define __ALT_EXCEPTION_HANDLER_REGISTRY_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ -#include "sys/alt_exceptions.h" - -/* Function pointer to exception callback routine */ -extern alt_exception_result (*alt_instruction_exception_handler) - (alt_exception_cause, alt_u32, alt_u32); - -#endif /* __ALT_EXCEPTION_HANDLER_REGISTRY_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_file.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_file.h deleted file mode 100644 index 94007a6..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_file.h +++ /dev/null @@ -1,179 +0,0 @@ -#ifndef __ALT_FILE_H__ -#define __ALT_FILE_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include "sys/alt_dev.h" -#include "sys/alt_llist.h" -#include "os/alt_sem.h" - -#include "alt_types.h" - -/* - * This header provides the internal defenitions required to control file - * access. These variables and functions are not guaranteed to exist in - * future implementations of the HAL. - */ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * The function alt_find_dev() is used to search the device list "list" to - * locate a device named "name". If a match is found, then a pointer to the - * device is returned, otherwise NULL is returned. - */ - -extern alt_dev* alt_find_dev (const char* name, alt_llist* list); - -/* - * alt_find_file() is used to search the list of registered file systems to - * find the filesystem that the file named "name" belongs to. If a match is - * found, then a pointer to the filesystems alt_dev structure is returned, - * otherwise NULL is returned. - * - * Note that a match does not indicate that the file exists, only that a - * filesystem exists that is registered for a partition that could contain - * the file. The filesystems open() function would need to be called in order - * to determine if the file exists. - */ - -extern alt_dev* alt_find_file (const char* name); - -/* - * alt_get_fd() is used to allocate a file descriptor for the device or - * filesystem "dev". A negative return value indicates an error, otherwise the - * return value is the index of the file descriptor within the file descriptor - * pool. - */ - -extern int alt_get_fd (alt_dev* dev); - -/* - * alt_release_fd() is called to free the file descriptor with index "fd". - */ - -extern void alt_release_fd (int fd); - -/* - * alt_fd_lock() is called by ioctl() to mark the file descriptor "fd" as - * being open for exclusive access. Subsequent calls to open() for the device - * associated with "fd" will fail. A device is unlocked by either calling - * close() for "fd", or by an alternate call to ioctl() (see ioctl.c for - * details). - */ - -extern int alt_fd_lock (alt_fd* fd); - -/* - * alt_fd_unlock() is called by ioctl() to unlock a descriptor previously - * locked by a call to alt_fd_lock(). - */ - -extern int alt_fd_unlock (alt_fd* fd); - -/* - * "alt_fd_list" is the pool of file descriptors. - */ - -extern alt_fd alt_fd_list[]; - -/* - * flags used by alt_fd. - * - * ALT_FD_EXCL is used to mark a file descriptor as locked for exclusive - * access, i.e. further calls to open() for the associated device should - * fail. - * - * ALT_FD_DEV marks a dile descriptor as belonging to a device as oposed to a - * filesystem. - */ - -#define ALT_FD_EXCL 0x80000000 -#define ALT_FD_DEV 0x40000000 - -#define ALT_FD_FLAGS_MASK (ALT_FD_EXCL | ALT_FD_DEV) - -/* - * "alt_dev_list" is the head of the linked list of registered devices. - */ - -extern alt_llist alt_dev_list; - -/* - * "alt_fs_list" is the head of the linked list of registered filesystems. - */ - -extern alt_llist alt_fs_list; - -/* - * "alt_fd_list_lock" is a semaphore used to ensure that access to the pool - * of file descriptors is thread safe. - */ - -ALT_EXTERN_SEM(alt_fd_list_lock) - -/* - * "alt_max_fd" is a 'high water mark'. It indicates the highest file - * descriptor allocated. Use of this can save searching the entire pool - * for active file descriptors, which helps avoid contention on access - * to the file descriptor pool. - */ - -extern alt_32 alt_max_fd; - -/* - * alt_io_redirect() is called at startup to redirect stdout, stdin, and - * stderr to the devices named in the input arguments. By default these streams - * are directed at /dev/null, and are then redirected using this function once - * all of the devices have been registered within the system. - */ - -extern void alt_io_redirect(const char* stdout_dev, - const char* stdin_dev, - const char* stderr_dev); - - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_FILE_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_iic_isr_register.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_iic_isr_register.h deleted file mode 100644 index 6c53c86..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_iic_isr_register.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef __ALT_IIC_ISR_REGISTER_H_ -#define __ALT_IIC_ISR_REGISTER_H_ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ -#include "alt_types.h" -#include "sys/alt_irq.h" - -extern int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, - void *isr_context, void *flags); - -#endif /* __ALT_IIC_ISR_REGISTER_H_ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_irq_table.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_irq_table.h deleted file mode 100644 index 5b4a787..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_irq_table.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef __ALT_IRQ_TABLE_H__ -#define __ALT_IRQ_TABLE_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -/* - * Definition of a table describing each interrupt handler. The index into - * the array is the interrupt id associated with the handler. - * - * When an interrupt occurs, the associated handler is called with - * the argument stored in the context member. - * - * The table is physically created in alt_irq_handler.c - */ -extern struct ALT_IRQ_HANDLER -{ -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT - void (*handler)(void*); -#else - void (*handler)(void*, alt_u32); -#endif - void *context; -} alt_irq[ALT_NIRQ]; - -#endif diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_legacy_irq.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_legacy_irq.h deleted file mode 100644 index 0e19af2..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_legacy_irq.h +++ /dev/null @@ -1,158 +0,0 @@ -#ifndef __ALT_LEGACY_IRQ_H__ -#define __ALT_LEGACY_IRQ_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* - * This file provides prototypes and inline implementations of certain routines - * used by the legacy interrupt API. Do not include this in your driver or - * application source files, use "sys/alt_irq.h" instead to access the proper - * public API. - */ - -#include -#include "system.h" - -#ifndef NIOS2_EIC_PRESENT - -#include "nios2.h" -#include "alt_types.h" - -#include "sys/alt_irq.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * alt_irq_register() can be used to register an interrupt handler. If the - * function is succesful, then the requested interrupt will be enabled upon - * return. - */ -extern int alt_irq_register (alt_u32 id, - void* context, - alt_isr_func handler); - -/* - * alt_irq_disable() disables the individual interrupt indicated by "id". - */ -static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_disable (alt_u32 id) -{ - alt_irq_context status; - extern volatile alt_u32 alt_irq_active; - - status = alt_irq_disable_all (); - - alt_irq_active &= ~(1 << id); - NIOS2_WRITE_IENABLE (alt_irq_active); - - alt_irq_enable_all(status); - - return 0; -} - -/* - * alt_irq_enable() enables the individual interrupt indicated by "id". - */ -static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enable (alt_u32 id) -{ - alt_irq_context status; - extern volatile alt_u32 alt_irq_active; - - status = alt_irq_disable_all (); - - alt_irq_active |= (1 << id); - NIOS2_WRITE_IENABLE (alt_irq_active); - - alt_irq_enable_all(status); - - return 0; -} - -#ifndef ALT_EXCEPTION_STACK -/* - * alt_irq_initerruptable() should only be called from within an ISR. It is used - * to allow higer priority interrupts to interrupt the current ISR. The input - * argument, "priority", is the priority, i.e. interrupt number of the current - * interrupt. - * - * If this function is called, then the ISR is required to make a call to - * alt_irq_non_interruptible() before returning. The input argument to - * alt_irq_non_interruptible() is the return value from alt_irq_interruptible(). - * - * Care should be taken when using this pair of functions, since they increasing - * the system overhead associated with interrupt handling. - * - * If you are using an exception stack then nested interrupts won't work, so - * these functions are not available in that case. - */ -static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_interruptible (alt_u32 priority) -{ - extern volatile alt_u32 alt_priority_mask; - extern volatile alt_u32 alt_irq_active; - - alt_u32 old_priority; - - old_priority = alt_priority_mask; - alt_priority_mask = (1 << priority) - 1; - - NIOS2_WRITE_IENABLE (alt_irq_active & alt_priority_mask); - - NIOS2_WRITE_STATUS (1); - - return old_priority; -} - -/* - * See Comments above for alt_irq_interruptible() for an explanation of the use of this - * function. - */ -static ALT_INLINE void ALT_ALWAYS_INLINE alt_irq_non_interruptible (alt_u32 mask) -{ - extern volatile alt_u32 alt_priority_mask; - extern volatile alt_u32 alt_irq_active; - - NIOS2_WRITE_STATUS (0); - - alt_priority_mask = mask; - - NIOS2_WRITE_IENABLE (mask & alt_irq_active); -} -#endif /* ALT_EXCEPTION_STACK */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* NIOS2_EIC_PRESENT */ - -#endif /* __ALT_LEGACY_IRQ_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_no_error.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_no_error.h deleted file mode 100644 index 06a036c..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/alt_no_error.h +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef __ALT_NO_ERROR_H__ -#define __ALT_NO_ERROR_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include "alt_types.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * alt_no_error() is a dummy function used by alt_sem.h and alt_flag.h. It - * substitutes for functions that have a return code by creating a function - * that always returns zero. - * - * This may seem a little obscure, but what happens is that the compiler can - * then optomise away the call to this function, and any code written which - * handles the error path (i.e. non zero return values). - * - * This allows code to be written which correctly use the uC/OS-II semaphore - * and flag utilities, without the use of those utilities impacting on - * excutables built for a single threaded HAL environment. - * - * This function is considered to be part of the internal implementation of - * the HAL, and should not be called directly by application code or device - * drivers. It is not guaranteed to be preserved in future versions of the - * HAL. - */ - -static ALT_INLINE int ALT_ALWAYS_INLINE alt_no_error (void) -{ - return 0; -} - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_NO_ERROR_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/nios2_gmon_data.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/nios2_gmon_data.h deleted file mode 100644 index 4bc058d..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/priv/nios2_gmon_data.h +++ /dev/null @@ -1,47 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ -#ifndef NIOS2_GMON_DATA_H -#define NIOS2_GMON_DATA_H - -#define GMON_DATA_SIG 0 -#define GMON_DATA_WORDS 1 -#define GMON_DATA_PROFILE_DATA 2 -#define GMON_DATA_PROFILE_LOWPC 3 -#define GMON_DATA_PROFILE_HIGHPC 4 -#define GMON_DATA_PROFILE_BUCKET 5 -#define GMON_DATA_PROFILE_RATE 6 -#define GMON_DATA_MCOUNT_START 7 -#define GMON_DATA_MCOUNT_LIMIT 8 - -#define GMON_DATA_SIZE 9 - -extern unsigned int alt_gmon_data[GMON_DATA_SIZE]; - -#endif diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_alarm.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_alarm.h deleted file mode 100644 index 9093080..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_alarm.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef __ALT_ALARM_H__ -#define __ALT_ALARM_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include "alt_llist.h" -#include "alt_types.h" - -#include "priv/alt_alarm.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * "alt_alarm" is a structure type used by applications to register an alarm - * callback function. An instance of this type must be passed as an input - * argument to alt_alarm_start(). The user is not responsible for initialising - * the contents of the instance. This is done by alt_alarm_start(). - */ - -typedef struct alt_alarm_s alt_alarm; - -/* - * alt_alarm_start() can be called by an application/driver in order to register - * a function for periodic callback at the system clock frequency. Be aware that - * this callback is likely to occur in interrupt context. - */ - -extern int alt_alarm_start (alt_alarm* the_alarm, - alt_u32 nticks, - alt_u32 (*callback) (void* context), - void* context); - -/* - * alt_alarm_stop() is used to unregister a callback. Alternatively the callback - * can return zero to unregister. - */ - -extern void alt_alarm_stop (alt_alarm* the_alarm); - -/* - * Obtain the system clock rate in ticks/s. - */ - -static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_ticks_per_second (void) -{ - return _alt_tick_rate; -} - -/* - * alt_sysclk_init() is intended to be only used by the system clock driver - * in order to initialise the value of the clock frequency. - */ - -static ALT_INLINE int ALT_ALWAYS_INLINE alt_sysclk_init (alt_u32 nticks) -{ - if (! _alt_tick_rate) - { - _alt_tick_rate = nticks; - return 0; - } - else - { - return -1; - } -} - -/* - * alt_nticks() returns the elapsed number of system clock ticks since reset. - */ - -static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_nticks (void) -{ - return _alt_nticks; -} - -/* - * alt_tick() should only be called by the system clock driver. This is used - * to notify the system that the system timer period has expired. - */ - -extern void alt_tick (void); - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_ALARM_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_cache.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_cache.h deleted file mode 100644 index 44d976c..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_cache.h +++ /dev/null @@ -1,117 +0,0 @@ -#ifndef __ALT_CACHE_H__ -#define __ALT_CACHE_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003, 2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include - -#include "alt_types.h" - -/* - * alt_cache.h defines the processor specific functions for manipulating the - * cache. - */ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * alt_icache_flush() is called to flush the instruction cache for a memory - * region of length "len" bytes, starting at address "start". - */ - -extern void alt_icache_flush (void* start, alt_u32 len); - -/* - * alt_dcache_flush() is called to flush the data cache for a memory - * region of length "len" bytes, starting at address "start". - * Any dirty lines in the data cache are written back to memory. - */ - -extern void alt_dcache_flush (void* start, alt_u32 len); - -/* - * alt_dcache_flush() is called to flush the data cache for a memory - * region of length "len" bytes, starting at address "start". - * Any dirty lines in the data cache are NOT written back to memory. - */ - -extern void alt_dcache_flush_no_writeback (void* start, alt_u32 len); - -/* - * Flush the entire instruction cache. - */ - -extern void alt_icache_flush_all (void); - -/* - * Flush the entire data cache. - */ - -extern void alt_dcache_flush_all (void); - -/* - * Allocate a block of uncached memory. - */ - -extern volatile void* alt_uncached_malloc (size_t size); - -/* - * Free a block of uncached memory. - */ - -extern void alt_uncached_free (volatile void* ptr); - -/* - * Convert a pointer to a block of cached memory, into a block of - * uncached memory. - */ - -extern volatile void* alt_remap_uncached (void* ptr, alt_u32 len); - -/* - * Convert a pointer to a block of uncached memory, into a block of - * cached memory. - */ - -extern void* alt_remap_cached (volatile void* ptr, alt_u32 len); - -/* - * - */ - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_CACHE_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_debug.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_debug.h deleted file mode 100644 index af509d8..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_debug.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef __ALT_DEBUG_H__ -#define __ALT_DEBUG_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* - * The ALT_DEVUG_ASSERT macro can be used to generate a debugger break - * from within software. The break is generated if "condition" evaluates to - * false. - */ - -#define ALT_DEBUG_ASSERT(condition) if (!condition) \ -{ \ - __asm__ volatile ("break"); \ -} - -#endif /* __ALT_DEBUG_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_dev.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_dev.h deleted file mode 100644 index d96327e..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_dev.h +++ /dev/null @@ -1,115 +0,0 @@ -#ifndef __ALT_DEV_H__ -#define __ALT_DEV_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include "system.h" -#include "sys/alt_llist.h" -#include "priv/alt_dev_llist.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * The value ALT_IRQ_NOT_CONNECTED is used to represent an unconnected - * interrupt line. It cannot evaluate to a valid interrupt number. - */ - -#define ALT_IRQ_NOT_CONNECTED (-1) - -typedef struct alt_dev_s alt_dev; - -struct stat; - -/* - * The file descriptor structure definition. - */ - -typedef struct alt_fd_s -{ - alt_dev* dev; - alt_u8* priv; - int fd_flags; -} alt_fd; - -/* - * The device structure definition. - */ - -struct alt_dev_s { - alt_llist llist; /* for internal use */ - const char* name; - int (*open) (alt_fd* fd, const char* name, int flags, int mode); - int (*close) (alt_fd* fd); - int (*read) (alt_fd* fd, char* ptr, int len); - int (*write) (alt_fd* fd, const char* ptr, int len); - int (*lseek) (alt_fd* fd, int ptr, int dir); - int (*fstat) (alt_fd* fd, struct stat* buf); - int (*ioctl) (alt_fd* fd, int req, void* arg); -}; - -/* - * Functions used to register device for access through the C standard - * library. - * - * The only difference between alt_dev_reg() and alt_fs_reg() is the - * interpretation that open() places on the device name. In the case of - * alt_dev_reg the device is assumed to be a particular character device, - * and so there must be an exact match in the name for open to succeed. - * In the case of alt_fs_reg() the name of the device is treated as the - * mount point for a directory, and so any call to open() where the name - * is the root of the device filename will succeed. - */ - -extern int alt_fs_reg (alt_dev* dev); - -static ALT_INLINE int alt_dev_reg (alt_dev* dev) -{ - extern alt_llist alt_dev_list; - - return alt_dev_llist_insert ((alt_dev_llist*) dev, &alt_dev_list); -} - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_DEV_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_dma.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_dma.h deleted file mode 100644 index 88dcda0..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_dma.h +++ /dev/null @@ -1,226 +0,0 @@ -#ifndef __ALT_DMA_H__ -#define __ALT_DMA_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include "sys/alt_dma_dev.h" -#include "alt_types.h" - -#include - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * This header contains the application side interface for accessing DMA - * resources. See alt_dma_dev.h for the dma device driver interface. - * - * The interface model treats a DMA transaction as being composed of two - * halves (read and write). - * - * The application can supply data for transmit using an "alt_dma_txchan" - * descriptor. Alternatively an "alt_dma_rxchan" descriptor can be used to - * receive data. - */ - -/* - * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for - * a DMA transmit device. The name is the name of the associated physical - * device (e.g. "/dev/dma_0"). - * - * The return value will be NULL on failure, and non-NULL otherwise. - */ - -extern alt_dma_txchan alt_dma_txchan_open (const char* name); - -/* - * alt_dma_txchan_close() is provided so that an application can notify the - * system that it has finished with a given DMA transmit channel. This is only - * provided for completness. - */ - -static ALT_INLINE int alt_dma_txchan_close (alt_dma_txchan dma) -{ - return 0; -} - -/* - * alt_dma_txchan_send() posts a transmit request to a DMA transmit channel. - * The input arguments are: - * - * dma: the channel to use. - * from: a pointer to the start of the data to send. - * length: the length of the data to send in bytes. - * done: callback function that will be called once the data has been sent. - * handle: opaque value passed to "done". - * - * The return value will be negative if the request cannot be posted, and - * zero otherwise. - */ - -static ALT_INLINE int alt_dma_txchan_send (alt_dma_txchan dma, - const void* from, - alt_u32 length, - alt_txchan_done* done, - void* handle) -{ - return dma ? dma->dma_send (dma, - from, - length, - done, - handle) : -ENODEV; -} - -/* - * alt_dma_txchan_space() returns the number of tranmit requests that can be - * posted to the specified DMA transmit channel. - * - * A negative value indicates that the value could not be determined. - */ - -static ALT_INLINE int alt_dma_txchan_space (alt_dma_txchan dma) -{ - return dma ? dma->space (dma) : -ENODEV; -} - -/* - * alt_dma_txchan_ioctl() can be used to perform device specific I/O - * operations on the indicated DMA transmit channel. For example some drivers - * support options to control the width of the transfer operations. See - * alt_dma_dev.h for the list of generic requests. - * - * A negative return value indicates failure, otherwise the interpretation - * of the return value is request specific. - */ - -static ALT_INLINE int alt_dma_txchan_ioctl (alt_dma_txchan dma, - int req, - void* arg) -{ - return dma ? dma->ioctl (dma, req, arg) : -ENODEV; -} - -/* - * alt_dma_rxchan_open() is used to obtain an "alt_dma_rxchan" descriptor for - * a DMA receive channel. The name is the name of the associated physical - * device (e.g. "/dev/dma_0"). - * - * The return value will be NULL on failure, and non-NULL otherwise. - */ - -extern alt_dma_rxchan alt_dma_rxchan_open (const char* dev); - -/* - * alt_dma_rxchan_close() is provided so that an application can notify the - * system that it has finished with a given DMA receive channel. This is only - * provided for completness. - */ - -static ALT_INLINE int alt_dma_rxchan_close (alt_dma_rxchan dma) -{ - return 0; -} - -/* - * - */ - -/* - * alt_dma_rxchan_prepare() posts a receive request to a DMA receive channel. - * - * The input arguments are: - * - * dma: the channel to use. - * data: a pointer to the location that data is to be received to. - * len: the maximum length of the data to receive. - * done: callback function that will be called once the data has been - * received. - * handle: opaque value passed to "done". - * - * The return value will be negative if the request cannot be posted, and - * zero otherwise. - */ - -static ALT_INLINE int alt_dma_rxchan_prepare (alt_dma_rxchan dma, - void* data, - alt_u32 len, - alt_rxchan_done* done, - void* handle) -{ - return dma ? dma->prepare (dma, data, len, done, handle) : -ENODEV; -} - -/* - * alt_dma_rxchan_ioctl() can be used to perform device specific I/O - * operations on the indicated DMA receive channel. For example some drivers - * support options to control the width of the transfer operations. See - * alt_dma_dev.h for the list of generic requests. - * - * A negative return value indicates failure, otherwise the interpretation - * of the return value is request specific. - */ - -static ALT_INLINE int alt_dma_rxchan_ioctl (alt_dma_rxchan dma, - int req, - void* arg) -{ - return dma ? dma->ioctl (dma, req, arg) : -ENODEV; -} - -/* - * alt_dma_rxchan_depth() returns the depth of the receive FIFO used to store - * receive requests. - */ - -static ALT_INLINE alt_u32 alt_dma_rxchan_depth(alt_dma_rxchan dma) -{ - return dma->depth; -} - -/* - * - */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __ALT_DMA_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_dma_dev.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_dma_dev.h deleted file mode 100644 index 65063bd..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_dma_dev.h +++ /dev/null @@ -1,200 +0,0 @@ -#ifndef __ALT_DMA_DEV_H__ -#define __ALT_DMA_DEV_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include "priv/alt_dev_llist.h" - -#include "alt_types.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * This header contains the device driver interface for accessing DMA - * resources. See alt_dma.h for the DMA application side interface. - * - * The interface model treats a DMA transaction as being composed of two - * halves (read and write). - * - * An "alt_dma_txchan_dev" is used to describe the device associated with a - * DMA transmit channel. An "alt_dma_rxchan_dev" is used to describe the - * device associated with a DMA receive channel. - */ - -/* - * List of generic ioctl requests that may be supported by a DMA device. - * - * ALT_DMA_RX_ONLY_ON: This causes a DMA channel to operate in a mode - * where only the receiver is under software control. - * The other side reads continously from a single - * location. The address to read is the argument to - * this request. - * ALT_DMA_RX_ONLY_OFF: Return to the default mode where both the receive - * and transmit sides of the DMA can be under software - * control. - * ALT_DMA_TX_ONLY_ON: This causes a DMA channel to operate in a mode - * where only the transmitter is under software control. - * The other side writes continously to a single - * location. The address to write to is the argument to - * this request. - * ALT_DMA_TX_ONLY_OFF: Return to the default mode where both the receive - * and transmit sides of the DMA can be under software - * control. - * ALT_DMA_SET_MODE_8: Transfer data in units of 8 bits. - * ALT_DMA_SET_MODE_16: Transfer data in units of 16 bits. - * ALT_DMA_SET_MODE_32: Transfer data in units of 32 bits. - * ALT_DMA_SET_MODE_64: Transfer data in units of 64 bits. - * ALT_DMA_SET_MODE_128: Transfer data in units of 128 bits. - * ALT_DMA_GET_MODE: Get the current transfer mode. - * - * The use of the macros: ALT_DMA_TX_STREAM_ON, ALT_DMA_TX_STREAM_OFF - * ALT_DMA_RX_STREAM_OFF and ALT_DMA_RX_STREAM_ON are depreciated. You should - * instead use the macros: ALT_DMA_RX_ONLY_ON, ALT_DMA_RX_ONLY_OFF, - * ALT_DMA_TX_ONLY_ON and ALT_DMA_TX_ONLY_OFF. - */ - -#define ALT_DMA_TX_STREAM_ON (0x1) -#define ALT_DMA_TX_STREAM_OFF (0x2) -#define ALT_DMA_RX_STREAM_ON (0x3) -#define ALT_DMA_RX_STREAM_OFF (0x4) -#define ALT_DMA_SET_MODE_8 (0x5) -#define ALT_DMA_SET_MODE_16 (0x6) -#define ALT_DMA_SET_MODE_32 (0x7) -#define ALT_DMA_SET_MODE_64 (0x8) -#define ALT_DMA_SET_MODE_128 (0x9) -#define ALT_DMA_GET_MODE (0xa) - -#define ALT_DMA_RX_ONLY_ON ALT_DMA_TX_STREAM_ON -#define ALT_DMA_RX_ONLY_OFF ALT_DMA_TX_STREAM_OFF -#define ALT_DMA_TX_ONLY_ON ALT_DMA_RX_STREAM_ON -#define ALT_DMA_TX_ONLY_OFF ALT_DMA_RX_STREAM_OFF - -/* - * - */ - -typedef struct alt_dma_txchan_dev_s alt_dma_txchan_dev; -typedef struct alt_dma_rxchan_dev_s alt_dma_rxchan_dev; - -typedef alt_dma_txchan_dev* alt_dma_txchan; -typedef alt_dma_rxchan_dev* alt_dma_rxchan; - -typedef void (alt_txchan_done)(void* handle); -typedef void (alt_rxchan_done)(void* handle, void* data); - -/* - * devices that provide a DMA transmit channel are required to provide an - * instance of the "alt_dma_txchan_dev" structure. - */ - -struct alt_dma_txchan_dev_s { - alt_llist llist; /* for internal use */ - const char* name; /* name of the device instance - * (e.g. "/dev/dma_0"). - */ - int (*space) (alt_dma_txchan dma); /* returns the maximum number of - * transmit requests that can be posted - */ - int (*dma_send) (alt_dma_txchan dma, - const void* from, - alt_u32 len, - alt_txchan_done* done, - void* handle); /* post a transmit request */ - int (*ioctl) (alt_dma_txchan dma, int req, void* arg); /* perform device - * specific I/O control. - */ -}; - -/* - * devices that provide a DMA receive channel are required to provide an - * instance of the "alt_dma_rxchan_dev" structure. - */ - -struct alt_dma_rxchan_dev_s { - alt_llist list; /* for internal use */ - const char* name; /* name of the device instance - * (e.g. "/dev/dma_0"). - */ - alt_u32 depth; /* maximum number of receive requests that - * can be posted. - */ - int (*prepare) (alt_dma_rxchan dma, - void* data, - alt_u32 len, - alt_rxchan_done* done, - void* handle); /* post a receive request */ - int (*ioctl) (alt_dma_rxchan dma, int req, void* arg); /* perform device - * specific I/O control. - */ -}; - -/* - * Register a DMA transmit channel with the system. - */ - -static ALT_INLINE int alt_dma_txchan_reg (alt_dma_txchan_dev* dev) -{ - extern alt_llist alt_dma_txchan_list; - - return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_txchan_list); -} - -/* - * Register a DMA receive channel with the system. - */ - -static ALT_INLINE int alt_dma_rxchan_reg (alt_dma_rxchan_dev* dev) -{ - extern alt_llist alt_dma_rxchan_list; - - return alt_dev_llist_insert((alt_dev_llist*) dev, &alt_dma_rxchan_list); -} - -/* - * - */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __ALT_DMA_DEV_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_driver.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_driver.h deleted file mode 100644 index ca7aea1..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_driver.h +++ /dev/null @@ -1,168 +0,0 @@ -#ifndef __ALT_DRIVER_H__ -#define __ALT_DRIVER_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/* - * Macros used to access a driver without HAL file descriptors. - */ - -/* - * ALT_MODULE_CLASS - * - * This macro returns the module class name for the specified module instance. - * It uses information in the system.h file. - * Neither the instance name or class name are quoted (so that they can - * be used with other pre-processor macros). - * - * Example: - * Assume the design has an instance of an altera_avalon_uart called uart1. - * Calling ALT_MODULE_CLASS(uart1) returns altera_avalon_uart. - */ - -#define ALT_MODULE_CLASS(instance) ALT_MODULE_CLASS_ ## instance - - -/* - * ALT_DRIVER_FUNC_NAME - * - * --> instance Instance name. - * --> func Function name. - * - * This macro returns the device driver function name of the specified - * module instance for the specified function name. - * - * Example: - * Assume the design has an instance of an altera_avalon_uart called uart1. - * Calling ALT_DRIVER_FUNC_NAME(uart1, write) returns - * altera_avalon_uart_write. - */ - -#define ALT_DRIVER_FUNC_NAME(instance, func) \ - ALT_DRIVER_FUNC_NAME1(ALT_MODULE_CLASS(instance), func) -#define ALT_DRIVER_FUNC_NAME1(module_class, func) \ - ALT_DRIVER_FUNC_NAME2(module_class, func) -#define ALT_DRIVER_FUNC_NAME2(module_class, func) \ - module_class ## _ ## func - -/* - * ALT_DRIVER_STATE_STRUCT - * - * --> instance Instance name. - * - * This macro returns the device driver state type name of the specified - * module instance. - * - * Example: - * Assume the design has an instance of an altera_avalon_uart called uart1. - * Calling ALT_DRIVER_STATE_STRUCT(uart1) returns: - * struct altera_avalon_uart_state_s - * - * Note that the ALT_DRIVER_FUNC_NAME macro is used even though "state" isn't - * really a function but it does match the required naming convention. - */ -#define ALT_DRIVER_STATE_STRUCT(instance) \ - struct ALT_DRIVER_FUNC_NAME(instance, state_s) - -/* - * ALT_DRIVER_STATE - * - * --> instance Instance name. - * - * This macro returns the device driver state name of the specified - * module instance. - * - * Example: - * Assume the design has an instance of an altera_avalon_uart called uart1. - * Calling ALT_DRIVER_STATE(uart1) returns uart1. - */ -#define ALT_DRIVER_STATE(instance) instance - -/* - * ALT_DRIVER_WRITE - * - * --> instance Instance name. - * --> buffer Write buffer. - * --> len Length of write buffer data. - * --> flags Control flags (e.g. O_NONBLOCK) - * - * This macro calls the "write" function of the specified driver instance. - */ - -#define ALT_DRIVER_WRITE_EXTERNS(instance) \ - extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ - extern int ALT_DRIVER_FUNC_NAME(instance, write) \ - (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); - -#define ALT_DRIVER_WRITE(instance, buffer, len, flags) \ - ALT_DRIVER_FUNC_NAME(instance, write)(&ALT_DRIVER_STATE(instance), buffer, len, flags) - - -/* - * ALT_DRIVER_READ - * - * --> instance Instance name. - * <-- buffer Read buffer. - * --> len Length of read buffer. - * --> flags Control flags (e.g. O_NONBLOCK) - * - * This macro calls the "read" function of the specified driver instance. - */ - -#define ALT_DRIVER_READ_EXTERNS(instance) \ - extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ - extern int ALT_DRIVER_FUNC_NAME(instance, read) \ - (ALT_DRIVER_STATE_STRUCT(instance) *, const char *, int, int); - -#define ALT_DRIVER_READ(instance, buffer, len, flags) \ - ALT_DRIVER_FUNC_NAME(instance, read)(&ALT_DRIVER_STATE(instance), buffer, len, flags) - -/* - * ALT_DRIVER_IOCTL - * - * --> instance Instance name. - * --> req ioctl request (e.g. TIOCSTIMEOUT) - * --> arg Optional argument (void*) - * - * This macro calls the "ioctl" function of the specified driver instance - */ - -#define ALT_DRIVER_IOCTL_EXTERNS(instance) \ - extern ALT_DRIVER_STATE_STRUCT(instance) ALT_DRIVER_STATE(instance); \ - extern int ALT_DRIVER_FUNC_NAME(instance, ioctl) \ - (ALT_DRIVER_STATE_STRUCT(instance) *, int, void*); - -#define ALT_DRIVER_IOCTL(instance, req, arg) \ - ALT_DRIVER_FUNC_NAME(instance, ioctl)(&ALT_DRIVER_STATE(instance), req, arg) - -#endif /* __ALT_DRIVER_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_errno.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_errno.h deleted file mode 100644 index 23e3096..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_errno.h +++ /dev/null @@ -1,87 +0,0 @@ -#ifndef __ALT_ERRNO_H__ -#define __ALT_ERRNO_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -/* - * errno is defined in so that it uses the thread local version - * stored in the location pointed to by "_impure_ptr". This means that the - * accesses to errno within the HAL library can cause the entirety of - * of the structure pointed to by "_impure_ptr" to be added to the - * users application. This can be undesirable in very small footprint systems. - * - * To avoid this happening, the HAL uses the macro ALT_ERRNO, defined below, - * to access errno, rather than accessing it directly. This macro will only - * use the thread local version if some other code has already caused it to be - * included into the system, otherwise it will use the global errno value. - * - * This causes a slight increases in code size where errno is accessed, but - * can lead to significant overall benefits in very small systems. The - * increase is inconsequential when compared to the size of the structure - * pointed to by _impure_ptr. - * - * Note that this macro accesses __errno() using an externally declared - * function pointer (alt_errno). This is done so that the function call uses the - * subroutine call instruction via a register rather than an immediate address. - * This is important in the case that the code has been linked for a high - * address, but __errno() is not being used. In this case the weak linkage - * would have resulted in the instruction: "call 0" which would fail to link. - */ - -extern int* (*alt_errno) (void); - -/* Must define this so that values such as EBADFD are defined in errno.h. */ -#define __LINUX_ERRNO_EXTENSIONS__ - -#include - -#include "alt_types.h" - -#undef errno - -extern int errno; - -static ALT_INLINE int* alt_get_errno(void) -{ - return ((alt_errno) ? alt_errno() : &errno); -} - -#define ALT_ERRNO *alt_get_errno() - -#endif /* __ALT_ERRNO_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_exceptions.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_exceptions.h deleted file mode 100644 index b6b82e2..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_exceptions.h +++ /dev/null @@ -1,127 +0,0 @@ -#ifndef __ALT_EXCEPTIONS_H__ -#define __ALT_EXCEPTIONS_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ -#include "alt_types.h" -#include "system.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * This file defines instruction-generated exception handling and registry - * API, exception type enumeration, and handler return value enumeration for - * Nios II. - */ - -/* - * The following enumeration describes the value in the CPU EXCEPTION - * register CAUSE bit field. Not all exception types will cause the - * processor to go to the exception vector; these are provided for - * reference. - */ -enum alt_exception_cause_e { - /* Exeption causes that will cause jump to exception vector */ - NIOS2_EXCEPTION_INTERRUPT = 2, - NIOS2_EXCEPTION_TRAP_INST = 3, - NIOS2_EXCEPTION_UNIMPLEMENTED_INST = 4, - NIOS2_EXCEPTION_ILLEGAL_INST = 5, - NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR = 6, - NIOS2_EXCEPTION_MISALIGNED_TARGET_PC = 7, - NIOS2_EXCEPTION_DIVISION_ERROR = 8, - NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST_ADDR = 9, - NIOS2_EXCEPTION_SUPERVISOR_ONLY_INST = 10, - NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR = 11, - NIOS2_EXCEPTION_TLB_MISS = 12, - NIOS2_EXCEPTION_TLB_EXECUTE_PERM_VIOLATION = 13, - NIOS2_EXCEPTION_MPU_INST_REGION_VIOLATION = 16, - - /* Exception causes that will NOT cause a jump to exception vector */ - NIOS2_EXCEPTION_RESET = 0, - NIOS2_EXCEPTION_CPU_ONLY_RESET_REQUEST = 1, - NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION = 14, - NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION = 15, - NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION = 17, - /* - * This value is passed to an exception handler's cause argument if - * "extra exceptions" information (EXECPTION) register is not - * present in the processor hardware configuration. - */ - NIOS2_EXCEPTION_CAUSE_NOT_PRESENT = -1 -}; -typedef enum alt_exception_cause_e alt_exception_cause; - -/* - * These define valid return values for a user-defined instruction-generated - * exception handler. The handler should return one of these to indicate - * whether to re-issue the instruction that triggered the exception, or to - * skip it. - */ -enum alt_exception_result_e { - NIOS2_EXCEPTION_RETURN_REISSUE_INST = 0, - NIOS2_EXCEPTION_RETURN_SKIP_INST = 1 -}; -typedef enum alt_exception_result_e alt_exception_result; - -/* - * alt_instruction_exception_register() can be used to register an exception - * handler for instruction-generated exceptions that are not handled by the - * built-in exception handler (i.e. for interrupts). - * - * The registry API is optionally enabled through the "Enable - * Instruction-related Exception API" HAL BSP setting, which will - * define the macro below. - */ -#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API -void alt_instruction_exception_register ( - alt_exception_result (*exception_handler)( - alt_exception_cause cause, - alt_u32 exception_pc, - alt_u32 bad_addr) ); -#endif /*ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ - -/* - * alt_exception_cause_generated_bad_addr() indicates whether a particular - * exception cause value was from an exception-type that generated a valid - * address in the BADADDR register. The contents of BADADDR is passed to - * a user-registered exception handler in all cases, whether valid or not. - * This routine should be called to validate the bad_addr argument to - * your exception handler. - */ -int alt_exception_cause_generated_bad_addr(alt_exception_cause cause); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __ALT_EXCEPTIONS_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_flash.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_flash.h deleted file mode 100644 index 7e903a8..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_flash.h +++ /dev/null @@ -1,166 +0,0 @@ -#ifndef __ALT_FLASH_H__ -#define __ALT_FLASH_H__ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -/****************************************************************************** -* * -* Alt_flash.h - User interface for flash code * -* * -* Use this interface to avoid being exposed to the internals of the device * -* driver architecture. If you chose to use the flash driver internal * -* structures we don't guarantee not to change them * -* * -* Author PRR * -* * -******************************************************************************/ - - - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include "alt_types.h" -#include "alt_flash_types.h" -#include "alt_flash_dev.h" -#include "sys/alt_cache.h" - -alt_flash_fd* alt_flash_open_dev(const char* name); -void alt_flash_close_dev(alt_flash_fd* fd ); - -/* - * alt_write_flash - * - * Program a buffer into flash. - * - * This routine erases all the affected erase blocks (if necessary) - * and then programs the data. However it does not read the data out first - * and preserve and none overwritten data, because this would require very - * large buffers on the target. If you need - * that functionality use the functions below. - */ -static __inline__ int __attribute__ ((always_inline)) alt_write_flash( - alt_flash_fd* fd, - int offset, - const void* src_addr, - int length ) -{ - return fd->write( fd, offset, src_addr, length ); -} - -/* - * alt_read_flash - * - * Read a block of flash for most flashes this is just memcpy - * it's here for completeness in case we need it for some serial flash device - * - */ -static __inline__ int __attribute__ ((always_inline)) alt_read_flash( - alt_flash_fd* fd, int offset, - void* dest_addr, int length ) -{ - return fd->read( fd, offset, dest_addr, length ); -} - -/* - * alt_get_flash_info - * - * Return the information on the flash sectors. - * - */ -static __inline__ int __attribute__ ((always_inline)) alt_get_flash_info( - alt_flash_fd* fd, flash_region** info, - int* number_of_regions) -{ - return fd->get_info( fd, info, number_of_regions); -} - -/* - * alt_erase_flash_block - * - * Erase a particular erase block, pass in the offset to the start of - * the block and it's size - */ -static __inline__ int __attribute__ ((always_inline)) alt_erase_flash_block( - alt_flash_fd* fd, int offset, int length) -{ - int ret_code; - ret_code = fd->erase_block( fd, offset ); - - if(!ret_code) - alt_dcache_flush((alt_u8*)fd->base_addr + offset, length); - - return ret_code; -} - -/* - * alt_write_flash_block - * - * Write a particular flash block, block_offset is the offset - * (from the base of flash) to start of the block - * data_offset is the offset (from the base of flash) - * where you wish to start programming - * - * NB this function DOES NOT check that you are only writing a single - * block of data as that would slow down this function. - * - * Use alt_write_flash if you want that level of error checking. - */ - -static __inline__ int __attribute__ ((always_inline)) alt_write_flash_block( - alt_flash_fd* fd, int block_offset, - int data_offset, - const void *data, int length) -{ - - int ret_code; - ret_code = fd->write_block( fd, block_offset, data_offset, data, length ); - - if(!ret_code) - alt_dcache_flush((alt_u8*)fd->base_addr + data_offset, length); - - return ret_code; -} - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_FLASH_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_flash_dev.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_flash_dev.h deleted file mode 100644 index 1c5692e..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_flash_dev.h +++ /dev/null @@ -1,98 +0,0 @@ -#ifndef __ALT_FLASH_DEV_H__ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -/****************************************************************************** -* * -* Alt_flash_dev.h - Generic Flash device interfaces * -* * -* Author PRR * -* * -******************************************************************************/ -#define __ALT_FLASH_DEV_H__ - -#include "alt_flash_types.h" -#include "sys/alt_llist.h" -#include "priv/alt_dev_llist.h" - -#include "alt_types.h" - -typedef struct alt_flash_dev alt_flash_dev; -typedef alt_flash_dev alt_flash_fd; - -static ALT_INLINE int alt_flash_device_register( alt_flash_fd* fd) -{ - extern alt_llist alt_flash_dev_list; - - return alt_dev_llist_insert ((alt_dev_llist*) fd, &alt_flash_dev_list); -} - -typedef alt_flash_dev* (*alt_flash_open)(alt_flash_dev* flash, - const char* name ); -typedef int (*alt_flash_close)(alt_flash_dev* flash_info); - -typedef int (*alt_flash_write)( alt_flash_dev* flash, int offset, - const void* src_addr, int length ); - -typedef int (*alt_flash_get_flash_info)( alt_flash_dev* flash, flash_region** info, - int* number_of_regions); -typedef int (*alt_flash_write_block)( alt_flash_dev* flash, int block_offset, - int data_offset, const void* data, - int length); -typedef int (*alt_flash_erase_block)( alt_flash_dev* flash, int offset); -typedef int (*alt_flash_read)(alt_flash_dev* flash, int offset, - void* dest_addr, int length ); - -struct alt_flash_dev -{ - alt_llist llist; - const char* name; - alt_flash_open open; - alt_flash_close close; - alt_flash_write write; - alt_flash_read read; - alt_flash_get_flash_info get_info; - alt_flash_erase_block erase_block; - alt_flash_write_block write_block; - void* base_addr; - int length; - int number_of_regions; - flash_region region_info[ALT_MAX_NUMBER_OF_FLASH_REGIONS]; -}; - -#endif /* __ALT_FLASH_DEV_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_flash_types.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_flash_types.h deleted file mode 100644 index 10f1f01..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_flash_types.h +++ /dev/null @@ -1,64 +0,0 @@ -#ifndef __ALT_FLASH_TYPES_H__ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -/****************************************************************************** -* * -* Alt_flash_types.h - Some generic types and defines used by the flash code * -* * -* Author PRR * -* * -******************************************************************************/ -#define __ALT_FLASH_TYPES_H__ - -#ifndef ALT_MAX_NUMBER_OF_FLASH_REGIONS -#define ALT_MAX_NUMBER_OF_FLASH_REGIONS 8 -#endif /* ALT_MAX_NUMBER_OF_FLASH_REGIONS */ - -/* - * Description of a single Erase region - */ -typedef struct flash_region -{ - int offset; - int region_size; - int number_of_blocks; - int block_size; -}flash_region; - -#endif /* __ALT_FLASH_TYPES_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_irq.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_irq.h deleted file mode 100644 index 96c010d..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_irq.h +++ /dev/null @@ -1,245 +0,0 @@ -#ifndef __ALT_IRQ_H__ -#define __ALT_IRQ_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* - * alt_irq.h is the Nios II specific implementation of the interrupt controller - * interface. - * - * Nios II includes optional support for an external interrupt controller. - * When an external controller is present, the "Enhanced" interrupt API - * must be used to manage individual interrupts. The enhanced API also - * supports the processor's internal interrupt controller. Certain API - * members are accessible from either the "legacy" or "enhanced" interrpt - * API. - * - * Regardless of which API is in use, this file should be included by - * application code and device drivers that register ISRs or manage interrpts. - */ -#include - -#include "nios2.h" -#include "alt_types.h" -#include "system.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * Macros used by alt_irq_enabled - */ -#define ALT_IRQ_ENABLED 1 -#define ALT_IRQ_DISABLED 0 - -/* - * Number of available interrupts in internal interrupt controller. - */ -#define ALT_NIRQ NIOS2_NIRQ - -/* - * Used by alt_irq_disable_all() and alt_irq_enable_all(). - */ -typedef int alt_irq_context; - -/* ISR Prototype */ -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT -typedef void (*alt_isr_func)(void* isr_context); -#else -typedef void (*alt_isr_func)(void* isr_context, alt_u32 id); -#endif - -/* - * The following protypes and routines are supported by both - * the enhanced and legacy interrupt APIs - */ - -/* - * alt_irq_enabled can be called to determine if the processor's global - * interrupt enable is asserted. The return value is zero if interrupts - * are disabled, and non-zero otherwise. - * - * Whether the internal or external interrupt controller is present, - * individual interrupts may still be disabled. Use the other API to query - * a specific interrupt. - */ -static ALT_INLINE int ALT_ALWAYS_INLINE alt_irq_enabled (void) -{ - int status; - - NIOS2_READ_STATUS (status); - - return status & NIOS2_STATUS_PIE_MSK; -} - -/* - * alt_irq_disable_all() - * - * This routine inhibits all interrupts by negating the status register PIE - * bit. It returns the previous contents of the CPU status register (IRQ - * context) which can be used to restore the status register PIE bit to its - * state before this routine was called. - */ -static ALT_INLINE alt_irq_context ALT_ALWAYS_INLINE - alt_irq_disable_all (void) -{ - alt_irq_context context; - - NIOS2_READ_STATUS (context); - - NIOS2_WRITE_STATUS (context & ~NIOS2_STATUS_PIE_MSK); - - return context; -} - -/* - * alt_irq_enable_all() - * - * Enable all interrupts that were previously disabled by alt_irq_disable_all() - * - * This routine accepts a context to restore the CPU status register PIE bit - * to the state prior to a call to alt_irq_disable_all(). - - * In the case of nested calls to alt_irq_disable_all()/alt_irq_enable_all(), - * this means that alt_irq_enable_all() does not necessarily re-enable - * interrupts. - * - * This routine will perform a read-modify-write sequence to restore only - * status.PIE if the processor is configured with options that add additional - * writeable status register bits. These include the MMU, MPU, the enhanced - * interrupt controller port, and shadow registers. Otherwise, as a performance - * enhancement, status is overwritten with the prior context. - */ -static ALT_INLINE void ALT_ALWAYS_INLINE - alt_irq_enable_all (alt_irq_context context) -{ -#if (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) || (defined NIOS2_EIC_PRESENT) || \ - (defined NIOS2_MMU_PRESENT) || (defined NIOS2_MPU_PRESENT) - alt_irq_context status; - - NIOS2_READ_STATUS (status); - - status &= ~NIOS2_STATUS_PIE_MSK; - status |= (context & NIOS2_STATUS_PIE_MSK); - - NIOS2_WRITE_STATUS (status); -#else - NIOS2_WRITE_STATUS (context); -#endif -} - -/* - * The function alt_irq_init() is defined within the auto-generated file - * alt_sys_init.c. This function calls the initilization macros for all - * interrupt controllers in the system at config time, before any other - * non-interrupt controller driver is initialized. - * - * The "base" parameter is ignored and only present for backwards-compatibility. - * It is recommended that NULL is passed in for the "base" parameter. - */ -extern void alt_irq_init (const void* base); - -/* - * alt_irq_cpu_enable_interrupts() enables the CPU to start taking interrupts. - */ -static ALT_INLINE void ALT_ALWAYS_INLINE - alt_irq_cpu_enable_interrupts () -{ - NIOS2_WRITE_STATUS(NIOS2_STATUS_PIE_MSK -#if defined(NIOS2_EIC_PRESENT) && (NIOS2_NUM_OF_SHADOW_REG_SETS > 0) - | NIOS2_STATUS_RSIE_MSK -#endif - ); -} - - -/* - * Prototypes for the enhanced interrupt API. - */ -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT -/* - * alt_ic_isr_register() can be used to register an interrupt handler. If the - * function is succesful, then the requested interrupt will be enabled upon - * return. - */ -extern int alt_ic_isr_register(alt_u32 ic_id, - alt_u32 irq, - alt_isr_func isr, - void *isr_context, - void *flags); - -/* - * alt_ic_irq_enable() and alt_ic_irq_disable() enable/disable a specific - * interrupt by using IRQ port and interrupt controller instance. - */ -int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq); -int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq); - - /* - * alt_ic_irq_enabled() indicates whether a specific interrupt, as - * specified by IRQ port and interrupt controller instance is enabled. - */ -alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq); - -#else -/* - * Prototypes for the legacy interrupt API. - */ -#include "priv/alt_legacy_irq.h" -#endif - - -/* - * alt_irq_pending() returns a bit list of the current pending interrupts. - * This is used by alt_irq_handler() to determine which registered interrupt - * handlers should be called. - * - * This routine is only available for the Nios II internal interrupt - * controller. - */ -#ifndef NIOS2_EIC_PRESENT -static ALT_INLINE alt_u32 ALT_ALWAYS_INLINE alt_irq_pending (void) -{ - alt_u32 active; - - NIOS2_READ_IPENDING (active); - - return active; -} -#endif - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __ALT_IRQ_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_irq_entry.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_irq_entry.h deleted file mode 100644 index 549811c..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_irq_entry.h +++ /dev/null @@ -1,39 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* - * This file pulls in the IRQ entry assembler and C code, which is only - * required if there are any interruptes in the system. - */ - -__asm__( "\n\t.globl alt_irq_entry" ); - -__asm__( "\n\t.globl alt_irq_handler" ); - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h deleted file mode 100644 index 1d1f16f..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_license_reminder_ucosii.h +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef __ALT_LICENSE_REMINDER_UCOSII_H__ -#define __ALT_LICENSE_REMINDER_UCOSII_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include - -#define ALT_LICENSE_REMINDER_UCOSII_STRING \ - "============== Software License Reminder ===============\n" \ - "\n" \ - "uC/OS-II is provided in source form for FREE evaluation,\n" \ - "for educational use, or for peaceful research. If you\n" \ - "plan on using uC/OS-II in a commercial product you need\n" \ - "to contact Micrium to properly license its use in your\n" \ - "product. Micrium provides ALL the source code on the\n" \ - "Altera distribution for your convenience and to help you\n" \ - "experience uC/OS-II. The fact that the source is provided\n" \ - "does NOT mean that you can use it without paying a\n" \ - "licensing fee. Please help us continue to provide the\n" \ - "Embedded community with the finest software available.\n" \ - "Your honesty is greatly appreciated.\n" \ - "\n" \ - "Please contact:\n" \ - "\n" \ - "M I C R I U M\n" \ - "949 Crestview Circle\n" \ - "Weston, FL 33327-1848\n" \ - "U.S.A.\n" \ - "\n" \ - "Phone : +1 954 217 2036\n" \ - "FAX : +1 954 217 2037\n" \ - "WEB : www.micrium.com\n" \ - "E-mail: Sales@Micrium.com\n" \ - "\n" \ - "========================================================\n" - -#define alt_license_reminder_ucosii() puts(ALT_LICENSE_REMINDER_UCOSII_STRING) - - -#endif /* __ALT_LICENSE_REMINDER_UCOSII_H__ */ - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_llist.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_llist.h deleted file mode 100644 index 84cb051..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_llist.h +++ /dev/null @@ -1,123 +0,0 @@ -#ifndef __ALT_LIST_H__ -#define __ALT_LIST_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include "alt_types.h" - -/* - * alt_llist.h defines structures and functions for use in manipulating linked - * lists. A list is considered to be constructed from a chain of objects of - * type alt_llist, with one object being defined to be the head element. - * - * A list is considered to be empty if it only contains the head element. - */ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * alt_llist is the structure used to represent an element within a linked - * list. - */ - -typedef struct alt_llist_s alt_llist; - -struct alt_llist_s { - alt_llist* next; /* Pointer to the next element in the list. */ - alt_llist* previous; /* Pointer to the previous element in the list. */ -}; - -/* - * ALT_LLIST_HEAD is a macro that can be used to create the head of a new - * linked list. This is named "head". The head element is initialised to - * represent an empty list. - */ - -#define ALT_LLIST_HEAD(head) alt_llist head = {&head, &head} - -/* - * ALT_LLIST_ENTRY is a macro used to define an uninitialised linked list - * entry. This is used to reserve space in structure initialisation for - * structures that inherit form alt_llist. - */ - -#define ALT_LLIST_ENTRY {0, 0} - -/* - * alt_llist_insert() insert adds the linked list entry "entry" as the - * first entry in the linked list "list". "list" is the list head element. - */ - -static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_insert(alt_llist* list, - alt_llist* entry) -{ - entry->previous = list; - entry->next = list->next; - - list->next->previous = entry; - list->next = entry; -} - -/* - * alt_llist_remove() is called to remove an element from a linked list. The - * input argument is the element to remove. - */ - -static ALT_INLINE void ALT_ALWAYS_INLINE alt_llist_remove(alt_llist* entry) -{ - entry->next->previous = entry->previous; - entry->previous->next = entry->next; - - /* - * Set the entry to point to itself, so that any further calls to - * alt_llist_remove() are harmless. - */ - - entry->previous = entry; - entry->next = entry; -} - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_LLIST_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_load.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_load.h deleted file mode 100644 index e4c4c46..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_load.h +++ /dev/null @@ -1,78 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "alt_types.h" - -/* - * This macro is used to load code/data from its load address to its - * execution address for a given section. The section name is the input - * argument. Note that a leading '.' is assumed in the name. For example - * to load the section .onchip_ram, use: - * - * ALT_LOAD_SECTION_BY_NAME(onchip_ram); - * - * This requires that the apropriate linker symbols have been generated - * for the section in question. This will be the case if you are using the - * default linker script. - */ - -#define ALT_LOAD_SECTION_BY_NAME(name) \ - { \ - extern void _alt_partition_##name##_start; \ - extern void _alt_partition_##name##_end; \ - extern void _alt_partition_##name##_load_addr; \ - \ - alt_load_section(&_alt_partition_##name##_load_addr, \ - &_alt_partition_##name##_start, \ - &_alt_partition_##name##_end); \ - } - -/* - * Function used to load an individual section from flash to RAM. - * - * There is an implicit assumption here that the linker script will ensure - * that all sections are word aligned. - * - */ - -static void ALT_INLINE alt_load_section (alt_u32* from, - alt_u32* to, - alt_u32* end) -{ - if (to != from) - { - while( to != end ) - { - *to++ = *from++; - } - } -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_log_printf.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_log_printf.h deleted file mode 100644 index 9890091..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_log_printf.h +++ /dev/null @@ -1,349 +0,0 @@ -/* alt_log_printf.h - * - * ALT_LOG is designed to provide extra logging/debugging messages from HAL - * through a different port than stdout. It is enabled by the ALT_LOG_ENABLE - * define, which needs to supplied at compile time. When logging is turned off, - * code size is unaffected. Thus, this should be transparent to the user - * when it is not actively turned on, and should not affect projects in any way. - * - * There are macros sprinkled within different components, such as the jtag uart - * and timer, in the HAL code. They are always named ALT_LOG_, and can be - * safely ignored if ALT_LOG is turned off. - * - * To turn on ALT_LOG, ALT_LOG_ENABLE must be defined, and ALT_LOG_PORT_TYPE and - * ALT_LOG_PORT_BASE must be set in system.h. This is done through editing - * .ptf, by editing the alt_log_port_type & alt_log_port_base settings. - * See the documentation html file for examples. - * - * When it is turned on, it will output extra HAL messages to a port specified - * in system.h. This can be a UART or JTAG UART port. By default it will - * output boot messages, detailing every step of the boot process. - * - * Extra logging is designed to be enabled by flags, which are defined in - * alt_log_printf.c. The default value is that all flags are off, so only the - * boot up logging messages show up. ALT_LOG_FLAGS can be set to enable certain - * groupings of flags, and that grouping is done in this file. Each flag can - * also be overridden with a -D at compile time. - * - * This header file includes the necessary prototypes for using the alt_log - * functions. It also contains all the macros that are used to remove the code - * from alt log is turned off. Also, the macros in other HAL files are defined - * here at the bottom. These macros all call some C function that is in - * alt_log_printf.c. - * - * The logging has functions for printing in C (ALT_LOG_PRINTF) and in assembly - * (ALT_LOG_PUTS). This was needed because the assembly printing occurs before - * the device is initialized. The assembly function corrupts register R4-R7, - * which are not used in the normal boot process. For this reason, do not call - * the assembly function in C. - * - * author: gkwan - */ - - -#ifndef __ALT_LOG_PRINTF_H__ -#define __ALT_LOG_PRINTF_H__ - -#include - -/* Global switch to turn on logging functions */ -#ifdef ALT_LOG_ENABLE - - /* ALT_LOG_PORT_TYPE values as defined in system.h. They are defined as - * numbers here first becasue the C preprocessor does not handle string - * comparisons. */ - #define ALTERA_AVALON_JTAG_UART 1 - #define ALTERA_AVALON_UART 0 - - /* If this .h file is included by an assembly file, skip over include files - * that won't compile in assembly. */ - #ifndef ALT_ASM_SRC - #include - #include "sys/alt_alarm.h" - #include "sys/alt_dev.h" - #ifdef __ALTERA_AVALON_JTAG_UART - #include "altera_avalon_jtag_uart.h" - #endif - #endif /* ALT_ASM_SRC */ - - /* These are included for the port register offsets and masks, needed - * to write to the port. Only include if the port type is set correctly, - * otherwise error. If alt_log is turned on and the port to output to is - * incorrect or does not exist, then should exit. */ - #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART - #ifdef __ALTERA_AVALON_JTAG_UART - #include - #else - #error ALT_LOG: JTAG_UART port chosen, but no JTAG_UART in system. - #endif - #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART - #ifdef __ALTERA_AVALON_UART - #include - #else - #error ALT_LOG: UART Port chosen, but no UART in system. - #endif - #else - #error ALT_LOG: alt_log_port_type declaration invalid! - #endif - - /* ALT_LOG_ENABLE turns on the basic printing function */ - #define ALT_LOG_PRINTF(...) do {alt_log_printf_proc(__VA_ARGS__);} while (0) - - /* Assembly macro for printing in assembly, calls tx_log_str - * which is in alt_log_macro.S. - * If alt_log_boot_on_flag is 0, skips the printing */ - #define ALT_LOG_PUTS(str) movhi r4, %hiadj(alt_log_boot_on_flag) ; \ - addi r4, r4, %lo(alt_log_boot_on_flag) ; \ - ldwio r5, 0(r4) ; \ - beq r0, r5, 0f ; \ - movhi r4, %hiadj(str) ; \ - addi r4, r4, %lo(str) ; \ - call tx_log_str ; \ - 0: - - /* These defines are here to faciliate the use of one output function - * (alt_log_txchar) to print to both the JTAG UART or the UART. Depending - * on the port type, the status register, read mask, and output register - * are set to the appropriate value for the port. */ - #if ALT_LOG_PORT_TYPE == ALTERA_AVALON_JTAG_UART - #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_JTAG_UART_CONTROL - #define ALT_LOG_PRINT_MSK ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK - #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_JTAG_UART_DATA - #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_JTAG_UART_CONTROL_REG*0x4) - #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_JTAG_UART_DATA_REG*0x4) - #elif ALT_LOG_PORT_TYPE == ALTERA_AVALON_UART - #define ALT_LOG_PRINT_REG_RD IORD_ALTERA_AVALON_UART_STATUS - #define ALT_LOG_PRINT_MSK ALTERA_AVALON_UART_STATUS_TRDY_MSK - #define ALT_LOG_PRINT_TXDATA_WR IOWR_ALTERA_AVALON_UART_TXDATA - #define ALT_LOG_PRINT_REG_OFFSET (ALTERA_AVALON_UART_STATUS_REG*0x4) - #define ALT_LOG_PRINT_TXDATA_REG_OFFSET (ALTERA_AVALON_UART_TXDATA_REG*0x4) - #endif /* ALT_LOG_PORT */ - - /* Grouping of flags via ALT_LOG_FLAGS. Each specific flag can be set via - * -D at compile time, or else they'll be set to a default value according - * to ALT_LOG_FLAGS. ALT_LOG_FLAGS = 0 or not set is the default, where - * only the boot messages will be printed. As ALT_LOG_FLAGS increase, they - * increase in intrusiveness to the program, and will affect performance. - * - * Flag Level 1 - turns on system clock and JTAG UART startup status - * 2 - turns on write echo and JTAG_UART alarm (periodic report) - * 3 - turns on JTAG UART ISR logging - will slow performance - * significantly. - * -1 - All logging output is off, but if ALT_LOG_ENABLE is - * defined all logging function is built and code size - * remains constant - * - * Flag settings - 1 = on, 0 = off. */ - - /* This flag turns on "boot" messages for printing. This includes messages - * during crt0.S, then alt_main, and finally alt_exit. */ - #ifndef ALT_LOG_BOOT_ON_FLAG_SETTING - #if ALT_LOG_FLAGS == 1 - #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == 2 - #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == 3 - #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == -1 /* silent mode */ - #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x0 - #else /* default setting */ - #define ALT_LOG_BOOT_ON_FLAG_SETTING 0x1 - #endif - #endif /* ALT_LOG_BOOT_ON_FLAG_SETTING */ - - #ifndef ALT_LOG_SYS_CLK_ON_FLAG_SETTING - #if ALT_LOG_FLAGS == 1 - #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == 2 - #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == 3 - #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == -1 /* silent mode */ - #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 - #else /* default setting */ - #define ALT_LOG_SYS_CLK_ON_FLAG_SETTING 0x0 - #endif - #endif /* ALT_LOG_SYS_CLK_ON_FLAG_SETTING */ - - #ifndef ALT_LOG_WRITE_ON_FLAG_SETTING - #if ALT_LOG_FLAGS == 1 - #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 - #elif ALT_LOG_FLAGS == 2 - #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == 3 - #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == -1 /* silent mode */ - #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 - #else /* default setting */ - #define ALT_LOG_WRITE_ON_FLAG_SETTING 0x0 - #endif - #endif /* ALT_LOG_WRITE_ON_FLAG_SETTING */ - - #ifndef ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING - #ifndef __ALTERA_AVALON_JTAG_UART - #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 - #elif ALT_LOG_FLAGS == 1 - #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 - #elif ALT_LOG_FLAGS == 2 - #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == 3 - #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == -1 /* silent mode */ - #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 - #else /* default setting */ - #define ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING 0x0 - #endif - #endif /* ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING */ - - #ifndef ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING - #ifndef __ALTERA_AVALON_JTAG_UART - #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 - #elif ALT_LOG_FLAGS == 1 - #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == 2 - #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == 3 - #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == -1 /* silent mode */ - #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 - #else /* default setting */ - #define ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING 0x0 - #endif - #endif /* ALT_LOG_JTAG_UART_STARTUP_INFO_FLAG_SETTING */ - - #ifndef ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING - #ifndef __ALTERA_AVALON_JTAG_UART - #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 - #elif ALT_LOG_FLAGS == 1 - #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 - #elif ALT_LOG_FLAGS == 2 - #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 - #elif ALT_LOG_FLAGS == 3 - #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x1 - #elif ALT_LOG_FLAGS == -1 /* silent mode */ - #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 - #else /* default setting */ - #define ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING 0x0 - #endif - #endif /* ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING */ - -#ifndef ALT_ASM_SRC - /* Function Prototypes */ - void alt_log_txchar(int c,char *uartBase); - void alt_log_private_printf(const char *fmt,int base,va_list args); - void alt_log_repchar(char c,int r,int base); - int alt_log_printf_proc(const char *fmt, ... ); - void alt_log_system_clock(); - #ifdef __ALTERA_AVALON_JTAG_UART - alt_u32 altera_avalon_jtag_uart_report_log(void * context); - void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base); - void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, \ - int base, const char* header); - void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev); - #endif - void alt_log_write(const void *ptr, size_t len); - - /* extern all global variables */ - extern volatile alt_u32 alt_log_boot_on_flag; - extern volatile alt_u8 alt_log_write_on_flag; - extern volatile alt_u8 alt_log_sys_clk_on_flag; - extern volatile alt_u8 alt_log_jtag_uart_alarm_on_flag; - extern volatile alt_u8 alt_log_jtag_uart_isr_on_flag; - extern volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag; - extern volatile int alt_log_sys_clk_count; - extern volatile int alt_system_clock_in_sec; - extern alt_alarm alt_log_jtag_uart_alarm_1; -#endif /* ALT_ASM_SRC */ - - - /* Below are the MACRO defines used in various HAL files. They check - * if their specific flag is turned on; if it is, then it executes its - * code. - * - * To keep this file reasonable, most of these macros calls functions, - * which are defined in alt_log_printf.c. Look there for implementation - * details. */ - - /* Boot Messages Logging */ - #define ALT_LOG_PRINT_BOOT(...) \ - do { if (alt_log_boot_on_flag==1) {ALT_LOG_PRINTF(__VA_ARGS__);} \ - } while (0) - - /* JTAG UART Logging */ - /* number of ticks before alarm runs logging function */ - #ifndef ALT_LOG_JTAG_UART_TICKS_DIVISOR - #define ALT_LOG_JTAG_UART_TICKS_DIVISOR 10 - #endif - #ifndef ALT_LOG_JTAG_UART_TICKS - #define ALT_LOG_JTAG_UART_TICKS \ - (alt_ticks_per_second()/ALT_LOG_JTAG_UART_TICKS_DIVISOR) - #endif - - /* if there's a JTAG UART defined, then enable these macros */ - #ifdef __ALTERA_AVALON_JTAG_UART - - /* Macro in altera_avalon_jtag_uart.c, to register the alarm function. - * Also, the startup register info is also printed here, as this is - * called within the device driver initialization. */ - #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) \ - do { if (alt_log_jtag_uart_alarm_on_flag==1) { \ - alt_alarm_start(&alt_log_jtag_uart_alarm_1, \ - ALT_LOG_JTAG_UART_TICKS, &altera_avalon_jtag_uart_report_log,\ - dev);} \ - if (alt_log_jtag_uart_startup_info_on_flag==1) {\ - alt_log_jtag_uart_startup_info(dev, base);} \ - } while (0) - - /* JTAG UART IRQ Logging (when buffer is empty) - * Inserted in the ISR in altera_avalon_jtag_uart.c */ - #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) \ - do { alt_log_jtag_uart_isr_proc(base, dev); } while (0) - /* else, define macros to nothing. Or else the jtag_uart specific types - * will throw compiler errors */ - #else - #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) - #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) - #endif - - /* System clock logging - * How often (in seconds) the system clock logging prints. - * The default value is every 1 second */ - #ifndef ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER - #define ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER 1 - #endif - #ifndef ALT_LOG_SYS_CLK_INTERVAL - #define ALT_LOG_SYS_CLK_INTERVAL \ - (alt_ticks_per_second()*ALT_LOG_SYS_CLK_INTERVAL_MULTIPLIER) - #endif - - /* System clock logging - prints a message every interval (set above) - * to show that the system clock is alive. - * This macro is used in altera_avalon_timer_sc.c */ - #define ALT_LOG_SYS_CLK_HEARTBEAT() \ - do { alt_log_system_clock(); } while (0) - - /* alt_write_logging - echos a message every time write() is called, - * displays the first ALT_LOG_WRITE_ECHO_LEN characters. - * This macro is used in alt_write.c */ - #ifndef ALT_LOG_WRITE_ECHO_LEN - #define ALT_LOG_WRITE_ECHO_LEN 15 - #endif - - #define ALT_LOG_WRITE_FUNCTION(ptr,len) \ - do { alt_log_write(ptr,len); } while (0) - -#else /* ALT_LOG_ENABLE not defined */ - - /* logging is off, set all relevant macros to null */ - #define ALT_LOG_PRINT_BOOT(...) - #define ALT_LOG_PRINTF(...) - #define ALT_LOG_JTAG_UART_ISR_FUNCTION(base, dev) - #define ALT_LOG_JTAG_UART_ALARM_REGISTER(dev, base) - #define ALT_LOG_SYS_CLK_HEARTBEAT() - #define ALT_LOG_PUTS(str) - #define ALT_LOG_WRITE_FUNCTION(ptr,len) - -#endif /* ALT_LOG_ENABLE */ - -#endif /* __ALT_LOG_PRINTF_H__ */ - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_set_args.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_set_args.h deleted file mode 100644 index a9372c5..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_set_args.h +++ /dev/null @@ -1,71 +0,0 @@ -#ifndef __ALT_SET_ARGS_H__ -#define __ALT_SET_ARGS_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * The function alt_set_args() is provided in order to define the input - * arguments to main(). If this function is not called before main() then the - * argument list passed to main() will be empty. - * - * It is expected that this function will only be used by the ihost/iclient - * utility. - */ - -static inline void alt_set_args (int argc, char** argv, char** envp) -{ - extern int alt_argc; - extern char** alt_argv; - extern char** alt_envp; - - alt_argc = argc; - alt_argv = argv; - alt_envp = envp; -} - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_SET_ARGS_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_sim.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_sim.h deleted file mode 100644 index 63afad9..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_sim.h +++ /dev/null @@ -1,91 +0,0 @@ -#ifndef __ALT_SIM_H__ -#define __ALT_SIM_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ -#include "system.h" -#include "alt_types.h" - -/* - * Instructions that might mean something special to a simulator. - * These have no special effect on real hardware (they are just nops). - */ -#define ALT_SIM_FAIL() \ - do { __asm volatile ("cmpltui r0, r0, 0xabc1"); } while (0) - -#define ALT_SIM_PASS() \ - do { __asm volatile ("cmpltui r0, r0, 0xabc2"); } while (0) - -#define ALT_SIM_IN_TOP_OF_HOT_LOOP() \ - do { __asm volatile ("cmpltui r0, r0, 0xabc3"); } while (0) - -/* - * Routine called on exit. - */ -static ALT_ALWAYS_INLINE void alt_sim_halt(int exit_code) -{ - int r2 = exit_code; - -#if defined(NIOS2_HAS_DEBUG_STUB) && (defined(ALT_BREAK_ON_EXIT) || defined(ALT_PROVIDE_GMON)) - - int r3 = (1 << 2); - -#ifdef ALT_PROVIDE_GMON - extern unsigned int alt_gmon_data[]; - int r4 = (int)alt_gmon_data; - r3 |= (1 << 4); -#define ALT_GMON_DATA ,"D04"(r4) -#else -#define ALT_GMON_DATA -#endif /* ALT_PROVIDE_GMON */ - - if (r2) { - ALT_SIM_FAIL(); - } else { - ALT_SIM_PASS(); - } - - __asm__ volatile ("\n0:\n\taddi %0,%0, -1\n\tbgt %0,zero,0b" : : "r" (ALT_CPU_FREQ/100) ); /* Delay for >30ms */ - - __asm__ volatile ("break 2" : : "D02"(r2), "D03"(r3) ALT_GMON_DATA ); - -#else /* !DEBUG_STUB */ - if (r2) { - ALT_SIM_FAIL(); - } else { - ALT_SIM_PASS(); - } -#endif /* DEBUG_STUB */ -} - -#define ALT_SIM_HALT(exit_code) \ - alt_sim_halt(exit_code) - -#endif /* __ALT_SIM_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_stack.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_stack.h deleted file mode 100644 index ebcad7a..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_stack.h +++ /dev/null @@ -1,126 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#ifndef __ALT_STACK_H__ -#define __ALT_STACK_H__ - -/* - * alt_stack.h is the nios2 specific implementation of functions used by the - * stack overflow code. - */ - -#include "nios2.h" - -#include "alt_types.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - - -extern char * alt_stack_limit_value; - -#ifdef ALT_EXCEPTION_STACK -extern char __alt_exception_stack_pointer[]; /* set by the linker */ -#endif /* ALT_EXCEPTION_STACK */ - - -/* - * alt_stack_limit can be called to determine the current value of the stack - * limit register. - */ - -static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_limit (void) -{ - char * limit; - NIOS2_READ_ET(limit); - - return limit; -} - -/* - * alt_stack_pointer can be called to determine the current value of the stack - * pointer register. - */ - -static ALT_INLINE char * ALT_ALWAYS_INLINE alt_stack_pointer (void) -{ - char * pointer; - NIOS2_READ_SP(pointer); - - return pointer; -} - - -#ifdef ALT_EXCEPTION_STACK - -/* - * alt_exception_stack_pointer returns the normal stack pointer from - * where it is stored on the exception stack (uppermost 4 bytes). This - * is really only useful during exception processing, and is only - * available if a separate exception stack has been configured. - */ - -static ALT_INLINE char * ALT_ALWAYS_INLINE alt_exception_stack_pointer (void) -{ - return (char *) *(alt_u32 *)(__alt_exception_stack_pointer - sizeof(alt_u32)); -} - -#endif /* ALT_EXCEPTION_STACK */ - - -/* - * alt_set_stack_limit can be called to update the current value of the stack - * limit register. - */ - -static ALT_INLINE void ALT_ALWAYS_INLINE alt_set_stack_limit (char * limit) -{ - alt_stack_limit_value = limit; - NIOS2_WRITE_ET(limit); -} - -/* - * alt_report_stack_overflow reports that a stack overflow happened. - */ - -static ALT_INLINE void ALT_ALWAYS_INLINE alt_report_stack_overflow (void) -{ - NIOS2_REPORT_STACK_OVERFLOW(); -} - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __ALT_STACK_H__ */ - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_stdio.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_stdio.h deleted file mode 100644 index 7ae05d4..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_stdio.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef __ALT_STDIO_H__ -#define __ALT_STDIO_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -/* - * Definitions for ALT stdio routines. - */ - -#include - - -#ifdef __cplusplus -extern "C" { -#endif - -int alt_getchar(); -int alt_putchar(int c); -int alt_putstr(const char* str); -void alt_printf(const char *fmt, ...); - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_STDIO_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_sys_init.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_sys_init.h deleted file mode 100644 index 3b18059..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_sys_init.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef __ALT_SYS_INIT_H__ -#define __ALT_SYS_INIT_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * The function alt_sys_init() is defined within the auto-generated file: - * alt_sys_init.c. This function calls the initilisation macros for all - * devices, file systems, and software components within the system. - * - * The list of initilisation macros to use is constructed using the PTF and - * STF files associated with the system. - */ - -extern void alt_sys_init (void); - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_SYS_INIT_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_sys_wrappers.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_sys_wrappers.h deleted file mode 100644 index eea552d..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_sys_wrappers.h +++ /dev/null @@ -1,100 +0,0 @@ -#ifndef __ALT_SYS_WRAPPERS_H__ -#define __ALT_SYS_WRAPPERS_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* - * This file provides the prototypes for the HAL 'UNIX style functions. The - * names of these functions are defined in alt_syscall.h. THese are defined to - * be the standard names when running the standalone HAL, e.g. open(), close() - * etc., but the names may be redefined as a part of an operating system port - * in order to avoid name clashes. - */ - -#include "os/alt_syscall.h" - -#include -#include -#include -#include -#include -#include - -extern int ALT_CLOSE (int __fd); -extern int ALT_EXECVE (const char *__path, - char * const __argv[], - char * const __envp[]); -extern void ALT_EXIT (int __status); -extern int ALT_FSTAT (int file, struct stat *st); -extern int ALT_FCNTL (int file, int cmd, ...); -extern pid_t ALT_FORK (void); -extern pid_t ALT_GETPID (void); - -#if defined (__GNUC__) && __GNUC__ >= 4 -extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, - void *ptimezone); -#else -extern int ALT_GETTIMEOFDAY (struct timeval *ptimeval, - struct timezone *ptimezone); -#endif - -extern int ALT_IOCTL (int file, int req, void* arg); -extern int ALT_ISATTY (int file); -extern int ALT_KILL (int pid, int sig); -extern int ALT_LINK (const char *existing, const char *new); -extern off_t ALT_LSEEK (int file, off_t ptr, int dir); -extern int ALT_OPEN (const char* file, int flags, ...); -extern int ALT_READ (int file, void *ptr, size_t len); -extern int ALT_RENAME (char *existing, char *new); -extern void* ALT_SBRK (ptrdiff_t incr); -extern int ALT_SETTIMEOFDAY (const struct timeval *t, - const struct timezone *tz); -extern int ALT_STAT (const char *file, struct stat *st); -extern clock_t ALT_TIMES (struct tms *buf); -extern int ALT_UNLINK (const char *name); - -#if defined (__GNUC__) && __GNUC__ >= 4 -int ALT_USLEEP (useconds_t us); -#else -unsigned int ALT_USLEEP (unsigned int us); -#endif - -extern int ALT_WAIT (int *status); -extern int ALT_WRITE (int file, const void *ptr, size_t len); - - -extern char** ALT_ENVIRON; - -/* - * - */ - -#endif /* __ALT_SYS_WRAPPERS_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_timestamp.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_timestamp.h deleted file mode 100644 index ec704ba..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_timestamp.h +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef __ALT_TIMESTAMP_H__ -#define __ALT_TIMESTAMP_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#include "alt_types.h" -#include "altera_avalon_timer.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -extern int alt_timestamp_start (void); - -extern alt_timestamp_type alt_timestamp (void); - -extern alt_u32 alt_timestamp_freq (void); - -#ifdef __cplusplus -} -#endif - -#endif /* __ALT_TIMESTAMP_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_warning.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_warning.h deleted file mode 100644 index 01318bd..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/alt_warning.h +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef __WARNING_H__ -#define __WARNING_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* - * alt_warning.h provides macro definitions that can be used to generate link - * time warnings. - */ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * The symbol "__alt_invalid" is used to force a link error. There should be - * no corresponding implementation of this function. - */ - -extern void __alt_invalid (void); - -#define ALT_LINK_WARNING(symbol, msg) \ - __asm__(".ifndef __evoke_link_warning_" #symbol \ - "\n\t .section .gnu.warning." #symbol \ - "\n__evoke_link_warning_" #symbol ":\n\t .string \x22" msg "\x22 \n\t .previous" \ - "\n .endif"); - -/* A canned warning for sysdeps/stub functions. */ - -#define ALT_STUB_WARNING(name) \ - ALT_LINK_WARNING (name, \ - "warning: " #name " is not implemented and will always fail") - -#define ALT_OBSOLETE_FUNCTION_WARNING(name) \ - ALT_LINK_WARNING (name, \ - "warning: " #name " is a deprecated function") - -#define ALT_LINK_ERROR(msg) \ - ALT_LINK_WARNING (__alt_invalid, msg); \ - __alt_invalid() - -#ifdef __cplusplus -} -#endif - -#endif /* __WARNING_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/ioctl.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/ioctl.h deleted file mode 100644 index 453283b..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/ioctl.h +++ /dev/null @@ -1,90 +0,0 @@ -#ifndef __IOCTL_H__ -#define __IOCTL_H__ - -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * The ioctl() system call be used to initiate a variety of control operations - * on a file descriptor. For the most part this simply translates to a call to - * the ioctl() function of the associated device driver (TIOCEXCL and - * TIOCNXCL are notable exceptions - see ioctl.c for details). - * - * The interpretation of the ioctl requests are therefore device specific. - * - * This function is equivalent to the standard Posix ioctl() call. - */ - -extern int ioctl (int fd, int req, void* arg); - -/* - * list of ioctl calls handled by the system ioctl implementation. - */ - -#define TIOCEXCL 0x740d /* exclusive use of the device */ -#define TIOCNXCL 0x740e /* allow multiple use of the device */ - -/* - * ioctl calls which can be handled by device drivers. - */ - -#define TIOCOUTQ 0x7472 /* get output queue size */ -#define TIOCMGET 0x741d /* get termios flags */ -#define TIOCMSET 0x741a /* set termios flags */ - -/* - * ioctl calls specific to JTAG UART. - */ - -#define TIOCSTIMEOUT 0x6a01 /* Set Timeout before assuming no host present */ -#define TIOCGCONNECTED 0x6a02 /* Get indication of whether host is connected */ - -/* - * - */ - -#ifdef __cplusplus -} -#endif - -#endif /* __IOCTL_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/termios.h b/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/termios.h deleted file mode 100644 index d271387..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/inc/sys/termios.h +++ /dev/null @@ -1,181 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT. * -* * -******************************************************************************/ - -/* - * This is the termios.h file provided with newlib. The only modification has - * been to the baud rate macro definitions, and an increase in the size of the - * termios structure to accomodate this. - */ - - -#ifndef _SYS_TERMIOS_H -# define _SYS_TERMIOS_H - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -# define _XCGETA (('x'<<8)|1) -# define _XCSETA (('x'<<8)|2) -# define _XCSETAW (('x'<<8)|3) -# define _XCSETAF (('x'<<8)|4) -# define _TCSBRK (('T'<<8)|5) -# define _TCFLSH (('T'<<8)|7) -# define _TCXONC (('T'<<8)|6) - -# define TCOOFF 0 -# define TCOON 1 -# define TCIOFF 2 -# define TCION 3 - -# define TCIFLUSH 0 -# define TCOFLUSH 1 -# define TCIOFLUSH 2 - -# define NCCS 13 - -# define TCSAFLUSH _XCSETAF -# define TCSANOW _XCSETA -# define TCSADRAIN _XCSETAW -# define TCSADFLUSH _XCSETAF - -# define IGNBRK 000001 -# define BRKINT 000002 -# define IGNPAR 000004 -# define INPCK 000020 -# define ISTRIP 000040 -# define INLCR 000100 -# define IGNCR 000200 -# define ICRNL 000400 -# define IXON 002000 -# define IXOFF 010000 - -# define OPOST 000001 -# define OCRNL 000004 -# define ONLCR 000010 -# define ONOCR 000020 -# define TAB3 014000 - -# define CLOCAL 004000 -# define CREAD 000200 -# define CSIZE 000060 -# define CS5 0 -# define CS6 020 -# define CS7 040 -# define CS8 060 -# define CSTOPB 000100 -# define HUPCL 002000 -# define PARENB 000400 -# define PAODD 001000 - -#define CCTS_OFLOW 010000 -#define CRTS_IFLOW 020000 -#define CRTSCTS (CCTS_OFLOW | CRTS_IFLOW) - -# define ECHO 0000010 -# define ECHOE 0000020 -# define ECHOK 0000040 -# define ECHONL 0000100 -# define ICANON 0000002 -# define IEXTEN 0000400 /* anybody know *what* this does?! */ -# define ISIG 0000001 -# define NOFLSH 0000200 -# define TOSTOP 0001000 - -# define VEOF 4 /* also VMIN -- thanks, AT&T */ -# define VEOL 5 /* also VTIME -- thanks again */ -# define VERASE 2 -# define VINTR 0 -# define VKILL 3 -# define VMIN 4 /* also VEOF */ -# define VQUIT 1 -# define VSUSP 10 -# define VTIME 5 /* also VEOL */ -# define VSTART 11 -# define VSTOP 12 - -# define B0 0 -# define B50 50 -# define B75 75 -# define B110 110 -# define B134 134 -# define B150 150 -# define B200 200 -# define B300 300 -# define B600 600 -# define B1200 1200 -# define B1800 1800 -# define B2400 2400 -# define B4800 4800 -# define B9600 9600 -# define B19200 19200 -# define B38400 38400 -# define B57600 57600 -# define B115200 115200 - -typedef unsigned char cc_t; -typedef unsigned short tcflag_t; -typedef unsigned long speed_t; - -struct termios { - tcflag_t c_iflag; - tcflag_t c_oflag; - tcflag_t c_cflag; - tcflag_t c_lflag; - char c_line; - cc_t c_cc[NCCS]; - speed_t c_ispeed; - speed_t c_ospeed; -}; - -# ifndef _NO_MACROS - -# define cfgetospeed(tp) ((tp)->c_ospeed) -# define cfgetispeed(tp) ((tp)->c_ispeed) -# define cfsetospeed(tp,s) (((tp)->c_ospeed = (s)), 0) -# define cfsetispeed(tp,s) (((tp)->c_ispeed = (s)), 0) -# define tcdrain(fd) _ioctl (fd, _TCSBRK, 1) -# endif /* _NO_MACROS */ - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_TERMIOS_H */ - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_alarm_start.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_alarm_start.c deleted file mode 100644 index 2bd672f..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_alarm_start.c +++ /dev/null @@ -1,112 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#include "sys/alt_alarm.h" -#include "sys/alt_irq.h" - -/* - * alt_alarm_start is called to register an alarm with the system. The - * "alarm" structure passed as an input argument does not need to be - * initialised by the user. This is done within this function. - * - * The remaining input arguments are: - * - * nticks - The time to elapse until the alarm executes. This is specified in - * system clock ticks. - * callback - The function to run when the indicated time has elapsed. - * context - An opaque value, passed to the callback function. -* - * Care should be taken when defining the callback function since it is - * likely to execute in interrupt context. In particular, this mean that - * library calls like printf() should not be made, since they can result in - * deadlock. - * - * The interval to be used for the next callback is the return - * value from the callback function. A return value of zero indicates that the - * alarm should be unregistered. - * - * alt_alarm_start() will fail if the timer facility has not been enabled - * (i.e. there is no system clock). Failure is indicated by a negative return - * value. - */ - -int alt_alarm_start (alt_alarm* alarm, alt_u32 nticks, - alt_u32 (*callback) (void* context), - void* context) -{ - alt_irq_context irq_context; - alt_u32 current_nticks = 0; - - if (alt_ticks_per_second ()) - { - if (alarm) - { - alarm->callback = callback; - alarm->context = context; - - irq_context = alt_irq_disable_all (); - - current_nticks = alt_nticks(); - - alarm->time = nticks + current_nticks + 1; - - /* - * If the desired alarm time causes a roll-over, set the rollover - * flag. This will prevent the subsequent tick event from causing - * an alarm too early. - */ - if(alarm->time < current_nticks) - { - alarm->rollover = 1; - } - else - { - alarm->rollover = 0; - } - - alt_llist_insert (&alt_alarm_list, &alarm->llist); - alt_irq_enable_all (irq_context); - - return 0; - } - else - { - return -EINVAL; - } - } - else - { - return -ENOTSUP; - } -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_busy_sleep.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_busy_sleep.c deleted file mode 100644 index 1b910a5..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_busy_sleep.c +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. - * All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * ------------ - * - * Altera does not recommend, suggest or require that this reference design - * file be used in conjunction or combination with any other product. - * - * alt_busy_sleep.c - Microsecond delay routine which uses a calibrated busy - * loop to perform the delay. This is used to implement - * usleep for both uC/OS-II and the standalone HAL. - * - * Author PRR - * - * Calibrated delay with no timer required - * - * The ASM instructions in the routine are equivalent to - * - * for (i=0;i -#include - -#include "system.h" -#include "alt_types.h" - -#include "priv/alt_busy_sleep.h" - -unsigned int alt_busy_sleep (unsigned int us) -{ -/* - * Only delay if ALT_SIM_OPTIMIZE is not defined; i.e., if software - * is built targetting ModelSim RTL simulation, the delay will be - * skipped to speed up simulation. - */ -#ifndef ALT_SIM_OPTIMIZE - int i; - int big_loops; - alt_u32 cycles_per_loop; - - if (!strcmp(NIOS2_CPU_IMPLEMENTATION,"tiny")) - { - cycles_per_loop = 9; - } - else - { - cycles_per_loop = 3; - } - - - big_loops = us / (INT_MAX/ - (ALT_CPU_FREQ/(cycles_per_loop * 1000000))); - - if (big_loops) - { - for(i=0;i - -#include "sys/alt_errno.h" -#include "sys/alt_warning.h" -#include "priv/alt_file.h" -#include "os/alt_syscall.h" - -#ifdef ALT_USE_DIRECT_DRIVERS - -int ALT_CLOSE (int fildes) -{ - /* Generate a link time warning, should this function ever be called. */ - - ALT_STUB_WARNING(close); - - /* Indicate an error */ - - ALT_ERRNO = ENOSYS; - return -1; -} - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -/* - * close() is called by an application to release a file descriptor. If the - * associated file system/device has a close() callback function registered - * then this called. The file descriptor is then marked as free. - * - * ALT_CLOSE is mapped onto the close() system call in alt_syscall.h - */ - -int ALT_CLOSE (int fildes) -{ - alt_fd* fd; - int rval; - - /* - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (fildes < 0) ? NULL : &alt_fd_list[fildes]; - - if (fd) - { - /* - * If the associated file system/device has a close function, call it so - * that any necessary cleanup code can run. - */ - - rval = (fd->dev->close) ? fd->dev->close(fd) : 0; - - /* Free the file descriptor structure and return. */ - - alt_release_fd (fildes); - if (rval < 0) - { - ALT_ERRNO = -rval; - return -1; - } - return 0; - } - else - { - ALT_ERRNO = EBADFD; - return -1; - } -} - -#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dcache_flush.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dcache_flush.c deleted file mode 100644 index 8afe062..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dcache_flush.c +++ /dev/null @@ -1,97 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "nios2.h" -#include "system.h" - -#include "alt_types.h" -#include "sys/alt_cache.h" - -/* - * Nios II version 1.2 and newer supports the "flush by address" instruction, in - * addition to the "flush by line" instruction provided by older versions of - * the core. This newer instruction is used by preference when it is - * available. - */ - -#ifdef NIOS2_FLUSHDA_SUPPORTED -#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushda (%0)" :: "r" (i)); -#else -#define ALT_FLUSH_DATA(i) __asm__ volatile ("flushd (%0)" :: "r" (i)); -#endif /* NIOS2_FLUSHDA_SUPPORTED */ - -/* - * alt_dcache_flush() is called to flush the data cache for a memory - * region of length "len" bytes, starting at address "start". - * - * Any dirty lines in the data cache are written back to memory. - */ - -void alt_dcache_flush (void* start, alt_u32 len) -{ -#if NIOS2_DCACHE_SIZE > 0 - - char* i; - char* end; - - /* - * This is the most we would ever need to flush. - * - * SPR 196942, 2006.01.13: The cache flush loop below will use the - * 'flushda' instruction if its available; in that case each line - * must be flushed individually, and thus 'len' cannot be trimmed. - */ - #ifndef NIOS2_FLUSHDA_SUPPORTED - if (len > NIOS2_DCACHE_SIZE) - { - len = NIOS2_DCACHE_SIZE; - } - #endif - - end = ((char*) start) + len; - - for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) - { - ALT_FLUSH_DATA(i); - } - - /* - * For an unaligned flush request, we've got one more line left. - * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a - * multiple of 2 (which it always is). - */ - - if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) - { - ALT_FLUSH_DATA(i); - } - -#endif /* NIOS2_DCACHE_SIZE > 0 */ -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dcache_flush_all.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dcache_flush_all.c deleted file mode 100644 index 80735b7..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dcache_flush_all.c +++ /dev/null @@ -1,51 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "nios2.h" -#include "system.h" - -#include "alt_types.h" -#include "sys/alt_cache.h" - -/* - * alt_dcache_flush_all() is called to flush the entire data cache. - */ - -void alt_dcache_flush_all (void) -{ -#if NIOS2_DCACHE_SIZE > 0 - char* i; - - for (i = (char*) 0; i < (char*) NIOS2_DCACHE_SIZE; i+= NIOS2_DCACHE_LINE_SIZE) - { - __asm__ volatile ("flushd (%0)" :: "r" (i)); - } -#endif /* NIOS2_DCACHE_SIZE > 0 */ -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dcache_flush_no_writeback.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dcache_flush_no_writeback.c deleted file mode 100644 index 3b277d2..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dcache_flush_no_writeback.c +++ /dev/null @@ -1,88 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "nios2.h" -#include "system.h" - -#include "alt_types.h" -#include "sys/alt_cache.h" - -/* - * The INITDA instruction was added to Nios II in the 8.0 release. - * - * The INITDA instruction has one of the following possible behaviors - * depending on the processor configuration: - * 1) Flushes a line by address but does NOT write back dirty data. - * Occurs when a data cache is present that supports INITDA. - * The macro NIOS2_INITDA_SUPPORTED is defined in system.h. - * 2) Takes an unimplemented instruction exception. - * Occurs when a data cache is present that doesn't support INITDA. - * 3) Performs no operation - * Occurs when there is no data cache present. - * The macro NIOS2_DCACHE_SIZE is 0 in system.h. - */ - -#define ALT_FLUSH_DATA_NO_WRITEBACK(i) \ - __asm__ volatile ("initda (%0)" :: "r" (i)); - -/* - * alt_dcache_flush_no_writeback() is called to flush the data cache for a - * memory region of length "len" bytes, starting at address "start". - * - * Any dirty lines in the data cache are NOT written back to memory. - * Make sure you really want this behavior. If you aren't 100% sure, - * use the alt_dcache_flush() routine instead. - */ - -void alt_dcache_flush_no_writeback (void* start, alt_u32 len) -{ -#if defined(NIOS2_INITDA_SUPPORTED) - - char* i; - char* end = ((char*) start) + len; - - for (i = start; i < end; i+= NIOS2_DCACHE_LINE_SIZE) - { - ALT_FLUSH_DATA_NO_WRITEBACK(i); - } - - /* - * For an unaligned flush request, we've got one more line left. - * Note that this is dependent on NIOS2_DCACHE_LINE_SIZE to be a - * multiple of 2 (which it always is). - */ - - if (((alt_u32) start) & (NIOS2_DCACHE_LINE_SIZE - 1)) - { - ALT_FLUSH_DATA_NO_WRITEBACK(i); - } - -#endif /* NIOS2_INITDA_SUPPORTED */ -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dev.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dev.c deleted file mode 100644 index 92f3f2a..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dev.c +++ /dev/null @@ -1,149 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include -#include -#include -#include - -#include "sys/alt_dev.h" -#include "priv/alt_file.h" - -#include "alt_types.h" - -#include "system.h" - -/* - * This file contains the data constructs used to control access to device and - * filesytems. - */ - -/* - * "alt_fs_list" is the head of a linked list of registered filesystems. It is - * initialised as an empty list. New entries can be added using the - * alt_fs_reg() function. - */ - -ALT_LLIST_HEAD(alt_fs_list); - - -/* - * "alt_dev_list" is the head of a linked list of registered devices. It is - * configured at startup to include a single device, "alt_dev_null". This - * device is discussed below. - */ - -extern alt_dev alt_dev_null; /* forward declaration */ - -alt_llist alt_dev_list = {&alt_dev_null.llist, &alt_dev_null.llist}; - -/* - * alt_dev_null_write() is the implementation of the write() function used - * by the alt_dev_null device. It simple discards all data passed to it, and - * indicates that the data has been successfully transmitted. - */ - -static int alt_dev_null_write (alt_fd* fd, const char* ptr, int len) -{ - return len; -} - -/* - * "alt_dev_null" is used to allow output to be redirected to nowhere. It is - * the only device registered before the call to alt_sys_init(). At startup - * stin, stdout & stderr are all directed towards this device so that library - * calls like printf() will be safe but inefectual. - */ - -alt_dev alt_dev_null = { - { - &alt_dev_list, - &alt_dev_list - }, - "/dev/null", - NULL, /* open */ - NULL, /* close */ - NULL, /* write */ - alt_dev_null_write, /* write */ - NULL, /* lseek */ - NULL, /* fstat */ - NULL /* ioctl */ - }; - -/* - * "alt_fd_list_lock" is a semaphore used to control access to the file - * descriptor list. This is used to ensure that access to the list is thread - * safe. - */ - -ALT_SEM(alt_fd_list_lock) - -/* - * "alt_max_fd" is used to make access to the file descriptor list more - * efficent. It is set to be the value of the highest allocated file - * descriptor. This saves having to search the entire pool of unallocated - * file descriptors when looking for a match. - */ - -alt_32 alt_max_fd = -1; - -/* - * "alt_fd_list" is the file descriptor pool. The first three entries in the - * array are configured as standard in, standard out, and standard error. These - * are all initialised so that accesses are directed to the alt_dev_null - * device. The remaining file descriptors are initialised as unallocated. - * - * The maximum number of file descriptors within the system is specified by the - * user defined macro "ALT_MAX_FD". This is defined in "system.h", which is - * auto-genereated using the projects PTF and STF files. - */ - -alt_fd alt_fd_list[ALT_MAX_FD] = - { - { - &alt_dev_null, /* standard in */ - 0, - 0 - }, - { - &alt_dev_null, /* standard out */ - 0, - 0 - }, - { - &alt_dev_null, /* standard error */ - 0, - 0 - } - /* all other elements are set to zero */ - }; diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dev_llist_insert.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dev_llist_insert.c deleted file mode 100644 index 5e8a952..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dev_llist_insert.c +++ /dev/null @@ -1,59 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "priv/alt_dev_llist.h" -#include "sys/alt_errno.h" - -/* - * - */ - -int alt_dev_llist_insert (alt_dev_llist* dev, alt_llist* list) -{ - /* - * check that the device exists, and that it has a valid name. - */ - - if (!dev || !dev->name) - { - ALT_ERRNO = EINVAL; - return -EINVAL; - } - - /* - * register the device. - */ - - alt_llist_insert(list, &dev->llist); - - return 0; -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dma_rxchan_open.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dma_rxchan_open.c deleted file mode 100644 index 5d461d9..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dma_rxchan_open.c +++ /dev/null @@ -1,63 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_dma.h" -#include "sys/alt_errno.h" -#include "priv/alt_file.h" - -/* - * The list of registered DMA receive channels. - */ - -ALT_LLIST_HEAD(alt_dma_rxchan_list); - -/* - * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for - * a DMA transmit device. The name is the name of the associated physical - * device (e.g. "/dev/dma_0"). - * - * The return value will be NULL on failure, and non-NULL otherwise. - */ - -alt_dma_rxchan alt_dma_rxchan_open (const char* name) -{ - alt_dma_rxchan dev; - - dev = (alt_dma_rxchan) alt_find_dev (name, &alt_dma_rxchan_list); - - if (!dev) - { - ALT_ERRNO = ENODEV; - } - - return dev; -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dma_txchan_open.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dma_txchan_open.c deleted file mode 100644 index 99f9181..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_dma_txchan_open.c +++ /dev/null @@ -1,63 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_dma.h" -#include "sys/alt_errno.h" -#include "priv/alt_file.h" - -/* - * The list of registered receive channels. - */ - -ALT_LLIST_HEAD(alt_dma_txchan_list); - -/* - * alt_dma_txchan_open() is used to obtain an "alt_dma_txchan" descriptor for - * a DMA transmit device. The name is the name of the associated physical - * device (e.g. "/dev/dma_0"). - * - * The return value will be NULL on failure, and non-NULL otherwise. - */ - -alt_dma_txchan alt_dma_txchan_open (const char* name) -{ - alt_dma_txchan dev; - - dev = (alt_dma_txchan) alt_find_dev (name, &alt_dma_txchan_list); - - if (!dev) - { - ALT_ERRNO = ENODEV; - } - - return dev; -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_do_ctors.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_do_ctors.c deleted file mode 100644 index be1c134..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_do_ctors.c +++ /dev/null @@ -1,64 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * -* * -* Overriding HAL Functions * -* * -* To provide your own implementation of a HAL function, include the file in * -* your Nios II IDE application project. When building the executable, the * -* Nios II IDE finds your function first, and uses it in place of the HAL * -* version. * -* * -******************************************************************************/ - -/* - * - */ - -typedef void (*constructor) (void); -extern constructor __CTOR_LIST__[]; -extern constructor __CTOR_END__[]; - -/* - * Run the C++ static constructors. - */ - -void _do_ctors(void) -{ - constructor* ctor; - - for (ctor = &__CTOR_END__[-1]; ctor >= __CTOR_LIST__; ctor--) - (*ctor) (); -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_do_dtors.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_do_dtors.c deleted file mode 100644 index b61166a..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_do_dtors.c +++ /dev/null @@ -1,64 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* THIS IS A LIBRARY READ-ONLY SOURCE FILE. DO NOT EDIT IT DIRECTLY. * -* * -* Overriding HAL Functions * -* * -* To provide your own implementation of a HAL function, include the file in * -* your Nios II IDE application project. When building the executable, the * -* Nios II IDE finds your function first, and uses it in place of the HAL * -* version. * -* * -******************************************************************************/ - -/* - * - */ - -typedef void (*destructor) (void); -extern destructor __DTOR_LIST__[]; -extern destructor __DTOR_END__[]; - -/* - * Run the C++ static destructors. - */ - -void _do_dtors(void) -{ - destructor* dtor; - - for (dtor = &__DTOR_END__[-1]; dtor >= __DTOR_LIST__; dtor--) - (*dtor) (); -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_env_lock.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_env_lock.c deleted file mode 100644 index 0c5d522..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_env_lock.c +++ /dev/null @@ -1,53 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -/* - * These are the empty env lock/unlock stubs required by newlib. These are - * used to make accesses to environment variables thread safe. The default HAL - * configuration is single threaded, so there is nothing to do here. Note that - * this requires that environment variables are never manipulated by an interrupt - * service routine. - */ - -void __env_lock ( struct _reent *_r ) -{ -} - -/* - * - */ - -void __env_unlock ( struct _reent *_r ) -{ -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_environ.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_environ.c deleted file mode 100644 index 780635a..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_environ.c +++ /dev/null @@ -1,42 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "os/alt_syscall.h" - -/* - * These are the environment variables passed to the C code. By default there - * are no variables registered. An application can manipulate this list using - * getenv() and setenv(). - */ - -char *__env[1] = { 0 }; -char **ALT_ENVIRON = __env; diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_errno.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_errno.c deleted file mode 100644 index 4c5ca3e..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_errno.c +++ /dev/null @@ -1,44 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/* - * This file defines the alt_errno global variable. See comments in - * alt_errno.h for the use of this variable. - */ - - -#include "sys/alt_errno.h" -#include "alt_types.h" - -extern int ALT_WEAK *__errno (void); - -int* (*alt_errno) (void) = __errno; diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exception_entry.S b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exception_entry.S deleted file mode 100644 index 486465b..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exception_entry.S +++ /dev/null @@ -1,360 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003-2008 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "system.h" - -/* - * This is the exception entry point code, which saves all the caller saved - * registers and then handles the appropriate exception. It should be pulled - * in using a .globl from all the exception handler routines. This scheme is - * used so that if an interrupt is never registered, then this code will not - * appear in the generated executable, thereby improving code footprint. - * - * If an external interrpt controller (EIC) is present, it will supply an - * interrupt vector address to the processor when an interrupt occurs. For - * The Altera Vectored Interrupt Controller (VIC) driver will establish a - * vector table and the processor will jump directly to the appropriate - * table entry, funnel routine, and then user ISR. This will bypass this code - * in entirety. This code might still be linked into a system with an EIC, - * but would then be used only for non-interrupt exceptions. - */ - - /* - * Explicitly allow the use of r1 (the assembler temporary register) - * within this code. This register is normally reserved for the use of - * the assembler. - */ - .set noat - - /* - * The top and bottom of the exception stack - */ -#ifdef ALT_EXCEPTION_STACK - - .globl __alt_exception_stack_pointer - -#ifdef ALT_STACK_CHECK - - .globl __alt_exception_stack_limit - - /* - * We need to store the value of the stack limit after interrupt somewhere. - */ - .globl alt_exception_old_stack_limit - -#endif -#endif - - .section .exceptions.entry.label, "xa" - - .globl alt_exception - .type alt_exception, @function -alt_exception: - - .section .exceptions.entry, "xa" - -#ifdef ALT_EXCEPTION_STACK - -#ifdef ALT_STACK_CHECK - stw et, %gprel(alt_exception_old_stack_limit)(gp) -#endif - - movhi et, %hiadj(__alt_exception_stack_pointer - 80) - addi et, et, %lo(__alt_exception_stack_pointer - 80) - stw sp, 76(et) - mov sp, et - -#ifdef ALT_STACK_CHECK - movhi et, %hiadj(__alt_exception_stack_limit) - addi et, et, %lo(__alt_exception_stack_limit) - stw et, %gprel(alt_stack_limit_value)(gp) -#endif - -#else - /* - * Process an exception. For all exceptions we must preserve all - * caller saved registers on the stack (See the Nios2 ABI - * documentation for details). - */ - - addi sp, sp, -76 - -#ifdef ALT_STACK_CHECK - - bltu sp, et, .Lstack_overflow - -#endif - -#endif - - stw ra, 0(sp) - - /* - * Leave a gap in the stack frame at 4(sp) for the muldiv handler to - * store zero into. - */ - - stw r1, 8(sp) - stw r2, 12(sp) - stw r3, 16(sp) - stw r4, 20(sp) - stw r5, 24(sp) - stw r6, 28(sp) - stw r7, 32(sp) - - rdctl r5, estatus - - stw r8, 36(sp) - stw r9, 40(sp) - stw r10, 44(sp) - stw r11, 48(sp) - stw r12, 52(sp) - stw r13, 56(sp) - stw r14, 60(sp) - stw r15, 64(sp) - - /* - * ea-4 contains the address of the instruction being executed - * when the exception occured. For interrupt exceptions, we will - * will be re-issue the isntruction. Store it in 72(sp) - */ - stw r5, 68(sp) /* estatus */ - addi r15, ea, -4 /* instruction that caused exception */ - stw r15, 72(sp) - - /* - * The interrupt testing code (.exceptions.irqtest) will be - * linked here. If the Internal Interrupt Controller (IIC) is - * present (an EIC is not present), the presense of an interrupt - * is determined by examining CPU control registers or an interrupt - * custom instruction, if present. - * - * If the IIC is used and an interrupt is active, the code linked - * here will call the HAL IRQ handler (alt_irq_handler()) which - * successively calls registered interrupt handler(s) until no - * interrupts remain pending. It then jumps to .exceptions.exit. If - * there is no interrupt then it continues to .exception.notirq, below. - */ - - .section .exceptions.notirq, "xa" - - /* - * Prepare to service unimplemtned instructions or traps, - * each of which is optionally inked into section .exceptions.soft, - * which will preceed .exceptions.unknown below. - * - * Unlike interrupts, we want to skip the exception-causing instructon - * upon completion, so we write ea (address of instruction *after* - * the one where the exception occured) into 72(sp). The actual - * instruction that caused the exception is written in r2, which these - * handlers will utilize. - */ - stw ea, 72(sp) /* Don't re-issue */ - ldw r2, -4(ea) /* Instruction that caused exception */ - - /* - * Other exception handling code, if enabled, will be linked here. - * This includes unimplemted (multiply/divide) instruction support - * (a BSP generaton option), and a trap handler (that would typically - * be augmented with user-specific code). These are not linked in by - * default. - */ - - /* - * In the context of linker sections, "unknown" are all exceptions - * not handled by the built-in handlers above (interupt, and trap or - * unimplemented instruction decoding, if enabled). - * - * Advanced exception types can be serviced by registering a handler. - * To do so, enable the "Enable Instruction-related Exception API" HAL - * BSP setting. If this setting is disabled, this handler code will - * either break (if the debug core is present) or enter an infinite - * loop because we don't how how to handle the exception. - */ - .section .exceptions.unknown -#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API - /* - * The C-based HAL routine alt_instruction_exception_entry() will - * attempt to service the exception by calling a user-registered - * exception handler using alt_instruction_exception_register(). - * If no handler was registered it will either break (if the - * debugger is present) or go into an infinite loop since the - * handling behavior is undefined; in that case we will not return here. - */ - - /* Load exception-causing address as first argument (r4) */ - addi r4, ea, -4 - - /* Call the instruction-exception entry */ - call alt_instruction_exception_entry - - /* - * If alt_instruction_exception_entry() returned, the exception was - * serviced by a user-registered routine. Its return code (now in r2) - * indicates whether to re-issue or skip the exception-causing - * instruction - * - * Return code was 0: Skip. The instruction after the exception is - * already stored in 72(sp). - */ - bne r2, r0, .Lexception_exit - - /* - * Otherwise, modify 72(sp) to re-issue the instruction that caused the - * exception. - */ - addi r15, ea, -4 /* instruction that caused exception */ - stw r15, 72(sp) - -#else /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API disabled */ - - /* - * We got here because an instruction-related exception occured, but the - * handler API was not compiled in. We do not presume to know how to - * handle it. If the debugger is present, break, otherwise hang. - * - * If you get here then one of the following could have happened: - * - * - An instruction-generated exception occured, and the processor - * does not have the extra exceptions feature enabled, or you - * have not registered a handler using - * alt_instruction_exception_register() - * - * Some examples of instruction-generated exceptions and why they - * might occur: - * - * - Your program could have been compiled for a full-featured - * Nios II core, but it is running on a smaller core, and - * instruction emulation has been disabled by defining - * ALT_NO_INSTRUCTION_EMULATION. - * - * You can work around the problem by re-enabling instruction - * emulation, or you can figure out why your program is being - * compiled for a system other than the one that it is running on. - * - * - Your program has executed a trap instruction, but has not - * implemented a handler for this instruction. - * - * - Your program has executed an illegal instruction (one which is - * not defined in the instruction set). - * - * - Your processor includes an MMU or MPU, and you have enabled it - * before registering an exception handler to service exceptions it - * generates. - * - * The problem could also be hardware related: - * - If your hardware is broken and is generating spurious interrupts - * (a peripheral which negates its interrupt output before its - * interrupt handler has been executed will cause spurious - * interrupts) - */ -#ifdef NIOS2_HAS_DEBUG_STUB - /* - * Either tell the user now (if there is a debugger attached) or go into - * the debug monitor which will loop until a debugger is attached. - */ - break -#else - /* - * If there is no debug stub then a BREAK will probably cause a reboot. - * An infinate loop will probably be more useful. - */ -0: - br 0b -#endif /* NIOS2_HAS_DEBUG_STUB */ - -#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ - - .section .exceptions.exit.label -.Lexception_exit: - - .section .exceptions.exit, "xa" - - /* - * Restore the saved registers, so that all general purpose registers - * have been restored to their state at the time the interrupt occured. - */ - - ldw r5, 68(sp) - ldw ea, 72(sp) /* This becomes the PC once eret is executed */ - ldw ra, 0(sp) - - wrctl estatus, r5 - - ldw r1, 8(sp) - ldw r2, 12(sp) - ldw r3, 16(sp) - ldw r4, 20(sp) - ldw r5, 24(sp) - ldw r6, 28(sp) - ldw r7, 32(sp) - -#ifdef ALT_EXCEPTION_STACK -#ifdef ALT_STACK_CHECK - ldw et, %gprel(alt_exception_old_stack_limit)(gp) -#endif -#endif - - ldw r8, 36(sp) - ldw r9, 40(sp) - ldw r10, 44(sp) - ldw r11, 48(sp) - ldw r12, 52(sp) - ldw r13, 56(sp) - ldw r14, 60(sp) - ldw r15, 64(sp) - -#ifdef ALT_EXCEPTION_STACK - -#ifdef ALT_STACK_CHECK - stw et, %gprel(alt_stack_limit_value)(gp) - stw zero, %gprel(alt_exception_old_stack_limit)(gp) -#endif - - ldw sp, 76(sp) - -#else - addi sp, sp, 76 - -#endif - - /* - * Return to the interrupted instruction. - */ - - eret - -#ifdef ALT_STACK_CHECK - -.Lstack_overflow: - break 3 - -#endif - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exception_muldiv.S b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exception_muldiv.S deleted file mode 100644 index 6a794a3..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exception_muldiv.S +++ /dev/null @@ -1,583 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - - /* - * This is the software multiply/divide handler for Nios2. - */ - - /* - * Provide a label which can be used to pull this file in. - */ - - .section .exceptions.start - .globl alt_exception_muldiv -alt_exception_muldiv: - - /* - * Pull in the entry/exit code. - */ - .globl alt_exception - - - .section .exceptions.soft, "xa" - - - /* INSTRUCTION EMULATION - * --------------------- - * - * Nios II processors generate exceptions for unimplemented instructions. - * The routines below emulate these instructions. Depending on the - * processor core, the only instructions that might need to be emulated - * are div, divu, mul, muli, mulxss, mulxsu, and mulxuu. - * - * The emulations match the instructions, except for the following - * limitations: - * - * 1) The emulation routines do not emulate the use of the exception - * temporary register (et) as a source operand because the exception - * handler already has modified it. - * - * 2) The routines do not emulate the use of the stack pointer (sp) or the - * exception return address register (ea) as a destination because - * modifying these registers crashes the exception handler or the - * interrupted routine. - * - * 3) To save code size, the routines do not emulate the use of the - * breakpoint registers (ba and bt) as operands. - * - * Detailed Design - * --------------- - * - * The emulation routines expect the contents of integer registers r0-r31 - * to be on the stack at addresses sp, 4(sp), 8(sp), ... 124(sp). The - * routines retrieve source operands from the stack and modify the - * destination register's value on the stack prior to the end of the - * exception handler. Then all registers except the destination register - * are restored to their previous values. - * - * The instruction that causes the exception is found at address -4(ea). - * The instruction's OP and OPX fields identify the operation to be - * performed. - * - * One instruction, muli, is an I-type instruction that is identified by - * an OP field of 0x24. - * - * muli AAAAA,BBBBB,IIIIIIIIIIIIIIII,-0x24- - * 27 22 6 0 <-- LSB of field - * - * The remaining emulated instructions are R-type and have an OP field - * of 0x3a. Their OPX fields identify them. - * - * R-type AAAAA,BBBBB,CCCCC,XXXXXX,NNNNN,-0x3a- - * 27 22 17 11 6 0 <-- LSB of field - * - * - */ - - - /* - * Split the instruction into its fields. We need 4*A, 4*B, and 4*C as - * offsets to the stack pointer for access to the stored register values. - */ - /* r2 = AAAAA,BBBBB,IIIIIIIIIIIIIIII,PPPPPP */ - roli r3, r2, 7 /* r3 = BBB,IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BB */ - roli r4, r3, 3 /* r4 = IIIIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB */ - roli r6, r4, 2 /* r6 = IIIIIIIIIIIIII,PPPPPP,AAAAA,BBBBB,II */ - srai r4, r4, 16 /* r4 = (sign-extended) IMM16 */ - xori r6, r6, 0x42 /* r6 = CCC,XXXXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cC */ - roli r7, r6, 5 /* r7 = XXXX,NNNNN,PPPPPP,AAAAA,bBBBB,cCCCC,XX */ - andi r5, r2, 0x3f /* r5 = 00000000000000000000000000,PPPPPP */ - xori r3, r3, 0x40 - andi r3, r3, 0x7c /* r3 = 0000000000000000000000000,aAAAA,00 */ - andi r6, r6, 0x7c /* r6 = 0000000000000000000000000,bBBBB,00 */ - andi r7, r7, 0x7c /* r7 = 0000000000000000000000000,cCCCC,00 */ - - /* Now either - * r5 = OP - * r3 = 4*(A^16) - * r4 = IMM16 (sign extended) - * r6 = 4*(B^16) - * r7 = 4*(C^16) - * or - * r5 = OP - */ - - - /* - * Save everything on the stack to make it easy for the emulation routines - * to retrieve the source register operands. The exception entry code has - * already saved some of this so we don't need to do it all again. - */ - - addi sp, sp, -60 - stw zero, 64(sp) /* Save zero on stack to avoid special case for r0. */ - /* Register at and r2-r15 have already been saved. */ - - stw r16, 0(sp) - stw r17, 4(sp) - stw r18, 8(sp) - stw r19, 12(sp) - stw r20, 16(sp) - stw r21, 20(sp) - stw r22, 24(sp) - stw r23, 28(sp) - /* et @ 32 - Has already been changed.*/ - /* bt @ 36 - Usually isn't an operand. */ - stw gp, 40(sp) - stw sp, 44(sp) - stw fp, 48(sp) - /* ea @ 52 - Don't bother to save - it's already been changed */ - /* ba @ 56 - Breakpoint register usually isn't an operand */ - /* ra @ 60 - Has already been saved */ - - - /* - * Prepare for either multiplication or division loop. - * They both loop 32 times. - */ - movi r14, 32 - - - /* - * Get the operands. - * - * It is necessary to check for muli because it uses an I-type instruction - * format, while the other instructions are have an R-type format. - */ - add r3, r3, sp /* r3 = address of A-operand. */ - ldw r3, 0(r3) /* r3 = A-operand. */ - movi r15, 0x24 /* muli opcode (I-type instruction format) */ - beq r5, r15, .Lmul_immed /* muli doesn't use the B register as a source */ - - add r6, r6, sp /* r6 = address of B-operand. */ - ldw r6, 0(r6) /* r6 = B-operand. */ - /* r4 = SSSSSSSSSSSSSSSS,-----IMM16------ */ - /* IMM16 not needed, align OPX portion */ - /* r4 = SSSSSSSSSSSSSSSS,CCCCC,-OPX--,00000 */ - srli r4, r4, 5 /* r4 = 00000,SSSSSSSSSSSSSSSS,CCCCC,-OPX-- */ - andi r4, r4, 0x3f /* r4 = 00000000000000000000000000,-OPX-- */ - - /* Now - * r5 = OP - * r3 = src1 - * r6 = src2 - * r4 = OPX (no longer can be muli) - * r7 = 4*(C^16) - * r14 = loop counter - */ - - /* ILLEGAL-INSTRUCTION EXCEPTION - * ----------------------------- - * - * This code is for Nios II cores that generate exceptions when attempting - * to execute illegal instructions. Nios II cores that support an - * illegal-instruction exception are identified by the presence of the - * macro definition NIOS2_HAS_ILLEGAL_INSTRUCTION_EXCEPTION in system.h . - * - * Remember that illegal instructions are different than unimplemented - * instructions. Illegal instructions are instruction encodings that - * have not been defined by the Nios II ISA. Unimplemented instructions - * are legal instructions that must be emulated by some Nios II cores. - * - * If we get here, all instructions except multiplies and divides - * are illegal. - * - * This code assumes that OP is not muli (because muli was tested above). - * All other multiplies and divides are legal. Anything else is illegal. - */ - - movi r8, 0x3a /* OP for R-type mul* and div* */ - bne r5, r8, .Lnot_muldiv - - /* r15 already is 0x24 */ /* OPX of divu */ - beq r4, r15, .Ldivide - - movi r15,0x27 /* OPX of mul */ - beq r4, r15, .Lmultiply - - movi r15,0x07 /* OPX of mulxuu */ - beq r4, r15, .Lmultiply - - movi r15,0x17 /* OPX of mulxsu */ - beq r4, r15, .Lmultiply - - movi r15,0x1f /* OPX of mulxss */ - beq r4, r15, .Lmultiply - - movi r15,0x25 /* OPX of div */ - bne r4, r15, .Lnot_muldiv - - - /* DIVISION - * - * Divide an unsigned dividend by an unsigned divisor using - * a shift-and-subtract algorithm. The example below shows - * 43 div 7 = 6 for 8-bit integers. This classic algorithm uses a - * single register to store both the dividend and the quotient, - * allowing both values to be shifted with a single instruction. - * - * remainder dividend:quotient - * --------- ----------------- - * initialize 00000000 00101011: - * shift 00000000 0101011:_ - * remainder >= divisor? no 00000000 0101011:0 - * shift 00000000 101011:0_ - * remainder >= divisor? no 00000000 101011:00 - * shift 00000001 01011:00_ - * remainder >= divisor? no 00000001 01011:000 - * shift 00000010 1011:000_ - * remainder >= divisor? no 00000010 1011:0000 - * shift 00000101 011:0000_ - * remainder >= divisor? no 00000101 011:00000 - * shift 00001010 11:00000_ - * remainder >= divisor? yes 00001010 11:000001 - * remainder -= divisor - 00000111 - * ---------- - * 00000011 11:000001 - * shift 00000111 1:000001_ - * remainder >= divisor? yes 00000111 1:0000011 - * remainder -= divisor - 00000111 - * ---------- - * 00000000 1:0000011 - * shift 00000001 :0000011_ - * remainder >= divisor? no 00000001 :00000110 - * - * The quotient is 00000110. - */ - -.Ldivide: - /* - * Prepare for division by assuming the result - * is unsigned, and storing its "sign" as 0. - */ - movi r17, 0 - - - /* Which division opcode? */ - xori r15, r4, 0x25 /* OPX of div */ - bne r15, zero, .Lunsigned_division - - - /* - * OPX is div. Determine and store the sign of the quotient. - * Then take the absolute value of both operands. - */ - xor r17, r3, r6 /* MSB contains sign of quotient */ - bge r3, zero, 0f - sub r3, zero, r3 /* -r3 */ -0: - bge r6, zero, 0f - sub r6, zero, r6 /* -r6 */ -0: - - -.Lunsigned_division: - /* Initialize the unsigned-division loop. */ - movi r13, 0 /* remainder = 0 */ - - /* Now - * r3 = dividend : quotient - * r4 = 0x25 for div, 0x24 for divu - * r6 = divisor - * r13 = remainder - * r14 = loop counter (already initialized to 32) - * r17 = MSB contains sign of quotient - */ - - - /* - * for (count = 32; count > 0; --count) - * { - */ -.Ldivide_loop: - - /* - * Division: - * - * (remainder:dividend:quotient) <<= 1; - */ - slli r13, r13, 1 - cmplt r15, r3, zero /* r15 = MSB of r3 */ - or r13, r13, r15 - slli r3, r3, 1 - - - /* - * if (remainder >= divisor) - * { - * set LSB of quotient - * remainder -= divisor; - * } - */ - bltu r13, r6, .Ldiv_skip - ori r3, r3, 1 - sub r13, r13, r6 -.Ldiv_skip: - - /* - * } - */ - subi r14, r14, 1 - bne r14, zero, .Ldivide_loop - - mov r9, r3 - - - /* Now - * r9 = quotient - * r4 = 0x25 for div, 0x24 for divu - * r7 = 4*(C^16) - * r17 = MSB contains sign of quotient - */ - - - /* - * Conditionally negate signed quotient. If quotient is unsigned, - * the sign already is initialized to 0. - */ - bge r17, zero, .Lstore_result - sub r9, zero, r9 /* -r9 */ - - br .Lstore_result - - - - - /* MULTIPLICATION - * - * A "product" is the number that one gets by summing a "multiplicand" - * several times. The "multiplier" specifies the number of copies of the - * multiplicand that are summed. - * - * Actual multiplication algorithms don't use repeated addition, however. - * Shift-and-add algorithms get the same answer as repeated addition, and - * they are faster. To compute the lower half of a product (pppp below) - * one shifts the product left before adding in each of the partial products - * (a * mmmm) through (d * mmmm). - * - * To compute the upper half of a product (PPPP below), one adds in the - * partial products (d * mmmm) through (a * mmmm), each time following the - * add by a right shift of the product. - * - * mmmm - * * abcd - * ------ - * #### = d * mmmm - * #### = c * mmmm - * #### = b * mmmm - * #### = a * mmmm - * -------- - * PPPPpppp - * - * The example above shows 4 partial products. Computing actual Nios II - * products requires 32 partials. - * - * It is possible to compute the result of mulxsu from the result of mulxuu - * because the only difference between the results of these two opcodes is - * the value of the partial product associated with the sign bit of rA. - * - * mulxsu = mulxuu - ((rA < 0) ? rB : 0); - * - * It is possible to compute the result of mulxss from the result of mulxsu - * because the only difference between the results of these two opcodes is - * the value of the partial product associated with the sign bit of rB. - * - * mulxss = mulxsu - ((rB < 0) ? rA : 0); - * - */ - -.Lmul_immed: - /* Opcode is muli. Change it into mul for remainder of algorithm. */ - mov r7, r6 /* Field B is dest register, not field C. */ - mov r6, r4 /* Field IMM16 is src2, not field B. */ - movi r4, 0x27 /* OPX of mul is 0x27 */ - -.Lmultiply: - /* Initialize the multiplication loop. */ - movi r9, 0 /* mul_product = 0 */ - movi r10, 0 /* mulxuu_product = 0 */ - mov r11, r6 /* save original multiplier for mulxsu and mulxss */ - mov r12, r6 /* mulxuu_multiplier (will be shifted) */ - movi r16, 1 /* used to create "rori B,A,1" from "ror B,A,r16" */ - - /* Now - * r3 = multiplicand - * r6 = mul_multiplier - * r7 = 4 * dest_register (used later as offset to sp) - * r9 = mul_product - * r10 = mulxuu_product - * r11 = original multiplier - * r12 = mulxuu_multiplier - * r14 = loop counter (already initialized) - * r15 = temp - * r16 = 1 - */ - - - /* - * for (count = 32; count > 0; --count) - * { - */ -.Lmultiply_loop: - - /* - * mul_product <<= 1; - * lsb = multiplier & 1; - */ - slli r9, r9, 1 - andi r15, r12, 1 - - /* - * if (lsb == 1) - * { - * mulxuu_product += multiplicand; - * } - */ - beq r15, zero, .Lmulx_skip - add r10, r10, r3 - cmpltu r15, r10, r3 /* Save the carry from the MSB of mulxuu_product. */ - ror r15, r15, r16 /* r15 = 0x80000000 on carry, or else 0x00000000 */ -.Lmulx_skip: - - /* - * if (MSB of mul_multiplier == 1) - * { - * mul_product += multiplicand; - * } - */ - bge r6, zero, .Lmul_skip - add r9, r9, r3 -.Lmul_skip: - - /* - * mulxuu_product >>= 1; logical shift - * mul_multiplier <<= 1; done with MSB - * mulx_multiplier >>= 1; done with LSB - */ - srli r10, r10, 1 - or r10, r10, r15 /* OR in the saved carry bit. */ - slli r6, r6, 1 - srli r12, r12, 1 - - - /* - * } - */ - subi r14, r14, 1 - bne r14, zero, .Lmultiply_loop - - - /* - * Multiply emulation loop done. - */ - - /* Now - * r3 = multiplicand - * r4 = OPX - * r7 = 4 * dest_register (used later as offset to sp) - * r9 = mul_product - * r10 = mulxuu_product - * r11 = original multiplier - * r15 = temp - */ - - - /* - * Select/compute the result based on OPX. - */ - - - /* OPX == mul? Then store. */ - xori r15, r4, 0x27 - beq r15, zero, .Lstore_result - - /* It's one of the mulx.. opcodes. Move over the result. */ - mov r9, r10 - - /* OPX == mulxuu? Then store. */ - xori r15, r4, 0x07 - beq r15, zero, .Lstore_result - - /* Compute mulxsu - * - * mulxsu = mulxuu - ((rA < 0) ? rB : 0); - */ - bge r3, zero, .Lmulxsu_skip - sub r9, r9, r11 -.Lmulxsu_skip: - - /* OPX == mulxsu? Then store. */ - xori r15, r4, 0x17 - beq r15, zero, .Lstore_result - - /* Compute mulxss - * - * mulxss = mulxsu - ((rB < 0) ? rA : 0); - */ - bge r11, zero, .Lmulxss_skip - sub r9, r9, r3 -.Lmulxss_skip: - /* At this point, assume that OPX is mulxss, so store */ - - -.Lstore_result: - add r7, r7, sp - stw r9, 0(r7) - - ldw r16, 0(sp) - ldw r17, 4(sp) - ldw r18, 8(sp) - ldw r19, 12(sp) - ldw r20, 16(sp) - ldw r21, 20(sp) - ldw r22, 24(sp) - ldw r23, 28(sp) - - /* bt @ 32 - Breakpoint register usually isn't an operand. */ - /* et @ 36 - Don't corrupt et. */ - /* gp @ 40 - Don't corrupt gp. */ - /* sp @ 44 - Don't corrupt sp. */ - ldw fp, 48(sp) - /* ea @ 52 - Don't corrupt ea. */ - /* ba @ 56 - Breakpoint register usually isn't an operand. */ - - addi sp, sp, 60 - - br .Lexception_exit - - -.Lnot_muldiv: - - addi sp, sp, 60 - - - .section .exceptions.exit.label -.Lexception_exit: - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exception_trap.S b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exception_trap.S deleted file mode 100644 index bd9a9f5..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exception_trap.S +++ /dev/null @@ -1,81 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - - /* - * This is the trap exception handler for Nios2. - */ - - /* - * Provide a label which can be used to pull this file in. - */ - - .section .exceptions.start - .globl alt_exception_trap -alt_exception_trap: - - /* - * Pull in the entry/exit code. - */ - .globl alt_exception - - .section .exceptions.soft, "xa" - -.Ltrap_handler: - - /* - * Did a trap instruction cause the exception? - * - * The instruction which the exception occurred on has been loaded - * into r2 by code in alt_exception_entry.S - * - */ - - movhi r3,0x003b /* upper half of trap opcode */ - ori r3,r3,0x683a /* lower half of trap opcode */ - bne r2,r3,.Lnot_trap - - /* - * There is no trap handler defined here, and so executing a trap - * instruction causes a software break. If you provide a trap handler, - * then you must replace the break instruction below with your handler. - * Your handler must preserve ea and the usual callee saved registers. - */ - - break - - br .Lexception_exit - -.Lnot_trap: - - - .section .exceptions.exit.label -.Lexception_exit: - - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_execve.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_execve.c deleted file mode 100644 index 51bfcc4..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_execve.c +++ /dev/null @@ -1,55 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_errno.h" -#include "sys/alt_warning.h" -#include "os/alt_syscall.h" - -/* - * execve() is used by newlib to launch new processes. This is unsupported in - * the HAL environment. However a "do-nothing" implementation is still - * provied for newlib compatability. - * - * ALT_EXECVE is mapped onto the execve() system call in alt_syscall.h - */ - -int ALT_EXECVE (char *name, char ** argv, char** env) -{ - /* Generate a link time warning, should this function ever be called. */ - - ALT_STUB_WARNING(execve); - - /* Indicate an error */ - - ALT_ERRNO = ENOSYS; - return -1; -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exit.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exit.c deleted file mode 100644 index 46cbe18..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_exit.c +++ /dev/null @@ -1,71 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_irq.h" -#include "sys/alt_sim.h" -#include "os/alt_hooks.h" -#include "os/alt_syscall.h" - -#include "alt_types.h" -#include "sys/alt_log_printf.h" -/* - * _exit() is called by exit() in order to terminate the current process. - * Typically this is called when main() completes. It should never return. - * Since there is nowhere to go once this process completes, this - * implementation simply blocks forever. - * - * Note that interrupts are not disabled so that execution outside of this - * thread is allowed to continue. - * - * ALT_EXIT is mapped onto the _exit() system call in alt_syscall.h - */ - -void ALT_EXIT (int exit_code) -{ - /* ALT_LOG - please see HAL/inc/alt_log_printf.h for details */ - ALT_LOG_PRINT_BOOT("[alt_exit.c] Entering _exit() function.\r\n"); - ALT_LOG_PRINT_BOOT("[alt_exit.c] Exit code from main was %d.\r\n",exit_code); - /* Stop all other threads */ - - ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_OS_STOP().\r\n"); - ALT_OS_STOP(); - - /* Provide notification to the simulator that we've stopped */ - - ALT_LOG_PRINT_BOOT("[alt_exit.c] Calling ALT_SIM_HALT().\r\n"); - ALT_SIM_HALT(exit_code); - - /* spin forever, since there's no where to go back to */ - - ALT_LOG_PRINT_BOOT("[alt_exit.c] Spinning forever.\r\n"); - while (1); -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fcntl.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fcntl.c deleted file mode 100644 index 382fa43..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fcntl.c +++ /dev/null @@ -1,101 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include - -#include -#include - -#include "sys/alt_errno.h" -#include "priv/alt_file.h" -#include "alt_types.h" -#include "os/alt_syscall.h" - -#define ALT_FCNTL_FLAGS_MASK ((alt_u32) (O_APPEND | O_NONBLOCK)) - -/* - * fcntl() is a limited implementation of the standard fcntl() system call. - * It can be used to change the state of the flags associated with an open - * file descriptor. Normally these flags are set during the call to - * open(). It is anticipated that the main use of this function will be to - * change the state of a device from blocking to non-blocking (where this is - * supported). - * - * The input argument "fd" is the file descriptor to be manipulated. "cmd" - * is the command to execute. This can be either F_GETFL (return the - * current value of the flags) or F_SETFL (set the value of the flags). - * - * If "cmd" is F_SETFL then the argument "arg" is the new value of flags, - * otherwise "arg" is ignored. Only the flags: O_APPEND and O_NONBLOCK - * can be updated by a call to fcntl(). All other flags remain - * unchanged. - * - * ALT_FCNTL is mapped onto the fcntl() system call in alt_syscall.h - */ - -int ALT_FCNTL (int file, int cmd, ...) -{ - alt_fd* fd; - long flags; - va_list argp; - - /* - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (file < 0) ? NULL : &alt_fd_list[file]; - - if (fd) - { - switch (cmd) - { - case F_GETFL: - return fd->fd_flags & ~((alt_u32) ALT_FD_FLAGS_MASK); - case F_SETFL: - va_start(argp, cmd); - flags = va_arg(argp, long); - fd->fd_flags &= ~ALT_FCNTL_FLAGS_MASK; - fd->fd_flags |= (flags & ALT_FCNTL_FLAGS_MASK); - va_end(argp); - return 0; - default: - ALT_ERRNO = EINVAL; - return -1; - } - } - - ALT_ERRNO = EBADFD; - return -1; -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fd_lock.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fd_lock.c deleted file mode 100644 index 162295a..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fd_lock.c +++ /dev/null @@ -1,75 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#include "priv/alt_file.h" - -/* - * alt_fd_lock() is called as a consequence of an ioctl call to gain exclusive - * access to a device, i.e.: - * - * ioctl (fd, TIOCEXCL, NULL); - * - * If there are no other open file descriptors which reference the same - * device, then alt_fd_lock() will grant the lock. Further calls to open() - * for this device will fail until the lock is released. - * - * This is done by calling close() for this file descriptor, or by calling: - * - * ioctl (fd, TIOCNXCL, NULL); - * - * The return value is zero for success, or negative in the case of failure. - */ - -int alt_fd_lock (alt_fd* fd) -{ - int i; - int rc = 0; - - ALT_SEM_PEND(alt_fd_list_lock, 0); - - for (i = 0; i < alt_max_fd; i++) - { - if ((&alt_fd_list[i] != fd) && (alt_fd_list[i].dev == fd->dev)) - { - rc = -EACCES; - goto alt_fd_lock_exit; - } - } - fd->fd_flags |= ALT_FD_EXCL; - - alt_fd_lock_exit: - - ALT_SEM_POST(alt_fd_list_lock); - return rc; -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fd_unlock.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fd_unlock.c deleted file mode 100644 index 5f50386..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fd_unlock.c +++ /dev/null @@ -1,56 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#include "priv/alt_file.h" - -/* - * alt_fd_unlock() is the inverse of alt_fd_lock(). It is called as a - * consequence of a TIOCNXCL ioctl request, e.g: - * - * ioctl (fd, TIOCNXCL, NULL); - * - * It enables multiple file descriptors to exist for the same device. This - * is normally the case, but it may have been disabled by a previous call to - * alt_fd_lock(). - * - * Return zero on sucess, and a negative value on failure. - * - * The current implementation always succeeds. - */ - -int alt_fd_unlock (alt_fd* fd) -{ - fd->fd_flags &= ~ALT_FD_EXCL; - return 0; -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_find_dev.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_find_dev.c deleted file mode 100644 index 964f63f..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_find_dev.c +++ /dev/null @@ -1,88 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include -#include - -#include "sys/alt_dev.h" -#include "priv/alt_file.h" - -#include "alt_types.h" - -/* - * alt_find_dev() is used by open() in order to locate a previously registered - * device with the name "name". The input argument "llist" is a pointer to the - * head of the device list to search. - * - * The return value is a pointer to the matching device, or NULL if there is - * no match. - * - * "name" must be an exact match for the devices registered name for a match to - * be found. - */ - -alt_dev* alt_find_dev(const char* name, alt_llist* llist) -{ - alt_dev* next = (alt_dev*) llist->next; - alt_32 len; - - len = strlen(name) + 1; - - /* - * Check each list entry in turn, until a match is found, or we reach the - * end of the list (i.e. next winds up pointing back to the list head). - */ - - while (next != (alt_dev*) llist) - { - - /* - * memcmp() is used here rather than strcmp() in order to reduce the size - * of the executable. - */ - - if (!memcmp (next->name, name, len)) - { - /* match found */ - - return next; - } - next = (alt_dev*) next->llist.next; - } - - /* No match found */ - - return NULL; -} - - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_find_file.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_find_file.c deleted file mode 100644 index ae30e93..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_find_file.c +++ /dev/null @@ -1,89 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include -#include - -#include "sys/alt_dev.h" -#include "priv/alt_file.h" - -#include "alt_types.h" - -/* - * alt_find_file() is used by open() in order to locate a previously registered - * filesystem that owns that mount point that contains the file named "name". - * - * The return value is a pointer to the matching filesystem, or NULL if there is - * no match. - * - * A match is considered to have been found if the filesystem name followed by - * either '/' or '\0' is the prefix of the filename. For example the filename: - * "/myfilesystem/junk.txt" would match: "/myfilesystem", but not: "/myfile". - */ - -alt_dev* alt_find_file (const char* name) -{ - alt_dev* next = (alt_dev*) alt_fs_list.next; - - alt_32 len; - - /* - * Check each list entry in turn, until a match is found, or we reach the - * end of the list (i.e. next winds up pointing back to the list head). - */ - - while (next != (alt_dev*) &alt_fs_list) - { - len = strlen(next->name); - - if (next->name[len-1] == '/') - { - len -= 1; - } - - if (((name[len] == '/') || (name[len] == '\0')) && - !memcmp (next->name, name, len)) - { - /* match found */ - - return next; - } - next = (alt_dev*) next->llist.next; - } - - /* No match found */ - - return NULL; -} - - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_flash_dev.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_flash_dev.c deleted file mode 100644 index 0acffc7..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_flash_dev.c +++ /dev/null @@ -1,69 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/****************************************************************************** -* * -* Alt_flash.c - Functions to register a flash device to the "generic" flash * -* interface * -* * -* Author PRR * -* * -******************************************************************************/ - -#include -#include "sys/alt_llist.h" -#include "sys/alt_flash_dev.h" -#include "priv/alt_file.h" - -ALT_LLIST_HEAD(alt_flash_dev_list); - -alt_flash_fd* alt_flash_open_dev(const char* name) -{ - alt_flash_dev* dev = (alt_flash_dev*)alt_find_dev(name, &alt_flash_dev_list); - - if ((dev) && dev->open) - { - return dev->open(dev, name); - } - - return dev; -} - -void alt_flash_close_dev(alt_flash_fd* fd) -{ - if (fd && fd->close) - { - fd->close(fd); - } - return; -} - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fork.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fork.c deleted file mode 100644 index b6edbb5..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fork.c +++ /dev/null @@ -1,57 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_warning.h" -#include "sys/alt_errno.h" -#include "os/alt_syscall.h" - -/* - * The fork() system call is used by newlib to create a duplicate copy of the - * curent process. This is unsupported in the HAL environment. However a - * "do-nothing" implementation is still provied for newlib compatability. - * - * ALT_FORK is mapped onto the fork() system call in alt_syscall.h - */ - -int ALT_FORK (void) -{ - /* Generate a link time warning, should this function ever be called. */ - - ALT_STUB_WARNING(fork); - - /* Indicate an error */ - - ALT_ERRNO = ENOSYS; - return -1; -} - - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fs_reg.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fs_reg.c deleted file mode 100644 index e88a340..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fs_reg.c +++ /dev/null @@ -1,75 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#include "sys/alt_dev.h" -#include "priv/alt_file.h" - -/* - * The alt_fs_reg() function is used to register a file system. Once registered - * a device can be accessed using the standard posix calls: open(), read(), - * write() etc. - * - * System behaviour is undefined in the event that a file system is registered - * with a name that conflicts with an existing device or file system. - * - * alt_fs_reg() is not thread safe in the sense that there should be no other - * thread using the file system list at the time that alt_dev_reg() is called. In - * practice this means that alt_fs_reg() should only be called while operating - * in a single threaded mode. The expectation is that it will only be called - * by the file system initilisation functions invoked by alt_sys_init(), which in - * turn should only be called by the single threaded C startup code. - * - * A return value of zero indicates success. A negative return value indicates - * failure. - */ - -int alt_fs_reg (alt_dev* dev) -{ - /* - * check that the device has a name. - */ - - if (!dev->name) - { - return -ENODEV; - } - - /* - * register the file system. - */ - - alt_llist_insert(&alt_fs_list, &dev->llist); - - return 0; -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fstat.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fstat.c deleted file mode 100644 index 3248764..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_fstat.c +++ /dev/null @@ -1,128 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include - -#include "sys/alt_dev.h" -#include "sys/alt_warning.h" -#include "sys/alt_errno.h" -#include "priv/alt_file.h" -#include "os/alt_syscall.h" - -/* - * The fstat() system call is used to obtain information about the capabilities - * of an open file descriptor. By default file descriptors are marked as - * being character devices. If a device or file system wishes to advertise - * alternative capabilities then they can register an fstat() function within - * their associated alt_dev structure. This will be called to fill in the - * entries in the imput "st" structure. - * - * This function is provided for compatability with newlib. - * - * ALT_FSTAT is mapped onto the fstat() system call in alt_syscall.h - */ - -#ifdef ALT_USE_DIRECT_DRIVERS - -#include "system.h" - -/* - * Provide minimal version that just describes all file descriptors - * as character devices for provided stdio devices. - */ -int ALT_FSTAT (int file, struct stat *st) -{ - switch (file) { -#ifdef ALT_STDIN_PRESENT - case 0: /* stdin file descriptor */ -#endif /* ALT_STDIN_PRESENT */ -#ifdef ALT_STDOUT_PRESENT - case 1: /* stdout file descriptor */ -#endif /* ALT_STDOUT_PRESENT */ -#ifdef ALT_STDERR_PRESENT - case 2: /* stderr file descriptor */ -#endif /* ALT_STDERR_PRESENT */ - st->st_mode = _IFCHR; - return 0; - default: - return -1; - } - -#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) - /* Generate a link time warning, should this function ever be called. */ - ALT_STUB_WARNING(fstat); -#endif -} - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -int ALT_FSTAT (int file, struct stat *st) -{ - alt_fd* fd; - - /* - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (file < 0) ? NULL : &alt_fd_list[file]; - - if (fd) - { - /* Call the drivers fstat() function to fill out the "st" structure. */ - - if (fd->dev->fstat) - { - return fd->dev->fstat(fd, st); - } - - /* - * If no function is provided, mark the fd as belonging to a character - * device. - */ - - else - { - st->st_mode = _IFCHR; - return 0; - } - } - else - { - ALT_ERRNO = EBADFD; - return -1; - } -} - -#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_get_fd.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_get_fd.c deleted file mode 100644 index f42944b..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_get_fd.c +++ /dev/null @@ -1,105 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include -#include - -#include "sys/alt_dev.h" -#include "priv/alt_file.h" - -#include "alt_types.h" - -#include "system.h" - -/* - * alt_get_fd() is called to allocate a new file descriptor from the file - * descriptor pool. If a file descriptor is succesfully allocated, it is - * configured to refer to device "dev". - * - * The return value is the index of the file descriptor structure (i.e. - * the offset of the file descriptor within the file descriptor array). A - * negative value indicates failure. - */ - -int alt_get_fd (alt_dev* dev) -{ - alt_32 i; - int rc = -EMFILE; - - /* - * Take the alt_fd_list_lock semaphore in order to avoid races when - * accessing the file descriptor pool. - */ - - ALT_SEM_PEND(alt_fd_list_lock, 0); - - /* - * Search through the list of file descriptors, and allocate the first - * free descriptor that's found. - * - * If a free descriptor is found, then the value of "alt_max_fd" is - * updated accordingly. "alt_max_fd" is a 'highwater mark' which - * indicates the highest file descriptor ever allocated. This is used to - * improve efficency when searching the file descriptor list, and - * therefore reduce contention on the alt_fd_list_lock semaphore. - */ - - for (i = 0; i < ALT_MAX_FD; i++) - { - if (!alt_fd_list[i].dev) - { - alt_fd_list[i].dev = dev; - if (i > alt_max_fd) - { - alt_max_fd = i; - } - rc = i; - goto alt_get_fd_exit; - } - } - - alt_get_fd_exit: - - /* - * Release the alt_fd_list_lock semaphore now that we are done with the - * file descriptor pool. - */ - - ALT_SEM_POST(alt_fd_list_lock); - - return rc; -} - - - - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_getchar.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_getchar.c deleted file mode 100644 index 3e7df79..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_getchar.c +++ /dev/null @@ -1,61 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#ifdef ALT_USE_DIRECT_DRIVERS -#include "system.h" -#include "sys/alt_driver.h" -#include "sys/alt_stdio.h" -#include "priv/alt_file.h" -#include "unistd.h" -#endif - -/* - * Uses the ALT_DRIVER_READ() macro to call directly to driver if available. - * Otherwise, uses newlib provided getchar() routine. - */ -int -alt_getchar(void) -{ -#ifdef ALT_USE_DIRECT_DRIVERS - ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); - char c; - - if (ALT_DRIVER_READ(ALT_STDIN_DEV, &c, 1, alt_fd_list[STDIN_FILENO].fd_flags) <= 0) { - return -1; - } - return c; -#else - return getchar(); -#endif -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_getpid.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_getpid.c deleted file mode 100644 index b63ec33..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_getpid.c +++ /dev/null @@ -1,47 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "os/alt_syscall.h" - -/* - * The getpid() system call is used by newlib to obtain the current process - * id. Since there is only ever a single process in the HAL environment, - * this just returns a constant. - * - * ALT_GETPID is mapped onto the getpid() system call in alt_syscall.h - */ - -int ALT_GETPID (void) -{ - return 0; -} - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_gettod.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_gettod.c deleted file mode 100644 index 46b12c2..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_gettod.c +++ /dev/null @@ -1,125 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include -#include - -#include "sys/alt_alarm.h" -#include "alt_types.h" -#include "os/alt_syscall.h" - -/* - * Macro defining the number of micoseconds in a second. - */ - -#define ALT_US (1000000) - -/* - * "alt_timezone" and "alt_resettime" are the values of the the reset time and - * time zone set through the last call to settimeofday(). By default they are - * zero initialised. - */ - -struct timezone alt_timezone = {0, 0}; -struct timeval alt_resettime = {0, 0}; - -/* - * gettimeofday() can be called to obtain a time structure which indicates the - * current "wall clock" time. This is calculated using the elapsed number of - * system clock ticks, and the value of "alt_resettime" and "alt_timezone" set - * through the last call to settimeofday(). - * - * Warning: if this function is called concurrently with a call to - * settimeofday(), the value returned by gettimeofday() will be unreliable. - * - * ALT_GETTIMEOFDAY is mapped onto the gettimeofday() system call in - * alt_syscall.h - */ - - -#if defined (__GNUC__) && (__GNUC__ >= 4) -int ALT_GETTIMEOFDAY (struct timeval *ptimeval, void *ptimezone_vptr) -{ - struct timezone *ptimezone = (struct timezone*)ptimezone_vptr; -#else -int ALT_GETTIMEOFDAY (struct timeval *ptimeval, struct timezone *ptimezone) -{ -#endif - - alt_u32 nticks = alt_nticks (); - alt_u32 tick_rate = alt_ticks_per_second (); - - /* - * Check to see if the system clock is running. This is indicated by a - * non-zero system clock rate. If the system clock is not running, an error - * is generated and the contents of "ptimeval" and "ptimezone" are not - * updated. - */ - - if (tick_rate) - { - ptimeval->tv_sec = alt_resettime.tv_sec + nticks/tick_rate; - ptimeval->tv_usec = alt_resettime.tv_usec + - (alt_u32)(((alt_u64)nticks*(ALT_US/tick_rate))%ALT_US); - - while(ptimeval->tv_usec < 0) { - if (ptimeval->tv_sec <= 0) - { - ptimeval->tv_sec = 0; - ptimeval->tv_usec = 0; - break; - } - else - { - ptimeval->tv_sec--; - ptimeval->tv_usec += ALT_US; - } - } - - while(ptimeval->tv_usec >= ALT_US) { - ptimeval->tv_sec++; - ptimeval->tv_usec -= ALT_US; - } - - if (ptimezone) - { - ptimezone->tz_minuteswest = alt_timezone.tz_minuteswest; - ptimezone->tz_dsttime = alt_timezone.tz_dsttime; - } - - return 0; - } - - return -ENOTSUP; -} - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_gmon.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_gmon.c deleted file mode 100644 index fce7587..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_gmon.c +++ /dev/null @@ -1,272 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include -#include -#include - -#include "priv/nios2_gmon_data.h" - -#include "sys/alt_irq.h" -#include "sys/alt_alarm.h" - - -/* Macros */ - -/* How large should the bins be which we use to generate the histogram */ -#define PCSAMPLE_BYTES_PER_BUCKET 32 - -#define NIOS2_READ_EA(dest) __asm__ ("mov %0, ea" : "=r" (dest)) - -/* The compiler inserts calls to mcount() at the start of - * every function call. The structure mcount_fn_arc records t - * he return address of the function called (in from_pc) - * and the return address of the mcount function - * (in self_pc). The number of times this arc is executed is - * recorded in the field count. - */ -struct mcount_fn_arc -{ - struct mcount_fn_arc * next; - void * from_pc; - unsigned int count; -}; - -/* We need to maintain a list of pointers to the heads of each adjacency - * list so that we can find them when writing out the gmon.out file. Since - * we don't know at the start of program execution how many functions will - * be called we use a list structure to do this. - */ -struct mcount_fn_entry -{ - struct mcount_fn_entry * next; - void * self_pc; - struct mcount_fn_arc * arc_head; -}; - -/* function prototypes */ - -void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) __attribute__ ((no_instrument_function)); - -static __inline__ void * mcount_allocate(unsigned int size) __attribute__ ((no_instrument_function)); -static int nios2_pcsample_init(void) __attribute__ ((no_instrument_function)); -static alt_u32 nios2_pcsample(void* alarm) __attribute__ ((no_instrument_function)); - -/* global variables */ - -/* stext and etext are defined in the linker script */ -extern char stext[]; -extern char etext[]; - -/* Is the PC sampling stuff enabled yet? */ -static int pcsample_need_init = 1; - -#define HASH_BUCKETS 64 /* Must be a power of 2 */ - -/* This points to the list of adjacency list pointers. */ -struct mcount_fn_entry * __mcount_fn_head[HASH_BUCKETS]; - -/* pointer to the in-memory buffer containing the histogram */ -static unsigned short* s_pcsamples = 0; - -/* the address of the start and end of text section */ -static const unsigned int s_low_pc = (unsigned int)stext; -static const unsigned int s_high_pc = (unsigned int)etext; - -/* the alarm structure to register for pc sampling */ -static alt_alarm s_nios2_pcsample_alarm; - -unsigned int alt_gmon_data[GMON_DATA_SIZE] = -{ - 0x6e6f6d67, /* "gmon" */ - GMON_DATA_SIZE, - 0, - (unsigned int)stext, - (unsigned int)etext, - PCSAMPLE_BYTES_PER_BUCKET, - 0, - (unsigned int)__mcount_fn_head, - (unsigned int)(__mcount_fn_head + HASH_BUCKETS) -}; - -/* This holds the current slab of memory we're allocating out of */ -static char * mcount_slab_ptr = 0; -static int mcount_slab_size = 0; - -#define MCOUNT_SLAB_INCREMENT 1020 - - -/* - * We can't use malloc to allocate memory because that's too complicated, and - * can't be called at interrupt time. Use the lower level allocator instead - * because that's interrupt safe (and because we never free anything). - * - * For speed, we allocate a block of data at once. - */ -static __inline__ void * mcount_allocate(unsigned int size) -{ - void * data; - - if (size > mcount_slab_size) - { - mcount_slab_ptr = sbrk(MCOUNT_SLAB_INCREMENT); - mcount_slab_size = MCOUNT_SLAB_INCREMENT; - } - - data = mcount_slab_ptr; - mcount_slab_ptr += size; - mcount_slab_size -= size; - - return data; -} - - -/* - * Add the arc with the values of frompc and topc given to the graph. - * This function might be called at interrupt time so must be able to - * cope with reentrancy. - * - * The fast case, where we have already allocated a function arc, has been - * handled by the assmebler code. - */ -void __mcount_record(void * self_pc, void * from_pc, struct mcount_fn_entry * fn_entry, struct mcount_fn_entry * * fn_head) -{ - alt_irq_context context; - struct mcount_fn_arc * arc_entry; - - /* Keep trying to start up the PC sampler until it is running. - * (It can't start until the timer is going). - */ - if (pcsample_need_init) - { - pcsample_need_init = 0; - pcsample_need_init = nios2_pcsample_init(); - } - - /* - * We must disable interrupts around the allocation and the list update to - * prevent corruption if the instrumented function is re-entrant. - * - * It's safe for the code above to be stepping through the chain and be - * interrupted by this code modifying it - there is an edge case which will - * leave two copies of the same arc on the list (both with count=1), but - * this is dealt with on the host. - */ - context = alt_irq_disable_all(); - - if (fn_entry == NULL) - { - /* Add it to the list of functions we must output later. */ - fn_entry = (struct mcount_fn_entry *)mcount_allocate(sizeof(struct mcount_fn_entry)); - - fn_entry->self_pc = self_pc; - fn_entry->arc_head = NULL; - - fn_entry->next = *fn_head; - *fn_head = fn_entry; - } - - /* We will need a new list entry - if there was a list entry before - * then the assembler code would have handled it. */ - arc_entry = (struct mcount_fn_arc *)mcount_allocate(sizeof(struct mcount_fn_arc)); - - arc_entry->from_pc = from_pc; - arc_entry->count = 1; - - arc_entry->next = fn_entry->arc_head; - fn_entry->arc_head = arc_entry; - - alt_irq_enable_all(context); -} - - -/* - * nios2_pcsample_init starts profiling. - * It is called the first time mcount is called, and on subsequent calls to - * mcount until it returns zero. It initializes the pc histogram and turns on - * timer driven pc sampling. - */ -static int nios2_pcsample_init(void) -{ - unsigned int pcsamples_size; - - /* We sample the PC every tick */ - unsigned int prof_rate = alt_ticks_per_second(); - if (prof_rate == 0) - return 1; - - /* allocate the histogram buffer s_pcsamples */ - pcsamples_size = (s_high_pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; - s_pcsamples = (unsigned short*)sbrk(pcsamples_size * sizeof(unsigned short)); - - if (s_pcsamples != 0) - { - /* initialize the buffer to zero */ - memset(s_pcsamples, 0, pcsamples_size * sizeof(unsigned short)); - - alt_gmon_data[GMON_DATA_PROFILE_DATA] = (int)s_pcsamples; - alt_gmon_data[GMON_DATA_PROFILE_RATE] = prof_rate; - - /* Sample every tick (it's cheap) */ - alt_alarm_start(&s_nios2_pcsample_alarm, 1, nios2_pcsample, 0); - } - - return 0; -} - - -/* - * Sample the PC value and store it in the histogram - */ -static alt_u32 nios2_pcsample(void* context) -{ - unsigned int pc; - unsigned int bucket; - - /* read the exception return address - this will be - * inaccurate if there are nested interrupts but we - * assume that this is rare and the inaccuracy will - * not be great */ - NIOS2_READ_EA(pc); - - /* - * If we're within the profilable range then increment the relevant - * bucket in the histogram - */ - if (pc >= s_low_pc && pc < s_high_pc && s_pcsamples != 0) - { - bucket = (pc - s_low_pc)/PCSAMPLE_BYTES_PER_BUCKET; - s_pcsamples[bucket]++; - } - - /* Sample every tick */ - return 1; -} - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_icache_flush.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_icache_flush.c deleted file mode 100644 index 1662991..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_icache_flush.c +++ /dev/null @@ -1,84 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "nios2.h" -#include "system.h" - -#include "alt_types.h" -#include "sys/alt_cache.h" - -/* - * alt_icache_flush() is called to flush the instruction cache for a memory - * region of length "len" bytes, starting at address "start". - */ - -void alt_icache_flush (void* start, alt_u32 len) -{ -#if NIOS2_ICACHE_SIZE > 0 - - char* i; - char* end; - - /* - * This is the most we would ever need to flush. - */ - - if (len > NIOS2_ICACHE_SIZE) - { - len = NIOS2_ICACHE_SIZE; - } - - end = ((char*) start) + len; - - for (i = start; i < end; i+= NIOS2_ICACHE_LINE_SIZE) - { - __asm__ volatile ("flushi %0" :: "r" (i)); - } - - /* - * For an unaligned flush request, we've got one more line left. - * Note that this is dependent on NIOS2_ICACHE_LINE_SIZE to be a - * multiple of 2 (which it always is). - */ - - if (((alt_u32) start) & (NIOS2_ICACHE_LINE_SIZE - 1)) - { - __asm__ volatile ("flushi %0" :: "r" (i)); - } - - /* - * Having flushed the cache, flush any stale instructions in the - * pipeline - */ - - __asm__ volatile ("flushp"); - -#endif /* NIOS2_ICACHE_SIZE > 0 */ -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_icache_flush_all.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_icache_flush_all.c deleted file mode 100644 index dc40ea8..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_icache_flush_all.c +++ /dev/null @@ -1,46 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "nios2.h" -#include "system.h" - -#include "alt_types.h" -#include "sys/alt_cache.h" - -/* - * alt_icache_flush_all() is called to flush the entire instruction cache. - */ - -void alt_icache_flush_all (void) -{ -#if NIOS2_ICACHE_SIZE > 0 - alt_icache_flush (0, NIOS2_ICACHE_SIZE); -#endif -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_iic.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_iic.c deleted file mode 100644 index 4821f25..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_iic.c +++ /dev/null @@ -1,106 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ -#include "system.h" - -/* - * This file implements the HAL Enhanced interrupt API for Nios II processors - * with an internal interrupt controller (IIC). For most routines, this serves - * as a wrapper layer over the legacy interrupt API (which must be used with - * the IIC only). - * - * Use of the enhanced API is recommended so that application and device - * drivers are compatible with a Nios II system configured with an external - * interrupt controller (EIC), or IIC. This will afford maximum portability. - * - * If an EIC is present, the EIC device driver must provide these routines, - * because their operation will be specific to that EIC type. - */ -#ifndef NIOS2_EIC_PRESENT -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT - -#include "sys/alt_irq.h" -#include "priv/alt_iic_isr_register.h" -#include "priv/alt_legacy_irq.h" - -/** @Function Description: This function registers an interrupt handler. - * If the function is succesful, then the requested interrupt will be enabled upon - * return. Registering a NULL handler will disable the interrupt. - * @API Type: External - * @param ic_id Ignored. - * @param irq IRQ number - * @return 0 if successful, else error (-1) - */ -int alt_ic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, - void *isr_context, void *flags) -{ - return alt_iic_isr_register(ic_id, irq, isr, isr_context, flags); -} - -/** @Function Description: This function enables a single interrupt. - * @API Type: External - * @param ic_id Ignored. - * @param irq IRQ number - * @return 0 if successful, else error (-1) - */ -int alt_ic_irq_enable (alt_u32 ic_id, alt_u32 irq) -{ - return alt_irq_enable(irq); -} - -/** @Function Description: This function disables a single interrupt. - * @API Type: External - * @param ic_id Ignored. - * @param irq IRQ number - * @return 0 if successful, else error (-1) - */ -int alt_ic_irq_disable(alt_u32 ic_id, alt_u32 irq) -{ - return alt_irq_disable(irq); -} - -/** @Function Description: This function to determine if corresponding - * interrupt is enabled. - * @API Type: External - * @param ic_id Ignored. - * @param irq IRQ number - * @return Zero if corresponding interrupt is disabled and - * non-zero otherwise. - */ -alt_u32 alt_ic_irq_enabled(alt_u32 ic_id, alt_u32 irq) -{ - alt_u32 irq_enabled; - - NIOS2_READ_IENABLE(irq_enabled); - - return (irq_enabled & (1 << irq)) ? 1: 0; -} - -#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ -#endif /* NIOS2_EIC_PRESENT */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_iic_isr_register.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_iic_isr_register.c deleted file mode 100644 index 2e6bf5b..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_iic_isr_register.c +++ /dev/null @@ -1,104 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ -#include -#include "system.h" - -/* - * Provides an interrupt registry mechanism for the any CPUs internal interrupt - * controller (IIC) when the enhanced interrupt API is active. - */ -#ifndef ALT_CPU_EIC_PRESENT -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT - -#include "alt_types.h" -#include "sys/alt_irq.h" -#include "priv/alt_iic_isr_register.h" - -/* - * The header, alt_irq_entry.h, contains the exception entry point, and is - * provided by the processor component. It is included here, so that the code - * will be added to the executable only if alt_irq_register() is present, i.e. - * if no interrupts are registered - there's no need to provide any - * interrupt handling. - */ - -#include "sys/alt_irq_entry.h" - -/* - * The header, alt_irq_table.h contains a table describing which function - * handles each interrupt. - */ - -#include "priv/alt_irq_table.h" - -/** @Function Description: This function registers an interrupt handler. - * If the function is succesful, then the requested interrupt will be enabled - * upon return. Registering a NULL handler will disable the interrupt. - * - * @API Type: External - * @param ic_id Interrupt controller ID - * @param irq IRQ ID number - * @param isr Pointer to interrupt service routine - * @param isr_context Opaque pointer passed to ISR - * @param flags - * @return 0 if successful, else error (-1) - */ -int alt_iic_isr_register(alt_u32 ic_id, alt_u32 irq, alt_isr_func isr, - void *isr_context, void *flags) -{ - int rc = -EINVAL; - int id = irq; /* IRQ interpreted as the interrupt ID. */ - alt_irq_context status; - - if (id < ALT_NIRQ) - { - /* - * interrupts are disabled while the handler tables are updated to ensure - * that an interrupt doesn't occur while the tables are in an inconsistant - * state. - */ - - status = alt_irq_disable_all(); - - alt_irq[id].handler = isr; - alt_irq[id].context = isr_context; - - rc = (isr) ? alt_ic_irq_enable(ic_id, id) : alt_ic_irq_disable(ic_id, id); - - alt_irq_enable_all(status); - } - - return rc; -} - -#endif /* ALT_ENHANCED_INTERRUPT_API_PRESENT */ -#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_instruction_exception_entry.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_instruction_exception_entry.c deleted file mode 100644 index 5cc8767..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_instruction_exception_entry.c +++ /dev/null @@ -1,203 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ -#include "sys/alt_exceptions.h" -#include "nios2.h" -#include "alt_types.h" -#include "system.h" - -/* - * This file implements support for calling user-registered handlers for - * instruction-generated exceptions. This handler could also be reached - * in the event of a spurious interrupt. - * - * The handler code is optionally enabled through the "Enable - * Instruction-related Exception API" HAL BSP setting, which will - * define the macro below. - */ -#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API - -/* Function pointer to exception callback routine */ -alt_exception_result (*alt_instruction_exception_handler) - (alt_exception_cause, alt_u32, alt_u32) = 0x0; - -/* Link entry routine to .exceptions section */ -int alt_instruction_exception_entry (alt_u32 exception_pc) - __attribute__ ((section (".exceptions"))); - -/* - * This is the entry point for instruction-generated exceptions handling. - * This routine will be called by alt_exceptions_entry.S, after it determines - * that an exception could not be handled by handlers that preceed that - * of instruction-generated exceptions (such as interrupts). - * - * For this to function properly, you must register an exception handler - * using alt_instruction_exception_register(). This routine will call - * that handler if it has been registered. Absent a handler, it will - * break break or hang as discussed below. - */ -int alt_instruction_exception_entry (alt_u32 exception_pc) -{ - alt_u32 cause, badaddr; - -/* - * If the processor hardware has the optional EXCEPTIONS & BADADDR registers, - * read them and pass their content to the user handler. These are always - * present if the MMU or MPU is enabled, and optionally for other advanced - * exception types via the "Extra exceptions information" setting in the - * processor (hardware) configuration. - * - * If these registers are not present, the cause field will be set to - * NIOS2_EXCEPTION_CAUSE_NOT_PRESENT. Your handling routine should - * check the validity of the cause argument before proceeding. - */ -#ifdef NIOS2_HAS_EXTRA_EXCEPTION_INFO - /* Get exception cause & "badaddr" */ - NIOS2_READ_EXCEPTION(cause); - cause = ( (cause & NIOS2_EXCEPTION_REG_CAUSE_MASK) >> - NIOS2_EXCEPTION_REG_CAUSE_OFST ); - - NIOS2_READ_BADADDR(badaddr); -#else - cause = NIOS2_EXCEPTION_CAUSE_NOT_PRESENT; - badaddr = 0; -#endif /* NIOS2_HAS_EXTRA_EXCEPTION_INFO */ - - if(alt_instruction_exception_handler) { - /* - * Call handler. Its return value indicates whether the exception-causing - * instruction should be re-issued. The code that called us, - * alt_eceptions_entry.S, will look at this value and adjust the ea - * register as necessary - */ - return alt_instruction_exception_handler(cause, exception_pc, badaddr); - } - /* - * We got here because an instruction-generated exception occured, but no - * handler is present. We do not presume to know how to handle it. If the - * debugger is present, break, otherwise hang. - * - * If you've reached here in the debugger, consider examining the - * EXCEPTIONS register cause bit-field, which was read into the 'cause' - * variable above, and compare it against the exceptions-type enumeration - * in alt_exceptions.h. This register is availabe if the MMU or MPU is - * present, or if the "Extra exceptions information" hardware option is - * selected. - * - * If you get here then one of the following could have happened: - * - * - An instruction-generated exception occured, and the processor - * does not have the extra exceptions feature enabled, or you - * have not registered a handler using - * alt_instruction_exception_register() - * - * Some examples of instruction-generated exceptions and why they - * might occur: - * - * - Your program could have been compiled for a full-featured - * Nios II core, but it is running on a smaller core, and - * instruction emulation has been disabled by defining - * ALT_NO_INSTRUCTION_EMULATION. - * - * You can work around the problem by re-enabling instruction - * emulation, or you can figure out why your program is being - * compiled for a system other than the one that it is running on. - * - * - Your program has executed a trap instruction, but has not - * implemented a handler for this instruction. - * - * - Your program has executed an illegal instruction (one which is - * not defined in the instruction set). - * - * - Your processor includes an MMU or MPU, and you have enabled it - * before registering an exception handler to service exceptions it - * generates. - * - * The problem could also be hardware related: - * - If your hardware is broken and is generating spurious interrupts - * (a peripheral which negates its interrupt output before its - * interrupt handler has been executed will cause spurious interrupts) - */ - else { -#ifdef NIOS2_HAS_DEBUG_STUB - NIOS2_BREAK(); -#else - while(1) - ; -#endif /* NIOS2_HAS_DEBUG_STUB */ - } - - /* // We should not get here. Remove compiler warning. */ - return NIOS2_EXCEPTION_RETURN_REISSUE_INST; -} - -#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ - -/* - * This routine indicates whether a particular exception cause will have - * set a valid address into the BADADDR register, which is included - * in the arguments to a user-registered instruction-generated exception - * handler. Many exception types do not set valid contents in BADADDR; - * this is a convenience routine to easily test the validity of that - * argument in your handler. - * - * Note that this routine will return false (0) for cause '12', - * TLB miss. This is because there are four exception types that - * share that cause, two of which do not have a valid BADADDR. You - * must determine BADADDR's validity for these. - * - * Arguments: - * cause: The 5-bit exception cause field of the EXCEPTIONS register, - * shifted to the LSB position. You may pass the 'cause' argument - * in a handler you registered directy to this routine. - * - * Return: 1: BADADDR (bad_addr argument to handler) is valid - * 0: BADADDR is not valid - */ -int alt_exception_cause_generated_bad_addr(alt_exception_cause cause) -{ - switch (cause) { - case NIOS2_EXCEPTION_SUPERVISOR_ONLY_DATA_ADDR: - return 1; - case NIOS2_EXCEPTION_MISALIGNED_DATA_ADDR: - return 1; - case NIOS2_EXCEPTION_MISALIGNED_TARGET_PC: - return 1; - case NIOS2_EXCEPTION_TLB_READ_PERM_VIOLATION: - return 1; - case NIOS2_EXCEPTION_TLB_WRITE_PERM_VIOLATION: - return 1; - case NIOS2_EXCEPTION_MPU_DATA_REGION_VIOLATION: - return 1; - default: - return 0; - } -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_instruction_exception_register.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_instruction_exception_register.c deleted file mode 100644 index 395c644..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_instruction_exception_register.c +++ /dev/null @@ -1,82 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2008 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ -#include "sys/alt_exceptions.h" -#include "alt_types.h" -#include "system.h" - -/* - * This file implements support for calling user-registered handlers for - * instruction-generated exceptions. - * - * The registry API is optionally enabled through the "Enable - * Instruction-related Exception API" HAL BSP setting, which will - * define the macro below. - */ -#ifdef ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API - -/* - * The header, alt_exception_handler_registry.h contains a struct describing - * the registered exception handler - */ -#include "priv/alt_exception_handler_registry.h" - -/* - * Pull in the exception entry assembly code. This will not be linked in - * unless this object is linked into the executable (i.e. only if - * alt_instruction_exception_register() is called). - */ -__asm__( "\n\t.globl alt_exception" ); - -/* - * alt_instruction_exception_register() is called to register a handler to - * service instruction-generated exceptions that are not handled by the - * default exception handler code (interrupts, and optionally unimplemented - * instructions and traps). - * - * Passing null (0x0) in the handler argument will disable a previously- - * registered handler. - * - * Note that if no handler is registered, exceptions that are not processed - * using the built-in handler (interrupts, and optionally unimplemented - * instructions and traps) are treated as unknown exceptions, resulting - * in either a break or an infinite loop. - */ -void alt_instruction_exception_register ( - alt_exception_result (*exception_handler)( - alt_exception_cause cause, - alt_u32 exception_pc, - alt_u32 bad_addr) ) -{ - alt_instruction_exception_handler = exception_handler; -} - -#endif /* ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_io_redirect.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_io_redirect.c deleted file mode 100644 index 049ed62..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_io_redirect.c +++ /dev/null @@ -1,98 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include -#include -#include - -#include "sys/alt_dev.h" -#include "priv/alt_file.h" - - -/* - * alt_open_fd() is similar to open() in that it is used to obtain a file - * descriptor for the file named "name". The "flags" and "mode" arguments are - * identical to the "flags" and "mode" arguments of open(). - * - * The distinction between the two functions is that the file descriptor - * structure to use is passed in as an argument, rather than allocated from the - * list of free file descriptors. - * - * This is used by alt_io_redirect() to redirect the stdin, stdout and stderr - * file descriptors to point to new devices. - * - * If the device can not be succesfully opened, then the input file descriptor - * remains unchanged. - */ - -static void alt_open_fd(alt_fd* fd, const char* name, int flags, int mode) -{ - int old; - - old = open (name, flags, mode); - - if (old >= 0) - { - fd->dev = alt_fd_list[old].dev; - fd->priv = alt_fd_list[old].priv; - fd->fd_flags = alt_fd_list[old].fd_flags; - - alt_release_fd (old); - } -} - -/* - * alt_io_redirect() is called once the device/filesystem lists have been - * initialised, but before main(). Its function is to redirect standard in, - * standard out and standard error so that they point to the devices selected by - * the user (as defined in system.h). - * - * Prior to the call to this function, io is directed towards /dev/null. If - * i/o can not be redirected to the requested device, for example if the device - * does not exist, then it remains directed at /dev/null. - */ - -void alt_io_redirect(const char* stdout_dev, - const char* stdin_dev, - const char* stderr_dev) -{ - /* Redirect the channels */ - - alt_open_fd (&alt_fd_list[STDOUT_FILENO], stdout_dev, O_WRONLY, 0777); - alt_open_fd (&alt_fd_list[STDIN_FILENO], stdin_dev, O_RDONLY, 0777); - alt_open_fd (&alt_fd_list[STDERR_FILENO], stderr_dev, O_WRONLY, 0777); -} - - - - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_ioctl.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_ioctl.c deleted file mode 100644 index 510b40d..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_ioctl.c +++ /dev/null @@ -1,170 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#include "sys/ioctl.h" -#include "sys/alt_errno.h" -#include "sys/alt_warning.h" -#include "priv/alt_file.h" -#include "os/alt_syscall.h" - -/* - * The ioctl() system call is provided so that application code can manipulate - * the i/o capabilities of a device in device specific ways. This is identical - * to the standard posix ioctl() function. - * - * In general this implementation simply vectors ioctl requests to the - * apropriate drivers ioctl function (as registered in the drivers alt_dev - * structure). - * - * However in the case of devices (as oposed to filesystem), the TIOCEXCL and - * TIOCNXCL requests are handled without reference to the driver. These - * requests are used to lock/release a device for exclusive access. - * - * Handling these requests centrally eases the task of device driver - * development. - * - * ALT_IOCTL is mapped onto the ioctl() system call in alt_syscall.h - */ - -#ifdef ALT_USE_DIRECT_DRIVERS - -#include "system.h" -#include "sys/alt_driver.h" - -/* - * Provide minimal version that calls ioctl routine of provided stdio devices. - */ -int ALT_IOCTL (int file, int req, void* arg) -{ -#ifdef ALT_STDIN_PRESENT - ALT_DRIVER_IOCTL_EXTERNS(ALT_STDIN_DEV); -#endif -#ifdef ALT_STDOUT_PRESENT - ALT_DRIVER_IOCTL_EXTERNS(ALT_STDOUT_DEV); -#endif -#ifdef ALT_STDERR_PRESENT - ALT_DRIVER_IOCTL_EXTERNS(ALT_STDERR_DEV); -#endif - -#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) - /* Generate a link time warning, should this function ever be called. */ - ALT_STUB_WARNING(ioctl); -#endif - - switch (file) { -#ifdef ALT_STDIN_PRESENT - case 0: /* stdin file descriptor */ - return ALT_DRIVER_IOCTL(ALT_STDIN_DEV, req, arg); -#endif /* ALT_STDIN_PRESENT */ -#ifdef ALT_STDOUT_PRESENT - case 1: /* stdout file descriptor */ - return ALT_DRIVER_IOCTL(ALT_STDOUT_DEV, req, arg); -#endif /* ALT_STDOUT_PRESENT */ -#ifdef ALT_STDERR_PRESENT - case 2: /* stderr file descriptor */ - return ALT_DRIVER_IOCTL(ALT_STDERR_DEV, req, arg); -#endif /* ALT_STDERR_PRESENT */ - default: - ALT_ERRNO = EBADFD; - return -1; - } -} - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -int ALT_IOCTL (int file, int req, void* arg) -{ - alt_fd* fd; - int rc; - - /* - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (file < 0) ? NULL : &alt_fd_list[file]; - - if (fd) - { - - /* - * In the case of device drivers (not file systems) handle the TIOCEXCL - * and TIOCNXCL requests as special cases. - */ - - if (fd->fd_flags & ALT_FD_DEV) - { - if (req == TIOCEXCL) - { - rc = alt_fd_lock (fd); - goto ioctl_done; - } - else if (req == TIOCNXCL) - { - rc = alt_fd_unlock (fd); - goto ioctl_done; - } - } - - /* - * If the driver provides an ioctl() function, call that to handle the - * request, otherwise set the return code to indicate that the request - * could not be processed. - */ - - if (fd->dev->ioctl) - { - rc = fd->dev->ioctl(fd, req, arg); - } - else - { - rc = -ENOTTY; - } - } - else - { - rc = -EBADFD; - } - -ioctl_done: - - if (rc < 0) - { - ALT_ERRNO = -rc; - } - return rc; -} - -#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_entry.S b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_entry.S deleted file mode 100644 index 8ee89e1..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_entry.S +++ /dev/null @@ -1,108 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003-2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "system.h" - -/* - * This is the interrupt exception entry point code, which saves all the - * registers and calls the interrupt handler. It should be pulled in using - * a .globl from alt_irq_register.c. This scheme is used so that if an - * interrupt is never registered, then this code will not appear in the - * generated executable, thereby improving code footprint. - */ - - /* - * Explicitly allow the use of r1 (the assembler temporary register) - * within this code. This register is normally reserved for the use of - * the compiler. - */ - .set noat - - /* - * Pull in the exception handler register save code. - */ - .globl alt_exception - - .globl alt_irq_entry - .section .exceptions.entry.label, "xa" -alt_irq_entry: - - /* - * Section .exceptions.entry is in alt_exception_entry.S - * This saves all the caller saved registers and reads estatus into r5 - */ - - .section .exceptions.irqtest, "xa" - -#ifdef ALT_CI_INTERRUPT_VECTOR_N - /* - * Use the interrupt vector custom instruction if present to accelerate - * this code. - * If the interrupt vector custom instruction returns a negative - * value, there are no interrupts active (estatus.pie is 0 - * or ipending is 0) so assume it is a software exception. - */ - custom ALT_CI_INTERRUPT_VECTOR_N, r4, r0, r0 - blt r4, r0, .Lnot_irq -#else - /* - * Test to see if the exception was a software exception or caused - * by an external interrupt, and vector accordingly. - */ - rdctl r4, ipending - andi r2, r5, 1 - beq r2, zero, .Lnot_irq - beq r4, zero, .Lnot_irq -#endif /* ALT_CI_INTERRUPT_VECTOR_N */ - - .section .exceptions.irqhandler, "xa" - /* - * Now that all necessary registers have been preserved, call - * alt_irq_handler() to process the interrupts. - */ - - call alt_irq_handler - - .section .exceptions.irqreturn, "xa" - - br .Lexception_exit - - .section .exceptions.notirq.label, "xa" - -.Lnot_irq: - - /* - * Section .exceptions.exit is in alt_exception_entry.S - * This restores all the caller saved registers - */ - - .section .exceptions.exit.label -.Lexception_exit: - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_handler.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_handler.c deleted file mode 100644 index bb52fc8..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_handler.c +++ /dev/null @@ -1,169 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include "system.h" - -/* - * This interrupt handler only works with an internal interrupt controller - * (IIC). Processors with an external interrupt controller (EIC) use an - * implementation provided by an EIC driver. - */ -#ifndef ALT_CPU_EIC_PRESENT - -#include "sys/alt_irq.h" -#include "os/alt_hooks.h" - -#include "alt_types.h" - -/* - * A table describing each interrupt handler. The index into the array is the - * interrupt id associated with the handler. - * - * When an interrupt occurs, the associated handler is called with - * the argument stored in the context member. - */ -struct ALT_IRQ_HANDLER -{ -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT - void (*handler)(void*); -#else - void (*handler)(void*, alt_u32); -#endif - void *context; -} alt_irq[ALT_NIRQ]; - -/* - * alt_irq_handler() is called by the interrupt exception handler in order to - * process any outstanding interrupts. - * - * It is defined here since it is linked in using weak linkage. - * This means that if there is never a call to alt_irq_register() (above) then - * this function will not get linked in to the executable. This is acceptable - * since if no handler is ever registered, then an interrupt can never occur. - * - * If Nios II interrupt vector custom instruction exists, use it to accelerate - * the dispatch of interrupt handlers. The Nios II interrupt vector custom - * instruction is present if the macro ALT_CI_INTERRUPT_VECTOR defined. - */ - -void alt_irq_handler (void) __attribute__ ((section (".exceptions"))); -void alt_irq_handler (void) -{ -#ifdef ALT_CI_INTERRUPT_VECTOR - alt_32 offset; - char* alt_irq_base = (char*)alt_irq; -#else - alt_u32 active; - alt_u32 mask; - alt_u32 i; -#endif /* ALT_CI_INTERRUPT_VECTOR */ - - /* - * Notify the operating system that we are at interrupt level. - */ - - ALT_OS_INT_ENTER(); - -#ifdef ALT_CI_INTERRUPT_VECTOR - /* - * Call the interrupt vector custom instruction using the - * ALT_CI_INTERRUPT_VECTOR macro. - * It returns the offset into the vector table of the lowest-valued pending - * interrupt (corresponds to highest priority) or a negative value if none. - * The custom instruction assumes that each table entry is eight bytes. - */ - while ((offset = ALT_CI_INTERRUPT_VECTOR) >= 0) { - struct ALT_IRQ_HANDLER* handler_entry = - (struct ALT_IRQ_HANDLER*)(alt_irq_base + offset); -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT - handler_entry->handler(handler_entry->context); -#else - handler_entry->handler(handler_entry->context, offset >> 3); -#endif - } -#else /* ALT_CI_INTERRUPT_VECTOR */ - /* - * Obtain from the interrupt controller a bit list of pending interrupts, - * and then process the highest priority interrupt. This process loops, - * loading the active interrupt list on each pass until alt_irq_pending() - * return zero. - * - * The maximum interrupt latency for the highest priority interrupt is - * reduced by finding out which interrupts are pending as late as possible. - * Consider the case where the high priority interupt is asserted during - * the interrupt entry sequence for a lower priority interrupt to see why - * this is the case. - */ - - active = alt_irq_pending (); - - do - { - i = 0; - mask = 1; - - /* - * Test each bit in turn looking for an active interrupt. Once one is - * found, the interrupt handler asigned by a call to alt_irq_register() is - * called to clear the interrupt condition. - */ - - do - { - if (active & mask) - { -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT - alt_irq[i].handler(alt_irq[i].context); -#else - alt_irq[i].handler(alt_irq[i].context, i); -#endif - break; - } - mask <<= 1; - i++; - - } while (1); - - active = alt_irq_pending (); - - } while (active); -#endif /* ALT_CI_INTERRUPT_VECTOR */ - - /* - * Notify the operating system that interrupt processing is complete. - */ - - ALT_OS_INT_EXIT(); -} - -#endif /* ALT_CPU_EIC_PRESENT */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_register.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_register.c deleted file mode 100644 index cf7261e..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_register.c +++ /dev/null @@ -1,102 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2009 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ -#include -#include "system.h" - -/* - * This interrupt registry mechanism works with the Nios II internal interrupt - * controller (IIC) only. Systems with an external interrupt controller (EIC), - * or those with the IIC who are using the enhanced interrupt API will - * utilize the alt_ic_isr_register() routine to register an interrupt. - */ -#ifndef NIOS2_EIC_PRESENT - -#include "sys/alt_irq.h" -#include "priv/alt_legacy_irq.h" -#include "os/alt_hooks.h" - -#include "alt_types.h" - -/* - * The header, alt_irq_entry.h, contains the exception entry point, and is - * provided by the processor component. It is included here, so that the code - * will be added to the executable only if alt_irq_register() is present, i.e. - * if no interrupts are registered - there's no need to provide any - * interrupt handling. - */ - -#include "sys/alt_irq_entry.h" - -/* - * The header, alt_irq_table.h contains a table describing which function - * handles each interrupt. - */ - -#include "priv/alt_irq_table.h" - -/* - * alt_irq_handler() is called to register an interrupt handler. If the - * function is succesful, then the requested interrupt will be enabled upon - * return. Registering a NULL handler will disable the interrupt. - * - * The return value is 0 if the interrupt handler was registered and the - * interrupt was enabled, otherwise it is negative. - */ - -int alt_irq_register (alt_u32 id, - void* context, - alt_isr_func handler) -{ - int rc = -EINVAL; - alt_irq_context status; - - if (id < ALT_NIRQ) - { - /* - * interrupts are disabled while the handler tables are updated to ensure - * that an interrupt doesn't occur while the tables are in an inconsistant - * state. - */ - - status = alt_irq_disable_all (); - - alt_irq[id].handler = handler; - alt_irq[id].context = context; - - rc = (handler) ? alt_irq_enable (id): alt_irq_disable (id); - - alt_irq_enable_all(status); - } - return rc; -} -#endif /* NIOS2_EIC_PRESENT */ - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_vars.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_vars.c deleted file mode 100644 index 4f4d140..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_irq_vars.c +++ /dev/null @@ -1,47 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "alt_types.h" - -#include "system.h" - -/* - * These global variables are used to save the current list of enabled - * interrupts. See alt_irq.h for further details. - */ - -volatile alt_u32 alt_irq_active = 0; - -#ifndef ALT_EXCEPTION_STACK - -volatile alt_u32 alt_priority_mask = (alt_u32) -1; - -#endif - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_isatty.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_isatty.c deleted file mode 100644 index 73677dd..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_isatty.c +++ /dev/null @@ -1,125 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include - -#include "sys/alt_dev.h" -#include "sys/alt_errno.h" -#include "sys/alt_warning.h" -#include "priv/alt_file.h" -#include "os/alt_syscall.h" - -#ifdef ALT_USE_DIRECT_DRIVERS - -#include "system.h" - -/* - * Provide minimal version that just describes all file descriptors - * as tty devices for provided stdio devices. - */ -int ALT_ISATTY (int file) -{ - switch (file) { -#ifdef ALT_STDIN_PRESENT - case 0: /* stdin file descriptor */ -#endif /* ALT_STDIN_PRESENT */ -#ifdef ALT_STDOUT_PRESENT - case 1: /* stdout file descriptor */ -#endif /* ALT_STDOUT_PRESENT */ -#ifdef ALT_STDERR_PRESENT - case 2: /* stderr file descriptor */ -#endif /* ALT_STDERR_PRESENT */ - return 1; - default: - return 0; - } - -#if !defined(ALT_STDIN_PRESENT) && !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) - /* Generate a link time warning, should this function ever be called. */ - ALT_STUB_WARNING(isatty); -#endif -} - -#else /* !ALT_USE_DIRECT_DRIVERS */ -/* - * isatty() can be used to determine whether the input file descriptor "file" - * refers to a terminal device or not. If it is a terminal device then the - * return value is one, otherwise it is zero. - * - * ALT_ISATTY is mapped onto the isatty() system call in alt_syscall.h - */ - -int ALT_ISATTY (int file) -{ - alt_fd* fd; - struct stat stat; - - /* - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (file < 0) ? NULL : &alt_fd_list[file]; - - if (fd) - { - /* - * If a device driver does not provide an fstat() function, then it is - * treated as a terminal device by default. - */ - - if (!fd->dev->fstat) - { - return 1; - } - - /* - * If a driver does provide an implementation of the fstat() function, then - * this is called so that the device can identify itself. - */ - - else - { - fstat (file, &stat); - return (stat.st_mode == _IFCHR) ? 1 : 0; - } - } - else - { - ALT_ERRNO = EBADFD; - return 0; - } -} - -#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_kill.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_kill.c deleted file mode 100644 index 58097d1..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_kill.c +++ /dev/null @@ -1,121 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include - -#include "sys/alt_errno.h" -#include "os/alt_syscall.h" - - -/* - * kill() is used by newlib in order to send signals to processes. Since there - * is only a single process in the HAL, the only valid values for pid are - * either the current process id, or the broadcast values, i.e. pid must be - * less than or equal to zero. - * - * ALT_KILL is mapped onto the kill() system call in alt_syscall.h - */ - -int ALT_KILL (int pid, int sig) -{ - int status = 0; - - if (pid <= 0) - { - switch (sig) - { - case 0: - - /* The null signal is used to check that a pid is valid. */ - - break; - - case SIGABRT: - case SIGALRM: - case SIGFPE: - case SIGILL: - case SIGKILL: - case SIGPIPE: - case SIGQUIT: - case SIGSEGV: - case SIGTERM: - case SIGUSR1: - case SIGUSR2: - case SIGBUS: - case SIGPOLL: - case SIGPROF: - case SIGSYS: - case SIGTRAP: - case SIGVTALRM: - case SIGXCPU: - case SIGXFSZ: - - /* - * The Posix standard defines the default behaviour for all these signals - * as being eqivalent to a call to _exit(). No mechanism is provided to - * change this behaviour. - */ - - _exit(0); - case SIGCHLD: - case SIGURG: - - /* - * The Posix standard defines these signals to be ignored by default. No - * mechanism is provided to change this behaviour. - */ - - break; - default: - - /* Tried to send an unsupported signal */ - - status = EINVAL; - } - } - - else if (pid > 0) - { - /* Attempted to signal a non-existant process */ - - status = ESRCH; - } - - if (status) - { - ALT_ERRNO = status; - return -1; - } - - return 0; -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_link.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_link.c deleted file mode 100644 index a57a5c4..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_link.c +++ /dev/null @@ -1,56 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_warning.h" -#include "sys/alt_errno.h" -#include "os/alt_syscall.h" - -/* - * link() is used by newlib to create a new link to an existing file. This is - * unsupported in the HAL environment. However a "do-nothing" implementation - * is still provied for newlib compatability. - * - * ALT_LINK is mapped onto the link() system call in alt_syscall.h - */ - -int ALT_LINK ( char *existing, char *new) -{ - /* Generate a link time warning, should this function ever be called. */ - - ALT_STUB_WARNING(link); - - /* Indicate an error */ - - ALT_ERRNO = ENOSYS; - return -1; -} - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_load.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_load.c deleted file mode 100644 index 27d492b..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_load.c +++ /dev/null @@ -1,88 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_load.h" -#include "sys/alt_cache.h" - -/* - * Linker defined symbols. - */ - -extern void __flash_rwdata_start; -extern void __ram_rwdata_start; -extern void __ram_rwdata_end; -extern void __flash_rodata_start; -extern void __ram_rodata_start; -extern void __ram_rodata_end; -extern void __flash_exceptions_start; -extern void __ram_exceptions_start; -extern void __ram_exceptions_end; - -/* - * alt_load() is called when the code is executing from flash. In this case - * there is no bootloader, so this application is responsible for loading to - * RAM any sections that are required. - */ - -void alt_load (void) -{ - /* - * Copy the .rwdata section. - */ - - alt_load_section (&__flash_rwdata_start, - &__ram_rwdata_start, - &__ram_rwdata_end); - - /* - * Copy the exception handler. - */ - - alt_load_section (&__flash_exceptions_start, - &__ram_exceptions_start, - &__ram_exceptions_end); - - /* - * Copy the .rodata section. - */ - - alt_load_section (&__flash_rodata_start, - &__ram_rodata_start, - &__ram_rodata_end); - - /* - * Now ensure that the caches are in synch. - */ - - alt_dcache_flush_all(); - alt_icache_flush_all(); -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_log_macro.S b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_log_macro.S deleted file mode 100644 index 2e3cc26..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_log_macro.S +++ /dev/null @@ -1,56 +0,0 @@ -/* alt_log_macro.S - * - * Implements the function tx_log_str, called by the assembly macro - * ALT_LOG_PUTS(). The macro will be empty when logging is turned off, - * and this function will not be compiled. When logging is on, - * this function is used to print out the strings defined in the beginning - * of alt_log_printf.c, using port information taken from system.h and - * alt_log_printf.h. - * - * This routine only handles strings, and sends a character into the defined - * output device's output buffer when the device is ready. It's intended for - * debugging purposes, where messages can be set to print out at certain - * points in the boot code to indicate the progress of the program. - * - */ - -#ifndef __ALT_LOG_MACROS__ -#define __ALT_LOG_MACROS__ - -/* define this flag to skip assembly-incompatible parts - * of various include files. */ -#define ALT_ASM_SRC - -#ifdef ALT_LOG_ENABLE // only compile this function if this flag is defined. - - #include "system.h" - #include "sys/alt_log_printf.h" - - .global tx_log_str -tx_log_str: - /* load base uart / jtag uart address into r6 */ - movhi r6, %hiadj(ALT_LOG_PORT_BASE) - addi r6, r6, %lo(ALT_LOG_PORT_BASE) -tx_next_char: - /* if pointer points to null, return - * r4 is the pointer to the str to be printed, set by ALT_LOG_PUTS */ - ldb r7, (r4) - beq r0, r7, end_tx - - /* check device transmit ready */ -wait_tx_ready_loop: - ldwio r5, ALT_LOG_PRINT_REG_OFFSET(r6) - andi r5, r5, ALT_LOG_PRINT_MSK - beq r5, r0, wait_tx_ready_loop - /* write char */ - stwio r7, ALT_LOG_PRINT_TXDATA_REG_OFFSET (r6) - /* advance string pointer */ - addi r4, r4, 1 - br tx_next_char -end_tx: - ret - -#endif - -#endif /* __ALT_LOG_MACROS__ */ - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_log_printf.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_log_printf.c deleted file mode 100644 index af0116f..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_log_printf.c +++ /dev/null @@ -1,479 +0,0 @@ - -/* alt_log_printf.c - * - * This file implements the various C functions used for the - * alt_log logging/debugging print functions. The functions - * sit as is here - the job of hiding them from the compiler - * if logging is disabled is accomplished in the .h file. - * - * All the global variables for alt_log are defined here. - * These include the various flags that turn on additional - * logging options; the strings for assembly printing; and - * other globals needed by different logging options. - * - * There are 4 functions that handle the actual printing: - * alt_log_txchar: Actual function that puts 1 char to UART/JTAG UART. - * alt_log_repchar: Calls alt_log_txchar 'n' times - used by - * alt_log_private_printf for formatting. - * alt_log_private_printf: - * Stripped down implementation of printf - no floats. - * alt_log_printf_proc: - * Wrapper function for private_printf. - * - * The rest of the functions are called by the macros which - * were called by code in the other components. Each function - * is preceded by a comment, about which file it gets called - * in, and what its purpose is. - * - * author: gkwan - */ - -/* skip all code if enable is off */ -#ifdef ALT_LOG_ENABLE - -#include -#include -#include -#ifdef __ALTERA_AVALON_JTAG_UART - #include "altera_avalon_jtag_uart.h" - #include -#endif -#include "sys/alt_log_printf.h" - -/* strings for assembly puts */ -char alt_log_msg_bss[] = "[crt0.S] Clearing BSS \r\n";; -char alt_log_msg_alt_main[] = "[crt0.S] Calling alt_main.\r\n"; -char alt_log_msg_stackpointer[] \ - = "[crt0.S] Setting up stack and global pointers.\r\n"; -char alt_log_msg_cache[] = "[crt0.S] Inst & Data Cache Initialized.\r\n"; -/* char array allocation for alt_write */ -char alt_log_write_buf[ALT_LOG_WRITE_ECHO_LEN+2]; - -/* global variables for all 'on' flags */ - -/* - * The boot message flag is linked into the data (rwdata) section - * because if it is zero, it would otherwise be placed in the bss section. - * alt_log examines this variable before the BSS is cleared in the boot-up - * process. - */ -volatile alt_u32 alt_log_boot_on_flag \ - __attribute__ ((section (".data"))) = ALT_LOG_BOOT_ON_FLAG_SETTING; - -volatile alt_u8 alt_log_write_on_flag = ALT_LOG_WRITE_ON_FLAG_SETTING; - -volatile alt_u8 alt_log_sys_clk_on_flag = ALT_LOG_SYS_CLK_ON_FLAG_SETTING; - -volatile alt_u8 alt_log_jtag_uart_alarm_on_flag = \ - ALT_LOG_JTAG_UART_ALARM_ON_FLAG_SETTING; - -volatile alt_u8 alt_log_jtag_uart_isr_on_flag = \ - ALT_LOG_JTAG_UART_ISR_ON_FLAG_SETTING; - -volatile alt_u8 alt_log_jtag_uart_startup_info_on_flag = \ - ALT_LOG_JTAG_UART_STARTUP_INFO_ON_FLAG_SETTING; - -/* Global alarm object for recurrent JTAG UART status printing */ -alt_alarm alt_log_jtag_uart_alarm_1; - -/* Global ints for system clock printing and count */ -volatile int alt_log_sys_clk_count; -volatile int alt_system_clock_in_sec; - -/* enum used by alt_log_private_printf */ -enum -{ - pfState_chars, - pfState_firstFmtChar, - pfState_otherFmtChar -}; - - - - -/* Function to put one char onto the UART/JTAG UART txdata register. */ -void alt_log_txchar(int c,char *base) -{ - /* Wait until the device is ready for a character */ - while((ALT_LOG_PRINT_REG_RD(base) & ALT_LOG_PRINT_MSK) == 0) - ; - /* And pop the character into the register */ - ALT_LOG_PRINT_TXDATA_WR(base,c); -} - - -/* Called by alt_log_private_printf to print out characters repeatedly */ -void alt_log_repchar(char c,int r,int base) -{ - while(r-- > 0) - alt_log_txchar(c,(char*) base); -} - - -/* Stripped down printf function */ -void alt_log_private_printf(const char *fmt,int base,va_list args) - { - const char *w; - char c; - int state; - int fmtLeadingZero = 0; /* init these all to 0 for -W warnings. */ - int fmtLong = 0; - int fmtBeforeDecimal = 0; - int fmtAfterDecimal = 0; - int fmtBase = 0; - int fmtSigned = 0; - int fmtCase = 0; /* For hex format, if 1, A-F, else a-f. */ - - w = fmt; - state = pfState_chars; - - while(0 != (c = *w++)) - { - switch(state) - { - case pfState_chars: - if(c == '%') - { - fmtLeadingZero = 0; - fmtLong = 0; - fmtBase = 10; - fmtSigned = 1; - fmtCase = 0; /* Only %X sets this. */ - fmtBeforeDecimal = -1; - fmtAfterDecimal = -1; - state = pfState_firstFmtChar; - } - else - { - alt_log_txchar(c,(char*)base); - } - break; - - case pfState_firstFmtChar: - if(c == '0') - { - fmtLeadingZero = 1; - state = pfState_otherFmtChar; - } - else if(c == '%') - { - alt_log_txchar(c,(char*)base); - state = pfState_chars; - } - else - { - state = pfState_otherFmtChar; - goto otherFmtChar; - } - break; - - case pfState_otherFmtChar: -otherFmtChar: - if(c == '.') - { - fmtAfterDecimal = 0; - } - else if('0' <= c && c <= '9') - { - c -= '0'; - if(fmtAfterDecimal < 0) /* still before decimal */ - { - if(fmtBeforeDecimal < 0) - { - fmtBeforeDecimal = 0; - } - else - { - fmtBeforeDecimal *= 10; - } - fmtBeforeDecimal += c; - } - else - { - fmtAfterDecimal = (fmtAfterDecimal * 10) + c; - } - } - else if(c == 'l') - { - fmtLong = 1; - } - else /* we're up to the letter which determines type */ - { - switch(c) - { - case 'd': - case 'i': -doIntegerPrint: - { - unsigned long v; - unsigned long p; /* biggest power of fmtBase */ - unsigned long vShrink; /* used to count digits */ - int sign; - int digitCount; - - /* Get the value */ - if(fmtLong) - { - if (fmtSigned) - { - v = va_arg(args,long); - } - else - { - v = va_arg(args,unsigned long); - } - } - else - { - if (fmtSigned) - { - v = va_arg(args,int); - } - else - { - v = va_arg(args,unsigned int); - } - } - - /* Strip sign */ - sign = 0; - /* (assumes sign bit is #31) */ - if( fmtSigned && (v & (0x80000000)) ) - { - v = ~v + 1; - sign = 1; - } - - /* Count digits, and get largest place value */ - vShrink = v; - p = 1; - digitCount = 1; - while( (vShrink = vShrink / fmtBase) > 0 ) - { - digitCount++; - p *= fmtBase; - } - - /* Print leading characters & sign */ - fmtBeforeDecimal -= digitCount; - if(fmtLeadingZero) - { - if(sign) - { - alt_log_txchar('-',(char*)base); - fmtBeforeDecimal--; - } - alt_log_repchar('0',fmtBeforeDecimal,base); - } - else - { - if(sign) - { - fmtBeforeDecimal--; - } - alt_log_repchar(' ',fmtBeforeDecimal,base); - if(sign) - { - alt_log_txchar('-',(char*)base); - } - } - - /* Print numbery parts */ - while(p) - { - unsigned char d; - - d = v / p; - d += '0'; - if(d > '9') - { - d += (fmtCase ? 'A' : 'a') - '0' - 10; - } - alt_log_txchar(d,(char*)base); - - v = v % p; - p = p / fmtBase; - } - } - - state = pfState_chars; - break; - - case 'u': - fmtSigned = 0; - goto doIntegerPrint; - case 'o': - fmtSigned = 0; - fmtBase = 8; - goto doIntegerPrint; - case 'x': - fmtSigned = 0; - fmtBase = 16; - goto doIntegerPrint; - case 'X': - fmtSigned = 0; - fmtBase = 16; - fmtCase = 1; - goto doIntegerPrint; - - case 'c': - alt_log_repchar(' ',fmtBeforeDecimal-1,base); - alt_log_txchar(va_arg(args,int),(char*)base); - break; - - case 's': - { - char *s; - - s = va_arg(args,char *); - alt_log_repchar(' ',fmtBeforeDecimal-strlen(s),base); - - while(*s) - alt_log_txchar(*s++,(char*)base); - } - break; - } /* switch last letter of fmt */ - state=pfState_chars; - } - break; - } /* switch */ - } /* while chars left */ - } /* printf */ - -/* Main logging printf function */ -int alt_log_printf_proc(const char *fmt, ... ) -{ - va_list args; - - va_start (args, fmt); - alt_log_private_printf(fmt,ALT_LOG_PORT_BASE,args); - return (0); -} - -/* Below are the functions called by different macros in various components. */ - -/* If the system has a JTAG_UART, include JTAG_UART debugging functions */ -#ifdef __ALTERA_AVALON_JTAG_UART - -/* The alarm function in altera_avalon_jtag_uart.c. - * This function, when turned on, prints out the status - * of the JTAG UART Control register, every ALT_LOG_JTAG_UART_TICKS. - * If the flag is off, the alarm should never be registered, and this - * function should never run */ -alt_u32 altera_avalon_jtag_uart_report_log(void * context) -{ - if (alt_log_jtag_uart_alarm_on_flag) { - altera_avalon_jtag_uart_state* dev = (altera_avalon_jtag_uart_state*) context; - const char* header="JTAG Alarm:"; - alt_log_jtag_uart_print_control_reg(dev, dev->base, header); - return ALT_LOG_JTAG_UART_TICKS; - } - else - { - /* If flag is not on, return 0 to disable future alarms. - * Should never be here, alarm should not be enabled at all. */ - return 0; - } -} - -void alt_log_jtag_uart_print_control_reg(altera_avalon_jtag_uart_state* dev, int base, const char* header) -{ - unsigned int control, space, ac, wi, ri, we, re; - control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); - space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> - ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; - we= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK) >> - ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST; - re= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK) >> - ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST; - ri= (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) >> - ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST; - wi= (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) >> - ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST; - ac= (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) >> - ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST; - -#ifdef ALTERA_AVALON_JTAG_UART_SMALL - ALT_LOG_PRINTF( - "%s HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", - header,space,ac,wi,ri,we,re); -#else - ALT_LOG_PRINTF( - "%s SW CirBuf = %d, HW FIFO wspace=%d AC=%d WI=%d RI=%d WE=%d RE=%d\r\n", - header,(dev->tx_out-dev->tx_in),space,ac,wi,ri,we,re); -#endif - - return; - -} - -/* In altera_avalon_jtag_uart.c - * Same output as the alarm function above, but this is called in the driver - * init function. Hence, it gives the status of the JTAG UART control register - * right at the initialization of the driver */ -void alt_log_jtag_uart_startup_info(altera_avalon_jtag_uart_state* dev, int base) -{ - const char* header="JTAG Startup Info:"; - alt_log_jtag_uart_print_control_reg(dev, base, header); - return; -} - -/* In altera_avalon_jtag_uart.c - * When turned on, this function will print out the status of the jtag uart - * control register every time there is a jtag uart "almost-empty" interrupt. */ -void alt_log_jtag_uart_isr_proc(int base, altera_avalon_jtag_uart_state* dev) -{ - if (alt_log_jtag_uart_isr_on_flag) { - const char* header="JTAG IRQ:"; - alt_log_jtag_uart_print_control_reg(dev, base, header); - } - return; -} - -#endif /* __ALTERA_AVALON_JTAG_UART */ - -/* In alt_write.c - * When the alt_log_write_on_flag is turned on, this function gets called - * every time alt_write gets called. The first - * ALT_LOG_WRITE_ECHO_LEN characters of every printf command (or any command - * that eventually calls write()) gets echoed to the alt_log output. */ -void alt_log_write(const void *ptr, size_t len) -{ - if (alt_log_write_on_flag) { - int temp_cnt; - int length=(ALT_LOG_WRITE_ECHO_LEN>len) ? len : ALT_LOG_WRITE_ECHO_LEN; - - if (length < 2) return; - - strncpy (alt_log_write_buf,ptr,length); - alt_log_write_buf[length-1]='\n'; - alt_log_write_buf[length]='\r'; - alt_log_write_buf[length+1]='\0'; - - /* Escape Ctrl-D's. If the Ctrl-D gets sent it might kill the terminal - * connection of alt_log. It will get replaced by 'D'. */ - for (temp_cnt=0;temp_cnt < length; temp_cnt++) { - if (alt_log_write_buf[temp_cnt]== 0x4) { - alt_log_write_buf[temp_cnt]='D'; - } - } - ALT_LOG_PRINTF("Write Echo: %s",alt_log_write_buf); - } -} - -/* In altera_avalon_timer_sc - * This function prints out a system clock is alive message - * every ALT_LOG_SYS_CLK_INTERVAL (in ticks). */ -void alt_log_system_clock() -{ - if (alt_log_sys_clk_on_flag) { - alt_log_sys_clk_count++; - if (alt_log_sys_clk_count > ALT_LOG_SYS_CLK_INTERVAL) { - alt_log_sys_clk_count = 0; - ALT_LOG_PRINTF("System Clock On %u\r\n",alt_system_clock_in_sec++); - } - } -} - - -#endif diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_lseek.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_lseek.c deleted file mode 100644 index a56dbfb..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_lseek.c +++ /dev/null @@ -1,117 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004-2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#include "sys/alt_errno.h" -#include "sys/alt_warning.h" -#include "priv/alt_file.h" -#include "os/alt_syscall.h" - -#ifdef ALT_USE_DIRECT_DRIVERS - -off_t ALT_LSEEK (int file, off_t ptr, int dir) -{ - /* Generate a link time warning, should this function ever be called. */ - - ALT_STUB_WARNING(lseek); - - /* Indicate an error */ - - ALT_ERRNO = ENOSYS; - return -1; -} - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -/* - * lseek() can be called to move the read/write pointer associated with the - * file descriptor "file". This function simply vectors the call to the lseek() - * function provided by the driver associated with the file descriptor. - * - * If the driver does not provide an implementation of lseek() an error is - * indicated. - * - * lseek() corresponds to the standard lseek() function. - * - * ALT_LSEEK is mapped onto the lseek() system call in alt_syscall.h - * - */ - -off_t ALT_LSEEK (int file, off_t ptr, int dir) -{ - alt_fd* fd; - off_t rc = 0; - - /* - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (file < 0) ? NULL : &alt_fd_list[file]; - - if (fd) - { - /* - * If the device driver provides an implementation of the lseek() function, - * then call that to process the request. - */ - - if (fd->dev->lseek) - { - rc = fd->dev->lseek(fd, ptr, dir); - } - /* - * Otherwise return an error. - */ - - else - { - rc = -ENOTSUP; - } - } - else - { - rc = -EBADFD; - } - - if (rc < 0) - { - ALT_ERRNO = -rc; - rc = -1; - } - - return rc; -} - -#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_main.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_main.c deleted file mode 100644 index 33e3463..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_main.c +++ /dev/null @@ -1,161 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include -#include -#include -#include -#include - -#include "sys/alt_dev.h" -#include "sys/alt_sys_init.h" -#include "sys/alt_irq.h" -#include "sys/alt_dev.h" - -#include "os/alt_hooks.h" - -#include "priv/alt_file.h" -#include "alt_types.h" - -#include "system.h" - -#include "sys/alt_log_printf.h" - -extern void _do_ctors(void); -extern void _do_dtors(void); - -/* - * Standard arguments for main. By default, no arguments are passed to main. - * However a device driver may choose to configure these arguments by calling - * alt_set_args(). The expectation is that this facility will only be used by - * the iclient/ihost utility. - */ - -int alt_argc = 0; -char** alt_argv = {NULL}; -char** alt_envp = {NULL}; - -/* - * Prototype for the entry point to the users application. - */ - -extern int main (int, char **, char **); - -/* - * alt_main is the C entry point for the HAL. It is called by the assembler - * startup code in the processor specific crt0.S. It is responsible for: - * completing the C runtime configuration; configuring all the - * devices/filesystems/components in the system; and call the entry point for - * the users application, i.e. main(). - */ - -void alt_main (void) -{ -#ifndef ALT_NO_EXIT - int result; -#endif - - /* ALT LOG - please see HAL/sys/alt_log_printf.h for details */ - ALT_LOG_PRINT_BOOT("[alt_main.c] Entering alt_main, calling alt_irq_init.\r\n"); - /* Initialize the interrupt controller. */ - alt_irq_init (NULL); - - /* Initialize the operating system */ - ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_irq_init, calling alt_os_init.\r\n"); - ALT_OS_INIT(); - - /* - * Initialize the semaphore used to control access to the file descriptor - * list. - */ - - ALT_LOG_PRINT_BOOT("[alt_main.c] Done OS Init, calling alt_sem_create.\r\n"); - ALT_SEM_CREATE (&alt_fd_list_lock, 1); - - /* Initialize the device drivers/software components. */ - ALT_LOG_PRINT_BOOT("[alt_main.c] Calling alt_sys_init.\r\n"); - alt_sys_init(); - ALT_LOG_PRINT_BOOT("[alt_main.c] Done alt_sys_init.\r\n"); - -#if !defined(ALT_USE_DIRECT_DRIVERS) && (defined(ALT_STDIN_PRESENT) || defined(ALT_STDOUT_PRESENT) || defined(ALT_STDERR_PRESENT)) - - /* - * Redirect stdio to the apropriate devices now that the devices have - * been initialized. This is only done if the user has requested these - * devices be present (not equal to /dev/null) and if direct drivers - * aren't being used. - */ - - ALT_LOG_PRINT_BOOT("[alt_main.c] Redirecting IO.\r\n"); - alt_io_redirect(ALT_STDOUT, ALT_STDIN, ALT_STDERR); -#endif - -#ifndef ALT_NO_C_PLUS_PLUS - /* - * Call the C++ constructors - */ - - ALT_LOG_PRINT_BOOT("[alt_main.c] Calling C++ constructors.\r\n"); - _do_ctors (); -#endif /* ALT_NO_C_PLUS_PLUS */ - -#if !defined(ALT_NO_C_PLUS_PLUS) && !defined(ALT_NO_CLEAN_EXIT) && !defined(ALT_NO_EXIT) - /* - * Set the C++ destructors to be called at system shutdown. This is only done - * if a clean exit has been requested (i.e. the exit() function has not been - * redefined as _exit()). This is in the interest of reducing code footprint, - * in that the atexit() overhead is removed when it's not needed. - */ - - ALT_LOG_PRINT_BOOT("[alt_main.c] Calling atexit.\r\n"); - atexit (_do_dtors); -#endif - - /* - * Finally, call main(). The return code is then passed to a subsequent - * call to exit() unless the application is never supposed to exit. - */ - - ALT_LOG_PRINT_BOOT("[alt_main.c] Calling main.\r\n"); - -#ifdef ALT_NO_EXIT - main (alt_argc, alt_argv, alt_envp); -#else - result = main (alt_argc, alt_argv, alt_envp); - close(STDOUT_FILENO); - exit (result); -#endif - - ALT_LOG_PRINT_BOOT("[alt_main.c] After main - we should not be here?.\r\n"); -} - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_malloc_lock.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_malloc_lock.c deleted file mode 100644 index 89c2dd4..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_malloc_lock.c +++ /dev/null @@ -1,52 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -/* - * These are the empty malloc lock/unlock stubs required by newlib. These are - * used to make newlib's malloc() function thread safe. The default HAL - * configuration is single threaded, so there is nothing to do here. Note that - * this requires that malloc is never called by an interrupt service routine. - */ - -void __malloc_lock ( struct _reent *_r ) -{ -} - -/* - * - */ - -void __malloc_unlock ( struct _reent *_r ) -{ -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_mcount.S b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_mcount.S deleted file mode 100644 index cf510da..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_mcount.S +++ /dev/null @@ -1,198 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003-2010 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* mcount or _mcount is inserted by GCC before the function prologue of every - * function when a program is compiled for profiling. At the start of mcount, - * we guarantee that: - * ra = self_pc (an address in the function which called mcount) - * r8 = from_pc (an address in the function which called mcount's caller) - * - * Because this is always called at the start of a function we can corrupt - * r2,r3 and r11-r15. We must not corrupt r4-r7 (because they might contain - * function arguments for the instrumented function) or r8 (which holds ra - * for the instrumented function). - */ - - .global __mcount_fn_head - - .global mcount - - /* _mcount is used by gcc4 */ - .global _mcount - -_mcount: -mcount: - /* Use a hash to speed up locating fn_entry. We use bits 5 upwards to choose - * the bucket because bits 1:0 will always be 0, and because the distribution - * of values for bits 4:2 won't be even (aligning on cache line boundaries - * will skew it). Higher bits should be fairly random. - */ - /* fn_head = mcount_fn_head + (((unsigned int)self_pc >> 5) & (HASH_BUCKETS - 1)); */ - - srli r2, ra, 3 - movhi r3, %hiadj(__mcount_fn_head) - addi r3, r3, %lo(__mcount_fn_head) - andi r2, r2, 0xFC - add r11, r2, r3 - - /* The fast case is where we have already allocated a function arc, and so - * also a function pointer. - */ - - /* First find the function being called (using self_pc) */ - mov r10, r11 -0: - ldw r10, 0(r10) - beq r10, zero, .Lnew_arc - ldw r2, 4(r10) - bne r2, ra, 0b - - /* Found a function entry for this PC. Now look for an arc with a matching - * from_pc value. There will always be at least one arc. */ - ldw r3, 8(r10) -0: - ldw r2, 4(r3) - beq r2, r8, .Lfound_arc - ldw r3, 0(r3) - bne r3, zero, 0b - -.Lnew_arc: - addi sp, sp, -24 - -.LCFI0: - stw ra, 0(sp) - stw r4, 4(sp) - stw r5, 8(sp) - stw r6, 12(sp) - stw r7, 16(sp) - stw r8, 20(sp) - -.LCFI1: - /* __mcount_record(orig_ra, orig_r8, fn_entry, *fn_head); */ - mov r4, ra - mov r5, r8 - mov r6, r10 - mov r7, r11 - call __mcount_record - - /* restore registers from the stack */ - ldw ra, 0(sp) - ldw r4, 4(sp) - ldw r5, 8(sp) - ldw r6, 12(sp) - ldw r7, 16(sp) - ldw r8, 20(sp) - - addi sp, sp, 24 - -.LCFI2: - ret - -.Lfound_arc: - /* We've found the correct arc record. Increment the count and return */ - ldw r2, 8(r3) - addi r2, r2, 1 - stw r2, 8(r3) - ret - -.Lmcount_end: - - - -/* - * Dwarf2 debug information for the function. This provides GDB with the - * information it needs to backtrace out of this function. - */ - - .section .debug_frame,"",@progbits -.LCIE: - .4byte 2f - 1f /* Length */ -1: - .4byte 0xffffffff /* CIE id */ - .byte 0x1 /* Version */ - .string "" /* Augmentation */ - .uleb128 0x1 /* Code alignment factor */ - .sleb128 -4 /* Data alignment factor */ - .byte 0x1f /* Return address register */ - - .byte 0xc /* Define CFA */ - .uleb128 0x1b /* Register 27 (sp) */ - .uleb128 0x0 /* Offset 0 */ - - .align 2 /* Padding */ -2: - -.LFDE_mcount: - .4byte 2f - 1f /* Length */ -1: - .4byte .LCIE /* Pointer to CIE */ - .4byte mcount /* Start of table entry */ - .4byte .Lmcount_end - mcount /* Size of table entry */ - - .byte 0x4 /* Advance location */ - .4byte .LCFI0 - mcount /* to .LCFI0 */ - .byte 0xe /* Define CFA offset */ - .uleb128 24 /* to 24 */ - - .byte 0x4 /* Advance location */ - .4byte .LCFI1 - .LCFI0 /* to .LCFI1 */ - .byte 0x9f /* Store ra */ - .uleb128 0x6 /* at CFA-24 */ - .byte 0x84 /* Store r4 */ - .uleb128 0x5 /* at CFA-20 */ - .byte 0x85 /* Store r5 */ - .uleb128 0x4 /* at CFA-16 */ - .byte 0x86 /* Store r6 */ - .uleb128 0x3 /* at CFA-12 */ - .byte 0x87 /* Store r7 */ - .uleb128 0x2 /* at CFA-8 */ - .byte 0x88 /* Store r8 */ - .uleb128 0x1 /* at CFA-4 */ - - .byte 0x4 /* Advance location */ - .4byte .LCFI2 - .LCFI1 /* to .LCFI2 */ - .byte 0xe /* Define CFA offset */ - .uleb128 0 /* to 0 */ - .byte 0x8 /* Same value */ - .uleb128 31 /* for ra */ - .byte 0x8 /* Same value */ - .uleb128 4 /* for r4 */ - .byte 0x8 /* Same value */ - .uleb128 5 /* for r5 */ - .byte 0x8 /* Same value */ - .uleb128 6 /* for r6 */ - .byte 0x8 /* Same value */ - .uleb128 7 /* for r7 */ - .byte 0x8 /* Same value */ - .uleb128 8 /* for r8 */ - - .align 2 -2: - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_open.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_open.c deleted file mode 100644 index d7040bc..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_open.c +++ /dev/null @@ -1,173 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_errno.h" -#include "sys/alt_warning.h" -#include "priv/alt_file.h" -#include "alt_types.h" -#include "os/alt_syscall.h" - -#ifdef ALT_USE_DIRECT_DRIVERS - -int ALT_OPEN (const char* file, int flags, int mode) -{ - /* Generate a link time warning, should this function ever be called. */ - - ALT_STUB_WARNING(open); - - /* Indicate an error */ - - ALT_ERRNO = ENOSYS; - return -1; -} - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -extern alt_llist alt_dev_list; - -/* - * alt_file_locked() is used by open() to ensure that a device has not been - * previously locked for exclusive access using ioctl(). This test is only - * performed for devices. Filesystems are required to handle the ioctl() call - * themselves, and report the error from the filesystems open() function. - */ - -static int alt_file_locked (alt_fd* fd) -{ - alt_u32 i; - - /* - * Mark the file descriptor as belonging to a device. - */ - - fd->fd_flags |= ALT_FD_DEV; - - /* - * Loop through all current file descriptors searching for one that's locked - * for exclusive access. If a match is found, generate an error. - */ - - for (i = 0; i <= alt_max_fd; i++) - { - if ((alt_fd_list[i].dev == fd->dev) && - (alt_fd_list[i].fd_flags & ALT_FD_EXCL) && - (&alt_fd_list[i] != fd)) - { - return -EACCES; - } - } - - /* The device is not locked */ - - return 0; -} - -/* - * open() is called in order to get a file descriptor that reference the file - * or device named "name". This descriptor can then be used to manipulate the - * file/device using the standard system calls, e.g. write(), read(), ioctl() - * etc. - * - * This is equivalent to the standard open() system call. - * - * ALT_OPEN is mapped onto the open() system call in alt_syscall.h - */ - -int ALT_OPEN (const char* file, int flags, int mode) -{ - alt_dev* dev; - alt_fd* fd; - int index = -1; - int status = -ENODEV; - int isafs = 0; - - /* - * Check the device list, to see if a device with a matching name is - * registered. - */ - - if (!(dev = alt_find_dev (file, &alt_dev_list))) - { - /* No matching device, so try the filesystem list */ - - dev = alt_find_file (file); - isafs = 1; - } - - /* - * If a matching device or filesystem is found, allocate a file descriptor. - */ - - if (dev) - { - if ((index = alt_get_fd (dev)) < 0) - { - status = index; - } - else - { - fd = &alt_fd_list[index]; - fd->fd_flags = (flags & ~ALT_FD_FLAGS_MASK); - - /* If this is a device, ensure it isn't already locked */ - - if (isafs || ((status = alt_file_locked (fd)) >= 0)) - { - /* - * If the device or filesystem provides an open() callback function, - * call it now to perform any device/filesystem specific operations. - */ - - status = (dev->open) ? dev->open(fd, file, flags, mode): 0; - } - } - } - else - { - status = -ENODEV; - } - - /* Allocation failed, so clean up and return an error */ - - if (status < 0) - { - alt_release_fd (index); - ALT_ERRNO = -status; - return -1; - } - - /* return the reference upon success */ - - return index; -} - -#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_printf.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_printf.c deleted file mode 100644 index fe5bcd3..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_printf.c +++ /dev/null @@ -1,127 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -/* - * This file provides a very minimal printf implementation for use with very - * small applications. Only the following format strings are supported: - * %x - * %s - * %c - * %% - */ - -#include -#include "sys/alt_stdio.h" - -/* - * ALT printf function - */ -void -alt_printf(const char* fmt, ... ) -{ - va_list args; - va_start(args, fmt); - const char *w; - char c; - - /* Process format string. */ - w = fmt; - while ((c = *w++) != 0) - { - /* If not a format escape character, just print */ - /* character. Otherwise, process format string. */ - if (c != '%') - { - alt_putchar(c); - } - else - { - /* Get format character. If none */ - /* available, processing is complete. */ - if ((c = *w++) != 0) - { - if (c == '%') - { - /* Process "%" escape sequence. */ - alt_putchar(c); - } - else if (c == 'c') - { - int v = va_arg(args, int); - alt_putchar(v); - } - else if (c == 'x') - { - /* Process hexadecimal number format. */ - unsigned long v = va_arg(args, unsigned long); - unsigned long digit; - int digit_shift; - - /* If the number value is zero, just print and continue. */ - if (v == 0) - { - alt_putchar('0'); - continue; - } - - /* Find first non-zero digit. */ - digit_shift = 28; - while (!(v & (0xF << digit_shift))) - digit_shift -= 4; - - /* Print digits. */ - for (; digit_shift >= 0; digit_shift -= 4) - { - digit = (v & (0xF << digit_shift)) >> digit_shift; - if (digit <= 9) - c = '0' + digit; - else - c = 'a' + digit - 10; - alt_putchar(c); - } - } - else if (c == 's') - { - /* Process string format. */ - char *s = va_arg(args, char *); - - while(*s) - alt_putchar(*s++); - } - } - else - { - break; - } - } - } -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_putchar.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_putchar.c deleted file mode 100644 index 900bb9f..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_putchar.c +++ /dev/null @@ -1,59 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#ifdef ALT_USE_DIRECT_DRIVERS -#include "system.h" -#include "sys/alt_driver.h" -#include "sys/alt_stdio.h" -#endif - -/* - * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. - * Otherwise, uses newlib provided putchar() routine. - */ -int -alt_putchar(int c) -{ -#ifdef ALT_USE_DIRECT_DRIVERS - ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); - char c1 = (char)(c & 0xff); - - if (ALT_DRIVER_WRITE(ALT_STDOUT_DEV, &c1, 1, 0) == -1) { - return -1; - } - return c; -#else - return putchar(c); -#endif -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_putstr.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_putstr.c deleted file mode 100644 index 131ba19..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_putstr.c +++ /dev/null @@ -1,55 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#ifdef ALT_USE_DIRECT_DRIVERS -#include -#include "system.h" -#include "sys/alt_driver.h" -#include "sys/alt_stdio.h" -#endif - -/* - * Uses the ALT_DRIVER_WRITE() macro to call directly to driver if available. - * Otherwise, uses newlib provided fputs() routine. - */ -int -alt_putstr(const char* str) -{ -#ifdef ALT_USE_DIRECT_DRIVERS - ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); - return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, str, strlen(str), 0); -#else - return fputs(str, stdout); -#endif -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_read.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_read.c deleted file mode 100644 index 920ab13..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_read.c +++ /dev/null @@ -1,125 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include - -#include "sys/alt_errno.h" -#include "sys/alt_warning.h" -#include "priv/alt_file.h" -#include "os/alt_syscall.h" - -/* - * The read() system call is used to read a block of data from a file or device. - * This function simply vectors the request to the device driver associated - * with the input file descriptor "file". - * - * ALT_READ is mapped onto the read() system call in alt_syscall.h - */ - -#ifdef ALT_USE_DIRECT_DRIVERS - -#include "system.h" -#include "sys/alt_driver.h" - -/* - * Provide minimal version that just reads from the stdin device when provided. - */ - -int ALT_READ (int file, void *ptr, size_t len) -{ -#ifdef ALT_STDIN_PRESENT - ALT_DRIVER_READ_EXTERNS(ALT_STDIN_DEV); -#endif - -#if !defined(ALT_STDIN_PRESENT) - /* Generate a link time warning, should this function ever be called. */ - ALT_STUB_WARNING(read); -#endif - - switch (file) { -#ifdef ALT_STDIN_PRESENT - case 0: /* stdin file descriptor */ - return ALT_DRIVER_READ(ALT_STDIN_DEV, ptr, len, 0); -#endif /* ALT_STDIN_PRESENT */ - default: - ALT_ERRNO = EBADFD; - return -1; - } -} - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -int ALT_READ (int file, void *ptr, size_t len) -{ - alt_fd* fd; - int rval; - - /* - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (file < 0) ? NULL : &alt_fd_list[file]; - - if (fd) - { - /* - * If the file has not been opened with read access, or if the driver does - * not provide an implementation of read(), generate an error. Otherwise - * call the drivers read() function to process the request. - */ - - if (((fd->fd_flags & O_ACCMODE) != O_WRONLY) && - (fd->dev->read)) - { - if ((rval = fd->dev->read(fd, ptr, len)) < 0) - { - ALT_ERRNO = -rval; - return -1; - } - return rval; - } - else - { - ALT_ERRNO = EACCES; - } - } - else - { - ALT_ERRNO = EBADFD; - } - return -1; -} - -#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_release_fd.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_release_fd.c deleted file mode 100644 index c22a97f..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_release_fd.c +++ /dev/null @@ -1,54 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_dev.h" -#include "priv/alt_file.h" - -/* - * alt_release_fd() is called to free an allocated file descriptor. This is - * done by setting the device pointer in the file descriptor structure to zero. - * - * File descriptors correcponding to standard in, standard out and standard - * error cannont be released backed to the pool. They are always reserved. - */ - -void alt_release_fd (int fd) -{ - if (fd > 2) - { - alt_fd_list[fd].fd_flags = 0; - alt_fd_list[fd].dev = 0; - } -} - - - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_remap_cached.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_remap_cached.c deleted file mode 100644 index 6afc465..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_remap_cached.c +++ /dev/null @@ -1,50 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "sys/alt_cache.h" -#include "system.h" - -#ifdef NIOS2_MMU_PRESENT -/* Convert KERNEL region address to IO region address */ -#define BYPASS_DCACHE_MASK (0x1 << 29) -#else -/* Set bit 31 of address to bypass D-cache */ -#define BYPASS_DCACHE_MASK (0x1 << 31) -#endif - -/* - * Convert a pointer to a block of uncached memory, into a block of - * cached memory. - */ - -void* alt_remap_cached (volatile void* ptr, alt_u32 len) -{ - return (void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK); -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_remap_uncached.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_remap_uncached.c deleted file mode 100644 index e533f94..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_remap_uncached.c +++ /dev/null @@ -1,51 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "sys/alt_cache.h" -#include "system.h" - -#ifdef NIOS2_MMU_PRESENT -/* Convert KERNEL region address to IO region address */ -#define BYPASS_DCACHE_MASK (0x1 << 29) -#else -/* Set bit 31 of address to bypass D-cache */ -#define BYPASS_DCACHE_MASK (0x1 << 31) -#endif - -/* - * Convert a pointer to a block of cached memory, into a block of - * uncached memory. - */ - -volatile void* alt_remap_uncached (void* ptr, alt_u32 len) -{ - alt_dcache_flush (ptr, len); - return (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK); -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_rename.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_rename.c deleted file mode 100644 index 26db44d..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_rename.c +++ /dev/null @@ -1,55 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_errno.h" -#include "sys/alt_warning.h" -#include "os/alt_syscall.h" - -/* - * _rename() is used by newlib to rename an existing file. This is unsupported - * in the HAL environment. However a "do-nothing" implementation is still - * provied for newlib compatability. - * - * ALT_RENAME is mapped onto the _rename() system call in alt_syscall.h - */ - -int ALT_RENAME (char *existing, char *new) -{ - /* Generate a link time warning, should this function ever be called. */ - - ALT_STUB_WARNING(_rename); - - /* Indicate an error */ - - ALT_ERRNO = ENOSYS; - return -1; -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_sbrk.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_sbrk.c deleted file mode 100644 index 7ab3367..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_sbrk.c +++ /dev/null @@ -1,136 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#include "os/alt_syscall.h" - -#include "sys/alt_irq.h" -#include "sys/alt_stack.h" - -#include "system.h" - -/* - * sbrk() is called to dynamically extend the data segment for the application. - * Thie input argument "incr" is the size of the block to allocate. - * - * This simple implementation does not perform any bounds checking. Memory will - * be allocated, even if the request region colides with the stack or overflows - * the available physical memory. - * - * ALT_SBRK is mapped onto the sbrk() system call in alt_syscall.h - * - * This function is called by the profiling code to allocate memory so must be - * safe if called from an interrupt context. It must also not be instrumented - * because that would lead to an infinate loop. - */ - -extern char __alt_heap_start[]; /* set by linker */ -extern char __alt_heap_limit[]; /* set by linker */ - -static char *heap_end = __alt_heap_start; - -#if defined(ALT_EXCEPTION_STACK) && defined(ALT_STACK_CHECK) -char * alt_exception_old_stack_limit = NULL; -#endif - -caddr_t ALT_SBRK (int incr) __attribute__ ((no_instrument_function )); - -caddr_t ALT_SBRK (int incr) -{ - alt_irq_context context; - char *prev_heap_end; - - context = alt_irq_disable_all(); - - /* Always return data aligned on a word boundary */ - heap_end = (char *)(((unsigned int)heap_end + 3) & ~3); - -#ifdef ALT_MAX_HEAP_BYTES - /* - * User specified a maximum heap size. Return -1 if it would - * be exceeded by this sbrk call. - */ - if (((heap_end + incr) - __alt_heap_start) > ALT_MAX_HEAP_BYTES) { - alt_irq_enable_all(context); - return (caddr_t)-1; - } -#else - if ((heap_end + incr) > __alt_heap_limit) { - alt_irq_enable_all(context); - return (caddr_t)-1; - } -#endif - - prev_heap_end = heap_end; - heap_end += incr; - -#ifdef ALT_STACK_CHECK - /* - * If the stack and heap are contiguous then extending the heap reduces the - * space available for the stack. If we are still using the default stack - * then adjust the stack limit to note this, while checking for stack - * pointer overflow. - * If the stack limit isn't pointing at the top of the heap then the code - * is using a different stack so none of this needs to be done. - */ - - if (alt_stack_limit() == prev_heap_end) - { - if (alt_stack_pointer() <= heap_end) - alt_report_stack_overflow(); - - alt_set_stack_limit(heap_end); - } - -#ifdef ALT_EXCEPTION_STACK - /* - * If we are executing from the exception stack then compare against the - * stack we switched away from as well. The exception stack is a fixed - * size so doesn't need to be checked. - */ - - if (alt_exception_old_stack_limit == prev_heap_end) - { - if (alt_exception_old_stack_limit <= heap_end) - alt_report_stack_overflow(); - - alt_exception_old_stack_limit = heap_end; - } -#endif - -#endif - - alt_irq_enable_all(context); - - return (caddr_t) prev_heap_end; -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_settod.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_settod.c deleted file mode 100644 index 13349b8..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_settod.c +++ /dev/null @@ -1,96 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include - -#include "sys/alt_errno.h" -#include "sys/alt_alarm.h" -#include "os/alt_syscall.h" - -/* - * "alt_timezone" and "alt_resettime" are the values of the the reset time and - * time zone set through the last call to settimeofday(). By default they are - * zero initialised. - */ - -extern struct timezone alt_timezone; -extern struct timeval alt_resettime; - -/* - * Macro defining the number of micoseconds in a second. - */ - -#define ALT_US (1000000) - - -/* - * settimeofday() can be called to calibrate the system clock, so that - * subsequent calls to gettimeofday() will return the elapsed "wall clock" - * time. - * - * This is done by updating the global structures "alt_resettime" and - * "alt_timezone" so that an immediate call to gettimeofday() would return - * the value specified by "t" and "tz". - * - * Warning: if this function is called concurrently with a call to - * gettimeofday(), the value returned by gettimeofday() will be unreliable. - * - * ALT_SETTIMEOFDAY is mapped onto the settimeofday() system call in - * alt_syscall.h - */ - -int ALT_SETTIMEOFDAY (const struct timeval *t, - const struct timezone *tz) -{ - alt_u32 nticks = alt_nticks (); - alt_u32 tick_rate = alt_ticks_per_second (); - - /* If there is a system clock available, update the current time */ - - if (tick_rate) - { - alt_resettime.tv_sec = t->tv_sec - nticks/tick_rate; - alt_resettime.tv_usec = t->tv_usec - - ((nticks*(ALT_US/tick_rate))%ALT_US); - - alt_timezone.tz_minuteswest = tz->tz_minuteswest; - alt_timezone.tz_dsttime = tz->tz_dsttime; - - return 0; - } - - /* There's no system clock available */ - - ALT_ERRNO = ENOSYS; - return -1; -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_software_exception.S b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_software_exception.S deleted file mode 100644 index 0a9381e..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_software_exception.S +++ /dev/null @@ -1,53 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003-2005 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - - /* - * This file provides the global symbol: software_exception. It is provided to - * support legacy code, and should not be used by new software. - * - * It is used by legacy code to invoke the software exception handler as - * defined by version 1.0 of the Nios II kit. It should only be used when you - * are providing your own interrupt entry point, i.e. you are not using - * alt_irq_entry. - */ - -#include "system.h" - - /* - * Pull in the exception handler. - */ - - .globl alt_exception - - .section .exceptions.entry.label, "xa" - - .globl software_exception - .type software_exception, @function -software_exception: diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_stat.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_stat.c deleted file mode 100644 index c196d0c..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_stat.c +++ /dev/null @@ -1,59 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include -#include -#include - -#include "os/alt_syscall.h" - -/* - * The stat() function is similar to the fstat() function in that it is used to - * obtain status information about a file. Instead of using an open file - * descriptor (like fstat()), stat() takes the name of a file as an input - * argument. - * - * ALT_STAT is mapped onto the stat() system call in alt_syscall.h - */ - -int ALT_STAT (const char *file, struct stat *st) -{ - int fd; - int rc; - - fd = open (file, 0); - rc = fstat (fd, st); - close (fd); - - return rc; -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_tick.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_tick.c deleted file mode 100644 index 23719b1..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_tick.c +++ /dev/null @@ -1,149 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_irq.h" -#include "sys/alt_alarm.h" -#include "os/alt_hooks.h" -#include "alt_types.h" - -/* - * "_alt_tick_rate" is used to store the value of the system clock frequency - * in ticks per second. It is initialised to zero, which corresponds to there - * being no system clock facility available. - */ - -alt_u32 _alt_tick_rate = 0; - -/* - * "_alt_nticks" is the number of system clock ticks that have elapsed since - * reset. - */ - -volatile alt_u32 _alt_nticks = 0; - -/* - * "alt_alarm_list" is the head of a linked list of registered alarms. This is - * initialised to be an empty list. - */ - -ALT_LLIST_HEAD(alt_alarm_list); - -/* - * alt_alarm_stop() is called to remove an alarm from the list of registered - * alarms. Alternatively an alarm can unregister itself by returning zero when - * the alarm executes. - */ - -void alt_alarm_stop (alt_alarm* alarm) -{ - alt_irq_context irq_context; - - irq_context = alt_irq_disable_all(); - alt_llist_remove (&alarm->llist); - alt_irq_enable_all (irq_context); -} - -/* - * alt_tick() is periodically called by the system clock driver in order to - * process the registered list of alarms. Each alarm is registed with a - * callback interval, and a callback function, "callback". - * - * The return value of the callback function indicates how many ticks are to - * elapse until the next callback. A return value of zero indicates that the - * alarm should be deactivated. - * - * alt_tick() is expected to run at interrupt level. - */ - -void alt_tick (void) -{ - alt_alarm* next; - alt_alarm* alarm = (alt_alarm*) alt_alarm_list.next; - - alt_u32 next_callback; - - /* update the tick counter */ - - _alt_nticks++; - - /* process the registered callbacks */ - - while (alarm != (alt_alarm*) &alt_alarm_list) - { - next = (alt_alarm*) alarm->llist.next; - - /* - * Upon the tick-counter rolling over it is safe to clear the - * roll-over flag; once the flag is cleared this (or subsequnt) - * tick events are enabled to generate an alarm event. - */ - if ((alarm->rollover) && (_alt_nticks == 0)) - { - alarm->rollover = 0; - } - - /* if the alarm period has expired, make the callback */ - if ((alarm->time <= _alt_nticks) && (alarm->rollover == 0)) - { - next_callback = alarm->callback (alarm->context); - - /* deactivate the alarm if the return value is zero */ - - if (next_callback == 0) - { - alt_alarm_stop (alarm); - } - else - { - alarm->time += next_callback; - - /* - * If the desired alarm time causes a roll-over, set the rollover - * flag. This will prevent the subsequent tick event from causing - * an alarm too early. - */ - if(alarm->time < _alt_nticks) - { - alarm->rollover = 1; - } - } - } - alarm = next; - } - - /* - * Update the operating system specific timer facilities. - */ - - ALT_OS_TIME_TICK(); -} - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_times.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_times.c deleted file mode 100644 index 6543164..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_times.c +++ /dev/null @@ -1,71 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include - -#include "sys/alt_errno.h" -#include "sys/alt_alarm.h" -#include "os/alt_syscall.h" - -/* - * The times() function is used by newlib to obtain elapsed time information. - * The return value is the elapsed time since reset in system clock ticks. Note - * that this is distinct from the strict Posix version of times(), which should - * return the time since: 0 hours, 0 minutes, 0 seconds, January 1, 1970, GMT. - * - * The input structure is filled in with time accounting information. This - * implementation attributes all cpu time to the system. - * - * ALT_TIMES is mapped onto the times() system call in alt_syscall.h - */ - -clock_t ALT_TIMES (struct tms *buf) -{ - clock_t ticks = alt_nticks(); - - /* If there is no system clock present, generate an error */ - - if (!alt_ticks_per_second()) - { - ALT_ERRNO = ENOSYS; - return 0; - } - - /* Otherwise return the elapsed time */ - - buf->tms_utime = 0; - buf->tms_stime = ticks; - buf->tms_cutime = 0; - buf->tms_cstime = 0; - - return ticks; -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_uncached_free.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_uncached_free.c deleted file mode 100644 index 37f4ac1..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_uncached_free.c +++ /dev/null @@ -1,49 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "sys/alt_cache.h" -#include "system.h" - -#ifdef NIOS2_MMU_PRESENT -/* Convert KERNEL region address to IO region address */ -#define BYPASS_DCACHE_MASK (0x1 << 29) -#else -/* Set bit 31 of address to bypass D-cache */ -#define BYPASS_DCACHE_MASK (0x1 << 31) -#endif - -/* - * Free a block of uncached memory. - */ - -void alt_uncached_free (volatile void* ptr) -{ - free ((void*) (((alt_u32) ptr) & ~BYPASS_DCACHE_MASK)); -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_uncached_malloc.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_uncached_malloc.c deleted file mode 100644 index 325132e..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_uncached_malloc.c +++ /dev/null @@ -1,55 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003,2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "sys/alt_cache.h" -#include "system.h" - -#ifdef NIOS2_MMU_PRESENT -/* Convert KERNEL region address to IO region address */ -#define BYPASS_DCACHE_MASK (0x1 << 29) -#else -/* Set bit 31 of address to bypass D-cache */ -#define BYPASS_DCACHE_MASK (0x1 << 31) -#endif - -/* - * Allocate a block of uncached memory. - */ - -volatile void* alt_uncached_malloc (size_t size) -{ - void* ptr; - - ptr = malloc (size); - - alt_dcache_flush (ptr, size); - - return ptr ? (volatile void*) (((alt_u32) ptr) | BYPASS_DCACHE_MASK) : NULL; -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_unlink.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_unlink.c deleted file mode 100644 index 606f019..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_unlink.c +++ /dev/null @@ -1,55 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_errno.h" -#include "sys/alt_warning.h" -#include "os/alt_syscall.h" - -/* - * unlink() is used by newlib to delete an existing link to a file. This is - * unsupported in the HAL environment. However a "do-nothing" implementation - * is still provied for newlib compatability. - * - * ALT_UNLINK is mapped onto the unlink() system call in alt_syscall.h - */ - -int ALT_UNLINK (char *name) -{ - /* Generate a link time warning, should this function ever be called. */ - - ALT_STUB_WARNING(unlink); - - /* Indicate an error */ - - ALT_ERRNO = ENOSYS; - return -1; -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_usleep.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_usleep.c deleted file mode 100644 index eea89cd..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_usleep.c +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2003 Altera Corporation, San Jose, California, USA. - * All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * ------------ - * - * Altera does not recommend, suggest or require that this reference design - * file be used in conjunction or combination with any other product. - * - * usleep.c - Microsecond delay routine - */ - -#include - -#include "priv/alt_busy_sleep.h" -#include "os/alt_syscall.h" - -/* - * This function simply calls alt_busy_sleep() to perform the delay. This - * function implements the delay as a calibrated "busy loop". - * - * ALT_USLEEP is mapped onto the usleep() system call in alt_syscall.h - */ - - - -#if defined (__GNUC__) && __GNUC__ >= 4 -int ALT_USLEEP (useconds_t us) -#else -unsigned int ALT_USLEEP (unsigned int us) -#endif -{ - return alt_busy_sleep(us); -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_wait.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_wait.c deleted file mode 100644 index dd768ad..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_wait.c +++ /dev/null @@ -1,52 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2004 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include "sys/alt_errno.h" -#include "os/alt_syscall.h" - -/* - * wait() is used by newlib to wait for all child processes to exit. Since the - * HAL does not support spawning child processes, this returns immediately as - * there can't be anythign to wait for. - * - * ALT_WAIT is mapped onto the wait() system call in alt_syscall.h - */ - -int ALT_WAIT (int *status) -{ - *status = 0; - - ALT_ERRNO = ECHILD; - - return -1; -} - diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_write.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_write.c deleted file mode 100644 index d161cdf..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/alt_write.c +++ /dev/null @@ -1,138 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -* Altera does not recommend, suggest or require that this reference design * -* file be used in conjunction or combination with any other product. * -******************************************************************************/ - -#include -#include - -#include "sys/alt_errno.h" -#include "sys/alt_warning.h" -#include "priv/alt_file.h" -#include "os/alt_syscall.h" - -#include "sys/alt_log_printf.h" - -/* - * The write() system call is used to write a block of data to a file or - * device. This function simply vectors the request to the device driver - * associated with the input file descriptor "file". - * - * ALT_WRITE is mapped onto the write() system call in alt_syscall.h - */ - -#ifdef ALT_USE_DIRECT_DRIVERS - -#include "system.h" -#include "sys/alt_driver.h" - -/* - * Provide minimal version that just writes to the stdout/stderr devices - * when provided. - */ - -int ALT_WRITE (int file, const void *ptr, size_t len) -{ -#ifdef ALT_STDOUT_PRESENT - ALT_DRIVER_WRITE_EXTERNS(ALT_STDOUT_DEV); -#endif -#ifdef ALT_STDERR_PRESENT - ALT_DRIVER_WRITE_EXTERNS(ALT_STDERR_DEV); -#endif - -#if !defined(ALT_STDOUT_PRESENT) && !defined(ALT_STDERR_PRESENT) - /* Generate a link time warning, should this function ever be called. */ - ALT_STUB_WARNING(write); -#endif - - switch (file) { -#ifdef ALT_STDOUT_PRESENT - case 1: /* stdout file descriptor */ - return ALT_DRIVER_WRITE(ALT_STDOUT_DEV, ptr, len, 0); -#endif /* ALT_STDOUT_PRESENT */ -#ifdef ALT_STDERR_PRESENT - case 2: /* stderr file descriptor */ - return ALT_DRIVER_WRITE(ALT_STDERR_DEV, ptr, len, 0); -#endif /* ALT_STDERR_PRESENT */ - default: - ALT_ERRNO = EBADFD; - return -1; - } -} - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -int ALT_WRITE (int file, const void *ptr, size_t len) -{ - alt_fd* fd; - int rval; - - /* - * A common error case is that when the file descriptor was created, the call - * to open() failed resulting in a negative file descriptor. This is trapped - * below so that we don't try and process an invalid file descriptor. - */ - - fd = (file < 0) ? NULL : &alt_fd_list[file]; - - if (fd) - { - /* - * If the file has not been opened with write access, or if the driver does - * not provide an implementation of write(), generate an error. Otherwise - * call the drivers write() function to process the request. - */ - - if (((fd->fd_flags & O_ACCMODE) != O_RDONLY) && fd->dev->write) - { - - /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ - ALT_LOG_WRITE_FUNCTION(ptr,len); - - if ((rval = fd->dev->write(fd, ptr, len)) < 0) - { - ALT_ERRNO = -rval; - return -1; - } - return rval; - } - else - { - ALT_ERRNO = EACCES; - } - } - else - { - ALT_ERRNO = EBADFD; - } - return -1; -} - -#endif /* ALT_USE_DIRECT_DRIVERS */ diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/altera_nios2_qsys_irq.c b/software/qsys_tutorial_lcd4_bsp/HAL/src/altera_nios2_qsys_irq.c deleted file mode 100644 index c719dbc..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/altera_nios2_qsys_irq.c +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2009 Altera Corporation, San Jose, California, USA. - * All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to - * deal in the Software without restriction, including without limitation the - * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - * sell copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * altera_nios2_irq.c - Support for Nios II internal interrupt controller. - * - */ - -#include "sys/alt_irq.h" -#include "altera_nios2_qsys_irq.h" - -/* - * To initialize the internal interrupt controller, just clear the IENABLE - * register so that all possible IRQs are disabled. - */ -void altera_nios2_qsys_irq_init(void) -{ - NIOS2_WRITE_IENABLE(0); -} diff --git a/software/qsys_tutorial_lcd4_bsp/HAL/src/crt0.S b/software/qsys_tutorial_lcd4_bsp/HAL/src/crt0.S deleted file mode 100644 index 739e45e..0000000 --- a/software/qsys_tutorial_lcd4_bsp/HAL/src/crt0.S +++ /dev/null @@ -1,456 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "system.h" -#include "nios2.h" - -/* Setup header files to work with assembler code. */ -#define ALT_ASM_SRC - -/* Debug logging facility */ -#include "sys/alt_log_printf.h" - -/*************************************************************************\ -| MACROS | -\*************************************************************************/ - -/* - * The new build tools explicitly define macros when alt_load() - * must be called. The define ALT_LOAD_EXPLICITLY_CONTROLLED tells us that - * those macros are controlling if alt_load() needs to be called. - */ -#ifdef ALT_LOAD_EXPLICITLY_CONTROLLED - -/* Need to call alt_load() if any of these sections are being copied. */ -#if defined(ALT_LOAD_COPY_RODATA) || defined(ALT_LOAD_COPY_RWDATA) || defined(ALT_LOAD_COPY_EXCEPTIONS) -#define CALL_ALT_LOAD -#endif - -#else /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ - -/* - * The legacy build tools use the following macros to detect when alt_load() - * needs to be called. - */ - -#define __ALT_LOAD_SECTIONS(res, text, rodata, exc) \ - ((res##_BASE != rodata##_BASE) || \ - (res##_BASE != rwdata##_BASE) || \ - (res##_BASE != exc##_BASE)) - -#define _ALT_LOAD_SECTIONS(res, text, rodata, exc) \ - __ALT_LOAD_SECTIONS(res, text, rodata, exc) - -#define ALT_LOAD_SECTIONS _ALT_LOAD_SECTIONS(ALT_RESET_DEVICE, \ - ALT_RODATA_DEVICE, \ - ALT_RWDATA_DEVICE, \ - ALT_EXCEPTIONS_DEVICE) - -/* Call alt_load() if there is no bootloader and ALT_LOAD_SECTIONS isn't 0. */ -#if defined(ALT_NO_BOOTLOADER) && ALT_LOAD_SECTIONS -#define CALL_ALT_LOAD -#endif - -#endif /* !ALT_LOAD_EXPLICITLY_CONTROLLED */ - -/* - * When the legacy build tools define a macro called ALT_NO_BOOTLOADER, - * it indicates that initialization code is allowed at the reset address. - * The new build tools define a macro called ALT_ALLOW_CODE_AT_RESET for - * the same purpose. - */ -#ifdef ALT_NO_BOOTLOADER -#define ALT_ALLOW_CODE_AT_RESET -#endif - -/*************************************************************************\ -| EXTERNAL REFERENCES | -\*************************************************************************/ - -/* - * The entry point for user code is either "main" in hosted mode, or - * "alt_main" in standalone mode. These are explicitly referenced here, - * to ensure they are built into the executable. This allows the user - * to build them into libraries, rather than supplying them in object - * files at link time. - */ - .globl main - .globl alt_main - -/* - * Create a reference to the software multiply/divide and trap handers, - * so that if they are provided, they will appear in the executable. - */ -#ifndef ALT_NO_INSTRUCTION_EMULATION - .globl alt_exception_muldiv -#endif -#ifdef ALT_TRAP_HANDLER - .globl alt_exception_trap -#endif - -/* - * Linker defined symbols used to initialize bss. - */ -.globl __bss_start -.globl __bss_end - -/*************************************************************************\ -| RESET SECTION (.entry) | -\*************************************************************************/ - -/* - * This is the reset entry point for Nios II. - * - * At reset, only the cache line which contain the reset vector is - * initialized by the hardware. The code within the first cache line - * initializes the remainder of the instruction cache. - */ - - .section .entry, "xa" - .align 5 - -/* - * Explicitly allow the use of r1 (the assembler temporary register) - * within this code. This register is normally reserved for the use of - * the assembler. - */ - .set noat - -/* - * Some tools want to know where the reset vector is. - * Code isn't always provided at the reset vector but at least the - * __reset label always contains the reset vector address because - * it is defined at the start of the .entry section. - */ - - .globl __reset - .type __reset, @function -__reset: - -/* - * Initialize the instruction cache if present (i.e. size > 0) and - * reset code is allowed unless optimizing for RTL simulation. - * RTL simulations can ensure the instruction cache is already initialized - * so skipping this loop speeds up RTL simulation. - */ - -#if NIOS2_ICACHE_SIZE > 0 && defined(ALT_ALLOW_CODE_AT_RESET) && !defined(ALT_SIM_OPTIMIZE) - /* Assume the instruction cache size is always a power of two. */ -#if NIOS2_ICACHE_SIZE > 0x8000 - movhi r2, %hi(NIOS2_ICACHE_SIZE) -#else - movui r2, NIOS2_ICACHE_SIZE -#endif - -0: - initi r2 - addi r2, r2, -NIOS2_ICACHE_LINE_SIZE - bgt r2, zero, 0b -1: - - /* - * The following debug information tells the ISS not to run the loop above - * but to perform its actions using faster internal code. - */ - .pushsection .debug_alt_sim_info - .int 1, 1, 0b, 1b - .popsection -#endif /* Initialize Instruction Cache */ - -/* - * Jump to the _start entry point in the .text section if reset code - * is allowed or if optimizing for RTL simulation. - */ -#if defined(ALT_ALLOW_CODE_AT_RESET) || defined(ALT_SIM_OPTIMIZE) - /* Jump to the _start entry point in the .text section. */ - movhi r1, %hi(_start) - ori r1, r1, %lo(_start) - jmp r1 - - .size __reset, . - __reset -#endif /* Jump to _start */ - -/* - * When not using exit, provide an _exit symbol to prevent unresolved - * references to _exit from the linker script. - */ -#ifdef ALT_NO_EXIT - .globl _exit -_exit: -#endif - -/*************************************************************************\ -| TEXT SECTION (.text) | -\*************************************************************************/ - -/* - * Start of the .text section, and also the code entry point when - * the code is executed by a bootloader rather than directly from reset. - */ - .section .text - .align 2 - - .globl _start - .type _start, @function -_start: - -/* - * Initialize the data cache if present (i.e. size > 0) and not - * optimizing for RTL simulation. - * RTL simulations can ensure the data cache is already initialized - * so skipping this loop speeds up RTL simulation. - */ - -#if NIOS2_DCACHE_SIZE > 0 && !defined(ALT_SIM_OPTIMIZE) - - /* Assume the data cache size is always a power of two. */ -#if NIOS2_DCACHE_SIZE > 0x8000 - movhi r2, %hi(NIOS2_DCACHE_SIZE) -#else - movui r2, NIOS2_DCACHE_SIZE -#endif - -0: - initd 0(r2) - addi r2, r2, -NIOS2_DCACHE_LINE_SIZE - bgt r2, zero, 0b -1: - - /* - * The following debug information tells the ISS not to run the loop above - * but to perform its actions using faster internal code. - */ - .pushsection .debug_alt_sim_info - .int 2, 1, 0b, 1b - .popsection - -#endif /* Initialize Data Cache */ - - /* Log that caches have been initialized. */ - ALT_LOG_PUTS(alt_log_msg_cache) - - /* Log that the stack pointer is about to be setup. */ - ALT_LOG_PUTS(alt_log_msg_stackpointer) - -#if (NIOS2_NUM_OF_SHADOW_REG_SETS == 0) - /* - * Now that the caches are initialized, set up the stack pointer. - * The value provided by the linker is assumed to be correctly aligned. - */ - movhi sp, %hi(__alt_stack_pointer) - ori sp, sp, %lo(__alt_stack_pointer) - - /* Set up the global pointer. */ - movhi gp, %hi(_gp) - ori gp, gp, %lo(_gp) - -#else /* NIOS2_NUM_OF_SHADOW_REG_SETS > 0 */ - - /* - * Set up the GP and SP in all shadow register sets. - */ - - /* - * Check current register set number, if CPU resets into a shadow register - * set, switch register set to 0 by writing zero to SSTATUS register and - * execute an ERET instruction that just jumps to the next PC address - * (use the NEXTPC instruction to get this). - */ - - rdctl r2, status - - /* Get the current register set number (STATUS.CRS). */ - andi r3, r2, NIOS2_STATUS_CRS_MSK - - /* Skip switch register set if STATUS.CRS is 0. */ - beq r3, zero, .Lskip_switch_reg_set - - .set nobreak - - /* Current register set is non-zero, set SSTATUS to 0. */ - mov sstatus, zero - - /* Get next pc and store in ea. */ - nextpc ea - - /* Point to instruction after eret. */ - addi ea, ea, 8 - - /* - * Execute ERET instruction that just jumps to the next PC address - */ - eret - -.Lskip_switch_reg_set: - mov r2, zero - - /* Reset STATUS register */ - wrctl status, r2 - - movui r3, NIOS2_NUM_OF_SHADOW_REG_SETS - - /* Set up the stack pointer in register set 0. */ - movhi sp, %hi(__alt_stack_pointer) - ori sp, sp, %lo(__alt_stack_pointer) - - /* Set up the global pointer in register set 0. */ - movhi gp, %hi(_gp) - ori gp, gp, %lo(_gp) - -.Lsetup_sp_and_gp_loop: - /* - * Setup GP and SP for shadow register set - * from NIOS2_NUM_OF_SHADOW_REG_SETS to 0 - */ - - /* Skip if number of register sets is 0. */ - beq r3, zero, .Lno_shadow_register_set - - - /* Add previous register set STATUS.PRS by 1 */ - movhi r4, 1 - add r2, r2, r4 - - /* Write STATUS */ - wrctl status, r2 - - /* Clear r0 in the shadow register set (not done by hardware) */ - wrprs r0, r0 - - /* Write the GP in previous register set */ - wrprs gp, gp - - /* Only write the SP in previous register set - * if using the seperate exception stack. For normal case (single stack), - * funnel code would read the SP from previous register set. - */ -#ifdef ALT_INTERRUPT_STACK - - movhi et, %hiadj(__alt_interrupt_stack_pointer) - addi et, et, %lo(__alt_interrupt_stack_pointer) - wrprs sp, et - -#endif /* ALT_INTERRUPT_STACK */ - - /* Decrease number of register set counter by 1 */ - addi r3, r3, -1 - - br .Lsetup_sp_and_gp_loop -.Lno_shadow_register_set: - -#endif /* NIOS2_NUM_OF_SHADOW_REG_SETS */ -/* - * Clear the BSS if not optimizing for RTL simulation. - * - * This uses the symbols: __bss_start and __bss_end, which are defined - * by the linker script. They mark the begining and the end of the bss - * region. The linker script guarantees that these values are word aligned. - */ -#ifndef ALT_SIM_OPTIMIZE - /* Log that the BSS is about to be cleared. */ - ALT_LOG_PUTS(alt_log_msg_bss) - - movhi r2, %hi(__bss_start) - ori r2, r2, %lo(__bss_start) - - movhi r3, %hi(__bss_end) - ori r3, r3, %lo(__bss_end) - - beq r2, r3, 1f - -0: - stw zero, (r2) - addi r2, r2, 4 - bltu r2, r3, 0b - -1: - - /* - * The following debug information tells the ISS not to run the loop above - * but to perform its actions using faster internal code. - */ - .pushsection .debug_alt_sim_info - .int 3, 1, 0b, 1b - .popsection -#endif /* ALT_SIM_OPTIMIZE */ - -/* - * The alt_load() facility is normally used when there is no bootloader. - * It copies some sections into RAM so it acts like a mini-bootloader. - */ -#ifdef CALL_ALT_LOAD - -#ifdef ALT_STACK_CHECK - /* - * If the user has selected stack checking then we need to set up a safe - * value in the stack limit register so that the relocation functions - * don't think the stack has overflowed (the contents of the rwdata - * section aren't defined until alt_load() has been called). - */ - mov et, zero -#endif - - call alt_load - -#endif /* CALL_ALT_LOAD */ - -#ifdef ALT_STACK_CHECK - /* - * Set up the stack limit (if required). The linker has set up the - * copy of the variable which is in memory. - */ - - ldw et, %gprel(alt_stack_limit_value)(gp) -#endif - - /* Log that alt_main is about to be called. */ - ALT_LOG_PUTS(alt_log_msg_alt_main) - - /* Call the C entry point. It should never return. */ - call alt_main - - /* Wait in infinite loop in case alt_main does return. */ -alt_after_alt_main: - br alt_after_alt_main - - .size _start, . - _start - -/* - * Add information about the stack base if stack overflow checking is enabled. - */ -#ifdef ALT_STACK_CHECK - .globl alt_stack_limit_value - .section .sdata,"aws",@progbits - .align 2 - .type alt_stack_limit_value, @object - .size alt_stack_limit_value, 4 -alt_stack_limit_value: - .long __alt_stack_limit -#endif diff --git a/software/qsys_tutorial_lcd4_bsp/Makefile b/software/qsys_tutorial_lcd4_bsp/Makefile deleted file mode 100644 index 0e63d38..0000000 --- a/software/qsys_tutorial_lcd4_bsp/Makefile +++ /dev/null @@ -1,775 +0,0 @@ -#------------------------------------------------------------------------------ -# BSP MAKEFILE -# -# This makefile was automatically generated by the nios2-bsp-generate-files -# command. Its purpose is to build a custom Board Support Package (BSP) -# targeting a specific Nios II processor in an SOPC Builder-based design. -# -# To create an application or library Makefile which uses this BSP, try the -# nios2-app-generate-makefile or nios2-lib-generate-makefile commands. -#------------------------------------------------------------------------------ - -#------------------------------------------------------------------------------ -# TOOLS -#------------------------------------------------------------------------------ - -MKDIR := mkdir -p -ECHO := echo -SPACE := $(empty) $(empty) - -#------------------------------------------------------------------------------ -# The adjust-path macro -# -# If COMSPEC is defined, Make is launched from Windows through -# Cygwin. This adjust-path macro will call 'cygpath -u' on all -# paths to ensure they are readable by Make. -# -# If COMSPEC is not defined, Make is launched from *nix, and no adjustment -# is necessary -#------------------------------------------------------------------------------ - -ifndef COMSPEC -ifdef ComSpec -COMSPEC = $(ComSpec) -endif # ComSpec -endif # !COMSPEC - -ifdef COMSPEC - adjust-path = $(subst $(SPACE),\$(SPACE),$(shell cygpath -u "$1")) - adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$(shell cygpath -m "$1")) -else - adjust-path = $(subst $(SPACE),\$(SPACE),$1) - adjust-path-mixed = $(subst $(SPACE),\$(SPACE),$1) -endif - -#------------------------------------------------------------------------------ -# DEFAULT TARGET -# -# The default target, "all", must appear before any other target in the -# Makefile. Note that extra prerequisites are added to the "all" rule later. -#------------------------------------------------------------------------------ -.PHONY: all -all: - @$(ECHO) [BSP build complete] - - -#------------------------------------------------------------------------------ -# PATHS & DIRECTORY NAMES -# -# Explicitly locate absolute path of the BSP root -#------------------------------------------------------------------------------ - -BSP_ROOT_DIR := . - -# Define absolute path to the root of the BSP. -ABS_BSP_ROOT := $(call adjust-path-mixed,$(shell pwd)) - -# Stash all BSP object files here -OBJ_DIR := ./obj - -NEWLIB_DIR = $(BSP_ROOT_DIR)/newlib - - -#------------------------------------------------------------------------------ -# MANAGED CONTENT -# -# All content between the lines "START MANAGED" and "END MANAGED" below is -# generated based on variables in the BSP settings file when the -# nios2-bsp-generate-files command is invoked. If you wish to persist any -# information pertaining to the build process, it is recomended that you -# utilize the BSP settings mechanism to do so. -# -# Note that most variable assignments in this section have a corresponding BSP -# setting that can be changed by using the nios2-bsp-create-settings or -# nios2-bsp-update-settings command before nios2-bsp-generate-files; if you -# want any variable set to a specific value when this Makefile is re-generated -# (to prevent hand-edits from being over-written), use the BSP settings -# facilities above. -#------------------------------------------------------------------------------ - -#START MANAGED - -# The following TYPE comment allows tools to identify the 'type' of target this -# makefile is associated with. -# TYPE: BSP_PRIVATE_MAKEFILE - -# This following VERSION comment indicates the version of the tool used to -# generate this makefile. A makefile variable is provided for VERSION as well. -# ACDS_VERSION: 13.0sp1 -ACDS_VERSION := 13.0sp1 - -# This following BUILD_NUMBER comment indicates the build number of the tool -# used to generate this makefile. -# BUILD_NUMBER: 232 - -SETTINGS_FILE := settings.bsp -SOPC_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo - -#------------------------------------------------------------------------------- -# TOOL & COMMAND DEFINITIONS -# -# The base command for each build operation are expressed here. Additional -# switches may be expressed here. They will run for all instances of the -# utility. -#------------------------------------------------------------------------------- - -# Archiver command. Creates library files. -AR = nios2-elf-ar - -# Assembler command. Note that CC is used for .S files. -AS = nios2-elf-gcc - -# Custom flags only passed to the archiver. This content of this variable is -# directly passed to the archiver rather than the more standard "ARFLAGS". The -# reason for this is that GNU Make assumes some default content in ARFLAGS. -# This setting defines the value of BSP_ARFLAGS in Makefile. -BSP_ARFLAGS = -src - -# Custom flags only passed to the assembler. This setting defines the value of -# BSP_ASFLAGS in Makefile. -BSP_ASFLAGS = -Wa,-gdwarf2 - -# C/C++ compiler debug level. '-g' provides the default set of debug symbols -# typically required to debug a typical application. Omitting '-g' removes -# debug symbols from the ELF. This setting defines the value of -# BSP_CFLAGS_DEBUG in Makefile. -BSP_CFLAGS_DEBUG = -g - -# C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" -# optimization, etc. "-O0" is recommended for code that you want to debug since -# compiler optimization can remove variables and produce non-sequential -# execution of code while debugging. This setting defines the value of -# BSP_CFLAGS_OPTIMIZATION in Makefile. -BSP_CFLAGS_OPTIMIZATION = -O0 - -# C/C++ compiler warning level. "-Wall" is commonly used.This setting defines -# the value of BSP_CFLAGS_WARNINGS in Makefile. -BSP_CFLAGS_WARNINGS = -Wall - -# C compiler command. -CC = nios2-elf-gcc -xc - -# C++ compiler command. -CXX = nios2-elf-gcc -xc++ - -# Command used to remove files during 'clean' target. -RM = rm -f - - -#------------------------------------------------------------------------------- -# BUILD PRE & POST PROCESS COMMANDS -# -# The following variables are treated as shell commands in the rule -# definitions for each file-type associated with the BSP build, as well as -# commands run at the beginning and end of the entire BSP build operation. -# Pre-process commands are executed before the relevant command (for example, -# a command defined in the "CC_PRE_PROCESS" variable executes before the C -# compiler for building .c files), while post-process commands are executed -# immediately afterwards. -# -# You can view each pre/post-process command in the "Build Rules: All & -# Clean", "Pattern Rules to Build Objects", and "Library Rules" sections of -# this Makefile. -#------------------------------------------------------------------------------- - - -#------------------------------------------------------------------------------- -# BSP SOURCE BUILD SETTINGS (FLAG GENERATION) -# -# Software build settings such as compiler optimization, debug level, warning -# flags, etc., may be defined in the following variables. The variables below -# are concatenated together in the 'Flags' section of this Makefile to form -# final variables of flags passed to the build tools. -# -# These settings are considered private to the BSP and apply to all library & -# driver files in it; they do NOT automatically propagate to, for example, the -# build settings for an application. -# # For additional detail and syntax requirements, please refer to GCC help -# (example: "nios2-elf-gcc --help --verbose"). -# -# Unless indicated otherwise, multiple entries in each variable should be -# space-separated. -#------------------------------------------------------------------------------- - -# Altera HAL alt_sys_init.c generated source file -GENERATED_C_FILES := $(ABS_BSP_ROOT)/alt_sys_init.c -GENERATED_C_LIB_SRCS += alt_sys_init.c - - -#------------------------------------------------------------------------------- -# BSP SOURCE FILE LISTING -# -# All source files that comprise the BSP are listed here, along with path -# information to each file expressed relative to the BSP root. The precise -# list and location of each file is derived from the driver, operating system, -# or software package source file declarations. -# -# Following specification of the source files for each component, driver, etc., -# each source file type (C, assembly, etc.) is concatenated together and used -# to construct a list of objects. Pattern rules to build each object are then -# used to build each file. -#------------------------------------------------------------------------------- - -# altera_avalon_jtag_uart_driver sources root -altera_avalon_jtag_uart_driver_SRCS_ROOT := drivers - -# altera_avalon_jtag_uart_driver sources -altera_avalon_jtag_uart_driver_C_LIB_SRCS := \ - $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_init.c \ - $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_read.c \ - $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_write.c \ - $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_ioctl.c \ - $(altera_avalon_jtag_uart_driver_SRCS_ROOT)/src/altera_avalon_jtag_uart_fd.c - -# altera_avalon_lcd_16207_driver sources root -altera_avalon_lcd_16207_driver_SRCS_ROOT := drivers - -# altera_avalon_lcd_16207_driver sources -altera_avalon_lcd_16207_driver_C_LIB_SRCS := \ - $(altera_avalon_lcd_16207_driver_SRCS_ROOT)/src/altera_avalon_lcd_16207.c \ - $(altera_avalon_lcd_16207_driver_SRCS_ROOT)/src/altera_avalon_lcd_16207_fd.c - -# altera_avalon_pio_driver sources root -altera_avalon_pio_driver_SRCS_ROOT := drivers - -# altera_avalon_pio_driver sources -# altera_nios2_qsys_hal_driver sources root -altera_nios2_qsys_hal_driver_SRCS_ROOT := HAL - -# altera_nios2_qsys_hal_driver sources -altera_nios2_qsys_hal_driver_C_LIB_SRCS := \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/altera_nios2_qsys_irq.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_usleep.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_busy_sleep.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_vars.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_icache_flush_all.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_all.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_dcache_flush_no_writeback.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_instruction_exception_entry.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_register.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_iic.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_cached.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_remap_uncached.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_free.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_uncached_malloc.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_ctors.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_do_dtors.c \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_gmon.c - -altera_nios2_qsys_hal_driver_ASM_LIB_SRCS := \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_entry.S \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_trap.S \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_exception_muldiv.S \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_irq_entry.S \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_software_exception.S \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_mcount.S \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/alt_log_macro.S \ - $(altera_nios2_qsys_hal_driver_SRCS_ROOT)/src/crt0.S - -# hal sources root -hal_SRCS_ROOT := HAL - -# hal sources -hal_C_LIB_SRCS := \ - $(hal_SRCS_ROOT)/src/alt_alarm_start.c \ - $(hal_SRCS_ROOT)/src/alt_close.c \ - $(hal_SRCS_ROOT)/src/alt_dev.c \ - $(hal_SRCS_ROOT)/src/alt_dev_llist_insert.c \ - $(hal_SRCS_ROOT)/src/alt_dma_rxchan_open.c \ - $(hal_SRCS_ROOT)/src/alt_dma_txchan_open.c \ - $(hal_SRCS_ROOT)/src/alt_environ.c \ - $(hal_SRCS_ROOT)/src/alt_env_lock.c \ - $(hal_SRCS_ROOT)/src/alt_errno.c \ - $(hal_SRCS_ROOT)/src/alt_execve.c \ - $(hal_SRCS_ROOT)/src/alt_exit.c \ - $(hal_SRCS_ROOT)/src/alt_fcntl.c \ - $(hal_SRCS_ROOT)/src/alt_fd_lock.c \ - $(hal_SRCS_ROOT)/src/alt_fd_unlock.c \ - $(hal_SRCS_ROOT)/src/alt_find_dev.c \ - $(hal_SRCS_ROOT)/src/alt_find_file.c \ - $(hal_SRCS_ROOT)/src/alt_flash_dev.c \ - $(hal_SRCS_ROOT)/src/alt_fork.c \ - $(hal_SRCS_ROOT)/src/alt_fs_reg.c \ - $(hal_SRCS_ROOT)/src/alt_fstat.c \ - $(hal_SRCS_ROOT)/src/alt_get_fd.c \ - $(hal_SRCS_ROOT)/src/alt_getchar.c \ - $(hal_SRCS_ROOT)/src/alt_getpid.c \ - $(hal_SRCS_ROOT)/src/alt_gettod.c \ - $(hal_SRCS_ROOT)/src/alt_iic_isr_register.c \ - $(hal_SRCS_ROOT)/src/alt_instruction_exception_register.c \ - $(hal_SRCS_ROOT)/src/alt_ioctl.c \ - $(hal_SRCS_ROOT)/src/alt_io_redirect.c \ - $(hal_SRCS_ROOT)/src/alt_irq_handler.c \ - $(hal_SRCS_ROOT)/src/alt_isatty.c \ - $(hal_SRCS_ROOT)/src/alt_kill.c \ - $(hal_SRCS_ROOT)/src/alt_link.c \ - $(hal_SRCS_ROOT)/src/alt_load.c \ - $(hal_SRCS_ROOT)/src/alt_log_printf.c \ - $(hal_SRCS_ROOT)/src/alt_lseek.c \ - $(hal_SRCS_ROOT)/src/alt_main.c \ - $(hal_SRCS_ROOT)/src/alt_malloc_lock.c \ - $(hal_SRCS_ROOT)/src/alt_open.c \ - $(hal_SRCS_ROOT)/src/alt_printf.c \ - $(hal_SRCS_ROOT)/src/alt_putchar.c \ - $(hal_SRCS_ROOT)/src/alt_putstr.c \ - $(hal_SRCS_ROOT)/src/alt_read.c \ - $(hal_SRCS_ROOT)/src/alt_release_fd.c \ - $(hal_SRCS_ROOT)/src/alt_rename.c \ - $(hal_SRCS_ROOT)/src/alt_sbrk.c \ - $(hal_SRCS_ROOT)/src/alt_settod.c \ - $(hal_SRCS_ROOT)/src/alt_stat.c \ - $(hal_SRCS_ROOT)/src/alt_tick.c \ - $(hal_SRCS_ROOT)/src/alt_times.c \ - $(hal_SRCS_ROOT)/src/alt_unlink.c \ - $(hal_SRCS_ROOT)/src/alt_wait.c \ - $(hal_SRCS_ROOT)/src/alt_write.c - - -# Assemble all component C source files -COMPONENT_C_LIB_SRCS += \ - $(altera_avalon_jtag_uart_driver_C_LIB_SRCS) \ - $(altera_avalon_lcd_16207_driver_C_LIB_SRCS) \ - $(altera_nios2_qsys_hal_driver_C_LIB_SRCS) \ - $(hal_C_LIB_SRCS) - -# Assemble all component assembly source files -COMPONENT_ASM_LIB_SRCS += \ - $(altera_nios2_qsys_hal_driver_ASM_LIB_SRCS) - -# Assemble all component C++ source files -COMPONENT_CPP_LIB_SRCS += \ - -#END MANAGED - -#------------------------------------------------------------------------------ -# PUBLIC.MK -# -# The generated public.mk file contains BSP information that is shared with -# other external makefiles, such as a Nios II application makefile. System- -# dependent information such as hardware-specific compiler flags and -# simulation file generation are stored here. -# -# In addition, public.mk contains include paths that various software, -# such as a device driver, may need for the C compiler. These paths are -# written to public.mk with respect to the BSP root. In public.mk, each -# path is prefixed with a special variable, $(ALT_LIBRARY_ROOT_DIR). The -# purpose of this variable is to allow an external Makefile to append on -# path information to precisely locate paths expressed in public.mk -# Since this is the BSP Makefile, we set ALT_LIBRARY_ROOT_DIR to point right -# here ("."), at the BSP root. -# -# ALT_LIBRARY_ROOT_DIR must always be set before public.mk is included. -#------------------------------------------------------------------------------ -ALT_LIBRARY_ROOT_DIR := . -include public.mk - - -#------------------------------------------------------------------------------ -# FLAGS -# -# Include paths for BSP files are written into the public.mk file and must -# be added to the existing list of pre-processor flags. In addition, "hooks" -# for standard flags left intentionally empty (CFLAGS, CPPFLAGS, ASFLAGS, -# and CXXFLAGS) are provided for conveniently adding to the relevant flags -# on the command-line or via script that calls make. -#------------------------------------------------------------------------------ -# Assemble final list of compiler flags from generated content -BSP_CFLAGS += \ - $(BSP_CFLAGS_DEFINED_SYMBOLS) \ - $(BSP_CFLAGS_UNDEFINED_SYMBOLS) \ - $(BSP_CFLAGS_OPTIMIZATION) \ - $(BSP_CFLAGS_DEBUG) \ - $(BSP_CFLAGS_WARNINGS) \ - $(BSP_CFLAGS_USER_FLAGS) \ - $(ALT_CFLAGS) \ - $(CFLAGS) - -# Make ready the final list of include directories and other C pre-processor -# flags. Each include path is made ready by prefixing it with "-I". -BSP_CPPFLAGS += \ - $(addprefix -I, $(BSP_INC_DIRS)) \ - $(addprefix -I, $(ALT_INCLUDE_DIRS)) \ - $(ALT_CPPFLAGS) \ - $(CPPFLAGS) - -# Finish off assembler flags with any user-provided flags -BSP_ASFLAGS += $(ASFLAGS) - -# Finish off C++ flags with any user-provided flags -BSP_CXXFLAGS += $(CXXFLAGS) - -# And finally, the ordered list -C_SRCS += $(GENERATED_C_LIB_SRCS) \ - $(COMPONENT_C_LIB_SRCS) - -CXX_SRCS += $(GENERATED_CPP_LIB_SRCS) \ - $(COMPONENT_CPP_LIB_SRCS) - -ASM_SRCS += $(GENERATED_ASM_LIB_SRCS) \ - $(COMPONENT_ASM_LIB_SRCS) - - -#------------------------------------------------------------------------------ -# LIST OF GENERATED FILES -# -# A Nios II BSP relies on the generation of several source files used -# by both the BSP and any applications referencing the BSP. -#------------------------------------------------------------------------------ - - -GENERATED_H_FILES := $(ABS_BSP_ROOT)/system.h - -GENERATED_LINKER_SCRIPT := $(ABS_BSP_ROOT)/linker.x - -GENERATED_FILES += $(GENERATED_H_FILES) \ - $(GENERATED_LINKER_SCRIPT) - - -#------------------------------------------------------------------------------ -# SETUP TO BUILD OBJECTS -# -# List of object files which are to be built. This is constructed from the input -# list of C source files (C_SRCS), C++ source files (CXX_SRCS), and assembler -# source file (ASM_SRCS). The permitted file extensions are: -# -# .c .C - for C files -# .cxx .cc .cpp .CXX .CC .CPP - for C++ files -# .S .s - for assembly files -# -# Extended description: The list of objects is a sorted list (duplicates -# removed) of all possible objects, placed beneath the ./obj directory, -# including any path information stored in the "*_SRCS" variable. The -# "patsubst" commands are used to concatenate together multiple file suffix -# types for common files (i.e. c++ as .cxx, .cc, .cpp). -# -# File extensions are case-insensitive in build rules with the exception of -# assembly sources. Nios II assembly sources with the ".S" extension are first -# run through the C preprocessor. Sources with the ".s" extension are not. -#------------------------------------------------------------------------------ -OBJS = $(sort $(addprefix $(OBJ_DIR)/, \ - $(patsubst %.c, %.o, $(patsubst %.C, %.o, $(C_SRCS))) \ - $(patsubst %.cxx, %.o, $(patsubst %.CXX, %.o, \ - $(patsubst %.cc, %.o, $(patsubst %.CC, %.o, \ - $(patsubst %.cpp, %.o, $(patsubst %.CPP, %.o, \ - $(CXX_SRCS) )))))) \ - $(patsubst %.S, %.o, $(patsubst %.s, %.o, $(ASM_SRCS))) )) - -# List of dependancy files for each object file. -DEPS = $(OBJS:.o=.d) - - -# Rules to force your project to rebuild or relink -# .force_relink file will cause any application that depends on this project to relink -# .force_rebuild file will cause this project to rebuild object files -# .force_rebuild_all file will cause this project and any project that depends on this project to rebuild object files - -FORCE_RELINK_DEP := .force_relink -FORCE_REBUILD_DEP := .force_rebuild -FORCE_REBUILD_ALL_DEP := .force_rebuild_all -FORCE_REBUILD_DEP_LIST := $(FORCE_RELINK_DEP) $(FORCE_REBUILD_DEP) $(FORCE_REBUILD_ALL_DEP) - -$(FORCE_REBUILD_DEP_LIST): - -$(OBJS): $(wildcard $(FORCE_REBUILD_DEP)) $(wildcard $(FORCE_REBUILD_ALL_DEP)) - - -#------------------------------------------------------------------------------ -# BUILD RULES: ALL & CLEAN -#------------------------------------------------------------------------------ -.DELETE_ON_ERROR: - -.PHONY: all -all: build_pre_process -all: Makefile $(GENERATED_FILES) $(BSP_LIB) $(NEWLIB_DIR) -all: build_post_process - - -# clean: remove .o/.a/.d -.PHONY: clean -clean: - @$(RM) -r $(BSP_LIB) $(OBJ_DIR) $(FORCE_REBUILD_DEP_LIST) -ifneq ($(wildcard $(NEWLIB_DIR)),) - @$(RM) -r $(NEWLIB_DIR) -endif - @$(ECHO) [BSP clean complete] - - -#------------------------------------------------------------------------------ -# BUILD PRE/POST PROCESS -#------------------------------------------------------------------------------ -build_pre_process : - $(BUILD_PRE_PROCESS) - -build_post_process : - $(BUILD_POST_PROCESS) - -.PHONY: build_pre_process build_post_process - - - -#------------------------------------------------------------------------------ -# MAKEFILE UP TO DATE? -# -# Is this very Makefile up to date? Someone may have changed the BSP settings -# file or the associated target hardware. -#------------------------------------------------------------------------------ -# Skip this check when clean is the only target -ifneq ($(MAKECMDGOALS),clean) - -ifneq ($(wildcard $(SETTINGS_FILE)),$(SETTINGS_FILE)) -$(warning Warning: BSP Settings File $(SETTINGS_FILE) could not be found.) -endif - -Makefile: $(wildcard $(SETTINGS_FILE)) - @$(ECHO) Makefile not up to date. - @$(ECHO) $(SETTINGS_FILE) has been modified since the BSP Makefile was generated. - @$(ECHO) - @$(ECHO) Generate the BSP to update the Makefile, and then build again. - @$(ECHO) - @$(ECHO) To generate from Eclipse: - @$(ECHO) " 1. Right-click the BSP project." - @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." - @$(ECHO) - @$(ECHO) To generate from the command line: - @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" - @$(ECHO) - @exit 1 - -ifneq ($(wildcard $(SOPC_FILE)),$(SOPC_FILE)) -$(warning Warning: SOPC File $(SOPC_FILE) could not be found.) -endif - -public.mk: $(wildcard $(SOPC_FILE)) - @$(ECHO) Makefile not up to date. - @$(ECHO) $(SOPC_FILE) has been modified since the BSP was generated. - @$(ECHO) - @$(ECHO) Generate the BSP to update the Makefile, and then build again. - @$(ECHO) - @$(ECHO) To generate from Eclipse: - @$(ECHO) " 1. Right-click the BSP project." - @$(ECHO) " 2. In the Nios II Menu, click Generate BSP." - @$(ECHO) - @$(ECHO) To generate from the command line: - @$(ECHO) " nios2-bsp-generate-files --settings= --bsp-dir=" - @$(ECHO) - @exit 1 - -endif # $(MAKECMDGOALS) != clean - -#------------------------------------------------------------------------------ -# PATTERN RULES TO BUILD OBJECTS -#------------------------------------------------------------------------------ -$(OBJ_DIR)/%.o: %.c - @$(ECHO) Compiling $( - -/* - * Device headers - */ - -#include "altera_nios2_qsys_irq.h" -#include "altera_avalon_jtag_uart.h" -#include "altera_avalon_lcd_16207.h" - -/* - * Allocate the device storage - */ - -ALTERA_NIOS2_QSYS_IRQ_INSTANCE ( NIOS2_PROCESSOR, nios2_processor); -ALTERA_AVALON_JTAG_UART_INSTANCE ( JTAG_UART, jtag_uart); -ALTERA_AVALON_LCD_16207_INSTANCE ( LCD_16207_0, lcd_16207_0); - -/* - * Initialize the interrupt controller devices - * and then enable interrupts in the CPU. - * Called before alt_sys_init(). - * The "base" parameter is ignored and only - * present for backwards-compatibility. - */ - -void alt_irq_init ( const void* base ) -{ - ALTERA_NIOS2_QSYS_IRQ_INIT ( NIOS2_PROCESSOR, nios2_processor); - alt_irq_cpu_enable_interrupts(); -} - -/* - * Initialize the non-interrupt controller devices. - * Called after alt_irq_init(). - */ - -void alt_sys_init( void ) -{ - ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART, jtag_uart); - ALTERA_AVALON_LCD_16207_INIT ( LCD_16207_0, lcd_16207_0); -} diff --git a/software/qsys_tutorial_lcd4_bsp/create-this-bsp b/software/qsys_tutorial_lcd4_bsp/create-this-bsp deleted file mode 100644 index 1228b16..0000000 --- a/software/qsys_tutorial_lcd4_bsp/create-this-bsp +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/bash -# -# This script creates the ucosii_net_zipfs Board Support Package (BSP). - -BSP_TYPE=hal -BSP_DIR=. -SOPC_DIR=../../ -SOPC_FILE=C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo -NIOS2_BSP_ARGS="" -CPU_NAME= - - -# Don't run make if create-this-app script is called with --no-make arg -SKIP_MAKE= -while [ $# -gt 0 ] -do - case "$1" in - --no-make) - SKIP_MAKE=1 - ;; - *) - NIOS2_BSP_ARGS="$NIOS2_BSP_ARGS $1" - ;; - esac - shift -done - - -# Run nios2-bsp utility to create a hal BSP in this directory -# for the system with a .sopc file in $SOPC_FILE. -# Deprecating $SOPC_DIR in 10.1. Multiple .sopcinfo files in a directory may exist. - -if [ -z "$SOPC_FILE" ]; then - echo "WARNING: Use of a directory for locating a .sopcinfo file is deprecated in 10.1. Multiple .sopcinfo files may exist. You must specify the full .sopcinfo path." - cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_DIR $NIOS2_BSP_ARGS $CPU_NAME" -else - cmd="nios2-bsp $BSP_TYPE $BSP_DIR $SOPC_FILE $NIOS2_BSP_ARGS $CPU_NAME" -fi - - -echo "create-this-bsp: Running \"$cmd\"" -$cmd || { - echo "$cmd failed" - exit 1 -} -if [ -z "$SKIP_MAKE" ]; then - echo "create-this-bsp: Running make" - make -fi diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_jtag_uart.h b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_jtag_uart.h deleted file mode 100644 index 3168183..0000000 --- a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_jtag_uart.h +++ /dev/null @@ -1,198 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#ifndef __ALT_AVALON_JTAG_UART_H__ -#define __ALT_AVALON_JTAG_UART_H__ - -#include - -#include "sys/alt_alarm.h" -#include "sys/alt_warning.h" - -#include "os/alt_sem.h" -#include "os/alt_flag.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * If the user wants all drivers to be small rather than fast then make sure - * this one is marked as needing to be small. - */ -#if defined ALT_USE_SMALL_DRIVERS && !defined ALTERA_AVALON_JTAG_UART_SMALL -#define ALTERA_AVALON_JTAG_UART_SMALL -#endif - -/* - * If the user wants to ignore FIFO full error after timeout - */ -#if defined ALT_JTAG_UART_IGNORE_FIFO_FULL_ERROR && !defined ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR -#define ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR -#endif - -/* - * Constants that can be overriden. - */ -#ifndef ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT -#define ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT 10 -#endif - -#ifndef ALTERA_AVALON_JTAG_UART_BUF_LEN -#define ALTERA_AVALON_JTAG_UART_BUF_LEN 2048 -#endif - -/* - * ALT_JTAG_UART_READ_RDY and ALT_JTAG_UART_WRITE_RDY are the bitmasks - * that define uC/OS-II event flags that are releated to this device. - * - * ALT_JTAG_UART_READ_RDY indicates that there is read data in the buffer - * ready to be processed. ALT_JTAG_UART_WRITE_RDY indicates that the transmitter is - * ready for more data. - */ -#define ALT_JTAG_UART_READ_RDY 0x1 -#define ALT_JTAG_UART_WRITE_RDY 0x2 -#define ALT_JTAG_UART_TIMEOUT 0x4 - -/* - * State structure definition. Each instance of the driver uses one - * of these structures to hold its associated state. - */ - -typedef struct altera_avalon_jtag_uart_state_s -{ - unsigned int base; - -#ifndef ALTERA_AVALON_JTAG_UART_SMALL - - unsigned int timeout; /* Timeout until host is assumed inactive */ - alt_alarm alarm; - unsigned int irq_enable; - unsigned int host_inactive; - - ALT_SEM (read_lock) - ALT_SEM (write_lock) - ALT_FLAG_GRP (events) - - /* The variables below are volatile because they are modified by the - * interrupt routine. Making them volatile and reading them atomically - * means that we don't need any large critical sections. - */ - volatile unsigned int rx_in; - unsigned int rx_out; - unsigned int tx_in; - volatile unsigned int tx_out; - char rx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; - char tx_buf[ALTERA_AVALON_JTAG_UART_BUF_LEN]; - -#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ - -} altera_avalon_jtag_uart_state; - -/* - * Macros used by alt_sys_init when the ALT file descriptor facility isn't used. - */ - -#ifdef ALTERA_AVALON_JTAG_UART_SMALL - -#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ - altera_avalon_jtag_uart_state state = \ - { \ - name##_BASE, \ - } - -#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) - -#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ - -#define ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) \ - altera_avalon_jtag_uart_state state = \ - { \ - name##_BASE, \ - ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ - } - -/* - * Externally referenced routines - */ -extern void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, - int irq_controller_id, int irq); - -#define ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) \ - { \ - if (name##_IRQ == ALT_IRQ_NOT_CONNECTED) \ - { \ - ALT_LINK_ERROR ("Error: Interrupt not connected for " #name ". " \ - "You have selected the interrupt driven version of " \ - "the ALTERA Avalon JTAG UART driver, but the " \ - "interrupt is not connected for this device. You can " \ - "select a polled mode driver by checking the 'small " \ - "driver' option in the HAL configuration window, or " \ - "by using the -DALTERA_AVALON_JTAG_UART_SMALL " \ - "preprocessor flag."); \ - } \ - else \ - altera_avalon_jtag_uart_init(&state, \ - name##_IRQ_INTERRUPT_CONTROLLER_ID, \ - name##_IRQ); \ - } - -#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ - -/* - * Include in case non-direct version of driver required. - */ -#include "altera_avalon_jtag_uart_fd.h" - -/* - * Map alt_sys_init macros to direct or non-direct versions. - */ -#ifdef ALT_USE_DIRECT_DRIVERS - -#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, state) \ - ALTERA_AVALON_JTAG_UART_STATE_INSTANCE(name, state) -#define ALTERA_AVALON_JTAG_UART_INIT(name, state) \ - ALTERA_AVALON_JTAG_UART_STATE_INIT(name, state) - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -#define ALTERA_AVALON_JTAG_UART_INSTANCE(name, dev) \ - ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, dev) -#define ALTERA_AVALON_JTAG_UART_INIT(name, dev) \ - ALTERA_AVALON_JTAG_UART_DEV_INIT(name, dev) - -#endif /* ALT_USE_DIRECT_DRIVERS */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __ALT_AVALON_JTAG_UART_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h deleted file mode 100644 index 183bd3f..0000000 --- a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_jtag_uart_fd.h +++ /dev/null @@ -1,125 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#ifndef __ALT_AVALON_JTAG_UART_FD_H__ -#define __ALT_AVALON_JTAG_UART_FD_H__ - -#include "sys/alt_dev.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * Externally referenced routines - */ -extern int altera_avalon_jtag_uart_read_fd (alt_fd* fd, char* ptr, int len); -extern int altera_avalon_jtag_uart_write_fd (alt_fd* fd, const char* ptr, - int len); - -/* - * Device structure definition. This is needed by alt_sys_init in order to - * reserve memory for the device instance. - */ - -typedef struct altera_avalon_jtag_uart_dev_s -{ - alt_dev dev; - altera_avalon_jtag_uart_state state; -} altera_avalon_jtag_uart_dev; - -/* - * Macros used by alt_sys_init when the ALT file descriptor facility is used. - */ - -#ifdef ALTERA_AVALON_JTAG_UART_SMALL - -#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ - static altera_avalon_jtag_uart_dev d = \ - { \ - { \ - ALT_LLIST_ENTRY, \ - name##_NAME, \ - NULL, /* open */ \ - NULL, /* close */ \ - altera_avalon_jtag_uart_read_fd, \ - altera_avalon_jtag_uart_write_fd, \ - NULL, /* lseek */ \ - NULL, /* fstat */ \ - NULL, /* ioctl */ \ - }, \ - { \ - name##_BASE, \ - } \ - } - -#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) alt_dev_reg (&d.dev) - -#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ - -extern int altera_avalon_jtag_uart_close_fd(alt_fd* fd); -extern int altera_avalon_jtag_uart_ioctl_fd (alt_fd* fd, int req, void* arg); - -#define ALTERA_AVALON_JTAG_UART_DEV_INSTANCE(name, d) \ - static altera_avalon_jtag_uart_dev d = \ - { \ - { \ - ALT_LLIST_ENTRY, \ - name##_NAME, \ - NULL, /* open */ \ - altera_avalon_jtag_uart_close_fd, \ - altera_avalon_jtag_uart_read_fd, \ - altera_avalon_jtag_uart_write_fd, \ - NULL, /* lseek */ \ - NULL, /* fstat */ \ - altera_avalon_jtag_uart_ioctl_fd, \ - }, \ - { \ - name##_BASE, \ - ALTERA_AVALON_JTAG_UART_DEFAULT_TIMEOUT, \ - } \ - } - -#define ALTERA_AVALON_JTAG_UART_DEV_INIT(name, d) \ - { \ - ALTERA_AVALON_JTAG_UART_STATE_INIT(name, d.state); \ - \ - /* make the device available to the system */ \ - alt_dev_reg(&d.dev); \ - } - -#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __ALT_AVALON_JTAG_UART_FD_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h deleted file mode 100644 index 8fe6b80..0000000 --- a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_jtag_uart_regs.h +++ /dev/null @@ -1,73 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#ifndef __ALTERA_AVALON_JTAG_UART_REGS_H__ -#define __ALTERA_AVALON_JTAG_UART_REGS_H__ - -#include - -#define ALTERA_AVALON_JTAG_UART_DATA_REG 0 -#define IOADDR_ALTERA_AVALON_JTAG_UART_DATA(base) \ - __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_DATA_REG) -#define IORD_ALTERA_AVALON_JTAG_UART_DATA(base) \ - IORD(base, ALTERA_AVALON_JTAG_UART_DATA_REG) -#define IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, data) \ - IOWR(base, ALTERA_AVALON_JTAG_UART_DATA_REG, data) - -#define ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK (0x000000FF) -#define ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST (0) -#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK (0x00008000) -#define ALTERA_AVALON_JTAG_UART_DATA_RVALID_OFST (15) -#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK (0xFFFF0000) -#define ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST (16) - - -#define ALTERA_AVALON_JTAG_UART_CONTROL_REG 1 -#define IOADDR_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ - __IO_CALC_ADDRESS_NATIVE(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) -#define IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) \ - IORD(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG) -#define IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, data) \ - IOWR(base, ALTERA_AVALON_JTAG_UART_CONTROL_REG, data) - -#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK (0x00000001) -#define ALTERA_AVALON_JTAG_UART_CONTROL_RE_OFST (0) -#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK (0x00000002) -#define ALTERA_AVALON_JTAG_UART_CONTROL_WE_OFST (1) -#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK (0x00000100) -#define ALTERA_AVALON_JTAG_UART_CONTROL_RI_OFST (8) -#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK (0x00000200) -#define ALTERA_AVALON_JTAG_UART_CONTROL_WI_OFST (9) -#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK (0x00000400) -#define ALTERA_AVALON_JTAG_UART_CONTROL_AC_OFST (10) -#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK (0xFFFF0000) -#define ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST (16) - -#endif /* __ALTERA_AVALON_JTAG_UART_REGS_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_lcd_16207.h b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_lcd_16207.h deleted file mode 100644 index 526ef17..0000000 --- a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_lcd_16207.h +++ /dev/null @@ -1,158 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#ifndef __ALTERA_AVALON_LCD_16207_H__ -#define __ALTERA_AVALON_LCD_16207_H__ - -#include - -#include "sys/alt_alarm.h" -#include "os/alt_sem.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * The altera_avalon_lcd_16207_dev structure is used to hold device specific - * data. This includes the transmit and receive buffers. - * - * An instance of this structure is created in the auto-generated - * alt_sys_init.c file for each UART listed in the systems PTF file. This is - * done using the ALTERA_AVALON_LCD_16207_STATE_INSTANCE macro given below. - */ - -#define ALT_LCD_HEIGHT 2 -#define ALT_LCD_WIDTH 16 -#define ALT_LCD_VIRTUAL_WIDTH 80 - -typedef struct altera_avalon_lcd_16207_state_s -{ - int base; - - alt_alarm alarm; - int period; - - char broken; - - unsigned char x; - unsigned char y; - char address; - char esccount; - - char scrollpos; - char scrollmax; - char active; /* If non-zero then the foreground routines are - * active so the timer call must not update the - * display. */ - - char escape[8]; - - struct - { - char visible[ALT_LCD_WIDTH]; - char data[ALT_LCD_VIRTUAL_WIDTH+1]; - char width; - unsigned char speed; - - } line[ALT_LCD_HEIGHT]; - - ALT_SEM (write_lock)/* Semaphore used to control access to the - * write buffer in multi-threaded mode */ -} altera_avalon_lcd_16207_state; - -/* - * Called by alt_sys_init.c to initialize the driver. - */ -extern void altera_avalon_lcd_16207_init(altera_avalon_lcd_16207_state* sp); - -/* - * The LCD panel driver is not trivial, so leave it out in the small - * drivers case. Also leave it out in simulation because there is no - * simulated hardware for the LCD panel. These two can be overridden - * by defining ALT_USE_LCE_16207 if you really want it. - */ - -#if (!defined(ALT_USE_SMALL_DRIVERS) && !defined(ALT_SIM_OPTIMIZE)) || defined ALT_USE_LCD_16207 - -/* - * Used by the auto-generated file - * alt_sys_init.c to create an instance of this device driver. - */ -#define ALTERA_AVALON_LCD_16207_STATE_INSTANCE(name, state) \ - altera_avalon_lcd_16207_state state = \ - { \ - name##_BASE \ - } - -/* - * The macro ALTERA_AVALON_LCD_16207_INIT is used by the auto-generated file - * alt_sys_init.c to initialize an instance of the device driver. - */ -#define ALTERA_AVALON_LCD_16207_STATE_INIT(name, state) \ - altera_avalon_lcd_16207_init(&state) - -#else /* exclude driver */ - -#define ALTERA_AVALON_LCD_16207_STATE_INSTANCE(name, state) extern int alt_no_storage -#define ALTERA_AVALON_LCD_16207_STATE_INIT(name, state) while (0) - -#endif /* exclude driver */ - -/* - * Include in case non-direct version of driver required. - */ -#include "altera_avalon_lcd_16207_fd.h" - -/* - * Map alt_sys_init macros to direct or non-direct versions. - */ -#ifdef ALT_USE_DIRECT_DRIVERS - -#define ALTERA_AVALON_LCD_16207_INSTANCE(name, state) \ - ALTERA_AVALON_LCD_16207_STATE_INSTANCE(name, state) -#define ALTERA_AVALON_LCD_16207_INIT(name, state) \ - ALTERA_AVALON_LCD_16207_STATE_INIT(name, state) - -#else /* !ALT_USE_DIRECT_DRIVERS */ - -#define ALTERA_AVALON_LCD_16207_INSTANCE(name, dev) \ - ALTERA_AVALON_LCD_16207_DEV_INSTANCE(name, dev) -#define ALTERA_AVALON_LCD_16207_INIT(name, dev) \ - ALTERA_AVALON_LCD_16207_DEV_INIT(name, dev) - -#endif /* ALT_USE_DIRECT_DRIVERS */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __ALTERA_AVALON_LCD_16207_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_lcd_16207_fd.h b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_lcd_16207_fd.h deleted file mode 100644 index 88436c0..0000000 --- a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_lcd_16207_fd.h +++ /dev/null @@ -1,108 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#ifndef __ALTERA_AVALON_LCD_16207_FD_H__ -#define __ALTERA_AVALON_LCD_16207_FD_H__ - -#include "sys/alt_dev.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -/* - * Externally referenced routines - */ -extern int altera_avalon_lcd_16207_write_fd(alt_fd* fd, const char* ptr, - int len); - -/* - * Device structure definition. This is needed by alt_sys_init in order to - * reserve memory for the device instance. - */ - -typedef struct altera_avalon_lcd_16207_dev_s -{ - alt_dev dev; - altera_avalon_lcd_16207_state state; -} altera_avalon_lcd_16207_dev; - -/* - * The LCD panel driver is not trivial, so leave it out in the small - * drivers case. Also leave it out in simulation because there is no - * simulated hardware for the LCD panel. These two can be overridden - * by defining ALT_USE_LCE_16207 if you really want it. - */ - -#if (!defined(ALT_USE_SMALL_DRIVERS) && !defined(ALT_SIM_OPTIMIZE)) || defined ALT_USE_LCD_16207 - -/* - * Macros used by alt_sys_init when the ALT file descriptor facility is used. - */ -#define ALTERA_AVALON_LCD_16207_DEV_INSTANCE(name, d) \ - static altera_avalon_lcd_16207_dev d = \ - { \ - { \ - ALT_LLIST_ENTRY, \ - name##_NAME, \ - NULL, /* open */ \ - NULL, /* close */ \ - NULL, /* read */ \ - altera_avalon_lcd_16207_write_fd, \ - NULL, /* lseek */ \ - NULL, /* fstat */ \ - NULL, /* ioctl */ \ - }, \ - { \ - name##_BASE \ - }, \ - } - -#define ALTERA_AVALON_LCD_16207_DEV_INIT(name, d) \ - { \ - ALTERA_AVALON_LCD_16207_STATE_INIT(name, d.state); \ - \ - /* make the device available to the system */ \ - alt_dev_reg(&d.dev); \ - } - -#else /* exclude driver */ - -#define ALTERA_AVALON_LCD_16207_DEV_INSTANCE(name, d) extern int alt_no_storage -#define ALTERA_AVALON_LCD_16207_DEV_INIT(name, d) while (0) - -#endif - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __ALTERA_AVALON_LCD_16207_FD_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_lcd_16207_regs.h b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_lcd_16207_regs.h deleted file mode 100644 index bc35f1a..0000000 --- a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_lcd_16207_regs.h +++ /dev/null @@ -1,83 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#ifndef __ALTERA_AVALON_LCD_16207_REGS_H__ -#define __ALTERA_AVALON_LCD_16207_REGS_H__ - -/* -/////////////////////////////////////////////////////////////////////////// -// -// ALTERA_AVALON_LCD_16207 PERIPHERAL -// -// Provides a hardware interface that allows software to -// access the two (2) internal 8-bit registers in an Optrex -// model 16207 (or equivalent) character LCD display (the kind -// shipped with the Nios Development Kit, 2 rows x 16 columns). -// -// Because the interface to the LCD module is "not quite Avalon," -// the hardware in this module ends-up mapping the module's -// two physical read-write registers into four Avalon-visible -// registers: Two read-only registers and two write-only registers. -// A picture is worth a thousand words: -// -// THE REGISTER MAP -// -// 7 6 5 4 3 2 1 0 Offset -// +-----+-----+-----+-----+-----+-----+-----+-----+ -// RS = 0 | Command Register (WRITE-Only) | 0 -// +-----+-----+-----+-----+-----+-----+-----+-----+ -// RS = 0 | Status Register (READ -Only) | 1 -// +-----+-----+-----+-----+-----+-----+-----+-----+ -// RS = 1 | Data Register (WRITE-Only) | 2 -// +-----+-----+-----+-----+-----+-----+-----+-----+ -// RS = 1 | Data Register (READ -Only) | 3 -// +-----+-----+-----+-----+-----+-----+-----+-----+ -// -/////////////////////////////////////////////////////////////////////////// -*/ - -#include - -#define IOADDR_ALTERA_AVALON_LCD_16207_COMMAND(base) __IO_CALC_ADDRESS_NATIVE(base, 0) -#define IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, data) IOWR(base, 0, data) - -#define IOADDR_ALTERA_AVALON_LCD_16207_STATUS(base) __IO_CALC_ADDRESS_NATIVE(base, 1) -#define IORD_ALTERA_AVALON_LCD_16207_STATUS(base) IORD(base, 1) - -#define ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK (0x00000080u) -#define ALTERA_AVALON_LCD_16207_STATUS_BUSY_OFST (7) - -#define IOADDR_ALTERA_AVALON_LCD_16207_DATA_WR(base) __IO_CALC_ADDRESS_NATIVE(base, 2) -#define IOWR_ALTERA_AVALON_LCD_16207_DATA(base, data) IOWR(base, 2, data) - -#define IOADDR_ALTERA_AVALON_LCD_16207_DATA_RD(base) __IO_CALC_ADDRESS_NATIVE(base, 3) -#define IORD_ALTERA_AVALON_LCD_16207_DATA(base) IORD(base, 3) - -#endif diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_pio_regs.h b/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_pio_regs.h deleted file mode 100644 index a829ddd..0000000 --- a/software/qsys_tutorial_lcd4_bsp/drivers/inc/altera_avalon_pio_regs.h +++ /dev/null @@ -1,67 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2003 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#ifndef __ALTERA_AVALON_PIO_REGS_H__ -#define __ALTERA_AVALON_PIO_REGS_H__ - -#include - -#define IOADDR_ALTERA_AVALON_PIO_DATA(base) __IO_CALC_ADDRESS_NATIVE(base, 0) -#define IORD_ALTERA_AVALON_PIO_DATA(base) IORD(base, 0) -#define IOWR_ALTERA_AVALON_PIO_DATA(base, data) IOWR(base, 0, data) - -#define IOADDR_ALTERA_AVALON_PIO_DIRECTION(base) __IO_CALC_ADDRESS_NATIVE(base, 1) -#define IORD_ALTERA_AVALON_PIO_DIRECTION(base) IORD(base, 1) -#define IOWR_ALTERA_AVALON_PIO_DIRECTION(base, data) IOWR(base, 1, data) - -#define IOADDR_ALTERA_AVALON_PIO_IRQ_MASK(base) __IO_CALC_ADDRESS_NATIVE(base, 2) -#define IORD_ALTERA_AVALON_PIO_IRQ_MASK(base) IORD(base, 2) -#define IOWR_ALTERA_AVALON_PIO_IRQ_MASK(base, data) IOWR(base, 2, data) - -#define IOADDR_ALTERA_AVALON_PIO_EDGE_CAP(base) __IO_CALC_ADDRESS_NATIVE(base, 3) -#define IORD_ALTERA_AVALON_PIO_EDGE_CAP(base) IORD(base, 3) -#define IOWR_ALTERA_AVALON_PIO_EDGE_CAP(base, data) IOWR(base, 3, data) - - -#define IOADDR_ALTERA_AVALON_PIO_SET_BIT(base) __IO_CALC_ADDRESS_NATIVE(base, 4) -#define IORD_ALTERA_AVALON_PIO_SET_BITS(base) IORD(base, 4) -#define IOWR_ALTERA_AVALON_PIO_SET_BITS(base, data) IOWR(base, 4, data) - -#define IOADDR_ALTERA_AVALON_PIO_CLEAR_BITS(base) __IO_CALC_ADDRESS_NATIVE(base, 5) -#define IORD_ALTERA_AVALON_PIO_CLEAR_BITS(base) IORD(base, 5) -#define IOWR_ALTERA_AVALON_PIO_CLEAR_BITS(base, data) IOWR(base, 5, data) - - - -/* Defintions for direction-register operation with bi-directional PIOs */ -#define ALTERA_AVALON_PIO_DIRECTION_INPUT 0 -#define ALTERA_AVALON_PIO_DIRECTION_OUTPUT 1 - -#endif /* __ALTERA_AVALON_PIO_REGS_H__ */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_fd.c b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_fd.c deleted file mode 100644 index c2a882a..0000000 --- a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_fd.c +++ /dev/null @@ -1,86 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "alt_types.h" -#include "sys/alt_dev.h" -#include "altera_avalon_jtag_uart.h" - -extern int altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, - char* buffer, int space, int flags); -extern int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, - const char* ptr, int count, int flags); -extern int altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, - int req, void* arg); -extern int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, - int flags); - -/* ----------------------------------------------------------------------- */ -/* --------------------- WRAPPERS FOR ALT FD SUPPORT --------------------- */ -/* - * - */ - -int -altera_avalon_jtag_uart_read_fd(alt_fd* fd, char* buffer, int space) -{ - altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; - - return altera_avalon_jtag_uart_read(&dev->state, buffer, space, - fd->fd_flags); -} - -int -altera_avalon_jtag_uart_write_fd(alt_fd* fd, const char* buffer, int space) -{ - altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; - - return altera_avalon_jtag_uart_write(&dev->state, buffer, space, - fd->fd_flags); -} - -#ifndef ALTERA_AVALON_JTAG_UART_SMALL - -int -altera_avalon_jtag_uart_close_fd(alt_fd* fd) -{ - altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; - - return altera_avalon_jtag_uart_close(&dev->state, fd->fd_flags); -} - -int -altera_avalon_jtag_uart_ioctl_fd(alt_fd* fd, int req, void* arg) -{ - altera_avalon_jtag_uart_dev* dev = (altera_avalon_jtag_uart_dev*) fd->dev; - - return altera_avalon_jtag_uart_ioctl(&dev->state, req, arg); -} - -#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_init.c b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_init.c deleted file mode 100644 index 16376e3..0000000 --- a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_init.c +++ /dev/null @@ -1,256 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2007 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include -#include -#include -#include - -#include - -#include "sys/alt_irq.h" -#include "sys/alt_alarm.h" -#include "sys/ioctl.h" -#include "alt_types.h" - -#include "altera_avalon_jtag_uart_regs.h" -#include "altera_avalon_jtag_uart.h" - -#include "sys/alt_log_printf.h" - -#ifndef ALTERA_AVALON_JTAG_UART_SMALL - -/* ----------------------------------------------------------- */ -/* ------------------------- FAST DRIVER --------------------- */ -/* ----------------------------------------------------------- */ -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT -static void altera_avalon_jtag_uart_irq(void* context); -#else -static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id); -#endif -static alt_u32 altera_avalon_jtag_uart_timeout(void* context); - -/* - * Driver initialization code. Register interrupts and start a timer - * which we can use to check whether the host is there. - * Return 1 on sucessful IRQ register and 0 on failure. - */ - -void altera_avalon_jtag_uart_init(altera_avalon_jtag_uart_state* sp, - int irq_controller_id, int irq) -{ - ALT_FLAG_CREATE(&sp->events, 0); - ALT_SEM_CREATE(&sp->read_lock, 1); - ALT_SEM_CREATE(&sp->write_lock, 1); - - /* enable read interrupts at the device */ - sp->irq_enable = ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; - - IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); - - /* register the interrupt handler */ -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT - alt_ic_isr_register(irq_controller_id, irq, altera_avalon_jtag_uart_irq, - sp, NULL); -#else - alt_irq_register(irq, sp, altera_avalon_jtag_uart_irq); -#endif - - /* Register an alarm to go off every second to check for presence of host */ - sp->host_inactive = 0; - - if (alt_alarm_start(&sp->alarm, alt_ticks_per_second(), - &altera_avalon_jtag_uart_timeout, sp) < 0) - { - /* If we can't set the alarm then record "don't know if host present" - * and behave as though the host is present. - */ - sp->timeout = INT_MAX; - } - - /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ - ALT_LOG_JTAG_UART_ALARM_REGISTER(sp, sp->base); -} - -/* - * Interrupt routine - */ -#ifdef ALT_ENHANCED_INTERRUPT_API_PRESENT -static void altera_avalon_jtag_uart_irq(void* context) -#else -static void altera_avalon_jtag_uart_irq(void* context, alt_u32 id) -#endif -{ - altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state*) context; - unsigned int base = sp->base; - - /* ALT_LOG - see altera_hal/HAL/inc/sys/alt_log_printf.h */ - ALT_LOG_JTAG_UART_ISR_FUNCTION(base, sp); - - for ( ; ; ) - { - unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); - - /* Return once nothing more to do */ - if ((control & (ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK | ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK)) == 0) - break; - - if (control & ALTERA_AVALON_JTAG_UART_CONTROL_RI_MSK) - { - /* process a read irq. Start by assuming that there is data in the - * receive FIFO (otherwise why would we have been interrupted?) - */ - unsigned int data = 1 << ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_OFST; - - for ( ; ; ) - { - /* Check whether there is space in the buffer. If not then we must not - * read any characters from the buffer as they will be lost. - */ - unsigned int next = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; - if (next == sp->rx_out) - break; - - /* Try to remove a character from the FIFO and find out whether there - * are any more characters remaining. - */ - data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); - - if ((data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) == 0) - break; - - sp->rx_buf[sp->rx_in] = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; - sp->rx_in = (sp->rx_in + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; - - /* Post an event to notify jtag_uart_read that a character has been read */ - ALT_FLAG_POST (sp->events, ALT_JTAG_UART_READ_RDY, OS_FLAG_SET); - } - - if (data & ALTERA_AVALON_JTAG_UART_DATA_RAVAIL_MSK) - { - /* If there is still data available here then the buffer is full - * so turn off receive interrupts until some space becomes available. - */ - sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; - IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(base, sp->irq_enable); - - /* Dummy read to ensure IRQ is cleared prior to ISR completion */ - IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); - } - } - - if (control & ALTERA_AVALON_JTAG_UART_CONTROL_WI_MSK) - { - /* process a write irq */ - unsigned int space = (control & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) >> ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_OFST; - - while (space > 0 && sp->tx_out != sp->tx_in) - { - IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, sp->tx_buf[sp->tx_out]); - - sp->tx_out = (sp->tx_out + 1) % ALTERA_AVALON_JTAG_UART_BUF_LEN; - - /* Post an event to notify jtag_uart_write that a character has been written */ - ALT_FLAG_POST (sp->events, ALT_JTAG_UART_WRITE_RDY, OS_FLAG_SET); - - space--; - } - - if (space > 0) - { - /* If we don't have any more data available then turn off the TX interrupt */ - sp->irq_enable &= ~ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; - IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); - - /* Dummy read to ensure IRQ is cleared prior to ISR completion */ - IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base); - } - } - } -} - -/* - * Timeout routine is called every second - */ - -static alt_u32 -altera_avalon_jtag_uart_timeout(void* context) -{ - altera_avalon_jtag_uart_state* sp = (altera_avalon_jtag_uart_state *) context; - - unsigned int control = IORD_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base); - - if (control & ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK) - { - IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable | ALTERA_AVALON_JTAG_UART_CONTROL_AC_MSK); - sp->host_inactive = 0; - } - else if (sp->host_inactive < INT_MAX - 2) { - sp->host_inactive++; - - if (sp->host_inactive >= sp->timeout) { - /* Post an event to indicate host is inactive (for jtag_uart_read */ - ALT_FLAG_POST (sp->events, ALT_JTAG_UART_TIMEOUT, OS_FLAG_SET); - } - } - - return alt_ticks_per_second(); -} - -/* - * The close() routine is implemented to drain the JTAG UART transmit buffer - * when not in "small" mode. This routine will wait for transimt data to be - * emptied unless a timeout from host-activity occurs. If the driver flags - * have been set to non-blocking mode, this routine will exit immediately if - * any data remains. This routine should be called indirectly (i.e. though - * the C library close() routine) so that the file descriptor associated - * with the relevant stream (i.e. stdout) can be closed as well. This routine - * does not manage file descriptors. - * - * The close routine is not implemented for the small driver; instead it will - * map to null. This is because the small driver simply waits while characters - * are transmitted; there is no interrupt-serviced buffer to empty - */ -int altera_avalon_jtag_uart_close(altera_avalon_jtag_uart_state* sp, int flags) -{ - /* - * Wait for all transmit data to be emptied by the JTAG UART ISR, or - * for a host-inactivity timeout, in which case transmit data will be lost - */ - while ( (sp->tx_out != sp->tx_in) && (sp->host_inactive < sp->timeout) ) { - if (flags & O_NONBLOCK) { - return -EWOULDBLOCK; - } - } - - return 0; -} - -#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c deleted file mode 100644 index 15d97a6..0000000 --- a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c +++ /dev/null @@ -1,86 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include -#include -#include -#include - -#include - -#include "sys/ioctl.h" -#include "alt_types.h" - -#include "altera_avalon_jtag_uart_regs.h" -#include "altera_avalon_jtag_uart.h" - -#include "sys/alt_log_printf.h" - -#ifndef ALTERA_AVALON_JTAG_UART_SMALL - -/* ----------------------------------------------------------- */ -/* ------------------------- FAST DRIVER --------------------- */ -/* ----------------------------------------------------------- */ - -int -altera_avalon_jtag_uart_ioctl(altera_avalon_jtag_uart_state* sp, int req, - void* arg) -{ - int rc = -ENOTTY; - - switch (req) - { - case TIOCSTIMEOUT: - /* Set the time to wait until assuming host is not connected */ - if (sp->timeout != INT_MAX) - { - int timeout = *((int *)arg); - sp->timeout = (timeout >= 2 && timeout < INT_MAX) ? timeout : INT_MAX - 1; - rc = 0; - } - break; - - case TIOCGCONNECTED: - /* Find out whether host is connected */ - if (sp->timeout != INT_MAX) - { - *((int *)arg) = (sp->host_inactive < sp->timeout) ? 1 : 0; - rc = 0; - } - break; - - default: - break; - } - - return rc; -} - -#endif /* !ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_read.c b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_read.c deleted file mode 100644 index f97baa8..0000000 --- a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_read.c +++ /dev/null @@ -1,205 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include -#include -#include -#include - -#include - -#include "sys/alt_irq.h" -#include "sys/alt_alarm.h" -#include "sys/ioctl.h" -#include "alt_types.h" - -#include "altera_avalon_jtag_uart_regs.h" -#include "altera_avalon_jtag_uart.h" - -#include "sys/alt_log_printf.h" - -#ifdef __ucosii__ -#include "includes.h" -#endif /* __ucosii__ */ - -#ifdef ALTERA_AVALON_JTAG_UART_SMALL - -/* ----------------------------------------------------------- */ -/* ----------------------- SMALL DRIVER ---------------------- */ -/* ----------------------------------------------------------- */ - -/* Read routine. The small version blocks until it has at least one byte - * available, it then returns as much as is immediately available without - * waiting any more. It's performance will be very poor without - * interrupts. - */ - -int -altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, - char* buffer, int space, int flags) -{ - unsigned int base = sp->base; - - char * ptr = buffer; - char * end = buffer + space; - - while (ptr < end) - { - unsigned int data = IORD_ALTERA_AVALON_JTAG_UART_DATA(base); - - if (data & ALTERA_AVALON_JTAG_UART_DATA_RVALID_MSK) - *ptr++ = (data & ALTERA_AVALON_JTAG_UART_DATA_DATA_MSK) >> ALTERA_AVALON_JTAG_UART_DATA_DATA_OFST; - else if (ptr != buffer) - break; - else if(flags & O_NONBLOCK) - break; - - } - - if (ptr != buffer) - return ptr - buffer; - else if (flags & O_NONBLOCK) - return -EWOULDBLOCK; - else - return -EIO; -} - -#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ - -/* ----------------------------------------------------------- */ -/* ----------------------- FAST DRIVER ----------------------- */ -/* ----------------------------------------------------------- */ - -int -altera_avalon_jtag_uart_read(altera_avalon_jtag_uart_state* sp, - char * buffer, int space, int flags) -{ - char * ptr = buffer; - - alt_irq_context context; - unsigned int n; - - /* - * When running in a multi threaded environment, obtain the "read_lock" - * semaphore. This ensures that reading from the device is thread-safe. - */ - ALT_SEM_PEND (sp->read_lock, 0); - - while (space > 0) - { - unsigned int in, out; - - /* Read as much data as possible */ - do - { - in = sp->rx_in; - out = sp->rx_out; - - if (in >= out) - n = in - out; - else - n = ALTERA_AVALON_JTAG_UART_BUF_LEN - out; - - if (n == 0) - break; /* No more data available */ - - if (n > space) - n = space; - - memcpy(ptr, sp->rx_buf + out, n); - ptr += n; - space -= n; - - sp->rx_out = (out + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; - } - while (space > 0); - - /* If we read any data then return it */ - if (ptr != buffer) - break; - - /* If in non-blocking mode then return error */ - if (flags & O_NONBLOCK) - break; - -#ifdef __ucosii__ - /* OS Present: Pend on a flag if the OS is running, otherwise spin */ - if(OSRunning == OS_TRUE) { - /* - * When running in a multi-threaded mode, we pend on the read event - * flag set and timeout event flag set in the isr. This avoids wasting CPU - * cycles waiting in this thread, when we could be doing something more - * profitable elsewhere. - */ - ALT_FLAG_PEND (sp->events, - ALT_JTAG_UART_READ_RDY | ALT_JTAG_UART_TIMEOUT, - OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, - 0); - } - else { - /* Spin until more data arrives or until host disconnects */ - while (in == sp->rx_in && sp->host_inactive < sp->timeout) - ; - } -#else - /* No OS: Always spin */ - while (in == sp->rx_in && sp->host_inactive < sp->timeout) - ; -#endif /* __ucosii__ */ - - if (in == sp->rx_in) - break; - } - - /* - * Now that access to the circular buffer is complete, release the read - * semaphore so that other threads can access the buffer. - */ - - ALT_SEM_POST (sp->read_lock); - - if (ptr != buffer) - { - /* If we read any data then there is space in the buffer so enable interrupts */ - context = alt_irq_disable_all(); - sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_RE_MSK; - IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); - alt_irq_enable_all(context); - } - - if (ptr != buffer) - return ptr - buffer; - else if (flags & O_NONBLOCK) - return -EWOULDBLOCK; - else - return -EIO; -} - -#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_write.c b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_write.c deleted file mode 100644 index 9562562..0000000 --- a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_jtag_uart_write.c +++ /dev/null @@ -1,217 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include -#include -#include -#include - -#include - -#include "sys/alt_irq.h" -#include "sys/alt_alarm.h" -#include "sys/ioctl.h" -#include "alt_types.h" - -#include "altera_avalon_jtag_uart_regs.h" -#include "altera_avalon_jtag_uart.h" - -#include "sys/alt_log_printf.h" - -#ifdef __ucosii__ -#include "includes.h" -#endif /* __ucosii__ */ - -#ifdef ALTERA_AVALON_JTAG_UART_SMALL - -/* ----------------------------------------------------------- */ -/* ------------------------ SMALL DRIVER --------------------- */ -/* ----------------------------------------------------------- */ - -/* Write routine. The small version blocks when there is no space to write - * into, so it's performance will be very bad if you are writing more than - * one FIFOs worth of data. But you said you didn't want to use interrupts :-) - */ - -int altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, - const char * ptr, int count, int flags) -{ - unsigned int base = sp->base; - - const char * end = ptr + count; - - while (ptr < end) - if ((IORD_ALTERA_AVALON_JTAG_UART_CONTROL(base) & ALTERA_AVALON_JTAG_UART_CONTROL_WSPACE_MSK) != 0) - IOWR_ALTERA_AVALON_JTAG_UART_DATA(base, *ptr++); - - return count; -} - -#else /* !ALTERA_AVALON_JTAG_UART_SMALL */ - -/* ----------------------------------------------------------- */ -/* ------------------------- FAST DRIVER --------------------- */ -/* ----------------------------------------------------------- */ - -int -altera_avalon_jtag_uart_write(altera_avalon_jtag_uart_state* sp, - const char * ptr, int count, int flags) -{ - /* Remove warning at optimisation level 03 by seting out to 0 */ - unsigned int in, out=0; - unsigned int n; - alt_irq_context context; - - const char * start = ptr; - - /* - * When running in a multi threaded environment, obtain the "write_lock" - * semaphore. This ensures that writing to the device is thread-safe. - */ - ALT_SEM_PEND (sp->write_lock, 0); - - do - { - /* Copy as much as we can into the transmit buffer */ - while (count > 0) - { - /* We need a stable value of the out pointer to calculate the space available */ - in = sp->tx_in; - out = sp->tx_out; - - if (in < out) - n = out - 1 - in; - else if (out > 0) - n = ALTERA_AVALON_JTAG_UART_BUF_LEN - in; - else - n = ALTERA_AVALON_JTAG_UART_BUF_LEN - 1 - in; - - if (n == 0) - break; - - if (n > count) - n = count; - - memcpy(sp->tx_buf + in, ptr, n); - ptr += n; - count -= n; - - sp->tx_in = (in + n) % ALTERA_AVALON_JTAG_UART_BUF_LEN; - } - - /* - * If interrupts are disabled then we could transmit here, we only need - * to enable interrupts if there is no space left in the FIFO - * - * For now kick the interrupt routine every time to make it transmit - * the data - */ - context = alt_irq_disable_all(); - sp->irq_enable |= ALTERA_AVALON_JTAG_UART_CONTROL_WE_MSK; - IOWR_ALTERA_AVALON_JTAG_UART_CONTROL(sp->base, sp->irq_enable); - alt_irq_enable_all(context); - - /* - * If there is any data left then either return now or block until - * some has been sent - */ - /* consider: test whether there is anything there while doing this and delay for at most 2s. */ - if (count > 0) - { - if (flags & O_NONBLOCK) - break; - -#ifdef __ucosii__ - /* OS Present: Pend on a flag if the OS is running, otherwise spin */ - if(OSRunning == OS_TRUE) { - /* - * When running in a multi-threaded mode, we pend on the write event - * flag set or the timeout flag in the isr. This avoids wasting CPU - * cycles waiting in this thread, when we could be doing something - * more profitable elsewhere. - */ -#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR - if(!sp->host_inactive) -#endif - ALT_FLAG_PEND (sp->events, - ALT_JTAG_UART_WRITE_RDY | ALT_JTAG_UART_TIMEOUT, - OS_FLAG_WAIT_SET_ANY + OS_FLAG_CONSUME, - 0); - } - else { - /* - * OS not running: Wait for data to be removed from buffer. - * Once the interrupt routine has removed some data then we - * will be able to insert some more. - */ - while (out == sp->tx_out && sp->host_inactive < sp->timeout) - ; - } -#else - /* - * No OS present: Always wait for data to be removed from buffer. Once - * the interrupt routine has removed some data then we will be able to - * insert some more. - */ - while (out == sp->tx_out && sp->host_inactive < sp->timeout) - ; -#endif /* __ucosii__ */ - - if (out == sp->tx_out) - break; - } - } - while (count > 0); - - /* - * Now that access to the circular buffer is complete, release the write - * semaphore so that other threads can access the buffer. - */ - ALT_SEM_POST (sp->write_lock); - - if (ptr != start) - return ptr - start; - else if (flags & O_NONBLOCK) - return -EWOULDBLOCK; -#ifdef ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR - else if (sp->host_inactive >= sp->timeout) { - /* - * Reset the software FIFO, hardware FIFO could not be reset. - * Just throw away characters without reporting error. - */ - sp->tx_out = sp->tx_in = 0; - return ptr - start + count; - } -#endif - else - return -EIO; /* Host not connected */ -} - -#endif /* ALTERA_AVALON_JTAG_UART_SMALL */ diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_lcd_16207.c b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_lcd_16207.c deleted file mode 100644 index 102e202..0000000 --- a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_lcd_16207.c +++ /dev/null @@ -1,605 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -/* ===================================================================== */ - -/* - * This file provides the implementation of the functions used to drive a - * LCD panel. - * - * Characters written to the device will appear on the LCD panel as though - * it is a very small terminal. If the lines written to the terminal are - * longer than the number of characters on the terminal then it will scroll - * the lines of text automatically to display them all. - * - * If more lines are written than will fit on the terminal then it will scroll - * when characters are written to the line "below" the last displayed one - - * the cursor is allowed to sit below the visible area of the screen providing - * that this line is entirely blank. - * - * The following control sequences may be used to move around and do useful - * stuff: - * CR Moves back to the start of the current line - * LF Moves down a line and back to the start - * BS Moves back a character without erasing - * ESC Starts a VT100 style escape sequence - * - * The following escape sequences are recognised: - * ESC [ ; H Move to row and column specified (positions are - * counted from the top left which is 1;1) - * ESC [ K Clear from current position to end of line - * ESC [ 2 J Clear screen and go to top left - * - */ - -/* ===================================================================== */ - -#include -#include - -#include -#include -#include - -#include "sys/alt_alarm.h" - -#include "altera_avalon_lcd_16207_regs.h" -#include "altera_avalon_lcd_16207.h" - -/* --------------------------------------------------------------------- */ - -/* Commands which can be written to the COMMAND register */ - -enum /* Write to character RAM */ -{ - LCD_CMD_WRITE_DATA = 0x80 - /* Bits 6:0 hold character RAM address */ -}; - -enum /* Write to character generator RAM */ -{ - LCD_CMD_WRITE_CGR = 0x40 - /* Bits 5:0 hold character generator RAM address */ -}; - -enum /* Function Set command */ -{ - LCD_CMD_FUNCTION_SET = 0x20, - LCD_CMD_8BIT = 0x10, - LCD_CMD_TWO_LINE = 0x08, - LCD_CMD_BIGFONT = 0x04 -}; - -enum /* Shift command */ -{ - LCD_CMD_SHIFT = 0x10, - LCD_CMD_SHIFT_DISPLAY = 0x08, - LCD_CMD_SHIFT_RIGHT = 0x04 -}; - -enum /* On/Off command */ -{ - LCD_CMD_ONOFF = 0x08, - LCD_CMD_ENABLE_DISP = 0x04, - LCD_CMD_ENABLE_CURSOR = 0x02, - LCD_CMD_ENABLE_BLINK = 0x01 -}; - -enum /* Entry Mode command */ -{ - LCD_CMD_MODES = 0x04, - LCD_CMD_MODE_INC = 0x02, - LCD_CMD_MODE_SHIFT = 0x01 -}; - -enum /* Home command */ -{ - LCD_CMD_HOME = 0x02 -}; - -enum /* Clear command */ -{ - LCD_CMD_CLEAR = 0x01 -}; - -/* Where in LCD character space do the rows start */ -static char colstart[4] = { 0x00, 0x40, 0x20, 0x60 }; - -/* --------------------------------------------------------------------- */ - -static void lcd_write_command(altera_avalon_lcd_16207_state* sp, - unsigned char command) -{ - unsigned int base = sp->base; - - /* We impose a timeout on the driver in case the LCD panel isn't connected. - * The first time we call this function the timeout is approx 25ms - * (assuming 5 cycles per loop and a 200MHz clock). Obviously systems - * with slower clocks, or debug builds, or slower memory will take longer. - */ - int i = 1000000; - - /* Don't bother if the LCD panel didn't work before */ - if (sp->broken) - return; - - /* Wait until LCD isn't busy. */ - while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) - if (--i == 0) - { - sp->broken = 1; - return; - } - - /* Despite what it says in the datasheet, the LCD isn't ready to accept - * a write immediately after it returns BUSY=0. Wait for 100us more. - */ - usleep(100); - - IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, command); -} - -/* --------------------------------------------------------------------- */ - -static void lcd_write_data(altera_avalon_lcd_16207_state* sp, - unsigned char data) -{ - unsigned int base = sp->base; - - /* We impose a timeout on the driver in case the LCD panel isn't connected. - * The first time we call this function the timeout is approx 25ms - * (assuming 5 cycles per loop and a 200MHz clock). Obviously systems - * with slower clocks, or debug builds, or slower memory will take longer. - */ - int i = 1000000; - - /* Don't bother if the LCD panel didn't work before */ - if (sp->broken) - return; - - /* Wait until LCD isn't busy. */ - while (IORD_ALTERA_AVALON_LCD_16207_STATUS(base) & ALTERA_AVALON_LCD_16207_STATUS_BUSY_MSK) - if (--i == 0) - { - sp->broken = 1; - return; - } - - /* Despite what it says in the datasheet, the LCD isn't ready to accept - * a write immediately after it returns BUSY=0. Wait for 100us more. - */ - usleep(100); - - IOWR_ALTERA_AVALON_LCD_16207_DATA(base, data); - - sp->address++; -} - -/* --------------------------------------------------------------------- */ - -static void lcd_clear_screen(altera_avalon_lcd_16207_state* sp) -{ - int y; - - lcd_write_command(sp, LCD_CMD_CLEAR); - - sp->x = 0; - sp->y = 0; - sp->address = 0; - - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - { - memset(sp->line[y].data, ' ', sizeof(sp->line[0].data)); - memset(sp->line[y].visible, ' ', sizeof(sp->line[0].visible)); - sp->line[y].width = 0; - } -} - -/* --------------------------------------------------------------------- */ - -static void lcd_repaint_screen(altera_avalon_lcd_16207_state* sp) -{ - int y, x; - - /* scrollpos controls how much the lines have scrolled round. The speed - * each line scrolls at is controlled by its speed variable - while - * scrolline lines will wrap at the position set by width - */ - - int scrollpos = sp->scrollpos; - - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - { - int width = sp->line[y].width; - int offset = (scrollpos * sp->line[y].speed) >> 8; - if (offset >= width) - offset = 0; - - for (x = 0 ; x < ALT_LCD_WIDTH ; x++) - { - char c = sp->line[y].data[(x + offset) % width]; - - /* Writing data takes 40us, so don't do it unless required */ - if (sp->line[y].visible[x] != c) - { - unsigned char address = x + colstart[y]; - - if (address != sp->address) - { - lcd_write_command(sp, LCD_CMD_WRITE_DATA | address); - sp->address = address; - } - - lcd_write_data(sp, c); - sp->line[y].visible[x] = c; - } - } - } -} - -/* --------------------------------------------------------------------- */ - -static void lcd_scroll_up(altera_avalon_lcd_16207_state* sp) -{ - int y; - - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - { - if (y < ALT_LCD_HEIGHT-1) - memcpy(sp->line[y].data, sp->line[y+1].data, ALT_LCD_VIRTUAL_WIDTH); - else - memset(sp->line[y].data, ' ', ALT_LCD_VIRTUAL_WIDTH); - } - - sp->y--; -} - -/* --------------------------------------------------------------------- */ - -static void lcd_handle_escape(altera_avalon_lcd_16207_state* sp, char c) -{ - int parm1 = 0, parm2 = 0; - - if (sp->escape[0] == '[') - { - char * ptr = sp->escape+1; - while (isdigit(*ptr)) - parm1 = (parm1 * 10) + (*ptr++ - '0'); - - if (*ptr == ';') - { - ptr++; - while (isdigit(*ptr)) - parm2 = (parm2 * 10) + (*ptr++ - '0'); - } - } - else - parm1 = -1; - - switch (c) - { - case 'H': /* ESC '[' ';' 'H' : Move cursor to location */ - case 'f': /* Same as above */ - if (parm2 > 0) - sp->x = parm2 - 1; - if (parm1 > 0) - { - sp->y = parm1 - 1; - if (sp->y > ALT_LCD_HEIGHT * 2) - sp->y = ALT_LCD_HEIGHT * 2; - while (sp->y > ALT_LCD_HEIGHT) - lcd_scroll_up(sp); - } - break; - - case 'J': - /* ESC J is clear to beginning of line [unimplemented] - * ESC [ 0 J is clear to bottom of screen [unimplemented] - * ESC [ 1 J is clear to beginning of screen [unimplemented] - * ESC [ 2 J is clear screen - */ - if (parm1 == 2) - lcd_clear_screen(sp); - break; - - case 'K': - /* ESC K is clear to end of line - * ESC [ 0 K is clear to end of line - * ESC [ 1 K is clear to beginning of line [unimplemented] - * ESC [ 2 K is clear line [unimplemented] - */ - if (parm1 < 1) - { - if (sp->x < ALT_LCD_VIRTUAL_WIDTH) - memset(sp->line[sp->y].data + sp->x, ' ', ALT_LCD_VIRTUAL_WIDTH - sp->x); - } - break; - } -} - -/* --------------------------------------------------------------------- */ - -int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp, - const char* ptr, int len, int flags) -{ - const char* end = ptr + len; - - int y; - int widthmax; - - /* When running in a multi threaded environment, obtain the "write_lock" - * semaphore. This ensures that writing to the device is thread-safe. - */ - - ALT_SEM_PEND (sp->write_lock, 0); - - /* Tell the routine which is called off the timer interrupt that the - * foreground routines are active so it must not repaint the display. */ - sp->active = 1; - - for ( ; ptr < end ; ptr++) - { - char c = *ptr; - - if (sp->esccount >= 0) - { - unsigned int esccount = sp->esccount; - - /* Single character escape sequences can end with any character - * Multi character escape sequences start with '[' and contain - * digits and semicolons before terminating - */ - if ((esccount == 0 && c != '[') || - (esccount > 0 && !isdigit(c) && c != ';')) - { - sp->escape[esccount] = 0; - - lcd_handle_escape(sp, c); - - sp->esccount = -1; - } - else if (sp->esccount < sizeof(sp->escape)-1) - { - sp->escape[esccount] = c; - sp->esccount++; - } - } - else if (c == 27) /* ESC */ - { - sp->esccount = 0; - } - else if (c == '\r') - { - sp->x = 0; - } - else if (c == '\n') - { - sp->x = 0; - sp->y++; - - /* Let the cursor sit at X=0, Y=HEIGHT without scrolling so the user - * can print two lines of data without losing one. - */ - if (sp->y > ALT_LCD_HEIGHT) - lcd_scroll_up(sp); - } - else if (c == '\b') - { - if (sp->x > 0) - sp->x--; - } - else if (isprint(c)) - { - /* If we didn't scroll on the last linefeed then we might need to do - * it now. */ - if (sp->y >= ALT_LCD_HEIGHT) - lcd_scroll_up(sp); - - if (sp->x < ALT_LCD_VIRTUAL_WIDTH) - sp->line[sp->y].data[sp->x] = c; - - sp->x++; - } - } - - /* Recalculate the scrolling parameters */ - widthmax = ALT_LCD_WIDTH; - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - { - int width; - for (width = ALT_LCD_VIRTUAL_WIDTH ; width > 0 ; width--) - if (sp->line[y].data[width-1] != ' ') - break; - - /* The minimum width is the size of the LCD panel. If the real width - * is long enough to require scrolling then add an extra space so the - * end of the message doesn't run into the beginning of it. - */ - if (width <= ALT_LCD_WIDTH) - width = ALT_LCD_WIDTH; - else - width++; - - sp->line[y].width = width; - if (widthmax < width) - widthmax = width; - sp->line[y].speed = 0; /* By default lines don't scroll */ - } - - if (widthmax <= ALT_LCD_WIDTH) - sp->scrollmax = 0; - else - { - widthmax *= 2; - sp->scrollmax = widthmax; - - /* Now calculate how fast each of the other lines should go */ - for (y = 0 ; y < ALT_LCD_HEIGHT ; y++) - if (sp->line[y].width > ALT_LCD_WIDTH) - { - /* You have three options for how to make the display scroll, chosen - * using the preprocessor directives below - */ -#if 1 - /* This option makes all the lines scroll round at different speeds - * which are chosen so that all the scrolls finish at the same time. - */ - sp->line[y].speed = 256 * sp->line[y].width / widthmax; -#elif 1 - /* This option pads the shorter lines with spaces so that they all - * scroll together. - */ - sp->line[y].width = widthmax / 2; - sp->line[y].speed = 256/2; -#else - /* This option makes the shorter lines stop after they have rotated - * and waits for the longer lines to catch up - */ - sp->line[y].speed = 256/2; -#endif - } - } - - /* Repaint once, then check whether there has been a missed repaint - * (because active was set when the timer interrupt occurred). If there - * has been a missed repaint then paint again. And again. etc. - */ - for ( ; ; ) - { - int old_scrollpos = sp->scrollpos; - - lcd_repaint_screen(sp); - - /* Let the timer routines repaint the display again */ - sp->active = 0; - - /* Have the timer routines tried to scroll while we were painting? - * If not then we can exit */ - if (sp->scrollpos == old_scrollpos) - break; - - /* We need to repaint again since the display scrolled while we were - * painting last time */ - sp->active = 1; - } - - /* Now that access to the display is complete, release the write - * semaphore so that other threads can access the buffer. - */ - - ALT_SEM_POST (sp->write_lock); - - return len; -} - -/* --------------------------------------------------------------------- */ - -/* This should be in a top level header file really */ -#define container_of(ptr, type, member) ((type *)((char *)ptr - offsetof(type, member))) - -/* - * Timeout routine is called every second - */ - -static alt_u32 alt_lcd_16207_timeout(void* context) -{ - altera_avalon_lcd_16207_state* sp = (altera_avalon_lcd_16207_state*)context; - - /* Update the scrolling position */ - if (sp->scrollpos + 1 >= sp->scrollmax) - sp->scrollpos = 0; - else - sp->scrollpos = sp->scrollpos + 1; - - /* Repaint the panel unless the foreground will do it again soon */ - if (sp->scrollmax > 0 && !sp->active) - lcd_repaint_screen(sp); - - return sp->period; -} - -/* --------------------------------------------------------------------- */ - -/* - * Called at boot time to initialise the LCD driver - */ -void altera_avalon_lcd_16207_init(altera_avalon_lcd_16207_state* sp) -{ - unsigned int base = sp->base; - - /* Mark the device as functional */ - sp->broken = 0; - - ALT_SEM_CREATE (&sp->write_lock, 1); - - /* The initialisation sequence below is copied from the datasheet for - * the 16207 LCD display. The first commands need to be timed because - * the BUSY bit in the status register doesn't work until the display - * has been reset three times. - */ - - /* Wait for 15 ms then reset */ - usleep(15000); - IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); - - /* Wait for another 4.1ms and reset again */ - usleep(4100); - IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); - - /* Wait a further 1 ms and reset a third time */ - usleep(1000); - IOWR_ALTERA_AVALON_LCD_16207_COMMAND(base, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT); - - /* Setup interface parameters: 8 bit bus, 2 rows, 5x7 font */ - lcd_write_command(sp, LCD_CMD_FUNCTION_SET | LCD_CMD_8BIT | LCD_CMD_TWO_LINE); - - /* Turn display off */ - lcd_write_command(sp, LCD_CMD_ONOFF); - - /* Clear display */ - lcd_clear_screen(sp); - - /* Set mode: increment after writing, don't shift display */ - lcd_write_command(sp, LCD_CMD_MODES | LCD_CMD_MODE_INC); - - /* Turn display on */ - lcd_write_command(sp, LCD_CMD_ONOFF | LCD_CMD_ENABLE_DISP); - - sp->esccount = -1; - memset(sp->escape, 0, sizeof(sp->escape)); - - sp->scrollpos = 0; - sp->scrollmax = 0; - sp->active = 0; - - sp->period = alt_ticks_per_second() / 10; /* Call every 100ms */ - - alt_alarm_start(&sp->alarm, sp->period, &alt_lcd_16207_timeout, sp); -} diff --git a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_lcd_16207_fd.c b/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_lcd_16207_fd.c deleted file mode 100644 index 08c9371..0000000 --- a/software/qsys_tutorial_lcd4_bsp/drivers/src/altera_avalon_lcd_16207_fd.c +++ /dev/null @@ -1,45 +0,0 @@ -/****************************************************************************** -* * -* License Agreement * -* * -* Copyright (c) 2006 Altera Corporation, San Jose, California, USA. * -* All rights reserved. * -* * -* Permission is hereby granted, free of charge, to any person obtaining a * -* copy of this software and associated documentation files (the "Software"), * -* to deal in the Software without restriction, including without limitation * -* the rights to use, copy, modify, merge, publish, distribute, sublicense, * -* and/or sell copies of the Software, and to permit persons to whom the * -* Software is furnished to do so, subject to the following conditions: * -* * -* The above copyright notice and this permission notice shall be included in * -* all copies or substantial portions of the Software. * -* * -* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * -* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * -* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * -* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * -* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * -* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * -* DEALINGS IN THE SOFTWARE. * -* * -* This agreement shall be governed in all respects by the laws of the State * -* of California and by the laws of the United States of America. * -* * -******************************************************************************/ - -#include "alt_types.h" -#include "sys/alt_dev.h" -#include "altera_avalon_lcd_16207.h" - -extern int altera_avalon_lcd_16207_write(altera_avalon_lcd_16207_state* sp, - const char* ptr, int count, int flags); - -int -altera_avalon_lcd_16207_write_fd(alt_fd* fd, const char* buffer, int space) -{ - altera_avalon_lcd_16207_dev* dev = (altera_avalon_lcd_16207_dev*) fd->dev; - - return altera_avalon_lcd_16207_write(&dev->state, buffer, space, - fd->fd_flags); -} diff --git a/software/qsys_tutorial_lcd4_bsp/libhal_bsp.a b/software/qsys_tutorial_lcd4_bsp/libhal_bsp.a deleted file mode 100644 index e9340ac..0000000 --- a/software/qsys_tutorial_lcd4_bsp/libhal_bsp.a +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/linker.h b/software/qsys_tutorial_lcd4_bsp/linker.h deleted file mode 100644 index bb80fd7..0000000 --- a/software/qsys_tutorial_lcd4_bsp/linker.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - * linker.h - Linker script mapping information - * - * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' - * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo - * - * Generated: Fri Dec 02 01:35:14 JST 2016 - */ - -/* - * DO NOT MODIFY THIS FILE - * - * Changing this file will have subtle consequences - * which will almost certainly lead to a nonfunctioning - * system. If you do modify this file, be aware that your - * changes will be overwritten and lost when this file - * is generated again. - * - * DO NOT MODIFY THIS FILE - */ - -/* - * License Agreement - * - * Copyright (c) 2008 - * Altera Corporation, San Jose, California, USA. - * All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * This agreement shall be governed in all respects by the laws of the State - * of California and by the laws of the United States of America. - */ - -#ifndef __LINKER_H_ -#define __LINKER_H_ - - -/* - * BSP controls alt_load() behavior in crt0. - * - */ - -#define ALT_LOAD_EXPLICITLY_CONTROLLED - - -/* - * Base address and span (size in bytes) of each linker region - * - */ - -#define ONCHIP_MEMORY_REGION_BASE 0x20 -#define ONCHIP_MEMORY_REGION_SPAN 204768 -#define RESET_REGION_BASE 0x0 -#define RESET_REGION_SPAN 32 - - -/* - * Devices associated with code sections - * - */ - -#define ALT_EXCEPTIONS_DEVICE ONCHIP_MEMORY -#define ALT_RESET_DEVICE ONCHIP_MEMORY -#define ALT_RODATA_DEVICE ONCHIP_MEMORY -#define ALT_RWDATA_DEVICE ONCHIP_MEMORY -#define ALT_TEXT_DEVICE ONCHIP_MEMORY - - -/* - * Initialization code at the reset address is allowed (e.g. no external bootloader). - * - */ - -#define ALT_ALLOW_CODE_AT_RESET - - -/* - * The alt_load() facility is called from crt0 to copy sections into RAM. - * - */ - -#define ALT_LOAD_COPY_RWDATA - -#endif /* __LINKER_H_ */ diff --git a/software/qsys_tutorial_lcd4_bsp/linker.x b/software/qsys_tutorial_lcd4_bsp/linker.x deleted file mode 100644 index 2fb11ec..0000000 --- a/software/qsys_tutorial_lcd4_bsp/linker.x +++ /dev/null @@ -1,385 +0,0 @@ -/* - * linker.x - Linker script - * - * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' - * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo - * - * Generated: Fri Dec 02 01:35:14 JST 2016 - */ - -/* - * DO NOT MODIFY THIS FILE - * - * Changing this file will have subtle consequences - * which will almost certainly lead to a nonfunctioning - * system. If you do modify this file, be aware that your - * changes will be overwritten and lost when this file - * is generated again. - * - * DO NOT MODIFY THIS FILE - */ - -/* - * License Agreement - * - * Copyright (c) 2008 - * Altera Corporation, San Jose, California, USA. - * All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * This agreement shall be governed in all respects by the laws of the State - * of California and by the laws of the United States of America. - */ - -MEMORY -{ - reset : ORIGIN = 0x0, LENGTH = 32 - onchip_memory : ORIGIN = 0x20, LENGTH = 204768 -} - -/* Define symbols for each memory base-address */ -__alt_mem_onchip_memory = 0x0; - -OUTPUT_FORMAT( "elf32-littlenios2", - "elf32-littlenios2", - "elf32-littlenios2" ) -OUTPUT_ARCH( nios2 ) -ENTRY( _start ) - -/* - * The alt_load() facility is enabled. This typically happens when there isn't - * an external bootloader (e.g. flash bootloader). - * The LMA (aka physical address) of each loaded section is - * set to the .text memory device. - * The HAL alt_load() routine called from crt0 copies sections from - * the .text memory to RAM as needed. - */ - -SECTIONS -{ - - /* - * Output sections associated with reset and exceptions (they have to be first) - */ - - .entry : - { - KEEP (*(.entry)) - } > reset - - .exceptions : - { - PROVIDE (__ram_exceptions_start = ABSOLUTE(.)); - . = ALIGN(0x20); - KEEP (*(.irq)); - KEEP (*(.exceptions.entry.label)); - KEEP (*(.exceptions.entry.user)); - KEEP (*(.exceptions.entry)); - KEEP (*(.exceptions.irqtest.user)); - KEEP (*(.exceptions.irqtest)); - KEEP (*(.exceptions.irqhandler.user)); - KEEP (*(.exceptions.irqhandler)); - KEEP (*(.exceptions.irqreturn.user)); - KEEP (*(.exceptions.irqreturn)); - KEEP (*(.exceptions.notirq.label)); - KEEP (*(.exceptions.notirq.user)); - KEEP (*(.exceptions.notirq)); - KEEP (*(.exceptions.soft.user)); - KEEP (*(.exceptions.soft)); - KEEP (*(.exceptions.unknown.user)); - KEEP (*(.exceptions.unknown)); - KEEP (*(.exceptions.exit.label)); - KEEP (*(.exceptions.exit.user)); - KEEP (*(.exceptions.exit)); - KEEP (*(.exceptions)); - PROVIDE (__ram_exceptions_end = ABSOLUTE(.)); - } > onchip_memory - - PROVIDE (__flash_exceptions_start = LOADADDR(.exceptions)); - - .text : - { - /* - * All code sections are merged into the text output section, along with - * the read only data sections. - * - */ - - PROVIDE (stext = ABSOLUTE(.)); - - *(.interp) - *(.hash) - *(.dynsym) - *(.dynstr) - *(.gnu.version) - *(.gnu.version_d) - *(.gnu.version_r) - *(.rel.init) - *(.rela.init) - *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) - *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) - *(.rel.fini) - *(.rela.fini) - *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) - *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) - *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) - *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) - *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) - *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) - *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) - *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) - *(.rel.ctors) - *(.rela.ctors) - *(.rel.dtors) - *(.rela.dtors) - *(.rel.got) - *(.rela.got) - *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*) - *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) - *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*) - *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) - *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*) - *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) - *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*) - *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) - *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) - *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) - *(.rel.plt) - *(.rela.plt) - *(.rel.dyn) - - KEEP (*(.init)) - *(.plt) - *(.text .stub .text.* .gnu.linkonce.t.*) - - /* .gnu.warning sections are handled specially by elf32.em. */ - - *(.gnu.warning.*) - KEEP (*(.fini)) - PROVIDE (__etext = ABSOLUTE(.)); - PROVIDE (_etext = ABSOLUTE(.)); - PROVIDE (etext = ABSOLUTE(.)); - - *(.eh_frame_hdr) - /* Ensure the __preinit_array_start label is properly aligned. We - could instead move the label definition inside the section, but - the linker would then create the section even if it turns out to - be empty, which isn't pretty. */ - . = ALIGN(4); - PROVIDE (__preinit_array_start = ABSOLUTE(.)); - *(.preinit_array) - PROVIDE (__preinit_array_end = ABSOLUTE(.)); - PROVIDE (__init_array_start = ABSOLUTE(.)); - *(.init_array) - PROVIDE (__init_array_end = ABSOLUTE(.)); - PROVIDE (__fini_array_start = ABSOLUTE(.)); - *(.fini_array) - PROVIDE (__fini_array_end = ABSOLUTE(.)); - SORT(CONSTRUCTORS) - KEEP (*(.eh_frame)) - *(.gcc_except_table) - *(.dynamic) - PROVIDE (__CTOR_LIST__ = ABSOLUTE(.)); - KEEP (*(.ctors)) - KEEP (*(SORT(.ctors.*))) - PROVIDE (__CTOR_END__ = ABSOLUTE(.)); - PROVIDE (__DTOR_LIST__ = ABSOLUTE(.)); - KEEP (*(.dtors)) - KEEP (*(SORT(.dtors.*))) - PROVIDE (__DTOR_END__ = ABSOLUTE(.)); - KEEP (*(.jcr)) - . = ALIGN(4); - } > onchip_memory = 0x3a880100 /* Nios II NOP instruction */ - - .rodata : - { - PROVIDE (__ram_rodata_start = ABSOLUTE(.)); - . = ALIGN(4); - *(.rodata .rodata.* .gnu.linkonce.r.*) - *(.rodata1) - . = ALIGN(4); - PROVIDE (__ram_rodata_end = ABSOLUTE(.)); - } > onchip_memory - - PROVIDE (__flash_rodata_start = LOADADDR(.rodata)); - - /* - * - * This section's LMA is set to the .text region. - * crt0 will copy to this section's specified mapped region virtual memory address (VMA) - * - * .rwdata region equals the .text region, and is set to be loaded into .text region. - * This requires two copies of .rwdata in the .text region. One read writable at VMA. - * and one read-only at LMA. crt0 will copy from LMA to VMA on reset - * - */ - - .rwdata LOADADDR (.rodata) + SIZEOF (.rodata) : AT ( LOADADDR (.rodata) + SIZEOF (.rodata)+ SIZEOF (.rwdata) ) - { - PROVIDE (__ram_rwdata_start = ABSOLUTE(.)); - . = ALIGN(4); - *(.got.plt) *(.got) - *(.data1) - *(.data .data.* .gnu.linkonce.d.*) - - _gp = ABSOLUTE(. + 0x8000); - PROVIDE(gp = _gp); - - *(.rwdata .rwdata.*) - *(.sdata .sdata.* .gnu.linkonce.s.*) - *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) - - . = ALIGN(4); - _edata = ABSOLUTE(.); - PROVIDE (edata = ABSOLUTE(.)); - PROVIDE (__ram_rwdata_end = ABSOLUTE(.)); - } > onchip_memory - - PROVIDE (__flash_rwdata_start = LOADADDR(.rwdata)); - - /* - * - * This section's LMA is set to the .text region. - * crt0 will copy to this section's specified mapped region virtual memory address (VMA) - * - */ - - .bss LOADADDR (.rwdata) + SIZEOF (.rwdata) : AT ( LOADADDR (.rwdata) + SIZEOF (.rwdata) ) - { - __bss_start = ABSOLUTE(.); - PROVIDE (__sbss_start = ABSOLUTE(.)); - PROVIDE (___sbss_start = ABSOLUTE(.)); - - *(.dynsbss) - *(.sbss .sbss.* .gnu.linkonce.sb.*) - *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) - *(.scommon) - - PROVIDE (__sbss_end = ABSOLUTE(.)); - PROVIDE (___sbss_end = ABSOLUTE(.)); - - *(.dynbss) - *(.bss .bss.* .gnu.linkonce.b.*) - *(COMMON) - - . = ALIGN(4); - __bss_end = ABSOLUTE(.); - } > onchip_memory - - /* - * - * One output section mapped to the associated memory device for each of - * the available memory devices. These are not used by default, but can - * be used by user applications by using the .section directive. - * - * The output section used for the heap is treated in a special way, - * i.e. the symbols "end" and "_end" are added to point to the heap start. - * - * Because alt_load() is enabled, these sections have - * their LMA set to be loaded into the .text memory region. - * However, the alt_load() code will NOT automatically copy - * these sections into their mapped memory region. - * - */ - - /* - * - * This section's LMA is set to the .text region. - * crt0 will copy to this section's specified mapped region virtual memory address (VMA) - * - */ - - .onchip_memory LOADADDR (.bss) + SIZEOF (.bss) : AT ( LOADADDR (.bss) + SIZEOF (.bss) ) - { - PROVIDE (_alt_partition_onchip_memory_start = ABSOLUTE(.)); - *(.onchip_memory. onchip_memory.*) - . = ALIGN(4); - PROVIDE (_alt_partition_onchip_memory_end = ABSOLUTE(.)); - _end = ABSOLUTE(.); - end = ABSOLUTE(.); - __alt_stack_base = ABSOLUTE(.); - } > onchip_memory - - PROVIDE (_alt_partition_onchip_memory_load_addr = LOADADDR(.onchip_memory)); - - /* - * Stabs debugging sections. - * - */ - - .stab 0 : { *(.stab) } - .stabstr 0 : { *(.stabstr) } - .stab.excl 0 : { *(.stab.excl) } - .stab.exclstr 0 : { *(.stab.exclstr) } - .stab.index 0 : { *(.stab.index) } - .stab.indexstr 0 : { *(.stab.indexstr) } - .comment 0 : { *(.comment) } - /* DWARF debug sections. - Symbols in the DWARF debugging sections are relative to the beginning - of the section so we begin them at 0. */ - /* DWARF 1 */ - .debug 0 : { *(.debug) } - .line 0 : { *(.line) } - /* GNU DWARF 1 extensions */ - .debug_srcinfo 0 : { *(.debug_srcinfo) } - .debug_sfnames 0 : { *(.debug_sfnames) } - /* DWARF 1.1 and DWARF 2 */ - .debug_aranges 0 : { *(.debug_aranges) } - .debug_pubnames 0 : { *(.debug_pubnames) } - /* DWARF 2 */ - .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } - .debug_abbrev 0 : { *(.debug_abbrev) } - .debug_line 0 : { *(.debug_line) } - .debug_frame 0 : { *(.debug_frame) } - .debug_str 0 : { *(.debug_str) } - .debug_loc 0 : { *(.debug_loc) } - .debug_macinfo 0 : { *(.debug_macinfo) } - /* SGI/MIPS DWARF 2 extensions */ - .debug_weaknames 0 : { *(.debug_weaknames) } - .debug_funcnames 0 : { *(.debug_funcnames) } - .debug_typenames 0 : { *(.debug_typenames) } - .debug_varnames 0 : { *(.debug_varnames) } - - /* Altera debug extensions */ - .debug_alt_sim_info 0 : { *(.debug_alt_sim_info) } -} - -/* provide a pointer for the stack */ - -/* - * Don't override this, override the __alt_stack_* symbols instead. - */ -__alt_data_end = 0x32000; - -/* - * The next two symbols define the location of the default stack. You can - * override them to move the stack to a different memory. - */ -PROVIDE( __alt_stack_pointer = __alt_data_end ); -PROVIDE( __alt_stack_limit = __alt_stack_base ); - -/* - * This symbol controls where the start of the heap is. If the stack is - * contiguous with the heap then the stack will contract as memory is - * allocated to the heap. - * Override this symbol to put the heap in a different memory. - */ -PROVIDE( __alt_heap_start = end ); -PROVIDE( __alt_heap_limit = 0x32000 ); diff --git a/software/qsys_tutorial_lcd4_bsp/mem_init.mk b/software/qsys_tutorial_lcd4_bsp/mem_init.mk deleted file mode 100644 index 4bdd7f1..0000000 --- a/software/qsys_tutorial_lcd4_bsp/mem_init.mk +++ /dev/null @@ -1,322 +0,0 @@ - -######################################################################### -####### M E M I N I T M A K E F I L E C O N T E N T ###### -######################################################################### - -######################################################################### -# This file is intended to be included by public.mk -# -# -# The following variables must be defined before including this file: -# - ELF -# -# The following variables may be defined to override the default behavior: -# - HDL_SIM_DIR -# - HDL_SIM_INSTALL_DIR -# - MEM_INIT_DIR -# - MEM_INIT_INSTALL_DIR -# - QUARTUS_PROJECT_DIR -# - SOPC_NAME -# - SIM_OPTIMIZE -# - RESET_ADDRESS -# -######################################################################### - -ifeq ($(MEM_INIT_FILE),) -# MEM_INIT_FILE should be set equal to the working relative path to this -# mem_init.mk makefile fragment -MEM_INIT_FILE := $(wildcard $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))) -endif - -ifeq ($(ELF2DAT),) -ELF2DAT := elf2dat -endif - -ifeq ($(ELF2HEX),) -ELF2HEX := elf2hex -endif - -ifeq ($(ELF2FLASH),) -ELF2FLASH := elf2flash -endif - -ifeq ($(FLASH2DAT),) -FLASH2DAT := flash2dat -endif - -ifeq ($(NM),) -NM := nios2-elf-nm -endif - -ifeq ($(MKDIR),) -MKDIR := mkdir -p -endif - -ifeq ($(RM),) -RM := rm -f -endif - -ifeq ($(CP),) -CP := cp -endif - -ifeq ($(ECHO),) -ECHO := echo -endif - -MEM_INIT_DIR ?= mem_init -HDL_SIM_DIR ?= $(MEM_INIT_DIR)/hdl_sim - -ifdef QUARTUS_PROJECT_DIR -MEM_INIT_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR)) -ifdef SOPC_NAME -HDL_SIM_INSTALL_DIR ?= $(patsubst %/,%,$(QUARTUS_PROJECT_DIR))/$(SOPC_NAME)_sim -endif -endif - -MEM_INIT_DESCRIPTOR_FILE ?= $(MEM_INIT_DIR)/meminit.spd - -MEM_INIT_QIP_FILE ?= $(MEM_INIT_DIR)/meminit.qip - -#------------------------------------- -# Default Flash Boot Loaders -#------------------------------------- - -BOOT_LOADER_PATH ?= $(SOPC_KIT_NIOS2)/components/altera_nios2 -BOOT_LOADER_CFI ?= $(BOOT_LOADER_PATH)/boot_loader_cfi.srec -BOOT_LOADER_CFI_BE ?= $(BOOT_LOADER_PATH)/boot_loader_cfi_be.srec - - -#------------------------------------- -# Default Target -#------------------------------------- - -.PHONY: default_mem_init -ifeq ($(QSYS),1) -default_mem_init: mem_init_generate -else -default_mem_init: mem_init_install -endif -#------------------------------------- -# Runtime Macros -#------------------------------------- - -define post-process-info - @echo Post-processing to create $@... -endef - -target_stem = $(notdir $(basename $@)) - -mem_start_address = $($(target_stem)_START) -mem_end_address = $($(target_stem)_END) -mem_width = $($(target_stem)_WIDTH) -mem_endianness = $($(target_stem)_ENDIANNESS) -mem_create_lanes = $($(target_stem)_CREATE_LANES) - -mem_pad_flag = $($(target_stem)_PAD_FLAG) -mem_reloc_input_flag = $($(target_stem)_RELOC_INPUT_FLAG) -mem_no_zero_fill_flag = $($(target_stem)_NO_ZERO_FILL_FLAG) - -flash_mem_epcs_flag = $($(target_stem)_EPCS_FLAGS) -flash_mem_cfi_flag = $($(target_stem)_CFI_FLAGS) -flash_mem_boot_loader_flag = $($(target_stem)_BOOT_LOADER_FLAG) - -elf2dat_extra_args = $(mem_pad_flag) -elf2hex_extra_args = $(mem_no_zero_fill_flag) -elf2flash_extra_args = $(flash_mem_cfi_flag) $(flash_mem_epcs_flag) $(flash_mem_boot_loader_flag) -flash2dat_extra_args = $(mem_pad_flag) $(mem_reloc_input_flag) - -#------------------------------------------------------------------------------ -# BSP SPECIFIC CONTENT -# -# The content below is controlled by the BSP and SOPC System -#------------------------------------------------------------------------------ -#START OF BSP SPECIFIC - -#------------------------------------- -# Global Settings -#------------------------------------- - - -# The following TYPE comment allows tools to identify the 'type' of target this -# makefile is associated with. -# TYPE: BSP_MEMINIT_MAKEFILE - -# This following VERSION comment indicates the version of the tool used to -# generate this makefile. A makefile variable is provided for VERSION as well. -# ACDS_VERSION: 13.0sp1 -ACDS_VERSION := 13.0sp1 - -# This following BUILD_NUMBER comment indicates the build number of the tool -# used to generate this makefile. -# BUILD_NUMBER: 232 - -# Optimize for simulation -SIM_OPTIMIZE ?= 0 - -# The CPU reset address as needed by elf2flash -RESET_ADDRESS ?= 0x00000000 - -#------------------------------------- -# Pre-Initialized Memory Descriptions -#------------------------------------- - -# Memory: onchip_memory -MEM_0 := nios_system_onchip_memory -$(MEM_0)_NAME := onchip_memory -$(MEM_0)_MEM_INIT_FILE_PARAM_NAME := INIT_FILE -HEX_FILES += $(MEM_INIT_DIR)/$(MEM_0).hex -MEM_INIT_INSTALL_FILES += $(MEM_INIT_INSTALL_DIR)/$(MEM_0).hex -DAT_FILES += $(HDL_SIM_DIR)/$(MEM_0).dat -HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).dat -SYM_FILES += $(HDL_SIM_DIR)/$(MEM_0).sym -HDL_SIM_INSTALL_FILES += $(HDL_SIM_INSTALL_DIR)/$(MEM_0).sym -$(MEM_0)_START := 0x00000000 -$(MEM_0)_END := 0x00031fff -$(MEM_0)_HIERARCHICAL_PATH := onchip_memory -$(MEM_0)_WIDTH := 32 -$(MEM_0)_ENDIANNESS := --little-endian-mem -$(MEM_0)_CREATE_LANES := 0 - -.PHONY: onchip_memory -onchip_memory: check_elf_exists $(MEM_INIT_DIR)/$(MEM_0).hex $(HDL_SIM_DIR)/$(MEM_0).dat $(HDL_SIM_DIR)/$(MEM_0).sym - - -#END OF BSP SPECIFIC - -#------------------------------------- -# Pre-Initialized Memory Targets -#------------------------------------- - -.PHONY: mem_init_install mem_init_generate mem_init_clean - -ifeq ($(QSYS),1) -# Target mem_init_install is deprecated for QSys based systems -# To initialize onchip memories for Quartus II Synthesis with Qsys based systems: -# 1) Use "make mem_init_genearate" -# 2) Add the generated mem_init/meminit.qip file to your Quartus II Project -# -mem_init_install: - $(error Deprecated Makefile Target: '$@'. Use target 'mem_init_generate' and then add $(MEM_INIT_QIP_FILE) to your Quartus II Project) - -else # QSYS != 1, if SopcBuilder based system - -ifneq ($(MEM_INIT_INSTALL_DIR),) -mem_init_install: $(MEM_INIT_INSTALL_FILES) -endif - -ifneq ($(HDL_SIM_INSTALL_DIR),) -mem_init_install: $(HDL_SIM_INSTALL_FILES) -endif - -mem_init_install: mem_init_generate -ifeq ($(MEM_INIT_INSTALL_DIR),) - @echo "WARNING: MEM_INIT_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR environment variable." -endif -ifeq ($(HDL_SIM_INSTALL_DIR),) - @echo "WARNING: HDL_SIM_INSTALL_DIR not set. Set your QUARTUS_PROJECT_DIR and SOPC_NAME environment variable." -endif - -$(MEM_INIT_INSTALL_FILES): $(MEM_INIT_INSTALL_DIR)/%: $(MEM_INIT_DIR)/% - @$(MKDIR) $(@D) - @$(CP) -v $< $@ - -$(HDL_SIM_INSTALL_FILES): $(HDL_SIM_INSTALL_DIR)/%: $(HDL_SIM_DIR)/% - @$(MKDIR) $(@D) - @$(CP) -v $< $@ - -endif # QSYS == 1 - - -mem_init_generate: hex dat sym flash $(MEM_INIT_DESCRIPTOR_FILE) $(MEM_INIT_QIP_FILE) - -mem_init_clean: - @$(RM) -r $(MEM_INIT_DIR) $(HDL_SIM_DIR) $(FLASH_FILES) - -.PHONY: hex dat sym flash - -hex: check_elf_exists $(HEX_FILES) - -dat: check_elf_exists $(DAT_FILES) - -sym: check_elf_exists $(SYM_FILES) - -flash: check_elf_exists $(FLASH_FILES) - -#------------------------------------- -# Pre-Initialized Memory Rules -#------------------------------------- - -.PHONY: check_elf_exists -check_elf_exists: $(ELF) -ifeq ($(ELF),) - $(error ELF var not set in mem_init.mk) -endif - -$(filter-out $(FLASH_DAT_FILES),$(DAT_FILES)): %.dat: $(ELF) - $(post-process-info) - @$(MKDIR) $(@D) - bash -c '$(ELF2DAT) --infile=$< --outfile=$@ \ - --base=$(mem_start_address) --end=$(mem_end_address) --width=$(mem_width) \ - $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2dat_extra_args)' - -$(foreach i,0 1 2 3 4 5 6 7,%_lane$(i).dat): %.dat - @true - -$(HEX_FILES): %.hex: $(ELF) - $(post-process-info) - @$(MKDIR) $(@D) - bash -c '$(ELF2HEX) $< $(mem_start_address) $(mem_end_address) --width=$(mem_width) \ - $(mem_endianness) --create-lanes=$(mem_create_lanes) $(elf2hex_extra_args) $@' - -$(SYM_FILES): %.sym: $(ELF) - $(post-process-info) - @$(MKDIR) $(@D) - $(NM) -n $< > $@ - -$(FLASH_FILES): %.flash: $(ELF) - $(post-process-info) - @$(MKDIR) $(@D) - bash -c '$(ELF2FLASH) --input=$< --outfile=$@ --sim_optimize=$(SIM_OPTIMIZE) $(mem_endianness) \ - $(elf2flash_extra_args)' - -# -# Function generate_spd_entry -# Arg1: path to the memory initialization file -# Arg2: Type HEX or DAT -# Arg3: Output spd file to append -gen_spd_entry.BASE_FILE = $(basename $(notdir $1)) -gen_spd_entry.PARAM_NAME = $($(gen_spd_entry.BASE_FILE)_MEM_INIT_FILE_PARAM_NAME) -gen_spd_entry.MEM_PATH = $($(gen_spd_entry.BASE_FILE)_HIERARCHICAL_PATH) -gen_spd_entry.SETTINGS = $(strip \ - path=\"$1\" \ - type=\"$2\" \ - $(if $(gen_spd_entry.PARAM_NAME),initParamName=\"$(gen_spd_entry.PARAM_NAME)\") \ - $(if $(gen_spd_entry.MEM_PATH),memoryPath=\"$(gen_spd_entry.MEM_PATH)\") \ -) -define gen_spd_entry -$(ECHO) "" >> $3 -endef - -$(MEM_INIT_DESCRIPTOR_FILE).DAT_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(DAT_FILES)) -$(MEM_INIT_DESCRIPTOR_FILE).HEX_FILESET := $(patsubst $(dir $(MEM_INIT_DESCRIPTOR_FILE))%,%,$(HEX_FILES)) - -$(MEM_INIT_DESCRIPTOR_FILE): %.spd: $(MEM_INIT_FILE) - $(post-process-info) - @$(MKDIR) $(@D) - @$(RM) $@ - @$(ECHO) "" > $@ - @$(ECHO) "" >> $@ - @$(foreach dat_file,$($@.DAT_FILESET),$(call gen_spd_entry,$(dat_file),DAT,$@) &&)true - @$(foreach hex_file,$($@.HEX_FILESET),$(call gen_spd_entry,$(hex_file),HEX,$@) &&)true - @$(ECHO) "" >> $@ - -.DELETE_ON_ERROR: $(MEM_INIT_DESCRIPTOR_FILE) - -$(MEM_INIT_QIP_FILE): %.qip: $(MEM_INIT_FILE) - $(post-process-info) - @$(MKDIR) $(@D) - @$(RM) $@ - @$(ECHO) "set_global_assignment -name SEARCH_PATH $$::quartus(qip_path)" > $@ - -.DELETE_ON_ERROR: $(MEM_INIT_QIP_FILE) diff --git a/software/qsys_tutorial_lcd4_bsp/memory.gdb b/software/qsys_tutorial_lcd4_bsp/memory.gdb deleted file mode 100644 index 919e9c3..0000000 --- a/software/qsys_tutorial_lcd4_bsp/memory.gdb +++ /dev/null @@ -1,50 +0,0 @@ -# memory.gdb - GDB memory region definitions -# -# Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' -# SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo -# -# Generated: Fri Dec 02 01:35:14 JST 2016 - -# DO NOT MODIFY THIS FILE -# -# Changing this file will have subtle consequences -# which will almost certainly lead to a nonfunctioning -# system. If you do modify this file, be aware that your -# changes will be overwritten and lost when this file -# is generated again. -# -# DO NOT MODIFY THIS FILE - -# License Agreement -# -# Copyright (c) 2008 -# Altera Corporation, San Jose, California, USA. -# All rights reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -# DEALINGS IN THE SOFTWARE. -# -# This agreement shall be governed in all respects by the laws of the State -# of California and by the laws of the United States of America. - -# Define memory regions for each memory connected to the CPU. -# The cache attribute is specified which improves GDB performance -# by allowing GDB to cache memory contents on the host. - -# onchip_memory -memory 0x0 0x32000 cache diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_alarm_start.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_alarm_start.d deleted file mode 100644 index a293917..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_alarm_start.d +++ /dev/null @@ -1,22 +0,0 @@ -obj/HAL/src/alt_alarm_start.o: HAL/src/alt_alarm_start.c \ - HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ - HAL/inc/nios2.h system.h linker.h - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -system.h: - -linker.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_alarm_start.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_alarm_start.o deleted file mode 100644 index f448c80..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_alarm_start.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_busy_sleep.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_busy_sleep.d deleted file mode 100644 index 0441737..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_busy_sleep.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/HAL/src/alt_busy_sleep.o: HAL/src/alt_busy_sleep.c system.h linker.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_busy_sleep.h - -system.h: - -linker.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_busy_sleep.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_busy_sleep.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_busy_sleep.o deleted file mode 100644 index a0ab6c3..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_busy_sleep.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_close.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_close.d deleted file mode 100644 index c678dc5..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_close.d +++ /dev/null @@ -1,34 +0,0 @@ -obj/HAL/src/alt_close.o: HAL/src/alt_close.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ - HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_close.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_close.o deleted file mode 100644 index 1d5963f..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_close.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush.d deleted file mode 100644 index cc01756..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush.d +++ /dev/null @@ -1,15 +0,0 @@ -obj/HAL/src/alt_dcache_flush.o: HAL/src/alt_dcache_flush.c \ - HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ - HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h - -HAL/inc/nios2.h: - -system.h: - -linker.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_cache.h: - -HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush.o deleted file mode 100644 index c808c9c..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_all.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_all.d deleted file mode 100644 index 9b4b55d..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_all.d +++ /dev/null @@ -1,15 +0,0 @@ -obj/HAL/src/alt_dcache_flush_all.o: HAL/src/alt_dcache_flush_all.c \ - HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ - HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h - -HAL/inc/nios2.h: - -system.h: - -linker.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_cache.h: - -HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_all.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_all.o deleted file mode 100644 index 63cbf72..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_all.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d deleted file mode 100644 index a1291f0..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.d +++ /dev/null @@ -1,16 +0,0 @@ -obj/HAL/src/alt_dcache_flush_no_writeback.o: \ - HAL/src/alt_dcache_flush_no_writeback.c HAL/inc/nios2.h system.h \ - linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h \ - HAL/inc/alt_types.h - -HAL/inc/nios2.h: - -system.h: - -linker.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_cache.h: - -HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o deleted file mode 100644 index d398537..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dcache_flush_no_writeback.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev.d deleted file mode 100644 index 89b9883..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev.d +++ /dev/null @@ -1,34 +0,0 @@ -obj/HAL/src/alt_dev.o: HAL/src/alt_dev.c HAL/inc/sys/alt_dev.h system.h \ - linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ - HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ - system.h - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/alt_types.h: - -system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev.o deleted file mode 100644 index b1269dc..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev_llist_insert.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev_llist_insert.d deleted file mode 100644 index f23980f..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev_llist_insert.d +++ /dev/null @@ -1,13 +0,0 @@ -obj/HAL/src/alt_dev_llist_insert.o: HAL/src/alt_dev_llist_insert.c \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_errno.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev_llist_insert.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev_llist_insert.o deleted file mode 100644 index ff99a15..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dev_llist_insert.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_rxchan_open.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_rxchan_open.d deleted file mode 100644 index 71aa62d..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_rxchan_open.d +++ /dev/null @@ -1,35 +0,0 @@ -obj/HAL/src/alt_dma_rxchan_open.o: HAL/src/alt_dma_rxchan_open.c \ - HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ - HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ - HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h - -HAL/inc/sys/alt_dma.h: - -HAL/inc/sys/alt_dma_dev.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_errno.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_rxchan_open.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_rxchan_open.o deleted file mode 100644 index 037b093..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_rxchan_open.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_txchan_open.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_txchan_open.d deleted file mode 100644 index 2a33dba..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_txchan_open.d +++ /dev/null @@ -1,35 +0,0 @@ -obj/HAL/src/alt_dma_txchan_open.o: HAL/src/alt_dma_txchan_open.c \ - HAL/inc/sys/alt_dma.h HAL/inc/sys/alt_dma_dev.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h \ - HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ - HAL/inc/sys/alt_llist.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h - -HAL/inc/sys/alt_dma.h: - -HAL/inc/sys/alt_dma_dev.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_errno.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_txchan_open.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_txchan_open.o deleted file mode 100644 index 710be6e..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_dma_txchan_open.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_ctors.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_ctors.d deleted file mode 100644 index 0898fbc..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_ctors.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_do_ctors.o: HAL/src/alt_do_ctors.c diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_ctors.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_ctors.o deleted file mode 100644 index be38516..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_ctors.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_dtors.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_dtors.d deleted file mode 100644 index abdadfa..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_dtors.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_do_dtors.o: HAL/src/alt_do_dtors.c diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_dtors.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_dtors.o deleted file mode 100644 index bf6f4e7..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_do_dtors.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_env_lock.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_env_lock.d deleted file mode 100644 index fd8a733..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_env_lock.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_env_lock.o: HAL/src/alt_env_lock.c diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_env_lock.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_env_lock.o deleted file mode 100644 index 5aca054..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_env_lock.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_environ.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_environ.d deleted file mode 100644 index b622e4b..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_environ.d +++ /dev/null @@ -1,3 +0,0 @@ -obj/HAL/src/alt_environ.o: HAL/src/alt_environ.c HAL/inc/os/alt_syscall.h - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_environ.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_environ.o deleted file mode 100644 index 5dd291e..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_environ.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_errno.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_errno.d deleted file mode 100644 index 51c7dcd..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_errno.d +++ /dev/null @@ -1,8 +0,0 @@ -obj/HAL/src/alt_errno.o: HAL/src/alt_errno.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/alt_types.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_errno.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_errno.o deleted file mode 100644 index 1b96c0a..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_errno.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_entry.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_entry.d deleted file mode 100644 index 7960631..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_entry.d +++ /dev/null @@ -1,6 +0,0 @@ -obj/HAL/src/alt_exception_entry.o: HAL/src/alt_exception_entry.S system.h \ - linker.h - -system.h: - -linker.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_entry.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_entry.o deleted file mode 100644 index da2bc74..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_entry.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_muldiv.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_muldiv.d deleted file mode 100644 index a1e5556..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_muldiv.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_exception_muldiv.o: HAL/src/alt_exception_muldiv.S diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_muldiv.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_muldiv.o deleted file mode 100644 index cfff51d..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_muldiv.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_trap.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_trap.d deleted file mode 100644 index ef4edc6..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_trap.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_exception_trap.o: HAL/src/alt_exception_trap.S diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_trap.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_trap.o deleted file mode 100644 index 0949730..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exception_trap.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_execve.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_execve.d deleted file mode 100644 index 0060a9d..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_execve.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/HAL/src/alt_execve.o: HAL/src/alt_execve.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_execve.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_execve.o deleted file mode 100644 index 8bcdf4e..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_execve.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exit.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exit.d deleted file mode 100644 index 09ed618..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exit.d +++ /dev/null @@ -1,26 +0,0 @@ -obj/HAL/src/alt_exit.o: HAL/src/alt_exit.c HAL/inc/sys/alt_irq.h \ - HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ - HAL/inc/sys/alt_sim.h HAL/inc/os/alt_hooks.h HAL/inc/os/alt_syscall.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_log_printf.h system.h - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_sim.h: - -HAL/inc/os/alt_hooks.h: - -HAL/inc/os/alt_syscall.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_log_printf.h: - -system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exit.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exit.o deleted file mode 100644 index ba0dd15..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_exit.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fcntl.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fcntl.d deleted file mode 100644 index b8835a6..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fcntl.d +++ /dev/null @@ -1,34 +0,0 @@ -obj/HAL/src/alt_fcntl.o: HAL/src/alt_fcntl.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ - system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ - HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fcntl.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fcntl.o deleted file mode 100644 index 8530c9f..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fcntl.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_lock.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_lock.d deleted file mode 100644 index f6d94e1..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_lock.d +++ /dev/null @@ -1,27 +0,0 @@ -obj/HAL/src/alt_fd_lock.o: HAL/src/alt_fd_lock.c HAL/inc/priv/alt_file.h \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_lock.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_lock.o deleted file mode 100644 index 8fe3cf5..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_lock.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_unlock.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_unlock.d deleted file mode 100644 index 9778463..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_unlock.d +++ /dev/null @@ -1,27 +0,0 @@ -obj/HAL/src/alt_fd_unlock.o: HAL/src/alt_fd_unlock.c \ - HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_unlock.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_unlock.o deleted file mode 100644 index e56798c..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fd_unlock.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_dev.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_dev.d deleted file mode 100644 index 7b37308..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_dev.d +++ /dev/null @@ -1,31 +0,0 @@ -obj/HAL/src/alt_find_dev.o: HAL/src/alt_find_dev.c HAL/inc/sys/alt_dev.h \ - system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ - HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_dev.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_dev.o deleted file mode 100644 index 152b073..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_dev.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_file.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_file.d deleted file mode 100644 index 4f15c6d..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_file.d +++ /dev/null @@ -1,32 +0,0 @@ -obj/HAL/src/alt_find_file.o: HAL/src/alt_find_file.c \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ - HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ - HAL/inc/alt_types.h - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_file.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_file.o deleted file mode 100644 index d2e541b..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_find_file.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_flash_dev.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_flash_dev.d deleted file mode 100644 index e665b37..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_flash_dev.d +++ /dev/null @@ -1,34 +0,0 @@ -obj/HAL/src/alt_flash_dev.o: HAL/src/alt_flash_dev.c \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/sys/alt_flash_dev.h \ - HAL/inc/sys/alt_flash_types.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ - system.h linker.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_flash_dev.h: - -HAL/inc/sys/alt_flash_types.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_flash_dev.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_flash_dev.o deleted file mode 100644 index 74bc7e8..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_flash_dev.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fork.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fork.d deleted file mode 100644 index ef5b637..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fork.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/HAL/src/alt_fork.o: HAL/src/alt_fork.c HAL/inc/sys/alt_warning.h \ - HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_warning.h: - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fork.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fork.o deleted file mode 100644 index a383d61..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fork.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fs_reg.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fs_reg.d deleted file mode 100644 index f56b56f..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fs_reg.d +++ /dev/null @@ -1,29 +0,0 @@ -obj/HAL/src/alt_fs_reg.o: HAL/src/alt_fs_reg.c HAL/inc/sys/alt_dev.h \ - system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ - HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fs_reg.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fs_reg.o deleted file mode 100644 index 2b362d2..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fs_reg.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fstat.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fstat.d deleted file mode 100644 index b1c4a1e..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fstat.d +++ /dev/null @@ -1,36 +0,0 @@ -obj/HAL/src/alt_fstat.o: HAL/src/alt_fstat.c HAL/inc/sys/alt_dev.h \ - system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/sys/alt_errno.h \ - HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/sys/alt_errno.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fstat.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fstat.o deleted file mode 100644 index 3f2b8a4..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_fstat.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_get_fd.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_get_fd.d deleted file mode 100644 index 5524f68..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_get_fd.d +++ /dev/null @@ -1,34 +0,0 @@ -obj/HAL/src/alt_get_fd.o: HAL/src/alt_get_fd.c HAL/inc/sys/alt_dev.h \ - system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h \ - HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/alt_types.h \ - system.h - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/alt_types.h: - -system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_get_fd.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_get_fd.o deleted file mode 100644 index 085b9ea..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_get_fd.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getchar.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getchar.d deleted file mode 100644 index aa88591..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getchar.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_getchar.o: HAL/src/alt_getchar.c diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getchar.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getchar.o deleted file mode 100644 index 3e51a29..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getchar.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getpid.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getpid.d deleted file mode 100644 index 365651b..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getpid.d +++ /dev/null @@ -1,3 +0,0 @@ -obj/HAL/src/alt_getpid.o: HAL/src/alt_getpid.c HAL/inc/os/alt_syscall.h - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getpid.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getpid.o deleted file mode 100644 index 804be35..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_getpid.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gettod.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gettod.d deleted file mode 100644 index ffd23b8..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gettod.d +++ /dev/null @@ -1,17 +0,0 @@ -obj/HAL/src/alt_gettod.o: HAL/src/alt_gettod.c HAL/inc/sys/alt_alarm.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_alarm.h \ - HAL/inc/alt_types.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gettod.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gettod.o deleted file mode 100644 index e2d99e2..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gettod.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gmon.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gmon.d deleted file mode 100644 index 6a213bf..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gmon.d +++ /dev/null @@ -1,24 +0,0 @@ -obj/HAL/src/alt_gmon.o: HAL/src/alt_gmon.c HAL/inc/priv/nios2_gmon_data.h \ - HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ - linker.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h - -HAL/inc/priv/nios2_gmon_data.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gmon.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gmon.o deleted file mode 100644 index 96a7c68..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_gmon.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush.d deleted file mode 100644 index a6048d7..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush.d +++ /dev/null @@ -1,15 +0,0 @@ -obj/HAL/src/alt_icache_flush.o: HAL/src/alt_icache_flush.c \ - HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ - HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h - -HAL/inc/nios2.h: - -system.h: - -linker.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_cache.h: - -HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush.o deleted file mode 100644 index 2619923..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush_all.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush_all.d deleted file mode 100644 index 19ee42e..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush_all.d +++ /dev/null @@ -1,15 +0,0 @@ -obj/HAL/src/alt_icache_flush_all.o: HAL/src/alt_icache_flush_all.c \ - HAL/inc/nios2.h system.h linker.h HAL/inc/alt_types.h \ - HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h - -HAL/inc/nios2.h: - -system.h: - -linker.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_cache.h: - -HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush_all.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush_all.o deleted file mode 100644 index c1d3c7c..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_icache_flush_all.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic.d deleted file mode 100644 index 444ca68..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic.d +++ /dev/null @@ -1,29 +0,0 @@ -obj/HAL/src/alt_iic.o: HAL/src/alt_iic.c system.h linker.h \ - HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ - HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ - HAL/inc/sys/alt_irq.h HAL/inc/priv/alt_legacy_irq.h system.h \ - HAL/inc/nios2.h - -system.h: - -linker.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -HAL/inc/priv/alt_iic_isr_register.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/priv/alt_legacy_irq.h: - -system.h: - -HAL/inc/nios2.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic.o deleted file mode 100644 index 58dc6c1..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic_isr_register.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic_isr_register.d deleted file mode 100644 index 93b9138..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic_isr_register.d +++ /dev/null @@ -1,30 +0,0 @@ -obj/HAL/src/alt_iic_isr_register.o: HAL/src/alt_iic_isr_register.c \ - system.h linker.h HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h \ - HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ - HAL/inc/priv/alt_iic_isr_register.h HAL/inc/alt_types.h \ - HAL/inc/sys/alt_irq.h HAL/inc/sys/alt_irq_entry.h \ - HAL/inc/priv/alt_irq_table.h - -system.h: - -linker.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -HAL/inc/priv/alt_iic_isr_register.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/sys/alt_irq_entry.h: - -HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic_isr_register.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic_isr_register.o deleted file mode 100644 index 23a1763..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_iic_isr_register.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_entry.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_entry.d deleted file mode 100644 index f91b75a..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_entry.d +++ /dev/null @@ -1,18 +0,0 @@ -obj/HAL/src/alt_instruction_exception_entry.o: \ - HAL/src/alt_instruction_exception_entry.c HAL/inc/sys/alt_exceptions.h \ - HAL/inc/alt_types.h system.h linker.h HAL/inc/nios2.h \ - HAL/inc/alt_types.h system.h - -HAL/inc/sys/alt_exceptions.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_entry.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_entry.o deleted file mode 100644 index 5a3b998..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_entry.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_register.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_register.d deleted file mode 100644 index 24c4435..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_register.d +++ /dev/null @@ -1,16 +0,0 @@ -obj/HAL/src/alt_instruction_exception_register.o: \ - HAL/src/alt_instruction_exception_register.c \ - HAL/inc/sys/alt_exceptions.h HAL/inc/alt_types.h system.h linker.h \ - HAL/inc/alt_types.h system.h - -HAL/inc/sys/alt_exceptions.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: - -HAL/inc/alt_types.h: - -system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_register.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_register.o deleted file mode 100644 index b6dd600..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_instruction_exception_register.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_io_redirect.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_io_redirect.d deleted file mode 100644 index d84ac28..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_io_redirect.d +++ /dev/null @@ -1,29 +0,0 @@ -obj/HAL/src/alt_io_redirect.o: HAL/src/alt_io_redirect.c \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ - HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_io_redirect.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_io_redirect.o deleted file mode 100644 index ed56196..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_io_redirect.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_ioctl.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_ioctl.d deleted file mode 100644 index 0b46e82..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_ioctl.d +++ /dev/null @@ -1,36 +0,0 @@ -obj/HAL/src/alt_ioctl.o: HAL/src/alt_ioctl.c HAL/inc/sys/ioctl.h \ - HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ - HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h system.h linker.h \ - HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/ioctl.h: - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_ioctl.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_ioctl.o deleted file mode 100644 index 1fd0e47..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_ioctl.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_entry.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_entry.d deleted file mode 100644 index c2477c1..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_entry.d +++ /dev/null @@ -1,5 +0,0 @@ -obj/HAL/src/alt_irq_entry.o: HAL/src/alt_irq_entry.S system.h linker.h - -system.h: - -linker.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_entry.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_entry.o deleted file mode 100644 index b437282..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_entry.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_handler.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_handler.d deleted file mode 100644 index c6ee821..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_handler.d +++ /dev/null @@ -1,19 +0,0 @@ -obj/HAL/src/alt_irq_handler.o: HAL/src/alt_irq_handler.c system.h \ - linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ - system.h HAL/inc/os/alt_hooks.h HAL/inc/alt_types.h - -system.h: - -linker.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -HAL/inc/os/alt_hooks.h: - -HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_handler.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_handler.o deleted file mode 100644 index f688411..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_handler.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_register.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_register.d deleted file mode 100644 index ad1830e..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_register.d +++ /dev/null @@ -1,36 +0,0 @@ -obj/HAL/src/alt_irq_register.o: HAL/src/alt_irq_register.c system.h \ - linker.h HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h \ - system.h HAL/inc/priv/alt_legacy_irq.h system.h HAL/inc/nios2.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_irq.h HAL/inc/os/alt_hooks.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_irq_entry.h \ - HAL/inc/priv/alt_irq_table.h - -system.h: - -linker.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -HAL/inc/priv/alt_legacy_irq.h: - -system.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/os/alt_hooks.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_irq_entry.h: - -HAL/inc/priv/alt_irq_table.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_register.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_register.o deleted file mode 100644 index e319407..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_register.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_vars.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_vars.d deleted file mode 100644 index c339fc6..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_vars.d +++ /dev/null @@ -1,8 +0,0 @@ -obj/HAL/src/alt_irq_vars.o: HAL/src/alt_irq_vars.c HAL/inc/alt_types.h \ - system.h linker.h - -HAL/inc/alt_types.h: - -system.h: - -linker.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_vars.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_vars.o deleted file mode 100644 index 4e13c7a..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_irq_vars.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_isatty.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_isatty.d deleted file mode 100644 index 1b9868b..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_isatty.d +++ /dev/null @@ -1,36 +0,0 @@ -obj/HAL/src/alt_isatty.o: HAL/src/alt_isatty.c HAL/inc/sys/alt_dev.h \ - system.h linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_errno.h HAL/inc/sys/alt_warning.h \ - HAL/inc/priv/alt_file.h HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_errno.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_isatty.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_isatty.o deleted file mode 100644 index 6844ad9..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_isatty.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_kill.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_kill.d deleted file mode 100644 index 7ced1b6..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_kill.d +++ /dev/null @@ -1,8 +0,0 @@ -obj/HAL/src/alt_kill.o: HAL/src/alt_kill.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_kill.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_kill.o deleted file mode 100644 index 583ec15..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_kill.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_link.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_link.d deleted file mode 100644 index 2156c3d..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_link.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/HAL/src/alt_link.o: HAL/src/alt_link.c HAL/inc/sys/alt_warning.h \ - HAL/inc/sys/alt_errno.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_warning.h: - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_link.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_link.o deleted file mode 100644 index 4837403..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_link.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_load.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_load.d deleted file mode 100644 index ff64508..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_load.d +++ /dev/null @@ -1,8 +0,0 @@ -obj/HAL/src/alt_load.o: HAL/src/alt_load.c HAL/inc/sys/alt_load.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_cache.h - -HAL/inc/sys/alt_load.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_cache.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_load.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_load.o deleted file mode 100644 index 1bd1f85..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_load.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_macro.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_macro.d deleted file mode 100644 index b6c30c4..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_macro.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_log_macro.o: HAL/src/alt_log_macro.S diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_macro.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_macro.o deleted file mode 100644 index 489e2cc..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_macro.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_printf.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_printf.d deleted file mode 100644 index ddd7cdb..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_printf.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_log_printf.o: HAL/src/alt_log_printf.c diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_printf.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_printf.o deleted file mode 100644 index a03c33d..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_log_printf.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_lseek.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_lseek.d deleted file mode 100644 index a103673..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_lseek.d +++ /dev/null @@ -1,34 +0,0 @@ -obj/HAL/src/alt_lseek.o: HAL/src/alt_lseek.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ - HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_lseek.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_lseek.o deleted file mode 100644 index 2881303..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_lseek.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_main.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_main.d deleted file mode 100644 index 67b6a7b..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_main.d +++ /dev/null @@ -1,47 +0,0 @@ -obj/HAL/src/alt_main.o: HAL/src/alt_main.c HAL/inc/sys/alt_dev.h system.h \ - linker.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_sys_init.h HAL/inc/sys/alt_irq.h \ - HAL/inc/nios2.h HAL/inc/os/alt_hooks.h HAL/inc/priv/alt_file.h \ - HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ - HAL/inc/alt_types.h system.h HAL/inc/sys/alt_log_printf.h system.h - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_sys_init.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/os/alt_hooks.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/alt_types.h: - -system.h: - -HAL/inc/sys/alt_log_printf.h: - -system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_main.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_main.o deleted file mode 100644 index 6cd08ef..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_main.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_malloc_lock.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_malloc_lock.d deleted file mode 100644 index 981b056..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_malloc_lock.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_malloc_lock.o: HAL/src/alt_malloc_lock.c diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_malloc_lock.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_malloc_lock.o deleted file mode 100644 index aafd2ee..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_malloc_lock.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_mcount.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_mcount.d deleted file mode 100644 index 4fa3643..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_mcount.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_mcount.o: HAL/src/alt_mcount.S diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_mcount.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_mcount.o deleted file mode 100644 index 9222010..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_mcount.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_open.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_open.d deleted file mode 100644 index a5c2358..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_open.d +++ /dev/null @@ -1,36 +0,0 @@ -obj/HAL/src/alt_open.o: HAL/src/alt_open.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ - HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_open.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_open.o deleted file mode 100644 index 4d10367..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_open.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_printf.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_printf.d deleted file mode 100644 index 0fe3550..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_printf.d +++ /dev/null @@ -1,3 +0,0 @@ -obj/HAL/src/alt_printf.o: HAL/src/alt_printf.c HAL/inc/sys/alt_stdio.h - -HAL/inc/sys/alt_stdio.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_printf.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_printf.o deleted file mode 100644 index 02a9989..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_printf.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putchar.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putchar.d deleted file mode 100644 index fa6d19f..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putchar.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_putchar.o: HAL/src/alt_putchar.c diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putchar.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putchar.o deleted file mode 100644 index 9ad652b..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putchar.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putstr.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putstr.d deleted file mode 100644 index a28ce55..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putstr.d +++ /dev/null @@ -1 +0,0 @@ -obj/HAL/src/alt_putstr.o: HAL/src/alt_putstr.c diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putstr.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putstr.o deleted file mode 100644 index d320ab7..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_putstr.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_read.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_read.d deleted file mode 100644 index f5d459d..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_read.d +++ /dev/null @@ -1,34 +0,0 @@ -obj/HAL/src/alt_read.o: HAL/src/alt_read.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ - HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_read.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_read.o deleted file mode 100644 index 3a2cb87..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_read.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_release_fd.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_release_fd.d deleted file mode 100644 index 137f496..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_release_fd.d +++ /dev/null @@ -1,29 +0,0 @@ -obj/HAL/src/alt_release_fd.o: HAL/src/alt_release_fd.c \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_file.h \ - HAL/inc/sys/alt_dev.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_release_fd.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_release_fd.o deleted file mode 100644 index f492037..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_release_fd.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_cached.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_cached.d deleted file mode 100644 index abacaa4..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_cached.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/HAL/src/alt_remap_cached.o: HAL/src/alt_remap_cached.c \ - HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h - -HAL/inc/sys/alt_cache.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_cached.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_cached.o deleted file mode 100644 index 6dfdb91..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_cached.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_uncached.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_uncached.d deleted file mode 100644 index 19b8e4c..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_uncached.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/HAL/src/alt_remap_uncached.o: HAL/src/alt_remap_uncached.c \ - HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h - -HAL/inc/sys/alt_cache.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_uncached.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_uncached.o deleted file mode 100644 index db61c94..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_remap_uncached.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_rename.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_rename.d deleted file mode 100644 index f16ad38..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_rename.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/HAL/src/alt_rename.o: HAL/src/alt_rename.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_rename.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_rename.o deleted file mode 100644 index fa33675..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_rename.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_sbrk.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_sbrk.d deleted file mode 100644 index cc6de28..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_sbrk.d +++ /dev/null @@ -1,19 +0,0 @@ -obj/HAL/src/alt_sbrk.o: HAL/src/alt_sbrk.c HAL/inc/os/alt_syscall.h \ - HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ - linker.h HAL/inc/sys/alt_stack.h system.h - -HAL/inc/os/alt_syscall.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_stack.h: - -system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_sbrk.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_sbrk.o deleted file mode 100644 index aa724fc..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_sbrk.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_settod.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_settod.d deleted file mode 100644 index f8e7109..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_settod.d +++ /dev/null @@ -1,17 +0,0 @@ -obj/HAL/src/alt_settod.o: HAL/src/alt_settod.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_settod.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_settod.o deleted file mode 100644 index 1f3f495..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_settod.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_software_exception.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_software_exception.d deleted file mode 100644 index d17d10b..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_software_exception.d +++ /dev/null @@ -1,6 +0,0 @@ -obj/HAL/src/alt_software_exception.o: HAL/src/alt_software_exception.S \ - system.h linker.h - -system.h: - -linker.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_software_exception.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_software_exception.o deleted file mode 100644 index f9e01c2..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_software_exception.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_stat.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_stat.d deleted file mode 100644 index b66e05e..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_stat.d +++ /dev/null @@ -1,3 +0,0 @@ -obj/HAL/src/alt_stat.o: HAL/src/alt_stat.c HAL/inc/os/alt_syscall.h - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_stat.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_stat.o deleted file mode 100644 index 4ae64f5..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_stat.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_tick.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_tick.d deleted file mode 100644 index 88d8e2a..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_tick.d +++ /dev/null @@ -1,27 +0,0 @@ -obj/HAL/src/alt_tick.o: HAL/src/alt_tick.c HAL/inc/sys/alt_irq.h \ - HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ - HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_hooks.h \ - HAL/inc/alt_types.h - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_hooks.h: - -HAL/inc/alt_types.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_tick.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_tick.o deleted file mode 100644 index ddc243c..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_tick.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_times.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_times.d deleted file mode 100644 index e0ded1e..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_times.d +++ /dev/null @@ -1,17 +0,0 @@ -obj/HAL/src/alt_times.o: HAL/src/alt_times.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_times.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_times.o deleted file mode 100644 index d54db07..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_times.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_free.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_free.d deleted file mode 100644 index 7d5ae2b..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_free.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/HAL/src/alt_uncached_free.o: HAL/src/alt_uncached_free.c \ - HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h - -HAL/inc/sys/alt_cache.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_free.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_free.o deleted file mode 100644 index 003b83e..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_free.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_malloc.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_malloc.d deleted file mode 100644 index 05d57d8..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_malloc.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/HAL/src/alt_uncached_malloc.o: HAL/src/alt_uncached_malloc.c \ - HAL/inc/sys/alt_cache.h HAL/inc/alt_types.h system.h linker.h - -HAL/inc/sys/alt_cache.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_malloc.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_malloc.o deleted file mode 100644 index 0481ead..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_uncached_malloc.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_unlink.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_unlink.d deleted file mode 100644 index 04b6dcd..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_unlink.d +++ /dev/null @@ -1,10 +0,0 @@ -obj/HAL/src/alt_unlink.o: HAL/src/alt_unlink.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_unlink.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_unlink.o deleted file mode 100644 index 8cf1437..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_unlink.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_usleep.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_usleep.d deleted file mode 100644 index c3ccee2..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_usleep.d +++ /dev/null @@ -1,6 +0,0 @@ -obj/HAL/src/alt_usleep.o: HAL/src/alt_usleep.c \ - HAL/inc/priv/alt_busy_sleep.h HAL/inc/os/alt_syscall.h - -HAL/inc/priv/alt_busy_sleep.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_usleep.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_usleep.o deleted file mode 100644 index d3a2e4e..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_usleep.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_wait.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_wait.d deleted file mode 100644 index 98bf5df..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_wait.d +++ /dev/null @@ -1,8 +0,0 @@ -obj/HAL/src/alt_wait.o: HAL/src/alt_wait.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/os/alt_syscall.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_syscall.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_wait.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_wait.o deleted file mode 100644 index 82033f5..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_wait.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_write.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_write.d deleted file mode 100644 index 722e8bc..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_write.d +++ /dev/null @@ -1,38 +0,0 @@ -obj/HAL/src/alt_write.o: HAL/src/alt_write.c HAL/inc/sys/alt_errno.h \ - HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h HAL/inc/priv/alt_file.h \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h \ - HAL/inc/os/alt_syscall.h HAL/inc/sys/alt_log_printf.h system.h - -HAL/inc/sys/alt_errno.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/priv/alt_file.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_syscall.h: - -HAL/inc/sys/alt_log_printf.h: - -system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_write.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_write.o deleted file mode 100644 index 4c25338..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/alt_write.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/altera_nios2_qsys_irq.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/altera_nios2_qsys_irq.d deleted file mode 100644 index 45223c8..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/altera_nios2_qsys_irq.d +++ /dev/null @@ -1,15 +0,0 @@ -obj/HAL/src/altera_nios2_qsys_irq.o: HAL/src/altera_nios2_qsys_irq.c \ - HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ - linker.h HAL/inc/altera_nios2_qsys_irq.h - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: - -HAL/inc/altera_nios2_qsys_irq.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/altera_nios2_qsys_irq.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/altera_nios2_qsys_irq.o deleted file mode 100644 index 8991bdc..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/altera_nios2_qsys_irq.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/crt0.d b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/crt0.d deleted file mode 100644 index c1049a0..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/crt0.d +++ /dev/null @@ -1,12 +0,0 @@ -obj/HAL/src/crt0.o: HAL/src/crt0.S system.h linker.h HAL/inc/nios2.h \ - HAL/inc/sys/alt_log_printf.h system.h - -system.h: - -linker.h: - -HAL/inc/nios2.h: - -HAL/inc/sys/alt_log_printf.h: - -system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/crt0.o b/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/crt0.o deleted file mode 100644 index 40b849e..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/HAL/src/crt0.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/alt_sys_init.d b/software/qsys_tutorial_lcd4_bsp/obj/alt_sys_init.d deleted file mode 100644 index df7e15a..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/alt_sys_init.d +++ /dev/null @@ -1,59 +0,0 @@ -obj/alt_sys_init.o: alt_sys_init.c system.h linker.h \ - HAL/inc/sys/alt_irq.h HAL/inc/nios2.h HAL/inc/alt_types.h system.h \ - HAL/inc/sys/alt_sys_init.h HAL/inc/altera_nios2_qsys_irq.h \ - drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ - HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h \ - HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ - drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ - HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h drivers/inc/altera_avalon_lcd_16207.h \ - drivers/inc/altera_avalon_lcd_16207_fd.h - -system.h: - -linker.h: - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -HAL/inc/sys/alt_sys_init.h: - -HAL/inc/altera_nios2_qsys_irq.h: - -drivers/inc/altera_avalon_jtag_uart.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_flag.h: - -drivers/inc/altera_avalon_jtag_uart_fd.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -drivers/inc/altera_avalon_lcd_16207.h: - -drivers/inc/altera_avalon_lcd_16207_fd.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/alt_sys_init.o b/software/qsys_tutorial_lcd4_bsp/obj/alt_sys_init.o deleted file mode 100644 index 368c963..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/alt_sys_init.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d deleted file mode 100644 index 5fd0251..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.d +++ /dev/null @@ -1,48 +0,0 @@ -obj/drivers/src/altera_avalon_jtag_uart_fd.o: \ - drivers/src/altera_avalon_jtag_uart_fd.c HAL/inc/alt_types.h \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - drivers/inc/altera_avalon_jtag_uart.h HAL/inc/sys/alt_alarm.h \ - HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h \ - HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ - drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_jtag_uart.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_flag.h: - -drivers/inc/altera_avalon_jtag_uart_fd.h: - -HAL/inc/sys/alt_dev.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o deleted file mode 100644 index 47d1060..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_fd.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d deleted file mode 100644 index 39101c1..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.d +++ /dev/null @@ -1,66 +0,0 @@ -obj/drivers/src/altera_avalon_jtag_uart_init.o: \ - drivers/src/altera_avalon_jtag_uart_init.c HAL/inc/sys/alt_irq.h \ - HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ - HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ - HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ - HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ - HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ - drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ - HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/ioctl.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_jtag_uart_regs.h: - -HAL/inc/io.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_jtag_uart.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_flag.h: - -drivers/inc/altera_avalon_jtag_uart_fd.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/sys/alt_log_printf.h: - -system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o deleted file mode 100644 index 5421bd3..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_init.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d deleted file mode 100644 index 39508a1..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.d +++ /dev/null @@ -1,58 +0,0 @@ -obj/drivers/src/altera_avalon_jtag_uart_ioctl.o: \ - drivers/src/altera_avalon_jtag_uart_ioctl.c HAL/inc/sys/ioctl.h \ - HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ - HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ - HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/alt_warning.h \ - HAL/inc/os/alt_sem.h HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ - drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h system.h \ - linker.h HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h - -HAL/inc/sys/ioctl.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_jtag_uart_regs.h: - -HAL/inc/io.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_jtag_uart.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_flag.h: - -drivers/inc/altera_avalon_jtag_uart_fd.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/sys/alt_log_printf.h: - -system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o deleted file mode 100644 index e0ab8c9..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_ioctl.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d deleted file mode 100644 index 915c27a..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.d +++ /dev/null @@ -1,66 +0,0 @@ -obj/drivers/src/altera_avalon_jtag_uart_read.o: \ - drivers/src/altera_avalon_jtag_uart_read.c HAL/inc/sys/alt_irq.h \ - HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ - HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ - HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ - HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ - HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ - drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ - HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/ioctl.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_jtag_uart_regs.h: - -HAL/inc/io.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_jtag_uart.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_flag.h: - -drivers/inc/altera_avalon_jtag_uart_fd.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/sys/alt_log_printf.h: - -system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o deleted file mode 100644 index 3ed168a..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_read.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d deleted file mode 100644 index 4e67aaa..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.d +++ /dev/null @@ -1,66 +0,0 @@ -obj/drivers/src/altera_avalon_jtag_uart_write.o: \ - drivers/src/altera_avalon_jtag_uart_write.c HAL/inc/sys/alt_irq.h \ - HAL/inc/nios2.h HAL/inc/alt_types.h system.h linker.h \ - HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_alarm.h HAL/inc/alt_types.h HAL/inc/sys/ioctl.h \ - HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart_regs.h \ - HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_jtag_uart.h \ - HAL/inc/sys/alt_alarm.h HAL/inc/sys/alt_warning.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h HAL/inc/os/alt_flag.h \ - drivers/inc/altera_avalon_jtag_uart_fd.h HAL/inc/sys/alt_dev.h \ - HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/sys/alt_log_printf.h system.h - -HAL/inc/sys/alt_irq.h: - -HAL/inc/nios2.h: - -HAL/inc/alt_types.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -HAL/inc/sys/ioctl.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_jtag_uart_regs.h: - -HAL/inc/io.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_jtag_uart.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_warning.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -HAL/inc/os/alt_flag.h: - -drivers/inc/altera_avalon_jtag_uart_fd.h: - -HAL/inc/sys/alt_dev.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/sys/alt_log_printf.h: - -system.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o deleted file mode 100644 index 7436f27..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_jtag_uart_write.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207.d b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207.d deleted file mode 100644 index 238baea..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207.d +++ /dev/null @@ -1,47 +0,0 @@ -obj/drivers/src/altera_avalon_lcd_16207.o: \ - drivers/src/altera_avalon_lcd_16207.c HAL/inc/sys/alt_alarm.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h HAL/inc/priv/alt_alarm.h \ - HAL/inc/alt_types.h drivers/inc/altera_avalon_lcd_16207_regs.h \ - HAL/inc/io.h HAL/inc/alt_types.h drivers/inc/altera_avalon_lcd_16207.h \ - HAL/inc/sys/alt_alarm.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h drivers/inc/altera_avalon_lcd_16207_fd.h \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/priv/alt_dev_llist.h HAL/inc/sys/alt_llist.h - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_lcd_16207_regs.h: - -HAL/inc/io.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_lcd_16207.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -drivers/inc/altera_avalon_lcd_16207_fd.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207.o b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207.o deleted file mode 100644 index ff2c2e8..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.d b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.d deleted file mode 100644 index d45be02..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.d +++ /dev/null @@ -1,43 +0,0 @@ -obj/drivers/src/altera_avalon_lcd_16207_fd.o: \ - drivers/src/altera_avalon_lcd_16207_fd.c HAL/inc/alt_types.h \ - HAL/inc/sys/alt_dev.h system.h linker.h HAL/inc/sys/alt_llist.h \ - HAL/inc/alt_types.h HAL/inc/priv/alt_dev_llist.h \ - HAL/inc/sys/alt_llist.h HAL/inc/alt_types.h \ - drivers/inc/altera_avalon_lcd_16207.h HAL/inc/sys/alt_alarm.h \ - HAL/inc/sys/alt_llist.h HAL/inc/priv/alt_alarm.h HAL/inc/os/alt_sem.h \ - HAL/inc/priv/alt_no_error.h drivers/inc/altera_avalon_lcd_16207_fd.h \ - HAL/inc/sys/alt_dev.h - -HAL/inc/alt_types.h: - -HAL/inc/sys/alt_dev.h: - -system.h: - -linker.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -HAL/inc/priv/alt_dev_llist.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/alt_types.h: - -drivers/inc/altera_avalon_lcd_16207.h: - -HAL/inc/sys/alt_alarm.h: - -HAL/inc/sys/alt_llist.h: - -HAL/inc/priv/alt_alarm.h: - -HAL/inc/os/alt_sem.h: - -HAL/inc/priv/alt_no_error.h: - -drivers/inc/altera_avalon_lcd_16207_fd.h: - -HAL/inc/sys/alt_dev.h: diff --git a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.o b/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.o deleted file mode 100644 index 1986e12..0000000 --- a/software/qsys_tutorial_lcd4_bsp/obj/drivers/src/altera_avalon_lcd_16207_fd.o +++ /dev/null Binary files differ diff --git a/software/qsys_tutorial_lcd4_bsp/public.mk b/software/qsys_tutorial_lcd4_bsp/public.mk deleted file mode 100644 index a8f9076..0000000 --- a/software/qsys_tutorial_lcd4_bsp/public.mk +++ /dev/null @@ -1,377 +0,0 @@ -#------------------------------------------------------------------------------ -# BSP "PUBLIC" MAKEFILE CONTENT -# -# This file is intended to be included in an application or library -# Makefile that is using this BSP. You can create such a Makefile with -# the nios2-app-generate-makefile or nios2-lib-generate-makefile -# commands. -# -# The following variables must be defined before including this file: -# -# ALT_LIBRARY_ROOT_DIR -# Contains the path to the BSP top-level (aka root) directory -#------------------------------------------------------------------------------ - -#------------------------------------------------------------------------------ -# PATHS -#------------------------------------------------------------------------------ - - - -# Path to the provided linker script. -BSP_LINKER_SCRIPT := $(ALT_LIBRARY_ROOT_DIR)/linker.x - -# Include paths: -# The path to root of all header files that a library wishes to make -# available for an application's use is specified here. Note that this -# may not be *all* folders within a hierarchy. For example, if it is -# desired that the application developer type: -# #include -# #include -# With files laid out like this: -# /inc/sockets.h -# /inc/ip/tcpip.h -# -# Then, only /inc need be added to the list of include -# directories. Alternatively, if you wish to be able to directly include -# all files in a hierarchy, separate paths to each folder in that -# hierarchy must be defined. - -# The following are the "base" set of include paths for a BSP. -# These paths are appended to the list that individual software -# components, drivers, etc., add in the generated portion of this -# file (below). -ALT_INCLUDE_DIRS_TO_APPEND += \ - $(ALT_LIBRARY_ROOT_DIR) \ - $(ALT_LIBRARY_ROOT_DIR)/drivers/inc - -# Additions to linker library search-path: -# Here we provide a path to "our self" for the application to construct a -# "-L " out of. This should contain a list of directories, -# relative to the library root, of all directories with .a files to link -# against. -ALT_LIBRARY_DIRS += $(ALT_LIBRARY_ROOT_DIR) - - -#------------------------------------------------------------------------------ -# COMPILATION FLAGS -#------------------------------------------------------------------------------ -# Default C pre-processor flags for a BSP: -ALT_CPPFLAGS += -DSYSTEM_BUS_WIDTH=32 \ - -pipe - - -#------------------------------------------------------------------------------ -# MANAGED CONTENT -# -# All content between the lines "START MANAGED" and "END MANAGED" below is -# generated based on variables in the BSP settings file when the -# nios2-bsp-generate-files command is invoked. If you wish to persist any -# information pertaining to the build process, it is recomended that you -# utilize the BSP settings mechanism to do so. -#------------------------------------------------------------------------------ -#START MANAGED - -# The following TYPE comment allows tools to identify the 'type' of target this -# makefile is associated with. -# TYPE: BSP_PUBLIC_MAKEFILE - -# This following VERSION comment indicates the version of the tool used to -# generate this makefile. A makefile variable is provided for VERSION as well. -# ACDS_VERSION: 13.0sp1 -ACDS_VERSION := 13.0sp1 - -# This following BUILD_NUMBER comment indicates the build number of the tool -# used to generate this makefile. -# BUILD_NUMBER: 232 - -# Qsys--generated SOPCINFO file. Required for resolving node instance ID's with -# design component names. -SOPCINFO_FILE := C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo - -# Big-Endian operation. -# setting BIG_ENDIAN is false -ALT_CFLAGS += -EL - -# Path to the provided C language runtime initialization code. -BSP_CRT0 := $(ALT_LIBRARY_ROOT_DIR)/obj/HAL/src/crt0.o - -# Name of BSP library as provided to linker using the "-msys-lib" flag or -# linker script GROUP command. -# setting BSP_SYS_LIB is hal_bsp -BSP_SYS_LIB := hal_bsp -ELF_PATCH_FLAG += --thread_model hal - -# Type identifier of the BSP library -# setting BSP_TYPE is hal -ALT_CPPFLAGS += -D__hal__ -BSP_TYPE := hal - -# CPU Name -# setting CPU_NAME is nios2_processor -CPU_NAME = nios2_processor -ELF_PATCH_FLAG += --cpu_name $(CPU_NAME) - -# Hardware Divider present. -# setting HARDWARE_DIVIDE is false -ALT_CFLAGS += -mno-hw-div - -# Hardware Multiplier present. -# setting HARDWARE_MULTIPLY is false -ALT_CFLAGS += -mno-hw-mul - -# Hardware Mulx present. -# setting HARDWARE_MULX is false -ALT_CFLAGS += -mno-hw-mulx - -# Debug Core present. -# setting HAS_DEBUG_CORE is true -CPU_HAS_DEBUG_CORE = 1 - -# Qsys generated design -# setting QSYS is 1 -QSYS := 1 -ELF_PATCH_FLAG += --qsys true - -# Design Name -# setting SOPC_NAME is nios_system -SOPC_NAME := nios_system - -# SopcBuilder Simulation Enabled -# setting SOPC_SIMULATION_ENABLED is false -ELF_PATCH_FLAG += --simulation_enabled false - -# Enable JTAG UART driver to recover when host is inactive causing buffer to -# full without returning error. Printf will not fail with this recovery. none -# setting altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error is false - -# Small-footprint (polled mode) driver none -# setting altera_avalon_jtag_uart_driver.enable_small_driver is false - -# Build a custom version of newlib with the specified space-separated compiler -# flags. The custom newlib build will be placed in the <bsp root>/newlib -# directory, and will be used only for applications that utilize this BSP. -# setting hal.custom_newlib_flags is none - -# Enable support for a subset of the C++ language. This option increases code -# footprint by adding support for C++ constructors. Certain features, such as -# multiple inheritance and exceptions are not supported. If false, adds -# -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code -# footprint. none -# setting hal.enable_c_plus_plus is true - -# When your application exits, close file descriptors, call C++ destructors, -# etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -# -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to -# ALT_LDFLAGS in public.mk. none -# setting hal.enable_clean_exit is true - -# Add exit() support. This option increases code footprint if your "main()" -# routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to -# ALT_CPPFLAGS in public.mk, and reduces footprint none -# setting hal.enable_exit is true - -# Causes code to be compiled with gprof profiling enabled and the application -# ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to -# ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. none -# setting hal.enable_gprof is false - -# Enables lightweight device driver API. This reduces code and data footprint -# by removing the HAL layer that maps device names (e.g. /dev/uart0) to file -# descriptors. Instead, driver routines are called directly. The open(), -# close(), and lseek() routines will always fail if called. The read(), -# write(), fstat(), ioctl(), and isatty() routines only work for the stdio -# devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. -# The Altera Host and read-only ZIP file systems can't be used if -# hal.enable_lightweight_device_driver_api is true. -# setting hal.enable_lightweight_device_driver_api is false - -# Adds code to emulate multiply and divide instructions in case they are -# executed but aren't present in the CPU. Normally this isn't required because -# the compiler won't use multiply and divide instructions that aren't present -# in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in -# public.mk. none -# setting hal.enable_mul_div_emulation is false -ALT_CPPFLAGS += -DALT_NO_INSTRUCTION_EMULATION - -# Certain drivers are compiled with reduced functionality to reduce code -# footprint. Not all drivers observe this setting. The altera_avalon_uart and -# altera_avalon_jtag_uart drivers switch from interrupt-driven to polled -# operation. CAUTION: Several device drivers are disabled entirely. These -# include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and -# altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash -# access routines) to fail. You can define a symbol provided by each driver to -# prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to -# ALT_CPPFLAGS in public.mk. none -# setting hal.enable_reduced_device_drivers is false - -# Turns on HAL runtime stack checking feature. Enabling this setting causes -# additional code to be placed into each subroutine call to generate an -# exception if a stack collision occurs with the heap or statically allocated -# data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in -# public.mk. none -# setting hal.enable_runtime_stack_checking is false - -# The BSP is compiled with optimizations to speedup HDL simulation such as -# initializing the cache, clearing the .bss section, and skipping long delay -# loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. When -# this setting is true, the BSP shouldn't be used to build applications that -# are expected to run real hardware. -# setting hal.enable_sim_optimize is false - -# Causes the small newlib (C library) to be used. This reduces code and data -# footprint at the expense of reduced functionality. Several newlib features -# are removed such as floating-point support in printf(), stdin input routines, -# and buffered I/O. The small C library is not compatible with Micrium -# MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. none -# setting hal.enable_small_c_library is false - -# Enable SOPC Builder System ID. If a System ID SOPC Builder component is -# connected to the CPU associated with this BSP, it will be enabled in the -# creation of command-line arguments to download an ELF to the target. -# Otherwise, system ID and timestamp values are left out of public.mk for -# application Makefile "download-elf" target definition. With the system ID -# check disabled, the Nios II EDS tools will not automatically ensure that the -# application .elf file (and BSP it is linked against) corresponds to the -# hardware design on the target. If false, adds --accept-bad-sysid to -# SOPC_SYSID_FLAG in public.mk. none -# setting hal.enable_sopc_sysid_check is true - -# Enable BSP generation to query if SOPC system is big endian. If true ignores -# export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true -# ignores export of 'ALT_CFLAGS += -EL' if little endian system. none -# setting hal.make.ignore_system_derived.big_endian is false - -# Enable BSP generation to query if SOPC system has a debug core present. If -# true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core -# is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if -# no debug core is found in the system. none -# setting hal.make.ignore_system_derived.debug_core_present is false - -# Enable BSP generation to query if SOPC system has FPU present. If true -# ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found -# in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU -# is not found in the system. none -# setting hal.make.ignore_system_derived.fpu_present is false - -# Enable BSP generation to query if SOPC system has hardware divide present. If -# true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no -# division is found in system. If true ignores export of 'ALT_CFLAGS += -# -mhw-div' if division is found in the system. none -# setting hal.make.ignore_system_derived.hardware_divide_present is false - -# Enable BSP generation to query if SOPC system floating point custom -# instruction with a divider is present. If true ignores export of 'ALT_CFLAGS -# += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to -# public.mk if the custom instruction is found in the system. none -# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present is false - -# Enable BSP generation to query if SOPC system floating point custom -# instruction without a divider is present. If true ignores export of -# 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -# -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the -# system. none -# setting hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present is false - -# Enable BSP generation to query if SOPC system has multiplier present. If true -# ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier -# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if -# multiplier is found in the system. none -# setting hal.make.ignore_system_derived.hardware_multiplier_present is false - -# Enable BSP generation to query if SOPC system has hardware mulx present. If -# true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx -# is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' -# if mulx is found in the system. none -# setting hal.make.ignore_system_derived.hardware_mulx_present is false - -# Enable BSP generation to query if SOPC system has simulation enabled. If true -# ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. none -# setting hal.make.ignore_system_derived.sopc_simulation_enabled is false - -# Enable BSP generation to query SOPC system for system ID base address. If -# true ignores export of 'SOPC_SYSID_FLAG += --sidp=
' and -# 'ELF_PATCH_FLAG += --sidp=
' to public.mk. none -# setting hal.make.ignore_system_derived.sopc_system_base_address is false - -# Enable BSP generation to query SOPC system for system ID. If true ignores -# export of 'SOPC_SYSID_FLAG += --id=' and 'ELF_PATCH_FLAG += -# --id=' to public.mk. none -# setting hal.make.ignore_system_derived.sopc_system_id is false - -# Enable BSP generation to query SOPC system for system timestamp. If true -# ignores export of 'SOPC_SYSID_FLAG += --timestamp=' and -# 'ELF_PATCH_FLAG += --timestamp=' to public.mk. none -# setting hal.make.ignore_system_derived.sopc_system_timestamp is false - -# Slave descriptor of STDERR character-mode device. This setting is used by the -# ALT_STDERR family of defines in system.h. none -# setting hal.stderr is jtag_uart -ELF_PATCH_FLAG += --stderr_dev jtag_uart - -# Slave descriptor of STDIN character-mode device. This setting is used by the -# ALT_STDIN family of defines in system.h. none -# setting hal.stdin is jtag_uart -ELF_PATCH_FLAG += --stdin_dev jtag_uart - -# Slave descriptor of STDOUT character-mode device. This setting is used by the -# ALT_STDOUT family of defines in system.h. none -# setting hal.stdout is jtag_uart -ELF_PATCH_FLAG += --stdout_dev jtag_uart - - -#------------------------------------------------------------------------------ -# SOFTWARE COMPONENT & DRIVER INCLUDE PATHS -#------------------------------------------------------------------------------ - -ALT_INCLUDE_DIRS += $(ALT_LIBRARY_ROOT_DIR)/HAL/inc - -#------------------------------------------------------------------------------ -# SOFTWARE COMPONENT & DRIVER PRODUCED ALT_CPPFLAGS ADDITIONS -#------------------------------------------------------------------------------ - -ALT_CPPFLAGS += -DALT_SINGLE_THREADED - -#END MANAGED - - -#------------------------------------------------------------------------------ -# LIBRARY INFORMATION -#------------------------------------------------------------------------------ -# Assemble the name of the BSP *.a file using the BSP library name -# (BSP_SYS_LIB) in generated content above. -BSP_LIB := lib$(BSP_SYS_LIB).a - -# Additional libraries to link against: -# An application including this file will prefix each library with "-l". -# For example, to include the Newlib math library "m" is included, which -# becomes "-lm" when linking the application. -ALT_LIBRARY_NAMES += m - -# Additions to linker dependencies: -# An application Makefile will typically add these directly to the list -# of dependencies required to build the executable target(s). The BSP -# library (*.a) file is specified here. -ALT_LDDEPS += $(ALT_LIBRARY_ROOT_DIR)/$(BSP_LIB) - -# Is this library "Makeable"? -# Add to list of root library directories that support running 'make' -# to build them. Because libraries may or may not have a Makefile in their -# root, appending to this variable tells an application to run 'make' in -# the library root to build/update this library. -MAKEABLE_LIBRARY_ROOT_DIRS += $(ALT_LIBRARY_ROOT_DIR) - -# Additional Assembler Flags -# -gdwarf2 flag is required for stepping through assembly code -ALT_ASFLAGS += -gdwarf2 - -#------------------------------------------------------------------------------ -# FINAL INCLUDE PATH LIST -#------------------------------------------------------------------------------ -# Append static include paths to paths specified by OS/driver/sw package -# additions to the BSP thus giving them precedence in case a BSP addition -# is attempting to override BSP sources. -ALT_INCLUDE_DIRS += $(ALT_INCLUDE_DIRS_TO_APPEND) - - - diff --git a/software/qsys_tutorial_lcd4_bsp/settings.bsp b/software/qsys_tutorial_lcd4_bsp/settings.bsp deleted file mode 100644 index 20806eb..0000000 --- a/software/qsys_tutorial_lcd4_bsp/settings.bsp +++ /dev/null @@ -1,991 +0,0 @@ - - - hal - default - 2016/12/02 1:35:13 - 1480610113326 - C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\qsys_tutorial_lcd4_bsp - .\settings.bsp - C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo - default - nios2_processor - 1.9 - - hal.sys_clk_timer - ALT_SYS_CLK - UnquotedString - none - none - system_h_define - Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h. - none - false - common - - - hal.timestamp_timer - ALT_TIMESTAMP_CLK - UnquotedString - none - none - system_h_define - Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h. - none - false - common - - - hal.max_file_descriptors - ALT_MAX_FD - DecimalNumber - 32 - 32 - system_h_define - Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h. - If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr. - false - - - - hal.enable_instruction_related_exceptions_api - ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API - BooleanDefineOnly - false - false - system_h_define - Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code. - These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types. - false - - - - hal.linker.allow_code_at_reset - ALT_ALLOW_CODE_AT_RESET - Boolean - 1 - 0 - none - Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. - If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present. - false - - - - hal.linker.enable_alt_load - NONE - Boolean - 1 - 0 - none - Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory. - This setting is typically false if an external bootloader (e.g. flash bootloader) is present. - false - - - - hal.linker.enable_alt_load_copy_rodata - NONE - Boolean - 0 - 0 - none - Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h. - none - false - - - - hal.linker.enable_alt_load_copy_rwdata - NONE - Boolean - 1 - 0 - none - Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h. - none - false - - - - hal.linker.enable_alt_load_copy_exceptions - NONE - Boolean - 0 - 0 - none - Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h. - none - false - - - - hal.linker.enable_exception_stack - NONE - Boolean - 0 - 0 - none - Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x. - The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. - false - common - - - hal.linker.exception_stack_size - NONE - DecimalNumber - 1024 - 1024 - none - Size of the exception stack in bytes. - Only used if hal.linker.enable_exception_stack is true. - false - common - - - hal.linker.exception_stack_memory_region_name - NONE - UnquotedString - onchip_memory - none - none - Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region. - Only used if hal.linker.enable_exception_stack is true. - false - common - - - hal.linker.enable_interrupt_stack - NONE - Boolean - 0 - 0 - none - Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x. - The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used. - false - common - - - hal.linker.interrupt_stack_size - NONE - DecimalNumber - 1024 - 1024 - none - Size of the interrupt stack in bytes. - Only used if hal.linker.enable_interrupt_stack is true. - false - common - - - hal.linker.interrupt_stack_memory_region_name - NONE - UnquotedString - onchip_memory - none - none - Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region. - Only used if hal.linker.enable_interrupt_stack is true. - false - common - - - hal.stdin - NONE - UnquotedString - jtag_uart - none - system_h_define - Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h. - none - false - common - - - hal.stdout - NONE - UnquotedString - jtag_uart - none - system_h_define - Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h. - none - false - common - - - hal.stderr - NONE - UnquotedString - jtag_uart - none - system_h_define - Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h. - none - false - common - - - hal.log_port - NONE - UnquotedString - none - none - public_mk_define - Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h. - none - false - none - - - hal.make.build_pre_process - BUILD_PRE_PROCESS - UnquotedString - none - none - makefile_variable - Command executed before BSP built. - none - false - none - - - hal.make.ar_pre_process - AR_PRE_PROCESS - UnquotedString - none - none - makefile_variable - Command executed before archiver execution. - none - false - none - - - hal.make.bsp_cflags_defined_symbols - BSP_CFLAGS_DEFINED_SYMBOLS - UnquotedString - none - none - makefile_variable - Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile. - none - false - none - - - hal.make.ar_post_process - AR_POST_PROCESS - UnquotedString - none - none - makefile_variable - Command executed after archiver execution. - none - false - none - - - hal.make.as - AS - UnquotedString - nios2-elf-gcc - nios2-elf-gcc - makefile_variable - Assembler command. Note that CC is used for .S files. - none - false - none - - - hal.make.build_post_process - BUILD_POST_PROCESS - UnquotedString - none - none - makefile_variable - Command executed after BSP built. - none - false - none - - - hal.make.bsp_cflags_debug - BSP_CFLAGS_DEBUG - UnquotedString - -g - -g - makefile_variable - C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile. - none - false - common - - - hal.make.ar - AR - UnquotedString - nios2-elf-ar - nios2-elf-ar - makefile_variable - Archiver command. Creates library files. - none - false - none - - - hal.make.rm - RM - UnquotedString - rm -f - rm -f - makefile_variable - Command used to remove files during 'clean' target. - none - false - none - - - hal.make.cxx_pre_process - CXX_PRE_PROCESS - UnquotedString - none - none - makefile_variable - Command executed before each C++ file is compiled. - none - false - none - - - hal.make.bsp_cflags_warnings - BSP_CFLAGS_WARNINGS - UnquotedString - -Wall - -Wall - makefile_variable - C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile. - none - false - none - - - hal.make.bsp_arflags - BSP_ARFLAGS - UnquotedString - -src - -src - makefile_variable - Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile. - none - false - none - - - hal.make.bsp_cflags_optimization - BSP_CFLAGS_OPTIMIZATION - UnquotedString - -O0 - -O0 - makefile_variable - C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile. - none - false - common - - - hal.make.as_post_process - AS_POST_PROCESS - UnquotedString - none - none - makefile_variable - Command executed after each assembly file is compiled. - none - false - none - - - hal.make.cc_pre_process - CC_PRE_PROCESS - UnquotedString - none - none - makefile_variable - Command executed before each .c/.S file is compiled. - none - false - none - - - hal.make.bsp_asflags - BSP_ASFLAGS - UnquotedString - -Wa,-gdwarf2 - -Wa,-gdwarf2 - makefile_variable - Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile. - none - false - none - - - hal.make.as_pre_process - AS_PRE_PROCESS - UnquotedString - none - none - makefile_variable - Command executed before each assembly file is compiled. - none - false - none - - - hal.make.bsp_cflags_undefined_symbols - BSP_CFLAGS_UNDEFINED_SYMBOLS - UnquotedString - none - none - makefile_variable - Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile. - none - false - none - - - hal.make.cc_post_process - CC_POST_PROCESS - UnquotedString - none - none - makefile_variable - Command executed after each .c/.S file is compiled. - none - false - none - - - hal.make.cxx_post_process - CXX_POST_PROCESS - UnquotedString - none - none - makefile_variable - Command executed before each C++ file is compiled. - none - false - none - - - hal.make.cc - CC - UnquotedString - nios2-elf-gcc -xc - nios2-elf-gcc -xc - makefile_variable - C compiler command. - none - false - none - - - hal.make.bsp_cxx_flags - BSP_CXXFLAGS - UnquotedString - none - none - makefile_variable - Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile. - none - false - none - - - hal.make.bsp_inc_dirs - BSP_INC_DIRS - UnquotedString - none - none - makefile_variable - Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile. - none - false - none - - - hal.make.cxx - CXX - UnquotedString - nios2-elf-gcc -xc++ - nios2-elf-gcc -xc++ - makefile_variable - C++ compiler command. - none - false - none - - - hal.make.bsp_cflags_user_flags - BSP_CFLAGS_USER_FLAGS - UnquotedString - none - none - makefile_variable - Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile. - none - false - none - - - hal.make.ignore_system_derived.sopc_system_id - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk. - none - false - none - - - hal.make.ignore_system_derived.sopc_system_timestamp - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk. - none - false - none - - - hal.make.ignore_system_derived.sopc_system_base_address - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk. - none - false - none - - - hal.make.ignore_system_derived.sopc_simulation_enabled - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk. - none - false - none - - - hal.make.ignore_system_derived.fpu_present - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system. - none - false - none - - - hal.make.ignore_system_derived.hardware_multiplier_present - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system. - none - false - none - - - hal.make.ignore_system_derived.hardware_mulx_present - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system. - none - false - none - - - hal.make.ignore_system_derived.hardware_divide_present - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system. - none - false - none - - - hal.make.ignore_system_derived.debug_core_present - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system. - none - false - none - - - hal.make.ignore_system_derived.big_endian - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system. - none - false - none - - - hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system. - none - false - none - - - hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present - NONE - Boolean - 0 - 0 - public_mk_define - Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system. - none - false - none - - - hal.enable_exit - ALT_NO_EXIT - Boolean - 1 - 1 - public_mk_define - Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint - none - false - none - - - hal.enable_small_c_library - NONE - Boolean - 0 - 0 - public_mk_define - Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk. - none - false - common - - - hal.enable_clean_exit - ALT_NO_CLEAN_EXIT - Boolean - 1 - 1 - public_mk_define - When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk. - none - false - none - - - hal.enable_runtime_stack_checking - ALT_STACK_CHECK - Boolean - 0 - 0 - public_mk_define - Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk. - none - false - none - - - hal.enable_gprof - ALT_PROVIDE_GMON - Boolean - 0 - 0 - public_mk_define - Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk. - none - false - common - - - hal.enable_c_plus_plus - ALT_NO_C_PLUS_PLUS - Boolean - 1 - 1 - public_mk_define - Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint. - none - false - none - - - hal.enable_reduced_device_drivers - ALT_USE_SMALL_DRIVERS - Boolean - 0 - 0 - public_mk_define - Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk. - none - false - common - - - hal.enable_lightweight_device_driver_api - ALT_USE_DIRECT_DRIVERS - Boolean - 0 - 0 - public_mk_define - Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk. - The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true. - false - none - - - hal.enable_mul_div_emulation - ALT_NO_INSTRUCTION_EMULATION - Boolean - 0 - 0 - public_mk_define - Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk. - none - false - none - - - hal.enable_sim_optimize - ALT_SIM_OPTIMIZE - Boolean - 0 - 0 - public_mk_define - The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk. - When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware. - false - common - - - hal.enable_sopc_sysid_check - NONE - Boolean - 1 - 1 - public_mk_define - Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk. - none - false - none - - - hal.custom_newlib_flags - CUSTOM_NEWLIB_FLAGS - UnquotedString - none - none - public_mk_define - Build a custom version of newlib with the specified space-separated compiler flags. - The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP. - false - none - - - hal.log_flags - ALT_LOG_FLAGS - DecimalNumber - 0 - 0 - public_mk_define - The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3. - hal.log_port must be set for this to be used. - false - none - - - altera_avalon_jtag_uart_driver.enable_small_driver - ALTERA_AVALON_JTAG_UART_SMALL - BooleanDefineOnly - false - false - public_mk_define - Small-footprint (polled mode) driver - none - false - - - - altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error - ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR - BooleanDefineOnly - false - false - public_mk_define - Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery. - none - false - - - - onchip_memory - 0x00000000 - 0x00031FFF - 204800 - memory - - - lcd_on - 0x00041010 - 0x0004101F - 16 - - - - lcd_blon - 0x00041020 - 0x0004102F - 16 - - - - lcd_16207_0 - 0x00041030 - 0x0004103F - 16 - printable - - - hex7 - 0x00041040 - 0x0004104F - 16 - - - - hex6 - 0x00041050 - 0x0004105F - 16 - - - - hex5 - 0x00041060 - 0x0004106F - 16 - - - - hex4 - 0x00041070 - 0x0004107F - 16 - - - - hex3 - 0x00041080 - 0x0004108F - 16 - - - - hex2 - 0x00041090 - 0x0004109F - 16 - - - - hex1 - 0x000410A0 - 0x000410AF - 16 - - - - hex0 - 0x000410B0 - 0x000410BF - 16 - - - - push_switches - 0x000410C0 - 0x000410CF - 16 - - - - switches - 0x000410D0 - 0x000410DF - 16 - - - - LEDRs - 0x000410E0 - 0x000410EF - 16 - - - - LEDs - 0x000410F0 - 0x000410FF - 16 - - - - jtag_uart - 0x00041100 - 0x00041107 - 8 - printable - - - .text - onchip_memory - - - .rodata - onchip_memory - - - .rwdata - onchip_memory - - - .bss - onchip_memory - - - .heap - onchip_memory - - - .stack - onchip_memory - - \ No newline at end of file diff --git a/software/qsys_tutorial_lcd4_bsp/summary.html b/software/qsys_tutorial_lcd4_bsp/summary.html deleted file mode 100644 index 9f86bf3..0000000 --- a/software/qsys_tutorial_lcd4_bsp/summary.html +++ /dev/null @@ -1,2047 +0,0 @@ - -Altera Nios II BSP Summary - -

BSP Description

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BSP Type:hal
SOPC Design File:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\nios_system.sopcinfo
Quartus JDI File:default
CPU:nios2_processor
BSP Settings File:.\settings.bsp
BSP Version:default
BSP Generated On:2016/12/02 1:35:13
BSP Generated Timestamp:1480610113326
BSP Generated Location:C:\Users\takayun\Documents\DE2-115\qsys_tutorial\software\qsys_tutorial_lcd4_bsp
-
-

Nios II Memory Map

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Slave DescriptorAddress RangeSizeAttributes
jtag_uart0x00041100 - 0x000411078printable
LEDs0x000410F0 - 0x000410FF16 
LEDRs0x000410E0 - 0x000410EF16 
switches0x000410D0 - 0x000410DF16 
push_switches0x000410C0 - 0x000410CF16 
hex00x000410B0 - 0x000410BF16 
hex10x000410A0 - 0x000410AF16 
hex20x00041090 - 0x0004109F16 
hex30x00041080 - 0x0004108F16 
hex40x00041070 - 0x0004107F16 
hex50x00041060 - 0x0004106F16 
hex60x00041050 - 0x0004105F16 
hex70x00041040 - 0x0004104F16 
lcd_16207_00x00041030 - 0x0004103F16printable
lcd_blon0x00041020 - 0x0004102F16 
lcd_on0x00041010 - 0x0004101F16 
onchip_memory0x00000000 - 0x00031FFF204800memory
-
-
-

Linker Regions

- - - - -
RegionAddress RangeSizeMemoryOffset
-
-
-

Linker Section Mappings

- - - - - - - - - - - - - - - - - - - - - - -
SectionRegion
.textonchip_memory
.rodataonchip_memory
.rwdataonchip_memory
.bssonchip_memory
.heaponchip_memory
.stackonchip_memory
-

Settings

- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:altera_avalon_jtag_uart_driver.enable_jtag_uart_ignore_fifo_full_error
Identifier:ALTERA_AVALON_JTAG_UART_IGNORE_FIFO_FULL_ERROR
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Enable JTAG UART driver to recover when host is inactive causing buffer to full without returning error. Printf will not fail with this recovery.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:altera_avalon_jtag_uart_driver.enable_small_driver
Identifier:ALTERA_AVALON_JTAG_UART_SMALL
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:public_mk_define
Description:Small-footprint (polled mode) driver
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.custom_newlib_flags
Identifier:CUSTOM_NEWLIB_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Build a custom version of newlib with the specified space-separated compiler flags.
Restrictions:The custom newlib build will be placed in the &lt;bsp root>/newlib directory, and will be used only for applications that utilize this BSP.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_c_plus_plus
Identifier:ALT_NO_C_PLUS_PLUS
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enable support for a subset of the C++ language. This option increases code footprint by adding support for C++ constructors. Certain features, such as multiple inheritance and exceptions are not supported. If false, adds -DALT_NO_C_PLUS_PLUS to ALT_CPPFLAGS in public.mk, and reduces code footprint.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_clean_exit
Identifier:ALT_NO_CLEAN_EXIT
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:When your application exits, close file descriptors, call C++ destructors, etc. Code footprint can be reduced by disabling clean exit. If disabled, adds -DALT_NO_CLEAN_EXIT to ALT_CPPFLAGS and -Wl,--defsym, exit=_exit to ALT_LDFLAGS in public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_exit
Identifier:ALT_NO_EXIT
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Add exit() support. This option increases code footprint if your "main()" routine does "return" or call "exit()". If false, adds -DALT_NO_EXIT to ALT_CPPFLAGS in public.mk, and reduces footprint
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_gprof
Identifier:ALT_PROVIDE_GMON
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Causes code to be compiled with gprof profiling enabled and the application ELF to be linked with the GPROF library. If true, adds -DALT_PROVIDE_GMON to ALT_CPPFLAGS and -pg to ALT_CFLAGS in public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_instruction_related_exceptions_api
Identifier:ALT_INCLUDE_INSTRUCTION_RELATED_EXCEPTION_API
Default Value:false
Value:false
Type:BooleanDefineOnly
Destination:system_h_define
Description:Enables API for registering handlers to service instruction-related exceptions. Enabling this setting increases the size of the exception entry code.
Restrictions:These exception types can be generated if various processor options are enabled, such as the MMU, MPU, or other advanced exception types.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_lightweight_device_driver_api
Identifier:ALT_USE_DIRECT_DRIVERS
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enables lightweight device driver API. This reduces code and data footprint by removing the HAL layer that maps device names (e.g. /dev/uart0) to file descriptors. Instead, driver routines are called directly. The open(), close(), and lseek() routines will always fail if called. The read(), write(), fstat(), ioctl(), and isatty() routines only work for the stdio devices. If true, adds -DALT_USE_DIRECT_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:The Altera Host and read-only ZIP file systems can't be used if hal.enable_lightweight_device_driver_api is true.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_mul_div_emulation
Identifier:ALT_NO_INSTRUCTION_EMULATION
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Adds code to emulate multiply and divide instructions in case they are executed but aren't present in the CPU. Normally this isn't required because the compiler won't use multiply and divide instructions that aren't present in the CPU. If false, adds -DALT_NO_INSTRUCTION_EMULATION to ALT_CPPFLAGS in public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_reduced_device_drivers
Identifier:ALT_USE_SMALL_DRIVERS
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Certain drivers are compiled with reduced functionality to reduce code footprint. Not all drivers observe this setting. The altera_avalon_uart and altera_avalon_jtag_uart drivers switch from interrupt-driven to polled operation. CAUTION: Several device drivers are disabled entirely. These include the altera_avalon_cfi_flash, altera_avalon_epcs_flash_controller, and altera_avalon_lcd_16207 drivers. This can result in certain API (HAL flash access routines) to fail. You can define a symbol provided by each driver to prevent it from being removed. If true, adds -DALT_USE_SMALL_DRIVERS to ALT_CPPFLAGS in public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_runtime_stack_checking
Identifier:ALT_STACK_CHECK
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Turns on HAL runtime stack checking feature. Enabling this setting causes additional code to be placed into each subroutine call to generate an exception if a stack collision occurs with the heap or statically allocated data. If true, adds -DALT_STACK_CHECK and -mstack-check to ALT_CPPFLAGS in public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_sim_optimize
Identifier:ALT_SIM_OPTIMIZE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:The BSP is compiled with optimizations to speedup HDL simulation such as initializing the cache, clearing the .bss section, and skipping long delay loops. If true, adds -DALT_SIM_OPTIMIZE to ALT_CPPFLAGS in public.mk.
Restrictions:When this setting is true, the BSP shouldn't be used to build applications that are expected to run real hardware.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_small_c_library
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Causes the small newlib (C library) to be used. This reduces code and data footprint at the expense of reduced functionality. Several newlib features are removed such as floating-point support in printf(), stdin input routines, and buffered I/O. The small C library is not compatible with Micrium MicroC/OS-II. If true, adds -msmallc to ALT_LDFLAGS in public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.enable_sopc_sysid_check
Identifier:NONE
Default Value:1
Value:1
Type:Boolean
Destination:public_mk_define
Description:Enable SOPC Builder System ID. If a System ID SOPC Builder component is connected to the CPU associated with this BSP, it will be enabled in the creation of command-line arguments to download an ELF to the target. Otherwise, system ID and timestamp values are left out of public.mk for application Makefile "download-elf" target definition. With the system ID check disabled, the Nios II EDS tools will not automatically ensure that the application .elf file (and BSP it is linked against) corresponds to the hardware design on the target. If false, adds --accept-bad-sysid to SOPC_SYSID_FLAG in public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.allow_code_at_reset
Identifier:ALT_ALLOW_CODE_AT_RESET
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Indicates if initialization code is allowed at the reset address. If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h.
Restrictions:If true, defines the macro ALT_ALLOW_CODE_AT_RESET in linker.h. This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.enable_alt_load
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Enables the alt_load() facility. The alt_load() facility copies sections from the .text memory into RAM. If true, this setting sets up the VMA/LMA of sections in linker.x to allow them to be loaded into the .text memory.
Restrictions:This setting is typically false if an external bootloader (e.g. flash bootloader) is present.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.enable_alt_load_copy_exceptions
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .exceptions section. If true, this setting defines the macro ALT_LOAD_COPY_EXCEPTIONS in linker.h.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.enable_alt_load_copy_rodata
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rodata section. If true, this setting defines the macro ALT_LOAD_COPY_RODATA in linker.h.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.enable_alt_load_copy_rwdata
Identifier:NONE
Default Value:0
Value:1
Type:Boolean
Destination:none
Description:Causes the alt_load() facility to copy the .rwdata section. If true, this setting defines the macro ALT_LOAD_COPY_RWDATA in linker.h.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.enable_exception_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate exception stack. If true, defines the macro ALT_EXCEPTION_STACK in linker.h, adds a memory region called exception_stack to linker.x, and provides the symbols __alt_exception_stack_pointer and __alt_exception_stack_limit in linker.x.
Restrictions:The hal.linker.exception_stack_size and hal.linker.exception_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.enable_interrupt_stack
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:none
Description:Enables use of a separate interrupt stack. If true, defines the macro ALT_INTERRUPT_STACK in linker.h, adds a memory region called interrupt_stack to linker.x, and provides the symbols __alt_interrupt_stack_pointer and __alt_interrupt_stack_limit in linker.x.
Restrictions:The hal.linker.interrupt_stack_size and hal.linker.interrupt_stack_memory_region_name settings must also be valid. This setting must be false for MicroC/OS-II BSPs. Only enable if the EIC is used exclusively. The exception stack can be used to improve interrupt and other exception performance if the EIC is *not* used.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.exception_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'exception_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'exception_stack' memory region.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.exception_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the exception stack in bytes.
Restrictions:Only used if hal.linker.enable_exception_stack is true.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.interrupt_stack_memory_region_name
Identifier:NONE
Default Value:none
Value:onchip_memory
Type:UnquotedString
Destination:none
Description:Name of the existing memory region that will be divided up to create the 'interrupt_stack' memory region. The selected region name will be adjusted automatically when the BSP is generated to create the 'interrupt_stack' memory region.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.linker.interrupt_stack_size
Identifier:NONE
Default Value:1024
Value:1024
Type:DecimalNumber
Destination:none
Description:Size of the interrupt stack in bytes.
Restrictions:Only used if hal.linker.enable_interrupt_stack is true.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.log_flags
Identifier:ALT_LOG_FLAGS
Default Value:0
Value:0
Type:DecimalNumber
Destination:public_mk_define
Description:The value is assigned to ALT_LOG_FLAGS in the generated public.mk. See hal.log_port setting description. Values can be -1 through 3.
Restrictions:hal.log_port must be set for this to be used.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.log_port
Identifier:NONE
Default Value:none
Value:none
Type:UnquotedString
Destination:public_mk_define
Description:Slave descriptor of debug logging character-mode device. If defined, it enables extra debug messages in the HAL source. This setting is used by the ALT_LOG_PORT family of defines in system.h.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ar
Identifier:AR
Default Value:nios2-elf-ar
Value:nios2-elf-ar
Type:UnquotedString
Destination:makefile_variable
Description:Archiver command. Creates library files.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ar_post_process
Identifier:AR_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after archiver execution.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ar_pre_process
Identifier:AR_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before archiver execution.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.as
Identifier:AS
Default Value:nios2-elf-gcc
Value:nios2-elf-gcc
Type:UnquotedString
Destination:makefile_variable
Description:Assembler command. Note that CC is used for .S files.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.as_post_process
Identifier:AS_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each assembly file is compiled.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.as_pre_process
Identifier:AS_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each assembly file is compiled.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.bsp_arflags
Identifier:BSP_ARFLAGS
Default Value:-src
Value:-src
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the archiver. This content of this variable is directly passed to the archiver rather than the more standard "ARFLAGS". The reason for this is that GNU Make assumes some default content in ARFLAGS. This setting defines the value of BSP_ARFLAGS in Makefile.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.bsp_asflags
Identifier:BSP_ASFLAGS
Default Value:-Wa,-gdwarf2
Value:-Wa,-gdwarf2
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the assembler. This setting defines the value of BSP_ASFLAGS in Makefile.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.bsp_cflags_debug
Identifier:BSP_CFLAGS_DEBUG
Default Value:-g
Value:-g
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler debug level. '-g' provides the default set of debug symbols typically required to debug a typical application. Omitting '-g' removes debug symbols from the ELF. This setting defines the value of BSP_CFLAGS_DEBUG in Makefile.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.bsp_cflags_defined_symbols
Identifier:BSP_CFLAGS_DEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to define. A macro definition in this setting has the same effect as a "#define" in source code. Adding "-DALT_DEBUG" to this setting has the same effect as "#define ALT_DEBUG" in a souce file. Adding "-DFOO=1" to this setting is equivalent to the macro "#define FOO 1" in a source file. Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_DEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.bsp_cflags_optimization
Identifier:BSP_CFLAGS_OPTIMIZATION
Default Value:-O0
Value:-O0
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler optimization level. "-O0" = no optimization,"-O2" = "normal" optimization, etc. "-O0" is recommended for code that you want to debug since compiler optimization can remove variables and produce non-sequential execution of code while debugging. This setting defines the value of BSP_CFLAGS_OPTIMIZATION in Makefile.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.bsp_cflags_undefined_symbols
Identifier:BSP_CFLAGS_UNDEFINED_SYMBOLS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Preprocessor macros to undefine. Undefined macros are similar to defined macros, but replicate the "#undef" directive in source code. To undefine the macro FOO use the syntax "-u FOO" in this setting. This is equivalent to "#undef FOO" in a source file. Note: the syntax differs from macro definition (there is a space, i.e. "-u FOO" versus "-DFOO"). Macros defined with this setting are applied to all .S, .c, and C++ files in the BSP. This setting defines the value of BSP_CFLAGS_UNDEFINED_SYMBOLS in the BSP Makefile.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.bsp_cflags_user_flags
Identifier:BSP_CFLAGS_USER_FLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags passed to the compiler when compiling C, C++, and .S files. This setting defines the value of BSP_CFLAGS_USER_FLAGS in Makefile.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.bsp_cflags_warnings
Identifier:BSP_CFLAGS_WARNINGS
Default Value:-Wall
Value:-Wall
Type:UnquotedString
Destination:makefile_variable
Description:C/C++ compiler warning level. "-Wall" is commonly used.This setting defines the value of BSP_CFLAGS_WARNINGS in Makefile.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.bsp_cxx_flags
Identifier:BSP_CXXFLAGS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Custom flags only passed to the C++ compiler. This setting defines the value of BSP_CXXFLAGS in Makefile.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.bsp_inc_dirs
Identifier:BSP_INC_DIRS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Space separated list of extra include directories to scan for header files. Directories are relative to the top-level BSP directory. The -I prefix's added by the makefile so don't add it here. This setting defines the value of BSP_INC_DIRS in Makefile.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.build_post_process
Identifier:BUILD_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after BSP built.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.build_pre_process
Identifier:BUILD_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before BSP built.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.cc
Identifier:CC
Default Value:nios2-elf-gcc -xc
Value:nios2-elf-gcc -xc
Type:UnquotedString
Destination:makefile_variable
Description:C compiler command.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.cc_post_process
Identifier:CC_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed after each .c/.S file is compiled.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.cc_pre_process
Identifier:CC_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each .c/.S file is compiled.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.cxx
Identifier:CXX
Default Value:nios2-elf-gcc -xc++
Value:nios2-elf-gcc -xc++
Type:UnquotedString
Destination:makefile_variable
Description:C++ compiler command.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.cxx_post_process
Identifier:CXX_POST_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.cxx_pre_process
Identifier:CXX_PRE_PROCESS
Default Value:none
Value:none
Type:UnquotedString
Destination:makefile_variable
Description:Command executed before each C++ file is compiled.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.big_endian
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system is big endian. If true ignores export of 'ALT_CFLAGS += -EB' to public.mk if big endian system. If true ignores export of 'ALT_CFLAGS += -EL' if little endian system.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.debug_core_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has a debug core present. If true ignores export of 'CPU_HAS_DEBUG_CORE = 1' to public.mk if a debug core is found in the system. If true ignores export of 'CPU_HAS_DEBUG_CORE = 0' if no debug core is found in the system.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.fpu_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has FPU present. If true ignores export of 'ALT_CFLAGS += -mhard-float' to public.mk if FPU is found in the system. If true ignores export of 'ALT_CFLAGS += -mhard-soft' if FPU is not found in the system.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.hardware_divide_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware divide present. If true ignores export of 'ALT_CFLAGS += -mno-hw-div' to public.mk if no division is found in system. If true ignores export of 'ALT_CFLAGS += -mhw-div' if division is found in the system.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction with a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-2' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-2' to public.mk if the custom instruction is found in the system.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.hardware_fp_cust_inst_no_divider_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system floating point custom instruction without a divider is present. If true ignores export of 'ALT_CFLAGS += -mcustom-fpu-cfg=60-1' and 'ALT_LDFLAGS += -mcustom-fpu-cfg=60-1' to public.mk if the custom instruction is found in the system.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.hardware_multiplier_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has multiplier present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mul' to public.mk if no multiplier is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mul' if multiplier is found in the system.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.hardware_mulx_present
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has hardware mulx present. If true ignores export of 'ALT_CFLAGS += -mno-hw-mulx' to public.mk if no mulx is found in the system. If true ignores export of 'ALT_CFLAGS += -mhw-mulx' if mulx is found in the system.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.sopc_simulation_enabled
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query if SOPC system has simulation enabled. If true ignores export of 'ELF_PATCH_FLAG += --simulation_enabled' to public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.sopc_system_base_address
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID base address. If true ignores export of 'SOPC_SYSID_FLAG += --sidp=<address>' and 'ELF_PATCH_FLAG += --sidp=<address>' to public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.sopc_system_id
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system ID. If true ignores export of 'SOPC_SYSID_FLAG += --id=<sysid>' and 'ELF_PATCH_FLAG += --id=<sysid>' to public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.ignore_system_derived.sopc_system_timestamp
Identifier:NONE
Default Value:0
Value:0
Type:Boolean
Destination:public_mk_define
Description:Enable BSP generation to query SOPC system for system timestamp. If true ignores export of 'SOPC_SYSID_FLAG += --timestamp=<timestamp>' and 'ELF_PATCH_FLAG += --timestamp=<timestamp>' to public.mk.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.make.rm
Identifier:RM
Default Value:rm -f
Value:rm -f
Type:UnquotedString
Destination:makefile_variable
Description:Command used to remove files during 'clean' target.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.max_file_descriptors
Identifier:ALT_MAX_FD
Default Value:32
Value:32
Type:DecimalNumber
Destination:system_h_define
Description:Determines the number of file descriptors statically allocated. This setting defines the value of ALT_MAX_FD in system.h.
Restrictions:If hal.enable_lightweight_device_driver_api is true, there are no file descriptors so this setting is ignored. If hal.enable_lightweight_device_driver_api is false, this setting must be at least 4 because HAL needs a file descriptor for /dev/null, /dev/stdin, /dev/stdout, and /dev/stderr.
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.stderr
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDERR character-mode device. This setting is used by the ALT_STDERR family of defines in system.h.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.stdin
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDIN character-mode device. This setting is used by the ALT_STDIN family of defines in system.h.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.stdout
Identifier:NONE
Default Value:none
Value:jtag_uart
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of STDOUT character-mode device. This setting is used by the ALT_STDOUT family of defines in system.h.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.sys_clk_timer
Identifier:ALT_SYS_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of the system clock timer device. This device provides a periodic interrupt ("tick") and is typically required for RTOS use. This setting defines the value of ALT_SYS_CLK in system.h.
Restrictions:none
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
Setting Name:hal.timestamp_timer
Identifier:ALT_TIMESTAMP_CLK
Default Value:none
Value:none
Type:UnquotedString
Destination:system_h_define
Description:Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h.
Restrictions:none
-
-
-
- - diff --git a/software/qsys_tutorial_lcd4_bsp/system.h b/software/qsys_tutorial_lcd4_bsp/system.h deleted file mode 100644 index 5767cc9..0000000 --- a/software/qsys_tutorial_lcd4_bsp/system.h +++ /dev/null @@ -1,617 +0,0 @@ -/* - * system.h - SOPC Builder system and BSP software package information - * - * Machine generated for CPU 'nios2_processor' in SOPC Builder design 'nios_system' - * SOPC Builder design path: C:/Users/takayun/Documents/DE2-115/qsys_tutorial/nios_system.sopcinfo - * - * Generated: Fri Dec 02 01:35:14 JST 2016 - */ - -/* - * DO NOT MODIFY THIS FILE - * - * Changing this file will have subtle consequences - * which will almost certainly lead to a nonfunctioning - * system. If you do modify this file, be aware that your - * changes will be overwritten and lost when this file - * is generated again. - * - * DO NOT MODIFY THIS FILE - */ - -/* - * License Agreement - * - * Copyright (c) 2008 - * Altera Corporation, San Jose, California, USA. - * All rights reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER - * DEALINGS IN THE SOFTWARE. - * - * This agreement shall be governed in all respects by the laws of the State - * of California and by the laws of the United States of America. - */ - -#ifndef __SYSTEM_H_ -#define __SYSTEM_H_ - -/* Include definitions from linker script generator */ -#include "linker.h" - - -/* - * CPU configuration - * - */ - -#define ALT_CPU_ARCHITECTURE "altera_nios2_qsys" -#define ALT_CPU_BIG_ENDIAN 0 -#define ALT_CPU_BREAK_ADDR 0x40820 -#define ALT_CPU_CPU_FREQ 50000000u -#define ALT_CPU_CPU_ID_SIZE 1 -#define ALT_CPU_CPU_ID_VALUE 0x00000000 -#define ALT_CPU_CPU_IMPLEMENTATION "tiny" -#define ALT_CPU_DATA_ADDR_WIDTH 0x13 -#define ALT_CPU_DCACHE_LINE_SIZE 0 -#define ALT_CPU_DCACHE_LINE_SIZE_LOG2 0 -#define ALT_CPU_DCACHE_SIZE 0 -#define ALT_CPU_EXCEPTION_ADDR 0x20 -#define ALT_CPU_FLUSHDA_SUPPORTED -#define ALT_CPU_FREQ 50000000 -#define ALT_CPU_HARDWARE_DIVIDE_PRESENT 0 -#define ALT_CPU_HARDWARE_MULTIPLY_PRESENT 0 -#define ALT_CPU_HARDWARE_MULX_PRESENT 0 -#define ALT_CPU_HAS_DEBUG_CORE 1 -#define ALT_CPU_HAS_DEBUG_STUB -#define ALT_CPU_HAS_JMPI_INSTRUCTION -#define ALT_CPU_ICACHE_LINE_SIZE 0 -#define ALT_CPU_ICACHE_LINE_SIZE_LOG2 0 -#define ALT_CPU_ICACHE_SIZE 0 -#define ALT_CPU_INST_ADDR_WIDTH 0x13 -#define ALT_CPU_NAME "nios2_processor" -#define ALT_CPU_RESET_ADDR 0x0 - - -/* - * CPU configuration (with legacy prefix - don't use these anymore) - * - */ - -#define NIOS2_BIG_ENDIAN 0 -#define NIOS2_BREAK_ADDR 0x40820 -#define NIOS2_CPU_FREQ 50000000u -#define NIOS2_CPU_ID_SIZE 1 -#define NIOS2_CPU_ID_VALUE 0x00000000 -#define NIOS2_CPU_IMPLEMENTATION "tiny" -#define NIOS2_DATA_ADDR_WIDTH 0x13 -#define NIOS2_DCACHE_LINE_SIZE 0 -#define NIOS2_DCACHE_LINE_SIZE_LOG2 0 -#define NIOS2_DCACHE_SIZE 0 -#define NIOS2_EXCEPTION_ADDR 0x20 -#define NIOS2_FLUSHDA_SUPPORTED -#define NIOS2_HARDWARE_DIVIDE_PRESENT 0 -#define NIOS2_HARDWARE_MULTIPLY_PRESENT 0 -#define NIOS2_HARDWARE_MULX_PRESENT 0 -#define NIOS2_HAS_DEBUG_CORE 1 -#define NIOS2_HAS_DEBUG_STUB -#define NIOS2_HAS_JMPI_INSTRUCTION -#define NIOS2_ICACHE_LINE_SIZE 0 -#define NIOS2_ICACHE_LINE_SIZE_LOG2 0 -#define NIOS2_ICACHE_SIZE 0 -#define NIOS2_INST_ADDR_WIDTH 0x13 -#define NIOS2_RESET_ADDR 0x0 - - -/* - * Define for each module class mastered by the CPU - * - */ - -#define __ALTERA_AVALON_JTAG_UART -#define __ALTERA_AVALON_LCD_16207 -#define __ALTERA_AVALON_ONCHIP_MEMORY2 -#define __ALTERA_AVALON_PIO -#define __ALTERA_NIOS2_QSYS - - -/* - * LEDRs configuration - * - */ - -#define ALT_MODULE_CLASS_LEDRs altera_avalon_pio -#define LEDRS_BASE 0x410e0 -#define LEDRS_BIT_CLEARING_EDGE_REGISTER 0 -#define LEDRS_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define LEDRS_CAPTURE 0 -#define LEDRS_DATA_WIDTH 18 -#define LEDRS_DO_TEST_BENCH_WIRING 0 -#define LEDRS_DRIVEN_SIM_VALUE 0 -#define LEDRS_EDGE_TYPE "NONE" -#define LEDRS_FREQ 50000000 -#define LEDRS_HAS_IN 0 -#define LEDRS_HAS_OUT 1 -#define LEDRS_HAS_TRI 0 -#define LEDRS_IRQ -1 -#define LEDRS_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define LEDRS_IRQ_TYPE "NONE" -#define LEDRS_NAME "/dev/LEDRs" -#define LEDRS_RESET_VALUE 0 -#define LEDRS_SPAN 16 -#define LEDRS_TYPE "altera_avalon_pio" - - -/* - * LEDs configuration - * - */ - -#define ALT_MODULE_CLASS_LEDs altera_avalon_pio -#define LEDS_BASE 0x410f0 -#define LEDS_BIT_CLEARING_EDGE_REGISTER 0 -#define LEDS_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define LEDS_CAPTURE 0 -#define LEDS_DATA_WIDTH 8 -#define LEDS_DO_TEST_BENCH_WIRING 0 -#define LEDS_DRIVEN_SIM_VALUE 0 -#define LEDS_EDGE_TYPE "NONE" -#define LEDS_FREQ 50000000 -#define LEDS_HAS_IN 0 -#define LEDS_HAS_OUT 1 -#define LEDS_HAS_TRI 0 -#define LEDS_IRQ -1 -#define LEDS_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define LEDS_IRQ_TYPE "NONE" -#define LEDS_NAME "/dev/LEDs" -#define LEDS_RESET_VALUE 0 -#define LEDS_SPAN 16 -#define LEDS_TYPE "altera_avalon_pio" - - -/* - * System configuration - * - */ - -#define ALT_DEVICE_FAMILY "Cyclone IV E" -#define ALT_ENHANCED_INTERRUPT_API_PRESENT -#define ALT_IRQ_BASE NULL -#define ALT_LOG_PORT "/dev/null" -#define ALT_LOG_PORT_BASE 0x0 -#define ALT_LOG_PORT_DEV null -#define ALT_LOG_PORT_TYPE "" -#define ALT_NUM_EXTERNAL_INTERRUPT_CONTROLLERS 0 -#define ALT_NUM_INTERNAL_INTERRUPT_CONTROLLERS 1 -#define ALT_NUM_INTERRUPT_CONTROLLERS 1 -#define ALT_STDERR "/dev/jtag_uart" -#define ALT_STDERR_BASE 0x41100 -#define ALT_STDERR_DEV jtag_uart -#define ALT_STDERR_IS_JTAG_UART -#define ALT_STDERR_PRESENT -#define ALT_STDERR_TYPE "altera_avalon_jtag_uart" -#define ALT_STDIN "/dev/jtag_uart" -#define ALT_STDIN_BASE 0x41100 -#define ALT_STDIN_DEV jtag_uart -#define ALT_STDIN_IS_JTAG_UART -#define ALT_STDIN_PRESENT -#define ALT_STDIN_TYPE "altera_avalon_jtag_uart" -#define ALT_STDOUT "/dev/jtag_uart" -#define ALT_STDOUT_BASE 0x41100 -#define ALT_STDOUT_DEV jtag_uart -#define ALT_STDOUT_IS_JTAG_UART -#define ALT_STDOUT_PRESENT -#define ALT_STDOUT_TYPE "altera_avalon_jtag_uart" -#define ALT_SYSTEM_NAME "nios_system" - - -/* - * hal configuration - * - */ - -#define ALT_MAX_FD 32 -#define ALT_SYS_CLK none -#define ALT_TIMESTAMP_CLK none - - -/* - * hex0 configuration - * - */ - -#define ALT_MODULE_CLASS_hex0 altera_avalon_pio -#define HEX0_BASE 0x410b0 -#define HEX0_BIT_CLEARING_EDGE_REGISTER 0 -#define HEX0_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define HEX0_CAPTURE 0 -#define HEX0_DATA_WIDTH 7 -#define HEX0_DO_TEST_BENCH_WIRING 0 -#define HEX0_DRIVEN_SIM_VALUE 0 -#define HEX0_EDGE_TYPE "NONE" -#define HEX0_FREQ 50000000 -#define HEX0_HAS_IN 0 -#define HEX0_HAS_OUT 1 -#define HEX0_HAS_TRI 0 -#define HEX0_IRQ -1 -#define HEX0_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define HEX0_IRQ_TYPE "NONE" -#define HEX0_NAME "/dev/hex0" -#define HEX0_RESET_VALUE 0 -#define HEX0_SPAN 16 -#define HEX0_TYPE "altera_avalon_pio" - - -/* - * hex1 configuration - * - */ - -#define ALT_MODULE_CLASS_hex1 altera_avalon_pio -#define HEX1_BASE 0x410a0 -#define HEX1_BIT_CLEARING_EDGE_REGISTER 0 -#define HEX1_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define HEX1_CAPTURE 0 -#define HEX1_DATA_WIDTH 7 -#define HEX1_DO_TEST_BENCH_WIRING 0 -#define HEX1_DRIVEN_SIM_VALUE 0 -#define HEX1_EDGE_TYPE "NONE" -#define HEX1_FREQ 50000000 -#define HEX1_HAS_IN 0 -#define HEX1_HAS_OUT 1 -#define HEX1_HAS_TRI 0 -#define HEX1_IRQ -1 -#define HEX1_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define HEX1_IRQ_TYPE "NONE" -#define HEX1_NAME "/dev/hex1" -#define HEX1_RESET_VALUE 0 -#define HEX1_SPAN 16 -#define HEX1_TYPE "altera_avalon_pio" - - -/* - * hex2 configuration - * - */ - -#define ALT_MODULE_CLASS_hex2 altera_avalon_pio -#define HEX2_BASE 0x41090 -#define HEX2_BIT_CLEARING_EDGE_REGISTER 0 -#define HEX2_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define HEX2_CAPTURE 0 -#define HEX2_DATA_WIDTH 7 -#define HEX2_DO_TEST_BENCH_WIRING 0 -#define HEX2_DRIVEN_SIM_VALUE 0 -#define HEX2_EDGE_TYPE "NONE" -#define HEX2_FREQ 50000000 -#define HEX2_HAS_IN 0 -#define HEX2_HAS_OUT 1 -#define HEX2_HAS_TRI 0 -#define HEX2_IRQ -1 -#define HEX2_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define HEX2_IRQ_TYPE "NONE" -#define HEX2_NAME "/dev/hex2" -#define HEX2_RESET_VALUE 0 -#define HEX2_SPAN 16 -#define HEX2_TYPE "altera_avalon_pio" - - -/* - * hex3 configuration - * - */ - -#define ALT_MODULE_CLASS_hex3 altera_avalon_pio -#define HEX3_BASE 0x41080 -#define HEX3_BIT_CLEARING_EDGE_REGISTER 0 -#define HEX3_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define HEX3_CAPTURE 0 -#define HEX3_DATA_WIDTH 7 -#define HEX3_DO_TEST_BENCH_WIRING 0 -#define HEX3_DRIVEN_SIM_VALUE 0 -#define HEX3_EDGE_TYPE "NONE" -#define HEX3_FREQ 50000000 -#define HEX3_HAS_IN 0 -#define HEX3_HAS_OUT 1 -#define HEX3_HAS_TRI 0 -#define HEX3_IRQ -1 -#define HEX3_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define HEX3_IRQ_TYPE "NONE" -#define HEX3_NAME "/dev/hex3" -#define HEX3_RESET_VALUE 0 -#define HEX3_SPAN 16 -#define HEX3_TYPE "altera_avalon_pio" - - -/* - * hex4 configuration - * - */ - -#define ALT_MODULE_CLASS_hex4 altera_avalon_pio -#define HEX4_BASE 0x41070 -#define HEX4_BIT_CLEARING_EDGE_REGISTER 0 -#define HEX4_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define HEX4_CAPTURE 0 -#define HEX4_DATA_WIDTH 7 -#define HEX4_DO_TEST_BENCH_WIRING 0 -#define HEX4_DRIVEN_SIM_VALUE 0 -#define HEX4_EDGE_TYPE "NONE" -#define HEX4_FREQ 50000000 -#define HEX4_HAS_IN 0 -#define HEX4_HAS_OUT 1 -#define HEX4_HAS_TRI 0 -#define HEX4_IRQ -1 -#define HEX4_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define HEX4_IRQ_TYPE "NONE" -#define HEX4_NAME "/dev/hex4" -#define HEX4_RESET_VALUE 0 -#define HEX4_SPAN 16 -#define HEX4_TYPE "altera_avalon_pio" - - -/* - * hex5 configuration - * - */ - -#define ALT_MODULE_CLASS_hex5 altera_avalon_pio -#define HEX5_BASE 0x41060 -#define HEX5_BIT_CLEARING_EDGE_REGISTER 0 -#define HEX5_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define HEX5_CAPTURE 0 -#define HEX5_DATA_WIDTH 7 -#define HEX5_DO_TEST_BENCH_WIRING 0 -#define HEX5_DRIVEN_SIM_VALUE 0 -#define HEX5_EDGE_TYPE "NONE" -#define HEX5_FREQ 50000000 -#define HEX5_HAS_IN 0 -#define HEX5_HAS_OUT 1 -#define HEX5_HAS_TRI 0 -#define HEX5_IRQ -1 -#define HEX5_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define HEX5_IRQ_TYPE "NONE" -#define HEX5_NAME "/dev/hex5" -#define HEX5_RESET_VALUE 0 -#define HEX5_SPAN 16 -#define HEX5_TYPE "altera_avalon_pio" - - -/* - * hex6 configuration - * - */ - -#define ALT_MODULE_CLASS_hex6 altera_avalon_pio -#define HEX6_BASE 0x41050 -#define HEX6_BIT_CLEARING_EDGE_REGISTER 0 -#define HEX6_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define HEX6_CAPTURE 0 -#define HEX6_DATA_WIDTH 7 -#define HEX6_DO_TEST_BENCH_WIRING 0 -#define HEX6_DRIVEN_SIM_VALUE 0 -#define HEX6_EDGE_TYPE "NONE" -#define HEX6_FREQ 50000000 -#define HEX6_HAS_IN 0 -#define HEX6_HAS_OUT 1 -#define HEX6_HAS_TRI 0 -#define HEX6_IRQ -1 -#define HEX6_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define HEX6_IRQ_TYPE "NONE" -#define HEX6_NAME "/dev/hex6" -#define HEX6_RESET_VALUE 0 -#define HEX6_SPAN 16 -#define HEX6_TYPE "altera_avalon_pio" - - -/* - * hex7 configuration - * - */ - -#define ALT_MODULE_CLASS_hex7 altera_avalon_pio -#define HEX7_BASE 0x41040 -#define HEX7_BIT_CLEARING_EDGE_REGISTER 0 -#define HEX7_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define HEX7_CAPTURE 0 -#define HEX7_DATA_WIDTH 7 -#define HEX7_DO_TEST_BENCH_WIRING 0 -#define HEX7_DRIVEN_SIM_VALUE 0 -#define HEX7_EDGE_TYPE "NONE" -#define HEX7_FREQ 50000000 -#define HEX7_HAS_IN 0 -#define HEX7_HAS_OUT 1 -#define HEX7_HAS_TRI 0 -#define HEX7_IRQ -1 -#define HEX7_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define HEX7_IRQ_TYPE "NONE" -#define HEX7_NAME "/dev/hex7" -#define HEX7_RESET_VALUE 0 -#define HEX7_SPAN 16 -#define HEX7_TYPE "altera_avalon_pio" - - -/* - * jtag_uart configuration - * - */ - -#define ALT_MODULE_CLASS_jtag_uart altera_avalon_jtag_uart -#define JTAG_UART_BASE 0x41100 -#define JTAG_UART_IRQ 5 -#define JTAG_UART_IRQ_INTERRUPT_CONTROLLER_ID 0 -#define JTAG_UART_NAME "/dev/jtag_uart" -#define JTAG_UART_READ_DEPTH 64 -#define JTAG_UART_READ_THRESHOLD 8 -#define JTAG_UART_SPAN 8 -#define JTAG_UART_TYPE "altera_avalon_jtag_uart" -#define JTAG_UART_WRITE_DEPTH 64 -#define JTAG_UART_WRITE_THRESHOLD 8 - - -/* - * lcd_16207_0 configuration - * - */ - -#define ALT_MODULE_CLASS_lcd_16207_0 altera_avalon_lcd_16207 -#define LCD_16207_0_BASE 0x41030 -#define LCD_16207_0_IRQ -1 -#define LCD_16207_0_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define LCD_16207_0_NAME "/dev/lcd_16207_0" -#define LCD_16207_0_SPAN 16 -#define LCD_16207_0_TYPE "altera_avalon_lcd_16207" - - -/* - * lcd_blon configuration - * - */ - -#define ALT_MODULE_CLASS_lcd_blon altera_avalon_pio -#define LCD_BLON_BASE 0x41020 -#define LCD_BLON_BIT_CLEARING_EDGE_REGISTER 0 -#define LCD_BLON_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define LCD_BLON_CAPTURE 0 -#define LCD_BLON_DATA_WIDTH 1 -#define LCD_BLON_DO_TEST_BENCH_WIRING 0 -#define LCD_BLON_DRIVEN_SIM_VALUE 0 -#define LCD_BLON_EDGE_TYPE "NONE" -#define LCD_BLON_FREQ 50000000 -#define LCD_BLON_HAS_IN 0 -#define LCD_BLON_HAS_OUT 1 -#define LCD_BLON_HAS_TRI 0 -#define LCD_BLON_IRQ -1 -#define LCD_BLON_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define LCD_BLON_IRQ_TYPE "NONE" -#define LCD_BLON_NAME "/dev/lcd_blon" -#define LCD_BLON_RESET_VALUE 0 -#define LCD_BLON_SPAN 16 -#define LCD_BLON_TYPE "altera_avalon_pio" - - -/* - * lcd_on configuration - * - */ - -#define ALT_MODULE_CLASS_lcd_on altera_avalon_pio -#define LCD_ON_BASE 0x41010 -#define LCD_ON_BIT_CLEARING_EDGE_REGISTER 0 -#define LCD_ON_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define LCD_ON_CAPTURE 0 -#define LCD_ON_DATA_WIDTH 1 -#define LCD_ON_DO_TEST_BENCH_WIRING 0 -#define LCD_ON_DRIVEN_SIM_VALUE 0 -#define LCD_ON_EDGE_TYPE "NONE" -#define LCD_ON_FREQ 50000000 -#define LCD_ON_HAS_IN 0 -#define LCD_ON_HAS_OUT 1 -#define LCD_ON_HAS_TRI 0 -#define LCD_ON_IRQ -1 -#define LCD_ON_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define LCD_ON_IRQ_TYPE "NONE" -#define LCD_ON_NAME "/dev/lcd_on" -#define LCD_ON_RESET_VALUE 0 -#define LCD_ON_SPAN 16 -#define LCD_ON_TYPE "altera_avalon_pio" - - -/* - * onchip_memory configuration - * - */ - -#define ALT_MODULE_CLASS_onchip_memory altera_avalon_onchip_memory2 -#define ONCHIP_MEMORY_ALLOW_IN_SYSTEM_MEMORY_CONTENT_EDITOR 0 -#define ONCHIP_MEMORY_ALLOW_MRAM_SIM_CONTENTS_ONLY_FILE 0 -#define ONCHIP_MEMORY_BASE 0x0 -#define ONCHIP_MEMORY_CONTENTS_INFO "" -#define ONCHIP_MEMORY_DUAL_PORT 0 -#define ONCHIP_MEMORY_GUI_RAM_BLOCK_TYPE "AUTO" -#define ONCHIP_MEMORY_INIT_CONTENTS_FILE "nios_system_onchip_memory" -#define ONCHIP_MEMORY_INIT_MEM_CONTENT 1 -#define ONCHIP_MEMORY_INSTANCE_ID "NONE" -#define ONCHIP_MEMORY_IRQ -1 -#define ONCHIP_MEMORY_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define ONCHIP_MEMORY_NAME "/dev/onchip_memory" -#define ONCHIP_MEMORY_NON_DEFAULT_INIT_FILE_ENABLED 0 -#define ONCHIP_MEMORY_RAM_BLOCK_TYPE "AUTO" -#define ONCHIP_MEMORY_READ_DURING_WRITE_MODE "DONT_CARE" -#define ONCHIP_MEMORY_SINGLE_CLOCK_OP 0 -#define ONCHIP_MEMORY_SIZE_MULTIPLE 1 -#define ONCHIP_MEMORY_SIZE_VALUE 204800 -#define ONCHIP_MEMORY_SPAN 204800 -#define ONCHIP_MEMORY_TYPE "altera_avalon_onchip_memory2" -#define ONCHIP_MEMORY_WRITABLE 1 - - -/* - * push_switches configuration - * - */ - -#define ALT_MODULE_CLASS_push_switches altera_avalon_pio -#define PUSH_SWITCHES_BASE 0x410c0 -#define PUSH_SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 -#define PUSH_SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define PUSH_SWITCHES_CAPTURE 0 -#define PUSH_SWITCHES_DATA_WIDTH 3 -#define PUSH_SWITCHES_DO_TEST_BENCH_WIRING 0 -#define PUSH_SWITCHES_DRIVEN_SIM_VALUE 0 -#define PUSH_SWITCHES_EDGE_TYPE "NONE" -#define PUSH_SWITCHES_FREQ 50000000 -#define PUSH_SWITCHES_HAS_IN 1 -#define PUSH_SWITCHES_HAS_OUT 0 -#define PUSH_SWITCHES_HAS_TRI 0 -#define PUSH_SWITCHES_IRQ -1 -#define PUSH_SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define PUSH_SWITCHES_IRQ_TYPE "NONE" -#define PUSH_SWITCHES_NAME "/dev/push_switches" -#define PUSH_SWITCHES_RESET_VALUE 0 -#define PUSH_SWITCHES_SPAN 16 -#define PUSH_SWITCHES_TYPE "altera_avalon_pio" - - -/* - * switches configuration - * - */ - -#define ALT_MODULE_CLASS_switches altera_avalon_pio -#define SWITCHES_BASE 0x410d0 -#define SWITCHES_BIT_CLEARING_EDGE_REGISTER 0 -#define SWITCHES_BIT_MODIFYING_OUTPUT_REGISTER 0 -#define SWITCHES_CAPTURE 0 -#define SWITCHES_DATA_WIDTH 18 -#define SWITCHES_DO_TEST_BENCH_WIRING 0 -#define SWITCHES_DRIVEN_SIM_VALUE 0 -#define SWITCHES_EDGE_TYPE "NONE" -#define SWITCHES_FREQ 50000000 -#define SWITCHES_HAS_IN 1 -#define SWITCHES_HAS_OUT 0 -#define SWITCHES_HAS_TRI 0 -#define SWITCHES_IRQ -1 -#define SWITCHES_IRQ_INTERRUPT_CONTROLLER_ID -1 -#define SWITCHES_IRQ_TYPE "NONE" -#define SWITCHES_NAME "/dev/switches" -#define SWITCHES_RESET_VALUE 0 -#define SWITCHES_SPAN 16 -#define SWITCHES_TYPE "altera_avalon_pio" - -#endif /* __SYSTEM_H_ */