软件开发流程
本实验是针对 欣欣工作室 的小精灵FC12/FC06型开发板设计的,如选用其它开发板实现,部分内容需做调整。有关小精灵FC12/FC06型开发板详细说明,参见 欣欣工作室 主页:http://www.xinworks.com 。
这个实验中,需要用到前一实验中产生的 nios_II_lab.sof 文件和 niosII.ptf 文件。使用 Quartus II6.0 软件打开前一实验创建的 Project 。通用 Tools => Programmer 菜单命令,启动 Quartus II Programmer ,nios_II_lab.sof 文件会显示在文件窗口中。
选中 Program/Configure 选项,点击 Start Programming 按钮,将其下载到开发板上。
通过 Start => program => Altera => Nios II EDS 6.0 => 菜单命令启动 Nios II6.0 集成开发工具。
通过 File => New => Project 启动新工程向导。 选择 C/C++ Application ,点击 Next 按钮继续。
给新项目取名 nios_II_lab 。在 Target Hardware 栏目中,浏览到前一实验中由 SOPC Builder 创建的系统描述文件:niosII.ptf ,选择并加入。在左手边的 Template 窗口中选中 Blank Project 模板,如下图所示。
点击 Next 按钮进入下一页,选中 Creating a new library ,点击 Finish 按钮。
打开 Windows 的文件浏览器,浏览到 altera_trn\nios_II_lab\software 文件夹,复制 simple.c 文件。点击左手边窗口的 Navigator 表头,选中刚才所建的 nios_II_lab 工程,点击右键,在弹出菜单中点击 Paste 命令。
回到 C/C++ Project 页,选中 nios_II_lab 项目,点击右键,在弹出菜单中点击 Refresh 命令,使系统确认刚才的更改。
选中 nios_II_lab 项目,点击右键,在弹出菜单中点击 System Library Properties 命令。确认 stdout 、stderr 、stdin 设置为 jtag_uart ,同时,确认 Periodic system timer 设置为 SYS_CLK_TIMER 。对于 Program Memory 、Read-only data Memory 、Read/write memory 、Heap memory 、Stack Memory 几个参数,均设为 sdram 。点击 OK 按钮确认。
到此,我们已经建立了一个新项目,并且设定程序运行在 sdram 中,使用 JTAG UART 作为标准终端。选中该项目,点击右键,在弹出菜单中点击 Build Project 命令,进行编译。
编译完成之后,选中该项目,在右键菜单中选项择 Run As=>Nios II Hardware 命令,将其运行在开发板上。
注1: 如果系统提示Jtag 设备无效,请通过 Run => Run… 进入设置对话框,从 Target Connection 页中选定所使用的下载线类型。
注2: 我们也可以直接使用 Run As => Nios II Hardware 运行该程序,系统会自动进行编译。
程序已经运行在开发板上,我们可以通过 console window 观察输出结果。按下开发板上任一按键,板上被点亮的 LED 小灯的位置向右移一位。
现在来调试我们的程序。选中 nios_II_lab 项目,点击右键,在弹出菜单中选择 Debug As => Nios II Hardware 命令。系统会下载程序到开发板,并转入调试窗口。
在程序的第22行和第37行设置断点。如果文本编辑器没有显示行号,可以通过 Windows => Preferences 菜单命令进入系统参数设置对话框。在 C/C++ 组中选中 C/C++ Editor ,在对应的参数设置页中,选中 Show line numbers 选项,点击 OK 确认。
设置断点的方法比较简单,只需把鼠标放在对应行左侧的灰色区域,然后双击左键即可。在 Run 菜单中,选择 Resume 命令,或按 F8 按键,全速执行我们的程序。
在观察窗口中,观察变量 buttons 的值。可以通过右键菜单的 Format => Hexadecimal 命令,使其以16进制数的形式显示。
再次按 F8 。由于开发板上没有按键按下,判别式的值为 FALSE ,花括号中的语句不会被执行, 所以程序不会停在第37行,而是再次停在第22行。
按下开发板的 S4 键不放,再次按 F8 全速执行。观察窗口中,变量 buttons 的值有所改变。
继续按下开发板的 S4 按键不放,按下 F8 全速执行。程序停在第37行,开发板上被点亮的 LED 小灯的位置也随之发生了变化。
再次按 F8 。
双击观察窗口中的 buttons 变量,将其值改为 0xe 点击 OK 。按 F8 全速执行,判别表达式的结果为 TURE ,因为 button 已被改变。
这是一个非常有用的功能,特别是在硬件的外部事件很难重复的情况下,可以用来模拟外部事件。
从 Run 菜单下,选择 Terminate 命令,结束程序的执行。将鼠标移到左侧的“小甲虫”图标上,点击右键,在弹出菜单上选择 Close 命令,关闭调试界面。
[此贴子已经被作者于2006-11-15 9:26:49编辑过]
写写了,给我一份把zhaibodan@163.com
楼主能给一份6.0的license吗?谢谢
f1_f1@126.com