在上一讲中,我们已经成功使用Quartus II和SOPC Builder构建和综合一个带ILI9235 TFT控制器、ADS7843 触摸控制器和SPI SD卡的引脚的Nios II软核系统。下面我们来讲如何在这个软核系统上做一个简易数码相框。首先是一些配置工作。
在之之前,请先下载sof文件到FPGA片内,这样FPGA里面才有Nios II软核存在。
为了方便起见,我们首先使用hello_world模板。
在创建APP工程的同时,BSP工程会自动生成(使用模板的情况下)。
创建好的工程如下:
将APP编译一下,观察文件区别:APP工程多了目标文件夹obj、二进制可执行文件hello_world.elf及其他文件。BSP工程没有变化。
编译信息及结果如下:
**** Build of configuration Nios II for project hello_word **** make all Info: Building ../hello_word_bsp make --no-print-directory -C ../hello_word_bsp Compiling alt_alarm_start.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_alarm_start.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_alarm_start.c Compiling alt_busy_sleep.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_busy_sleep.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_busy_sleep.c Compiling alt_close.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_close.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_close.c Compiling alt_dcache_flush.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_dcache_flush.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_dcache_flush.c Compiling alt_dcache_flush_all.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_dcache_flush_all.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_dcache_flush_all.c Compiling alt_dcache_flush_no_writeback.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_dcache_flush_no_writeback.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_dcache_flush_no_writeback.c Compiling alt_dev.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_dev.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_dev.c Compiling alt_dev_llist_insert.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_dev_llist_insert.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_dev_llist_insert.c Compiling alt_dma_rxchan_open.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_dma_rxchan_open.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_dma_rxchan_open.c Compiling alt_dma_txchan_open.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_dma_txchan_open.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_dma_txchan_open.c Compiling alt_do_ctors.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_do_ctors.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_do_ctors.c Compiling alt_do_dtors.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_do_dtors.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_do_dtors.c Compiling alt_env_lock.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_env_lock.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_env_lock.c Compiling alt_environ.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_environ.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_environ.c Compiling alt_errno.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_errno.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_errno.c Compiling alt_exception_entry.S... nios2-elf-gcc -MP -MMD -c -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -Wa,-gdwarf2 -o obj/HAL/src/alt_exception_entry.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_exception_entry.S Compiling alt_exception_muldiv.S... nios2-elf-gcc -MP -MMD -c -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -Wa,-gdwarf2 -o obj/HAL/src/alt_exception_muldiv.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_exception_muldiv.S Compiling alt_exception_trap.S... nios2-elf-gcc -MP -MMD -c -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -Wa,-gdwarf2 -o obj/HAL/src/alt_exception_trap.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_exception_trap.S Compiling alt_execve.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_execve.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_execve.c Compiling alt_exit.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_exit.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_exit.c Compiling alt_fcntl.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_fcntl.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_fcntl.c Compiling alt_fd_lock.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_fd_lock.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_fd_lock.c Compiling alt_fd_unlock.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_fd_unlock.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_fd_unlock.c Compiling alt_find_dev.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_find_dev.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_find_dev.c Compiling alt_find_file.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_find_file.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_find_file.c Compiling alt_flash_dev.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_flash_dev.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_flash_dev.c Compiling alt_fork.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_fork.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_fork.c Compiling alt_fs_reg.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_fs_reg.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_fs_reg.c Compiling alt_fstat.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_fstat.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_fstat.c Compiling alt_get_fd.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_get_fd.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_get_fd.c Compiling alt_getchar.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_getchar.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_getchar.c Compiling alt_getpid.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_getpid.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_getpid.c Compiling alt_gettod.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_gettod.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_gettod.c Compiling alt_gmon.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_gmon.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_gmon.c Compiling alt_icache_flush.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_icache_flush.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_icache_flush.c Compiling alt_icache_flush_all.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_icache_flush_all.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_icache_flush_all.c Compiling alt_iic.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_iic.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_iic.c Compiling alt_iic_isr_register.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_iic_isr_register.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_iic_isr_register.c Compiling alt_instruction_exception_entry.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_instruction_exception_entry.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_instruction_exception_entry.c Compiling alt_instruction_exception_register.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_instruction_exception_register.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_instruction_exception_register.c Compiling alt_io_redirect.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_io_redirect.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_io_redirect.c Compiling alt_ioctl.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_ioctl.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_ioctl.c Compiling alt_irq_entry.S... nios2-elf-gcc -MP -MMD -c -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -Wa,-gdwarf2 -o obj/HAL/src/alt_irq_entry.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_irq_entry.S Compiling alt_irq_handler.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_irq_handler.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_irq_handler.c Compiling alt_irq_register.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_irq_register.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_irq_register.c Compiling alt_irq_vars.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_irq_vars.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_irq_vars.c Compiling alt_isatty.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_isatty.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_isatty.c Compiling alt_kill.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_kill.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_kill.c Compiling alt_link.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_link.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_link.c Compiling alt_load.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_load.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_load.c Compiling alt_log_macro.S... nios2-elf-gcc -MP -MMD -c -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -Wa,-gdwarf2 -o obj/HAL/src/alt_log_macro.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_log_macro.S Compiling alt_log_printf.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_log_printf.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_log_printf.c Compiling alt_lseek.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_lseek.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_lseek.c Compiling alt_main.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_main.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_main.c Compiling alt_malloc_lock.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_malloc_lock.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_malloc_lock.c Compiling alt_mcount.S... nios2-elf-gcc -MP -MMD -c -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -Wa,-gdwarf2 -o obj/HAL/src/alt_mcount.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_mcount.S Compiling alt_open.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_open.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_open.c Compiling alt_printf.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_printf.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_printf.c Compiling alt_putchar.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_putchar.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_putchar.c Compiling alt_putstr.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_putstr.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_putstr.c Compiling alt_read.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_read.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_read.c Compiling alt_release_fd.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_release_fd.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_release_fd.c Compiling alt_remap_cached.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_remap_cached.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_remap_cached.c Compiling alt_remap_uncached.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_remap_uncached.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_remap_uncached.c Compiling alt_rename.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_rename.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_rename.c Compiling alt_sbrk.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_sbrk.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_sbrk.c Compiling alt_settod.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_settod.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_settod.c Compiling alt_software_exception.S... nios2-elf-gcc -MP -MMD -c -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -Wa,-gdwarf2 -o obj/HAL/src/alt_software_exception.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_software_exception.S Compiling alt_stat.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_stat.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_stat.c Compiling alt_tick.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_tick.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_tick.c Compiling alt_times.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_times.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_times.c Compiling alt_uncached_free.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_uncached_free.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_uncached_free.c Compiling alt_uncached_malloc.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_uncached_malloc.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_uncached_malloc.c Compiling alt_unlink.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_unlink.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_unlink.c Compiling alt_usleep.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_usleep.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_usleep.c Compiling alt_wait.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_wait.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_wait.c Compiling alt_write.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/alt_write.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/alt_write.c Compiling altera_nios2_irq.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/HAL/src/altera_nios2_irq.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/altera_nios2_irq.c Compiling crt0.S... nios2-elf-gcc -MP -MMD -c -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -Wa,-gdwarf2 -o obj/HAL/src/crt0.o d:/Amy-S/lcd/software/hello_word_bsp/HAL/src/crt0.S Compiling alt_sys_init.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/alt_sys_init.o d:/Amy-S/lcd/software/hello_word_bsp/alt_sys_init.c Compiling altera_avalon_epcs_flash_controller.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/drivers/src/altera_avalon_epcs_flash_controller.o d:/Amy-S/lcd/software/hello_word_bsp/drivers/src/altera_avalon_epcs_flash_controller.c Compiling altera_avalon_jtag_uart_fd.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/drivers/src/altera_avalon_jtag_uart_fd.o d:/Amy-S/lcd/software/hello_word_bsp/drivers/src/altera_avalon_jtag_uart_fd.c Compiling altera_avalon_jtag_uart_init.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/drivers/src/altera_avalon_jtag_uart_init.o d:/Amy-S/lcd/software/hello_word_bsp/drivers/src/altera_avalon_jtag_uart_init.c Compiling altera_avalon_jtag_uart_ioctl.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/drivers/src/altera_avalon_jtag_uart_ioctl.o d:/Amy-S/lcd/software/hello_word_bsp/drivers/src/altera_avalon_jtag_uart_ioctl.c Compiling altera_avalon_jtag_uart_read.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/drivers/src/altera_avalon_jtag_uart_read.o d:/Amy-S/lcd/software/hello_word_bsp/drivers/src/altera_avalon_jtag_uart_read.c Compiling altera_avalon_jtag_uart_write.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/drivers/src/altera_avalon_jtag_uart_write.o d:/Amy-S/lcd/software/hello_word_bsp/drivers/src/altera_avalon_jtag_uart_write.c Compiling altera_avalon_spi.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/drivers/src/altera_avalon_spi.o d:/Amy-S/lcd/software/hello_word_bsp/drivers/src/altera_avalon_spi.c Compiling altera_avalon_sysid.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/drivers/src/altera_avalon_sysid.o d:/Amy-S/lcd/software/hello_word_bsp/drivers/src/altera_avalon_sysid.c Compiling altera_avalon_timer_sc.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/drivers/src/altera_avalon_timer_sc.o d:/Amy-S/lcd/software/hello_word_bsp/drivers/src/altera_avalon_timer_sc.c Compiling altera_avalon_timer_ts.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/drivers/src/altera_avalon_timer_ts.o d:/Amy-S/lcd/software/hello_word_bsp/drivers/src/altera_avalon_timer_ts.c Compiling altera_avalon_timer_vars.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/drivers/src/altera_avalon_timer_vars.o d:/Amy-S/lcd/software/hello_word_bsp/drivers/src/altera_avalon_timer_vars.c Compiling epcs_commands.c... nios2-elf-gcc -xc -MP -MMD -c -I./HAL/inc -I. -I./drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/drivers/src/epcs_commands.o d:/Amy-S/lcd/software/hello_word_bsp/drivers/src/epcs_commands.c Creating libhal_bsp.a... rm -f -f libhal_bsp.a nios2-elf-ar -src libhal_bsp.a obj/HAL/src/alt_alarm_start.o obj/HAL/src/alt_busy_sleep.o obj/HAL/src/alt_close.o obj/HAL/src/alt_dcache_flush.o obj/HAL/src/alt_dcache_flush_all.o obj/HAL/src/alt_dcache_flush_no_writeback.o obj/HAL/src/alt_dev.o obj/HAL/src/alt_dev_llist_insert.o obj/HAL/src/alt_dma_rxchan_open.o obj/HAL/src/alt_dma_txchan_open.o obj/HAL/src/alt_do_ctors.o obj/HAL/src/alt_do_dtors.o obj/HAL/src/alt_env_lock.o obj/HAL/src/alt_environ.o obj/HAL/src/alt_errno.o obj/HAL/src/alt_exception_entry.o obj/HAL/src/alt_exception_muldiv.o obj/HAL/src/alt_exception_trap.o obj/HAL/src/alt_execve.o obj/HAL/src/alt_exit.o obj/HAL/src/alt_fcntl.o obj/HAL/src/alt_fd_lock.o obj/HAL/src/alt_fd_unlock.o obj/HAL/src/alt_find_dev.o obj/HAL/src/alt_find_file.o obj/HAL/src/alt_flash_dev.o obj/HAL/src/alt_fork.o obj/HAL/src/alt_fs_reg.o obj/HAL/src/alt_fstat.o obj/HAL/src/alt_get_fd.o obj/HAL/src/alt_getchar.o obj/HAL/src/alt_getpid.o obj/HAL/src/alt_gettod.o obj/HAL/src/alt_gmon.o obj/HAL/src/alt_icache_flush.o obj/HAL/src/alt_icache_flush_all.o obj/HAL/src/alt_iic.o obj/HAL/src/alt_iic_isr_register.o obj/HAL/src/alt_instruction_exception_entry.o obj/HAL/src/alt_instruction_exception_register.o obj/HAL/src/alt_io_redirect.o obj/HAL/src/alt_ioctl.o obj/HAL/src/alt_irq_entry.o obj/HAL/src/alt_irq_handler.o obj/HAL/src/alt_irq_register.o obj/HAL/src/alt_irq_vars.o obj/HAL/src/alt_isatty.o obj/HAL/src/alt_kill.o obj/HAL/src/alt_link.o obj/HAL/src/alt_load.o obj/HAL/src/alt_log_macro.o obj/HAL/src/alt_log_printf.o obj/HAL/src/alt_lseek.o obj/HAL/src/alt_main.o obj/HAL/src/alt_malloc_lock.o obj/HAL/src/alt_mcount.o obj/HAL/src/alt_open.o obj/HAL/src/alt_printf.o obj/HAL/src/alt_putchar.o obj/HAL/src/alt_putstr.o obj/HAL/src/alt_read.o obj/HAL/src/alt_release_fd.o obj/HAL/src/alt_remap_cached.o obj/HAL/src/alt_remap_uncached.o obj/HAL/src/alt_rename.o obj/HAL/src/alt_sbrk.o obj/HAL/src/alt_settod.o obj/HAL/src/alt_software_exception.o obj/HAL/src/alt_stat.o obj/HAL/src/alt_tick.o obj/HAL/src/alt_times.o obj/HAL/src/alt_uncached_free.o obj/HAL/src/alt_uncached_malloc.o obj/HAL/src/alt_unlink.o obj/HAL/src/alt_usleep.o obj/HAL/src/alt_wait.o obj/HAL/src/alt_write.o obj/HAL/src/altera_nios2_irq.o obj/HAL/src/crt0.o obj/alt_sys_init.o obj/drivers/src/altera_avalon_epcs_flash_controller.o obj/drivers/src/altera_avalon_jtag_uart_fd.o obj/drivers/src/altera_avalon_jtag_uart_init.o obj/drivers/src/altera_avalon_jtag_uart_ioctl.o obj/drivers/src/altera_avalon_jtag_uart_read.o obj/drivers/src/altera_avalon_jtag_uart_write.o obj/drivers/src/altera_avalon_spi.o obj/drivers/src/altera_avalon_sysid.o obj/drivers/src/altera_avalon_timer_sc.o obj/drivers/src/altera_avalon_timer_ts.o obj/drivers/src/altera_avalon_timer_vars.o obj/drivers/src/epcs_commands.o [BSP build complete] Info: Compiling hello_world.c to obj/hello_world.o nios2-elf-gcc -xc -MP -MMD -c -I../hello_word_bsp/HAL/inc -I../hello_word_bsp -I../hello_word_bsp/drivers/inc -DSYSTEM_BUS_WIDTH=32 -D__hal__ -pipe -DALT_NO_INSTRUCTION_EMULATION -DALT_SINGLE_THREADED -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o obj/hello_world.o hello_world.c Info: Linking hello_word.elf nios2-elf-g++ -T'../hello_word_bsp/linker.x' -msys-crt0='../hello_word_bsp/obj/HAL/src/crt0.o' -msys-lib=hal_bsp -L../hello_word_bsp -Wl,-Map=hello_word.map -O0 -g -Wall -EL -mhw-div -mhw-mul -mno-hw-mulx -o hello_word.elf obj/hello_world.o -lm nios2-elf-insert hello_word.elf --thread_model hal --cpu_name nios_f --simulation_enabled false --id 696924572 --sidp 0x3002068 --timestamp 1291132509 --stderr_dev jtag_uart --stdin_dev jtag_uart --stdout_dev jtag_uart --sopc_system_name nios_ii_sys --quartus_project_dir "D:/Amy-S/lcd" --jdi D:/Amy-S/lcd/software/hello_word_bsp/http://www.cnblogs.com/lcd_at_nios.jdi Info: (hello_word.elf) 32 KBytes program size (code + initialized data). Info: 8159 KBytes free for stack + heap. Info: Creating hello_word.objdump nios2-elf-objdump --disassemble --syms --all-header --source hello_word.elf >hello_word.objdump [hello_word build complete]
我们所谓的Nios II SBTE(Nios II 10.0 Software Build Tools for Eclipse)就是把nios-elf-gcc整合为eclipse的一个插件。这样我们就可以方便使用eclipse的GUI操作,当然也可以通过自行编写makefile来编译,这个后续有提到。上一代的Nios II IDE为什么没有Nios II SBTE快呢?至少看起来也慢。那是因为Nios II IDE使用的cygwin虚拟机来模拟linux,不慢才怪。
言归正传,下面我们运行一下Run Configurations…来配置一下JTAG连接及RUN的类型。
提示连接错误。
打开Target Conection标签,刷新链接,直至找到JTAG和匹配目标硬件为止。
RUN一下,测试RAM是否正常工作,Console显示的信息如下:
Using cable "USB-Blaster [USB-0]", device 1, instance 0x00 Processor is already paused Reading System ID at address 0x03002068: verified Initializing CPU cache (if present) OK Downloading 02800020 ( 0%) Downloaded 33KB in 0.7s (47.1KB/s) Verifying 02800020 ( 0%) Verified OK Starting processor at address 0x028001B4
那hello_world模板打印的东西在哪?在Nios II Console,其信息如下:
看到上面的字样,基本上Nios II软核可以自由运行在RAM中了。
说一下这个Nios II Console。想要出现Nios II Console就必须将stderr、stdin和stdout映射到jtag_urat。当然如果映射到其他标准字符型设备也可以,那么Nios II Console就看不见了。比方说映射到LCD1602上,彼时就只能看到LCD1602(也可以说是console)了。
在哪选择映射?当然是BSP工程里面设置了。在***_bsp工程中右键Nios II>BSP Editor…,打开BSP Editor。
注意:手动对BSP Editor修改且保存之后,必须右键Nios II>Generate BSP,生成新的BSP,否则变异无法通过。
这一次,我们使用空模板,因为这个Hello World模板有时比较纠结。
为了有效管理源文件,我们在APP工程内创建一些文件夹。
│ main.c // 主函数文件 │ ├─debug // 调试库及源文件 └─my_sopc // 自定义SOPC引脚映射及数据类型宏的库
打开APP工程的Properties ,APP工程右键Properties>Nios II Application Properties>Nios II Applications Path,对文件路径进行配置。这一步骤很重要,否则后续无法进行。
后续的ILI9325、ADS7843和SD Card也会以同样的方式加入路径。
添加之后,在APP工程右键Refresh,以刷新makefile。
这一步在后续的工程可以直接复用。
先自定义数据类型宏,有可能bool会报错,不睬它,因为gcc本来就没有bool类型。
代码 my_types.h
// copy from stm32f10x_type.h #ifndef MY_TYPES_H_ #define MY_TYPES_H_ typedef signed long s32; typedef signed short s16; typedef signed char s8; typedef signed long const sc32; /* Read Only */ typedef signed short const sc16; /* Read Only */ typedef signed char const sc8; /* Read Only */ typedef volatile signed long vs32; typedef volatile signed short vs16; typedef volatile signed char vs8; typedef volatile signed long const vsc32; /* Read Only */ typedef volatile signed short const vsc16; /* Read Only */ typedef volatile signed char const vsc8; /* Read Only */ typedef unsigned long u32; typedef unsigned short u16; typedef unsigned char u8; typedef unsigned long const uc32; /* Read Only */ typedef unsigned short const uc16; /* Read Only */ typedef unsigned char const uc8; /* Read Only */ typedef volatile unsigned long vu32; typedef volatile unsigned short vu16; typedef volatile unsigned char vu8; typedef volatile unsigned long const vuc32; /* Read Only */ typedef volatile unsigned short const vuc16; /* Read Only */ typedef volatile unsigned char const vuc8; /* Read Only */ typedef enum {FALSE = 0, TRUE = !FALSE} bool; #endif /* MY_TYPES_H_ */
然后我们根据SOPC Builder的配置来自定义引脚映射,相关的背景知识请参阅http://www.cnblogs.com/yuphone/archive/2010/04/22/1717779.html。
代码 自定义引脚映射
#ifndef MY_REGS_H_ #define MY_REGS_H_ #include "system.h" #include "my_types.h" #define ILI9325 #define ADS7843 #define SD_CARD // PIO Data structure typedef struct { vu32 DATA : 32; vu32 DIRECTION : 32; vu32 INTERRUPT_MASK : 32; vu32 EDGE_CAPTURE : 32; }PIO_STR; // ili9325 I/O #ifdef ILI9325 #define ili_nCS *(vu32 *)(ILI_NCS_BASE | (1<<31)) #define ili_nRST *(vu32 *)(ILI_NRST_BASE | (1<<31)) #define ili_RS *(vu32 *)(ILI_RS_BASE | (1<<31)) #define ili_nWR *(vu32 *)(ILI_NWR_BASE | (1<<31)) #define ili_nRD *(vu32 *)(ILI_NRD_BASE | (1<<31)) #define ili_DB ((PIO_STR *)(ILI_DB_BASE | (1<<31))) #endif // ADS7843 I/O #ifdef ADS7843 // #define ads_nIRQ *(vu32 *)(ADS_NIRQ_BASE | (1<<31)) // #define ads_BUSY *(vu32 *)(ADS_BUSY_BASE | (1<<31)) #define ads_nCS *(vu32 *)(ADS_NCS_BASE | (1<<31)) #define ads_CLK *(vu32 *)(ADS_CLK_BASE | (1<<31)) #define ads_DIN *(vu32 *)(ADS_DIN_BASE | (1<<31)) #define ads_DOUT *(vu32 *)(ADS_DOUT_BASE | (1<<31)) #endif // SD Card I/O #ifdef SD_CARD #define sd_CLK *(vu32 *)(SD_CLK_BASE | (1<<31)) #define sd_nCS *(vu32 *)(SD_NCS_BASE | (1<<31)) #define sd_DIN *(vu32 *)(SD_DIN_BASE | (1<<31)) #define sd_DOUT *(vu32 *)(SD_DOUT_BASE | (1<<31)) #endif #endif /* MY_REGS_H_ */
为了防止被编译器优化,所有的地址都使用volatile unsigned long(使用my_types宏后,可简写为vu32)修饰,注意不要落下volatile。
为了防止地址被数据缓存旁路,所有地址的第31位都拉高(1<<31)。
这一步是我抄袭terasic的源代码,我给它简化了。暂时只使用JTAG_UART调试,其他的标准字符型设备的调试宏,我都删了。
代码 debug.c
#include <stdarg.h> #include <stdio.h> #include "debug.h" #ifdef ENABLE_UART_DEBUG // 省略,暂时不用UART;用到的时候,再写子函数 #else void debug_output(char *pMessage){ printf(pMessage); } #endif int myprintf(char *format, ...){ int rc; char szText[512]; va_list paramList; va_start(paramList, format); rc = vsnprintf(szText, 512, format, paramList); va_end(paramList); debug_output(szText); return rc; }
代码 debug.h
#ifndef DEBUG_H_ #define DEBUG_H_ int myprintf(char *format, ...); #define ENABLE_STDOUT_DEBUG // turn on all of debug message using standard in/out //#define ENABLE_UART_DEBUG // turn on debug message using uart #ifdef ENABLE_STDOUT_DEBUG #define DEBUG(x) {myprintf x;} #else // nothing #define DEBUG(x) #endif #endif /* DEBUG_H_ */
使用c文件写函数,h文件写宏及函数类型是个很好的习惯。如果使用C++的话,可以使用类来更好地管理全局/私有宏、全局/私有函数。只可惜我的C++早忘光了,只有写C了。
代码 main.c(测试用)
#include "debug.h" // debug宏 #include "my_types.h" // 自定义数据类型 #include "my_regs.h" // 自定义I/O映射 // 配置调试开关 #define ENABLE_APP_DEBUG // turn on debug message #ifdef ENABLE_APP_DEBUG #define APP_DEBUG(x) DEBUG(x) #else #define APP_DEBUG(x) #endif // 主函数 int main() { bool i; i=FALSE; APP_DEBUG(("i=%d", i)); return 0; }
运行结果:
哪位大侠指点一下如何复制Nios II Console中的内容?
1 [原创][连载].基于SOPC的简易数码相框 - Quartus II部分(硬件部分)
2 [原创][连载].基于SOPC的简易数码相框 - Nios II SBTE部分(软件部分)- 配置工作
3 [原创][连载].基于SOPC的简易数码相框 - Nios II SBTE部分(软件部分)- SD卡(SPI模式)驱动
4 [原创][连载].基于SOPC的简易数码相框 - Nios II SBTE部分(软件部分)- TFT-LCD(控制器为ILI9325)驱动
5 [原创][连载].基于SOPC的简易数码相框 - Nios II SBTE部分(软件部分)- 从SD卡内读取图片文件,然后显示在TFT-LCD上
6 [原创][连载].基于SOPC的简易数码相框 - Nios II SBTE部分(软件部分)- 优化工作
7 [原创][连载].基于SOPC的简易数码相框 - Nios II SBTE部分(软件部分)- ADS7843触摸屏驱动测试