概述
FLASH固化
学习Flash固化的方法,掌握NiosII应用程序固化到开发板上EPCS配置芯片中的方法。Flash固化可以实现开发板掉电后可以从EPCS配置芯片启动应用程序。
一、为什么要学习Flash固化
在上节课的《 流水灯》的训练中我们的操作是:
- 下载配置文件,配置文件的后缀名是 “.sof”,配置文件是在 Quartus Programmer 里下载。
- 下载执行文件,执行文件的后缀名是“.elf”,执行文件是下载到外部的SDRAM 里运行。
在之前的操作中,我们发现开发板断电之后,FPGA内部的配置文件和执行文件都会丢失,需要我们重新下载。所以我们要考虑如何将配置文件和执行文件固化到开发板上,每次上电后不用重新下载可以直接运行。
二、配置内核
- 新建文件夹,我们命名为“epcs_boot”
- 新建工程,保存路径就是我们新建的文件夹
- 在工程中,新建原理图
- 在原理图中,打开“platform”,建立Qsys系统,命名为kernel
- 修改时钟频率为100MHz
- 选择CPU:系统自带的nios
- 添加Sdram控制器,连接
- 数据和指令控制
- 外放wire接口
- 连接时钟
- 添加sysid
- 连接时钟
- 连接控制
- 添加pio
- 连接时钟
- 连接数据管理
- 外放接口
- 添加epcs flash,查找窗口输入epcs,找到"EPCS Serila Flash Controller", 选择后点击添加,属性保持默认设置。
- 双击 epcs_flash_external,外放接口
- 连接时钟
- 连接数据端口
- 连接命令端口
- 锁定Sdram的地址,System->Assign Bass Address,自动分配地址
- System->Create Global Reset Network,自动完成复位端口连接
- 在"IRQ"标签栏下点击"Avalon_Memory_Mapped_Salve"和 IRQ 的连接点就会为"epcs_flash"核添加一个中断号
- 修改NiosII的配置界面,配置复位向量(Reset Venctor)和异常向量(Exception Venctor),复位向量为epcs_flash,异常向量(Exception Venctor)为sdram.s1。
- 复位向量修改为epcs_flash,就需要从flash中复位,读取程序
- FPGA将执行程序从flash中拷贝到sdram,程序才可以正常执行,所以异常向量(Exception Venctor)依然选择sdram.s1
- 生产Qsys系统,点击"Generation"标签栏中 Generate HDL…按钮生成 Qsys 系统。
三、设置锁相环PLL
- 搜索“ALTPLL”ip核,输出文件的描述语言选择verilog HDL,锁相环命名PLL
- 输入时钟选择与开发板一致的时钟——50MHz
- 芯片的速度等级选择为8
- 设置输入和输出选项,均不选择
- 一直不做修改,选择Next
- 设置clk0的输出频率为100MHz
- 使能clk1的输出频率,输出频率为100MHz,时钟相移调节角度为-70~-120之间,一般写-75不会出错
- 一直不修改,选择Next
- 选择输出实例化模板文件
四、系统配置
- Assignments->Settings…,选择 Files,再点击右边的浏览按钮
- 找到kernel.qip 文件后打开
- 点击 Add 按钮
- 点击 OK 完成
- Assignments->Device…->Device and Pin Options…按钮
- 修改 Dual-Purpose Pins 为 Use as regular I/O
- 设置 Voltage 里的 I/O 电压为 3.3-V LVTTL,因为在开发板中的 IO 口使用的是3.3V 的电压。点击 OK 完成
五、设置硬件平台的连接关系
- 把锁相环和内核连接起来
- 添加输入输出接口
- 分配引脚
- 编译
六、编写执行程序
-
选择菜单 Tool->Nios II Software Build Tools for Eclipse,
选择 epcs_boot 目录下的 software 目录
-
选择菜单 File->New->Nios II Application and BSP from Template
-
在 SOPC Informaction File name 栏中点击浏览按钮选择 kernel.sopcinfo 文件, 在 Project name 处输入项目名称 led_test,选择项目的模版 hello_world。
-
添加main文件夹,把hello_world.c的名字修改为main.c,并拖到main文件夹中
-
将上节课流水灯的程序代码复制到main.c中
-
选择Build Project,编译项目
-
在窗口中出现编译成功的信息,就好,如果有错误,先修改错误
-
EPCS FLASH 固化
- 下载配置文件“xxxx.sof”文件到FPGA中
- Nios II->Flash Programer, 打开 Nios II Flash Programmer 界面
- 选择 File->New…, 在 New Flash Programmer Settings File 对话框中的 SOPCInformation File name 这项选择项目目录下的 kernel.sopcinfo。
- 点击 Nios II Flash Programmer 界面中的 Connections…按钮,弹出 Hardware Connections 的连接信息框。说明硬件连接正常,按 close 退回 Nios II Flash Programmer 界面。
- 点击 Add…按钮添加 epcs_boot 目录下的output_files 目录下的“xxxx.sof”文件
- 点击 Add…按钮继续添加 nois 的应用程序 led_test.elf 文件
- 点击 Start 按钮开始烧写 EPCS FLASH
- 通过短暂的 FLASH 擦除,编程,读取和校验的步骤,烧写完成
-
开发板重新上电,观察开发板是不是可以正常使用
最后
以上就是谨慎诺言为你收集整理的SOPC教学笔记04——Flash固化FLASH固化的全部内容,希望文章能够帮你解决SOPC教学笔记04——Flash固化FLASH固化所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复