我是靠谱客的博主 谨慎诺言,最近开发中收集的这篇文章主要介绍SOPC教学笔记04——Flash固化FLASH固化,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

FLASH固化

学习Flash固化的方法,掌握NiosII应用程序固化到开发板上EPCS配置芯片中的方法。Flash固化可以实现开发板掉电后可以从EPCS配置芯片启动应用程序。

一、为什么要学习Flash固化

在上节课的《 流水灯》的训练中我们的操作是:

  1. 下载配置文件,配置文件的后缀名是 “.sof”,配置文件是在 Quartus Programmer 里下载。
  2. 下载执行文件,执行文件的后缀名是“.elf”,执行文件是下载到外部的SDRAM 里运行。

在之前的操作中,我们发现开发板断电之后,FPGA内部的配置文件和执行文件都会丢失,需要我们重新下载。所以我们要考虑如何将配置文件和执行文件固化到开发板上,每次上电后不用重新下载可以直接运行。

二、配置内核

  1. 新建文件夹,我们命名为“epcs_boot”
  2. 新建工程,保存路径就是我们新建的文件夹
  3. 在工程中,新建原理图
  4. 在原理图中,打开“platform”,建立Qsys系统,命名为kernel
  5. 修改时钟频率为100MHz
  6. 选择CPU:系统自带的nios
  7. 添加Sdram控制器,连接
    • 数据和指令控制
    • 外放wire接口
    • 连接时钟
  8. 添加sysid
    • 连接时钟
    • 连接控制
  9. 添加pio
    • 连接时钟
    • 连接数据管理
    • 外放接口
  10. 添加epcs flash,查找窗口输入epcs,找到"EPCS Serila Flash Controller", 选择后点击添加,属性保持默认设置。
    • 双击 epcs_flash_external,外放接口
    • 连接时钟
    • 连接数据端口
    • 连接命令端口
  11. 锁定Sdram的地址,System->Assign Bass Address,自动分配地址
  12. System->Create Global Reset Network,自动完成复位端口连接
  13. 在"IRQ"标签栏下点击"Avalon_Memory_Mapped_Salve"和 IRQ 的连接点就会为"epcs_flash"核添加一个中断号
  14. 修改NiosII的配置界面,配置复位向量(Reset Venctor)和异常向量(Exception Venctor),复位向量为epcs_flash,异常向量(Exception Venctor)为sdram.s1。
    • 复位向量修改为epcs_flash,就需要从flash中复位,读取程序
    • FPGA将执行程序从flash中拷贝到sdram,程序才可以正常执行,所以异常向量(Exception Venctor)依然选择sdram.s1
  15. 生产Qsys系统,点击"Generation"标签栏中 Generate HDL…按钮生成 Qsys 系统。

三、设置锁相环PLL

  1. 搜索“ALTPLL”ip核,输出文件的描述语言选择verilog HDL,锁相环命名PLL
  2. 输入时钟选择与开发板一致的时钟——50MHz
  3. 芯片的速度等级选择为8
  4. 设置输入和输出选项,均不选择
  5. 一直不做修改,选择Next
  6. 设置clk0的输出频率为100MHz
  7. 使能clk1的输出频率,输出频率为100MHz,时钟相移调节角度为-70~-120之间,一般写-75不会出错
  8. 一直不修改,选择Next
  9. 选择输出实例化模板文件

四、系统配置

  1. Assignments->Settings…,选择 Files,再点击右边的浏览按钮
  2. 找到kernel.qip 文件后打开
  3. 点击 Add 按钮
  4. 点击 OK 完成
  5. Assignments->Device…->Device and Pin Options…按钮
  6. 修改 Dual-Purpose Pins 为 Use as regular I/O
  7. 设置 Voltage 里的 I/O 电压为 3.3-V LVTTL,因为在开发板中的 IO 口使用的是3.3V 的电压。点击 OK 完成

五、设置硬件平台的连接关系

  1. 把锁相环和内核连接起来
  2. 添加输入输出接口
  3. 分配引脚
  4. 编译

六、编写执行程序

  1. 选择菜单 Tool->Nios II Software Build Tools for Eclipse,

    选择 epcs_boot 目录下的 software 目录

  2. 选择菜单 File->New->Nios II Application and BSP from Template

  3. 在 SOPC Informaction File name 栏中点击浏览按钮选择 kernel.sopcinfo 文件, 在 Project name 处输入项目名称 led_test,选择项目的模版 hello_world。

  4. 添加main文件夹,把hello_world.c的名字修改为main.c,并拖到main文件夹中

  5. 将上节课流水灯的程序代码复制到main.c中

  6. 选择Build Project,编译项目

  7. 在窗口中出现编译成功的信息,就好,如果有错误,先修改错误

  8. 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 擦除,编程,读取和校验的步骤,烧写完成
  9. 开发板重新上电,观察开发板是不是可以正常使用

最后

以上就是谨慎诺言为你收集整理的SOPC教学笔记04——Flash固化FLASH固化的全部内容,希望文章能够帮你解决SOPC教学笔记04——Flash固化FLASH固化所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部