DE0上的NIOSII点灯程序分析
最近刚刚开始学习NIOSII和DE0,准备记录下过程中的点点滴滴,也还请各位多多指教~~~~~~
DE0上的点灯程序分析
CPU
SDRAM
Flash
上面是SOPC中的组件,其中SDRAM和Flash的时序我看了一下手册但是也没有搞太明白,还请DE0 的高手们多多指教,谢谢了,其中Flash采用的是8位模式。
QuartusII中的引脚分配,昨天搞了一天才稍微明白了Flash的什么8位模式和16位模式的接法,老是提示CFI连接不上。把引脚分好之后就没有提示这个错误了。
然后接下来是软件的开发了。
先建立一个SOPC.h文件
//sopc.h #ifndef SOPC_H_ #define SOPC_H_ #include "system.h" #define _LED typedef struct { unsigned long int DATA; unsigned long int DIRECTION; unsigned long int INRERRUPT_MASK; unsigned long int EDGE_CAPTURE; }PIO_STR; #ifdef _LED #define LED ((PIO_STR*)LED_BASE) #endif #endif /*SOPC_H_*/
和main.c文件
/* * "Hello World" example. * * This example prints 'Hello from Nios II' to the STDOUT stream. It runs on * the Nios II 'standard', 'full_featured', 'fast', and 'low_cost' example * designs. It runs with or without the MicroC/OS-II RTOS and requires a STDOUT * device in your system's hardware. * The memory footprint of this hosted application is ~69 kbytes by default * using the standard reference design. * * For a 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. * */ #include <stdio.h> #include<unistd.h> #include"../inc/sopc.h" int main() { int i; while(1) { for(i=0;i<4;i++) { LED->DATA=1<<i; usleep(500000); } } return 0; }
接下了就是程序的下载了,先在Quartus中把硬件下进去,再在IDE中下软件的时候出现的问题如下:
Invalid project path: Missing project folder or file: \altera.components\bin for Output path. altera.components (这是IDE下面problem的提示)
然后console中的提示是
Using cable "USB-Blaster [USB-0]", device 1, instance 0x00
Pausing target processor: OK
Reading System ID at address 0x00401018: verified
Initializing CPU cache (if present)
OK
Downloading 01000020 ( 0%)
Downloaded 28KB in 0.4s (70.0KB/s)
Verifying 01000020 ( 0%)
Verify failed between address 0x1000020 and 0x1006D13
Leaving target processor paused
我很奇怪的是我在SOPC中都没有用到address 0x1000020 and 0x1006D13,我不明白这是哪儿来的,要是哪位知道的话麻烦告诉我一声啊,O(∩_∩)O~
重新看了SDRAM(A3v64s40ETP-G6后的配置)如下:
但是好像还是没有找到那个T_ac 和t_wr.