EE2C35调试

本文记录了作者调试Nios II软核处理器在FPGA上的过程,包括解决程序无法在SDRAM中运行的问题及EPCS Flash烧写与启动的难题。详细介绍了调试步骤与遇到的bug。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

硬件基本测试

EE2C35是我06年做的板子,仿Altera原厂的2C35,做好以后项目无疾而终,板子一直想玩,但总是拖着,当Nios从6.0到9.1后,我终于决心调调这块板子了,还有个主要的原因是现在做了一块4FPGA串联的项目,由于SRAM和FLASH不是原厂支持的,调试起来比较困难,所以想先用这块板子把Nios流程跑通,在调4 FPGA的板子

板子资源:

  • SDRAM 
    采用48LC4M32B2,Nios能直接支持,4Mx32位(16MB)
  • SRAM
    Nios支持
  • FLASH
    Nios支持,AM29LV128M 16M x 8bit
  • NET
  • UART
  • IIC
  • EPCS
    在2c系列,使用epcs controller nios好像没有相应的引脚出来,是否能工作试验一下再说
  • CPLD
  • LED & KEY


NIOS调试

写了个基本系统sdram,flash,sram等资源都可以跑通,后来加了些dma,net等,程序能下载到sdram或sram里,但是运行不了,去掉所有不相关的模块,重新测试,所有程序都不能运行,怀疑仿真器问题?明天在测试吧

 

不管程序下载的sdram,sram还是onchipram,都是

nios2-terminal:(Use   the   IDE   stop   button   or   Ctrl-C   to   terminate)

后就没反应了,但是flash等可以烧写,实在是有些头痛,缩减成最小系统,运行count在onchip上运行,没问题

同样程序运行在sdram上,有乱码,然后还是没反应

同样的程序运行在sram上,可以正确运行,基本怀疑sdram的问题

又进行测试,发现程序可以再sram正确运行,通过sram测试sdram也都正确,但是就是不能在sdram运行

后来发现,当初系统晶振50MHz没了,焊了个29.4912MHz的,频率不对,当然不行,换回50MHz晶振一切问题都解决

 


EPCS Flash烧写与启动

在SOPC中将Reset Addr设置到EPCS,这个地址是上电运行地址

Exception Addr是异常地址,这两个不一样是,Nios自动将reset复制到Exception

写入后,程序起不来,好像fpga没有配置,单独将配置sof下去后,程序可以运行

后来查查资料,发现9.1版本的quartus好像有这个bug问题,郁闷,尝试epcs+ext flash,可以启动

看了altera论坛,sp2是有这个问题,推荐使用sp1,9.1就有这个问题,sp1修好了,sp2又来了,altera真可以啊

改回9.1sp1,一切问题都解决,可以写入epcs,flash并启动

 

Nor Flash烧写与启动


CPLD与Nor Flash配置FPGA


SDRAM测试


SRAM测试


NET测试

网络和flash共用数据总线和地址总线,挂在一个tri_bus下,数据线自动共享,地址线需要选择一下才能共享

串口测试

很简单,在lib里面吧stdio设成uart标准输出即从串口输出

IIC测试

dma

 

NullReferenceException: Object reference not set to an instance of an object Oculus.Interaction.HandGrab.HandGrabInteractor.OverlapsSphere (Oculus.Interaction.HandGrab.HandGrabInteractable interactable, UnityEngine.SphereCollider sphere) (at ./Library/PackageCache/com.meta.xr.sdk.interaction@6335bae8ee2c/Runtime/Scripts/Interaction/Models/HandGrab/HandGrabInteractor.cs:533) Oculus.Interaction.HandGrab.HandGrabInteractor.SelectingGrabTypes (Oculus.Interaction.HandGrab.HandGrabInteractable interactable, System.Single minFingerScoreRequired, System.Single& fingerScore) (at ./Library/PackageCache/com.meta.xr.sdk.interaction@6335bae8ee2c/Runtime/Scripts/Interaction/Models/HandGrab/HandGrabInteractor.cs:461) Oculus.Interaction.HandGrab.HandGrabInteractor.ComputeCandidate () (at ./Library/PackageCache/com.meta.xr.sdk.interaction@6335bae8ee2c/Runtime/Scripts/Interaction/Models/HandGrab/HandGrabInteractor.cs:406) Oculus.Interaction.Interactor`2[TInteractor,TInteractable].ProcessCandidate () (at ./Library/PackageCache/com.meta.xr.sdk.interaction@6335bae8ee2c/Runtime/Scripts/Interaction/Core/Interactor.cs:479) Oculus.Interaction.Interactor`2[TInteractor,TInteractable].Drive () (at ./Library/PackageCache/com.meta.xr.sdk.interaction@6335bae8ee2c/Runtime/Scripts/Interaction/Core/Interactor.cs:769) Oculus.Interaction.Interactor`2[TInteractor,TInteractable].Update () (at ./Library/PackageCache/com.meta.xr.sdk.interaction@6335bae8ee2c/Runtime/Scripts/Interaction/Core/Interactor.cs:744)
最新发布
07-18
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值