180 likes | 322 Views
Nios2 小系统 —— 实验 二 . Nios2 软件. 华中科技大学启明学院电工电子科技创新中心 王贞炎. 实验内容. 实验名称 Hello World! 和跑马灯程序 预备 知识 Nios2 处理器小系统的搭建 实验 目的 学会使用 Eclipse-Nios2 IDE 编写 Nios2 软件程序,学会使用 PIO 外设,了解一般外设的访问方式 实验 内容及 方法 学习 Nios2 软件的一般结构,使用 Eclipse-Nios2 IDE 编写程序,从 Jtag-Uart 控制台输出“ Hello World!" ;
E N D
Nios2小系统——实验二. Nios2软件 华中科技大学启明学院电工电子科技创新中心 王贞炎
实验内容 • 实验名称 • Hello World!和跑马灯程序 • 预备知识 • Nios2处理器小系统的搭建 • 实验目的 • 学会使用Eclipse-Nios2 IDE编写Nios2软件程序,学会使用PIO外设,了解一般外设的访问方式 • 实验内容及方法 • 学习Nios2软件的一般结构,使用Eclipse-Nios2 IDE编写程序,从Jtag-Uart控制台输出“Hello World!"; • 学会使用PIO外设,编写跑马灯程序,并了解一般的外设的访问方式。
讲解内容 • Nios2软硬件系统的联系 • Nios2软件的基本结构简介 • 使用Eclipse-Nios2 • 创建工程和编译 • 调试
Nios2软硬件的联系 • “.sopcinfo”文件是Nios2软硬件的桥梁 • 它由SOPC Builder生成,描述了SOPC系统的几乎全部信息; • 为Eclipse-Nios2提供创建软件工程的基础和依据; • 是一个XML文件,可以用文本编辑器查看,其中包含: • SOPC系统的总体信息 • 系统中包含的模块信息 • 模块包含的接口信息 SOPC Builder还会生成另一个基本等效的文件“.ptf”,用于支持早期的 Nios2 IDE; 新的Qsys工具,仅生成“.sopcinfo”文件。
Nios2软件的基本结构 • Nios2软件自下而上分为: • Device Driver层:描述设备(主要指SOPC系统中的外设)基本功能和操作 • HAL(Hardware Abstract Layer):将设备操作抽象成统一的形式提供给C语言标准库和用户 • C Standard Library:C语言标准库 • 用户程序 • 上述层次中,从设备驱动到C语言标准库的全部内容,均由Eclipse-Nios2在创建工程时自动生成,位于独立的一个BSP(Board Support Package)工程中。
使用Eclipse-Nios2 • 启动Eclipse-Nios2 • 选择工作区 • 工作区用于保存Eclipse-Nios2的工作环境配置,并可以包含一个或多个工程。 • 可以针对不同的项目需要甚至针对某个工程单独设置工作区,也可一直使用同一个工作区。
使用Eclipse-Nios2 • Eclipse-Nios2的界面 界面配置选择可为不同的工作情景选择不同的界面配置 菜单和工具栏 Project Explorer罗列工程,并可查看工程中的文件结构 Outline 罗列工程、文件中的要点,如文件中的宏定义、函数等 各种消息窗口
使用Eclipse-Nios2 • 新建工程 • File – New – Nios2 Application & BSPfrom Template将根据已有模板新建两个工程: • BSP工程:容纳设备驱动、HAL和C语言标准库,这个工程完全由Eclipse-Nios2管理。 • Application工程:容纳用户自己编写的程序。
使用Eclipse-Nios2 • 新建工程 指定Nios2处理器系统 Nios2处理器核 工程名 工程位置,建议默认 工程模板 不同的模板适用于不同类型的程序
使用Eclipse-Nios2 • 新建工程 BSP工程名和位置建议全部默认 如果对于同一个Nios2处理器系统原先建立过BSP工程,也可选用原有的。
使用Eclipse-Nios2 • 工程的结构 • 应用工程 • 自行编写的源文件 • 一些工程配置和Makefile • BSP工程 • 设备驱动(drivers),包括头文件和源文件 • HAL,包括头文件和源文件 • 其它重要头文件和源文件 • 一些工程配置和Makefile system.h包含外设的基本信息和定义的头文件,在整个软件开发过程中非常重要
使用Eclipse-Nios2 • 工程的结构 • Eclipse-Nios2源于Linux,其工程管理与Linux中几乎一样 • 工程的文件结构基于文件系统结构。 • 几乎所有的编译过程都由Makefile文件控制,在Eclipse-Nios2中,Makefile由Eclipse-Nios2自动管理。 system.h包含外设的基本信息和定义的头文件,在整个软件开发过程中非常重要
使用Eclipse-Nios2 • 工作区中的工程 • 工程可以从工作区中删除也可从文件系统中添加至工作区。 • 在工程名上单击右键 • “Delete”可将工程从工作区中删除 • “Import”可将工程从文件系统中添加进工作区 导入时选择Nios2 software build tools project 指定文件系统位置并为导入的工程命名 删除时选择是否也从文件系统中删除
使用Eclipse-Nios2 • 编译 • 在工程名上单击右键,选择“Build Project”即可编译工程 • 工程编译时,会按照工程间的依赖关系先编译被依赖的工程 • 如Application工程依赖于BSP工程,Eclipse-Nios2会先编译BSP工程,然后编译Application工程 • 工程的编译采用增量方式 • 编译时,只编译新增或修改过的文件,而后一起连接,所以新工程初次编译需要的时间稍长 • 编译完成后应查看“Problems”消息窗口,确定编译正确或修正出现的问题 • 编译最终生成的目标文件是以工程名命名的“.elf”文件,用于下载运行和调试
使用Eclipse-Nios2 • 工程的属性和配置 • 在工程名上单击右键,“Properties”菜单项中,可配置工程的属性,如编译配置、优化程度等等 • 在BSP工程上单击右键,包含专门针对Nios2 BSP工程的菜单项“Nios II”,其中: • Generate BSP:用于重新生成BSP,在SOPC Builder中修改过SOPC系统后,需要使用此项重新生成BSP。 • BSP Editor:配置BSP的具体内容,包括: • 存储器配置,目标文件连接方式,堆栈配置 • 设备驱动和HAL的使用和配置 • 软件包的使用和配置,包括uC/OS操作系统、TCP/IP协议栈、文件系统等 • ……
使用Eclipse-Nios2 • 调试 • 配置调试 • 调试前需连接好开发板,并事先下载FPGA配置文件 • 单击工具栏中调试图标旁的下拉三角,选择Debug Configurations… • 在Debug Configurations窗口中,选中Nios II Hardware,并单击新建图标
使用Eclipse-Nios2 • 调试 • 配置调试 • 在Project标签中为新配置命名,选择欲调试的工程及对应elf文件 • 在Target Connection标签中,单击Refresh Connections,检查目标开发板的连接。(须事先连接好开发板,并配置FPGA数据)
使用Eclipse-Nios2 • 调试 • 配置调试 • “Apply”后,单击“Debug”或退出后单击工具栏上的debug图标,即可进行调试。 • 调试前会自动重新编译工程,如果工程刚刚编译过,这一步会很快,而后下载目标文件至Nios2系统的程序运行空间,并使程序运行至用户主函数后暂停,等待用户的调试命令。调试前会提示使用调试视图,一般可选用。 • 调试过程中: • F5键:单步步入,程序向前执行一步,遇到函数,进入函数 • F6键:单步跳过,程序向前执行,遇到函数,执行并跳出 • F7键:跳出函数,程序向前执行,直到从当前函数跳出 • F8键:恢复执行,程序一直向前执行,直到遇到断点或用户暂停 • 双击某一行行首设置断点,程序执行至此将暂停 • 其它功能见菜单“Run”