Board logo

标题: 实验手册----软件开发流程 [打印本页]

作者: Stoneway    时间: 2005-6-24 12:38     标题: 实验手册----软件开发流程

 

软件开发流程


注:

本实验是针对 欣欣工作室 的小精灵FC12/FC06型开发板设计的,如选用其它开发板实现,部分内容需做调整。有关小精灵FC12/FC06型开发板详细说明,参见 欣欣工作室 主页:http://www.xinworks.com

1.

这个实验中,需要用到前一实验中产生的 nios_II_lab.sof 文件和 niosII.ptf 文件。使用 Quartus II6.0 软件打开前一实验创建的 Project 。通用 Tools => Programmer 菜单命令,启动 Quartus II Programmernios_II_lab.sof 文件会显示在文件窗口中。

2.

选中 Program/Configure 选项,点击 Start Programming 按钮,将其下载到开发板上。

3.

通过 Start => program => Altera => Nios II EDS 6.0 => 菜单命令启动 Nios II6.0 集成开发工具。

4.

通过 File => New => Project 启动新工程向导。 选择 C/C++ Application ,点击 Next 按钮继续。

5.

给新项目取名 nios_II_lab 。在 Target Hardware 栏目中,浏览到前一实验中由 SOPC Builder 创建的系统描述文件:niosII.ptf ,选择并加入。在左手边的 Template 窗口中选中 Blank Project 模板,如下图所示。

6.

点击 Next 按钮进入下一页,选中 Creating a new library ,点击 Finish 按钮。

7.

打开 Windows 的文件浏览器,浏览到 altera_trn\nios_II_lab\software 文件夹,复制 simple.c 文件。点击左手边窗口的 Navigator 表头,选中刚才所建的 nios_II_lab 工程,点击右键,在弹出菜单中点击 Paste 命令。

8.

回到 C/C++ Project 页,选中 nios_II_lab 项目,点击右键,在弹出菜单中点击 Refresh 命令,使系统确认刚才的更改。

9.

选中 nios_II_lab 项目,点击右键,在弹出菜单中点击 System Library Properties 命令。确认 stdoutstderrstdin 设置为 jtag_uart ,同时,确认 Periodic system timer 设置为 SYS_CLK_TIMER 。对于 Program MemoryRead-only data MemoryRead/write memoryHeap memoryStack Memory 几个参数,均设为 sdram 。点击 OK 按钮确认。

10.

到此,我们已经建立了一个新项目,并且设定程序运行在 sdram 中,使用 JTAG UART 作为标准终端。选中该项目,点击右键,在弹出菜单中点击 Build Project 命令,进行编译。

11.

编译完成之后,选中该项目,在右键菜单中选项择 Run As=>Nios II Hardware 命令,将其运行在开发板上。

   

注1: 如果系统提示Jtag 设备无效,请通过 Run => Run… 进入设置对话框,从 Target Connection 页中选定所使用的下载线类型。

   

注2: 我们也可以直接使用 Run As => Nios II Hardware 运行该程序,系统会自动进行编译。

   

程序已经运行在开发板上,我们可以通过 console window 观察输出结果。按下开发板上任一按键,板上被点亮的 LED 小灯的位置向右移一位。

12.

现在来调试我们的程序。选中 nios_II_lab 项目,点击右键,在弹出菜单中选择 Debug As => Nios II Hardware 命令。系统会下载程序到开发板,并转入调试窗口。

13.

在程序的第22行和第37行设置断点。如果文本编辑器没有显示行号,可以通过 Windows => Preferences 菜单命令进入系统参数设置对话框。在 C/C++ 组中选中 C/C++ Editor ,在对应的参数设置页中,选中 Show line numbers 选项,点击 OK 确认。

   

设置断点的方法比较简单,只需把鼠标放在对应行左侧的灰色区域,然后双击左键即可。在 Run 菜单中,选择 Resume 命令,或按 F8 按键,全速执行我们的程序。

14.

在观察窗口中,观察变量 buttons 的值。可以通过右键菜单的 Format => Hexadecimal 命令,使其以16进制数的形式显示。

15.

再次按 F8 。由于开发板上没有按键按下,判别式的值为 FALSE ,花括号中的语句不会被执行, 所以程序不会停在第37行,而是再次停在第22行。

16.

按下开发板的 S4 键不放,再次按 F8 全速执行。观察窗口中,变量 buttons 的值有所改变。

17.

继续按下开发板的 S4 按键不放,按下 F8 全速执行。程序停在第37行,开发板上被点亮的 LED 小灯的位置也随之发生了变化。

18.

再次按 F8

19.

双击观察窗口中的 buttons 变量,将其值改为 0xe 点击 OK 。按 F8 全速执行,判别表达式的结果为 TURE ,因为 button 已被改变。

   

这是一个非常有用的功能,特别是在硬件的外部事件很难重复的情况下,可以用来模拟外部事件。

20.

Run 菜单下,选择 Terminate 命令,结束程序的执行。将鼠标移到左侧的“小甲虫”图标上,点击右键,在弹出菜单上选择 Close 命令,关闭调试界面。

[此贴子已经被作者于2006-11-15 9:26:49编辑过]


作者: Stoneway    时间: 2005-6-24 12:41

EMAIL:StonewayQi@cytech.com
作者: zhaibo    时间: 2006-11-12 13:06

写写了,给我一份把zhaibodan@163.com


作者: liujijun    时间: 2006-11-14 20:08

我的邮箱liujijun518@msn.com (有需要请讲)多谢!
作者: f1_f1_f1    时间: 2006-11-21 11:41

楼主能给一份6.0的license吗?谢谢

f1_f1@126.com


作者: dadaowai    时间: 2006-12-21 12:51

路过,支持楼主!




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0