关键词不能为空

当前您在: 主页 > 英语 >

niosII常见错误及解答

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-09 09:44
tags:

-

2021年2月9日发(作者:英文吻别)


1.


怎样在


TCL


脚本 分配管脚



source


.tcl


有点问题:



#


source



couldn't


read


file




no


such


file


or


directory






答:



From


the



Tools


menu


select


Tcl


s


cripts,


and


then


from


t


he


project


folder


choose


the


setup


s


cript


for


your


particular


develo


pment


board,


and


click


Run.





2



D:TEST


ios_sst60


下载时出现错误:



Error:


Can't


configure


device.


Expected


JTAG



ID


code


0x020010DD


fo


r


device


1,


but


found


JTAG


ID


code


0x020B40DD.





答:


SO PC


所选器件和


开发


板上的不一致。< /p>





3




NOIS


II



Bulid


例程

hello_world


都出现了错误,


错误提示为:



gdrive/c/altera/kits/

< br>NIOS


2/components/altera_nios2/HAL/sr c/:68:


error:


parse


error


before


'/'


token


等错误全部由引起,都是关于括号不匹配

< p>
的问题,而是


IDE


中的一个默认程序。这个错误 同样出现在


D:TESTDE2


Projectsoftwar e


ios2


,培训用的一个简单实验。





答:找到文件,里面有个关于系统时钟频率的设置项,应该是 没有


赋值,你手动赋值。比如你用


50MHZ

< br>的时钟,就设成。如果总是出现


上述问题,可能和


软件< /p>


有关系,建议重新安装软件。注意


quartus



NI


OS


安装版本一定要相 同


,


不能混装。





4


.这个 错误是什么原因引起,把那个


sdk_arm


删除后,又提示另


一个地方出错。





答:


运行


NIOS


II


IDE




Project->Clear



重新


Builde,


应该可以解决


问题 。





5< /p>


.在


SOPC



Generate


出现如下错误是怎么回事



Error:


Generato


r


program


for


module


'epcs_controller'


did


NOT


run


successfully.



要在


SOPC


中加入


epcs_contr oller


就会出现此错误,


无法生成一个元件。





答:可能和软件有关 系,建议重新安装软件(这个问题是我刚学


N


IOS

< p>
遇到的最头痛的一个问题,问题的原因是


Quartus

< br>和


Nios


安装的版


本不一致) 。





6


.在


Nios


II


IDE


中,怎样打开一个已经存 在的


工程


每次新建工程


比较麻烦。





答:


指定一个


Nios


II


IDE


的工作目录,

< p>
就打开了那个目录下存在的


工程。另外,在


Nio s


II


中是可以建立多个工程的。





7


.在


Quartus


II


中编译出现如下错误怎么办?



Error:


Can't


place


pins


assigned


to


pin


location


Pin_AE24


(IOC_X65_Y


2_N2)





答:按


F 1


可以查看帮助,出现这样的错误的原因是:



CAUSE:


You


assigned


two


or


more


pins


to


the


specified


location,


bu


t


the


Fitter


cannot


place


all


the


pins


in


that


location.


删除这个管脚


即可。有一种 比较简便的方法,就是在工程目录中找到一个后缀为


QSF


的管 脚配置


文件


,查找


Pin_AE24< /p>


删除那行语句就行了。





8.


如何在


NIOS


II


IDE


下跟踪查看变量的定义或者函数的定义





答:按住


CTRL


键,鼠标移动到变量或者函数名的地方,就可以发


现这 些地方高亮显示,单击就可以进入到变量或者函数定义的地方。





9.


在有这样一段程序,它是如何操作的



unsigned


int


data


=


seg


ments[hex


&


15]


|


(segments[(hex


>>


4)


&


15]


<<


8)





答:


segments[hex


&


15]


显示个位

< br>0



F



(segments[(hex


>>


4)


&


15]


<<

< br>8)


显示十位数


0


< p>
F


,个位


0


< p>
F


,然后十位加一。



1 0


.这个错误是由什么引起提示


LED_


PIO_BASE


没有声明





答:这是因为名字不一致引起的比 如,在生成


SOPC


系统时,双击


PI O(Parallel


I/O)(



Avalon


Modules


->


Other


下)



为系统添加输出接



,


你没有把该组件改名成


LED_PIO,


而是保留了原始的名字:


PIO_0


;但


你又通过



IOW R_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,


led);


来向


该组件写入数据,


就会 导致上述错误。


解决办法:


1.


可以修 改


sopc


系统,


为该


PIO


改名为


LED_PIO


;2.


在的前面给


LED_PIO_BASE


赋值,如


#define



LED_PIO_BASE


0x00001800

< p>


后面的这个地址要与


SOPC

< br>中的地址对应。





11.


如何在


NIOSII


中驱动外部芯片或设备





答:在开发过程中,我们经常会使用外接一些芯片,或外接一 些实


用电路,


比如


AD


芯片、


串并转换芯片等等,


那么如何在


NIOS


II


中去使


用这些 芯片呢



我们在开发中会有多个选择:



1


.如果这个芯片是使用数据和地址总线的,并且补线时没有足 够的单


独引脚,那么这个芯片必须挂接在


tri_stat


总线上,这种用法和我们以


往单片机或



MCU


类似,



SOPC

< br>Builder


中直接定义用户逻辑,


如果有

< p>
额外的控制引脚,就需要用


PIO


来驱动,虽然公 用数据地址线节省了引


脚,但做控制


时序


费劲了。



2


.如果这个芯片单独使 用数据和地址,那么我们会直接做成


Avalone


总线的


Slave


设备,在


Sopc

< p>
Builder


中自己定义


component< /p>


。需要写


HD


L


模块,自己定控制、状态、数据寄存器和控制位定义,这种方式控制


灵活,易于实现复杂 的控制时序。



3


.在


Quartus


II


工程中画电路模块(或用


HDL


写电路模块),这种方


式是独立于


SO PC


定义的模块之外的,做一个纯电路的处理模块,有时


候会比 较容易实现某些灵活的处理。




< /p>


12.



SOPC


添加


Avalon


Trisatate

< br>Bridge


时,提示有如下错误,该


如何解决




Tri


state


bridge/tristate


master


requires


a


slave


of


type



Avalon



add


a


slave


of


type


Avalon


tristate.


Generate


按钮为灰色,无法


Generate





答:需要一个专门接三台桥的设备,




flash


添加到


sopc


中就可


以了。





13.


在做


count_binary


这个例子时,出现一个错误:



error:


`BUTT


ON_PIO_IRQ'


undeclared


(first


use


in


this


function)


BUTTON_PIO_IRQ


的值如何给他定义





答:这个错误可能是在


sopc


bu ilder


中定制的


pio


端口名称是 否与


程序中用的不一致,要和程序里的一致,把


pio


组件的名称就改为


butt


on_pio






14.



Quartus


II


中编译时出现如下错误:



Error:


Node


instance



instantiates


undefined


entity



t_module


点击错误的地方弹出一个对话框这个错误是怎 么回事怎样解决





答:可能是在


SOPC


中所选的


CPU


型号不正确,换一个试试。





15.


怎样自动分配管脚





答:在


Quartus


II


自动分配管脚有一个方法,点击


Assignments->I


mport


Assginments,


导入一 个管脚分配文件,


后缀为


.csv


. txt


等,


前提是


在顶层


原理


图中各个输入输出的名称要和这个文件中的名称一致。

< br>




16.



NIOS

< br>II


中编译时出现如下错误怎么解决错误是不是由


SOP C


中的


RAM


引起?

< br>


region


ram


is


full



section


.text).


Region


needs


to


be


24672


bytes


l


arger.


address


0x80c1f8


of



section


.rwdata


is


not


within


region


ram


Unable


to


reach


edge_capture


(at


0x00800024)


from


the


global


point


er


(at


0x0081419c)


because


the


offset


(-82296)


is


out


of


the


allowe


d


range,


-32678


to


32767.





答:可能时


RAM

< br>的大小不够,也有可能是中断地址


(exception


add


ress)


的偏余量不够,设置大些就可以了。如果还是出现


< p>
这个问题,加


一个


SDRAM

试试。



17


.在


Quartus

< p>
II


中,为什么编译一些样板工程都会出错?



Error:


DDR


timing


cannot


be


verified


until


project


has


been


successf


ully


compiled.


Error:


Evaluation


of


Tcl


s


cript



unsuccessful


Error:


Quartus


II


Shell


was


unsuccessful.


2


errors,


1


warning





答:在做样板工程时要注意一个问题:


Due


to


the


library



paths


t


hat


are


coded


into


the


Quartus


settings


for


this


project,


if


a


user


w


ishes


to


modify


the


hardware


design


they


must


first


strip


out


any


o


ld


paths


from


within


the


project


settings


file


(qsf)


< p>
qsf


文件中找到类似语句



set_global_assignment-nameVHDL_FILE


C:/MegaCore/


这里的目录是初


始 的目录,把它改为正确的目录。





18.



NIOSII


IDE


编译时出现如下错误是怎么回事?



system_des


cription/:75:


error:


`ONCHIP_MEMORY_BASE'


undeclared


h


ere


(not


in


a


function)


system_des


cription/:75:


error:


initializer


element


is


not


constant


system_des


cription/:75:


error:


(near


initialization


for


`')


system_des


cription/:75:


error:


initializer


element


is


not


constant


system_des


cription/:75:


error:


(near


initialization


for


`')





答:


ONCHIP_MEMORY_BASE

< br>没有赋值,在



程序的开头加上


#defin


e


ONCHIP_MEMORY_BASE


0x0000000 0


后面的这个地址要与


SOPC


中的< /p>


对应。





19.



NIOS


II


IDE


编译时出现如下错误是怎 么回事?



Pausing


target


processor:


not


responding.


Resetting


and


trying


again:


FAILED


Leaving


target


processor


paused





答:以下是一位


FAE


的回答:



1.


关于


USB- Blaster



Nios


II < /p>


IDE


下载时会发生偶发性错误,这种现象


主要是


IDE


software



Nios


II


CPU


透过


USB-Blaster< /p>


在做通讯时发生错


误,


若是确认


FPG


上配置没有错误,


连续发生错误的机率应 该是相当的


低,您只需要重新下载即可。



2.


若您使用


Nios


II


IDE


,请尽量配合


SOPC


Builder


重新


build


您的


sy


stem


,并且使用


Quartus


II


重 新


compile


您的


project


,以减少


CPU


I


DE


software


不兼容的情形。





20.



NIOS


II


IDE


中工程的


System


Library


选项中的这几个选项代


表什么 意思


.text


.rodata


.rwdata



reset


.exception


这几个地址之间的


关 系是什么





答:


.text


:


代码




.r odata:


只读数据区,一般存放静态全局变量


< p>
.


rwdata:


可读写变量数据区另外还有


.bss:


存放未被初始化的变量。





.text




the


actual


executable


code




.rodata




any


read


only


data


used


in


the


execution


of


the


code




.rwdata




where


read/write


variables


and


pointers


are


stored




heap




where


dynamically


allocated


memory


is


located




stack




where


function


call


parameters


and


other


temporary


dat


a


is


stored



21.


怎样在


NIOSII


中操作


PIO


,提供一种参考方法。





答:是这样写


IO

< br>口的:



IOWR_ALTERA_AVALON_PI O_DATA(LED_PIO_BASE,


led);


首先在找到定义




i


nclude<>


#define


IORD_ALTERA_AVALON_PIO_DATA(base)


IORD(base,


0)


#define


IOWR_ALTERA_AVALON_PIO_DATA(base,


data)


IOWR(base,


0,


data)


因此在

< p>
NIOSII


中可以调用#


i

< br>nclude<>


库函数


IORD/IOWR

< p>
来操作


PIO





smallsoftwarehello_led_0_sysli bDebugsystem_des


cription


下的




,


有以下内容


:


#define


LED_PIO_TYPE



#define


LED_PIO_BASE


0x00004000


其中


LED_PIO_BASE



IO


寄存器地址)为


0x00004000



SOPCBuilder


< br>设置一致


!


(


其实在


SopcBuilder


中有关


NiosII< /p>


的配置


,


就是通过来传送给


IDE



!)


最后用


IOWR(0x00004000,


0,


led);


替代


IOWR_ALTERA_AVALON_PIO_DATA(LED_PIO_BASE,


led);


编译


,


下载到开 发


板上


,


运行成功

!





22.


怎样让


SDRAM


< p>
FLASH



SRAM


的 地址公用





答:



sdram

可以和


sram,flash


共用数据总线和地址总线


.



sopc


b u


ilder


中添加


SDRAM


控制器时,在其


share


pins


via


tristate


选择项上勾



Controller


shares


dq/dqm/addr


IO


pins


选项,这样

< p>
sdram


可以和


sr


a m,flash


共用数据总线和地址总线


.

但是


ATERA



推荐

< p>
这样做,


因为这样


会降低


SDRAM


控制器的性能,在


FPGA


芯片管脚资源比较紧张的时候


迫不得已才这样做。





23.


怎 样使用


DE2


板上的数码管,绑定管脚时需要注意什么请举一< /p>


个例子说明。





答:



DE 2


板上的数码管只用了


7


位,小数点位 默认为高电平。例


如,在做例程


count_binary


时,需要用到两个数码管,以实现


00


到< /p>


FF


的计数,




SOPC


添加一个


16


位的


PIO


SEVEN_SEG[15..0]



绑定管脚时


注意:使

SEVEN_SEG[0..6]


帮定到数码管


HEX0[ 6..0]


位,


SEVEN_SEG[8..


1


4]


绑定到数码管


HEX1 [6..0]


位,


SEVEN_SEG[7]

< br>和


SEVEN_SEG[15]


直接接

< br>V


CC


,这样才能让两个数码管正常显示并计数。





24.



NIOS


II


IDE


中调试,编译通过的软件时,出现了下面的提


示,是什么原因?



Using


cable



[LPT1]


device


1,


instance


0x00


Processor


is


already


paused


Downloading


00000000


(


0%)


Downloaded


57KB


in



s)


Verifying


00000000


(


0%)


Verify


failed


Leaving


target


processor


paused





答:



Verify


failed


这个问题 说明板子的复位电路可能有问题,或装


载程序的外部


SRAM< /p>



SDRAM



CPU


的连接或时序有问题


,


也有可 能是


软件偶尔的错误。若是软件偶尔的错误


,

< br>可以先复位一下


CPU,


然后再下


载程序


;


或者断电后重新下载


.so f



NIOS


II


程序




< /p>


25.


在练习


C:alterakits


ios2_51examplesverilog


niosI I_cycloneII_2c35


的工程时,


里面有很多元件


DE2


板上都没有对应的管脚,


比如网 络元件


lan91c111


,使用的


I P


核,还有



24

位的


ext_flash


,而


DE 2


板上的


FLAS


H

< br>只有


22


位。是不是


SOPC< /p>


中只能让


DE2


板上有对应管脚的元件存 在,


其它的只能删除





答:


这个目录下的

< br>example


是针对


altera

自己的板子的,



DE2



件不能对应,只能作为参考,或者做一些修改后用。



26.



SOPC


中加了一个


200KB



onchip_memo ry


,


为什么在


Quartus


II


编译时出现这个错误?



Error:


Selected


device


has


105


RAM


location(s)


of


type


M4K


RAM.


H


owever,


the


current


design


needs


more


than


105


to


successfully


fit





答:


SO PC


中的


onchip_memory



M4K


RAM


根本就不是一个概念 。


Quartus


II


中编译出现这 个错误,是由于


设计


中用到了太多的


M 4K






27.


关于


sopc- builder



reset


address


的设置,


一直搞得不 是很明


白。





答:


SOPC


中的


reset


address


指定的是最终全部软件程序代码下载


到的地方,并且程序从


re set


address


启动。



SOPC


中的


exception


address


指定的是系统异常处理代码存放的地方。


如果


exception


address



reset


address


不一样,那么程序从


reset


ad


dress


启动后将把放在


reset


address


处的系统异常处理代码拷贝到


exc


eption


address




NIOSII


软件中的


text


address


指定的是程序运行的地方。如果

text


addr


ess



reset


address


不一样,那么程序从


reset


address


启动后将把放



reset


address


处的普通只读程序代码拷贝到


text


address



NIOS


II


软件中的


rodata


address


指定的是只读数据的存放地方。如果

rodata


a


ddress



reset


address


不一样,


那么程序从


reset


address


启动后将把


放在


reset


address


处的只读数据拷贝到


rodata


address




NIOS


II


软件中的


rwdata


address


指定的是可读写数据的存放地方。如


rwdata


address



reset


address


不一样,


那么程序从


reset


address


启动后将初始化


rwdata


address


处的可读写数据。





28.


如何提高


NIOS


II


系统的性能





答:主要可以从这几个方面入手:



1


、使用


fast


CPU


类型。



2


、提高系统主频。



3


、优先在


SRAM


中运行程 序,


SDRAM


次之,最后选择


FLA SH


中运行。



4

、使用片内


RAM


作为数据缓冲,片外

SRAM


次之,最后选


SDRAM




5



IO


数据传输尽可能采用


DMA




6


、对能并行处理的数据考虑使用多


CPU


协同处理。



7


、典型


算法


做成用户指令,有


256


条可以做,足够你用的。



8


、能用


HDL


模块来完成 工作吗能,就用


HDL


模块做成外设来完成吧

< br>


9


、采用


C2H






29.


如何优化


NIOS

< p>
II


里的


应用


工程





答:


Optimize


your


Nios


II


application


design!



an


Blank


Project



Select


Altera


Nios


II



C/C++


Application


2.


In


[your


main


fuctional


c/c++


file]





i


nclude




i


nclude



#......


int


main


(void)


__attribute__


((weak,


alias


(


int


alt_main


(void)


{


......


return


0;


}


3.


Library


Properties


Options


Select



EXIT


Select



C


Library


Select



Device


Drivers


Spicify


linker


s


cript


position,


to


ext_flash,


ext_ram


or


on-chip-ram





30.


关于


verify


failed


的总结



1.


SDRAM


的时序不对



有时候不正确的


pll


clock


phase


shift


for < /p>


sdram_clk_out


就会导致


S DRA


M


不能正常工作


:


2.


SDRAM


的连线不对


,


物理板子的连线问题



3.


在调试的时候


,


程序下载的空间不是非易丢失存储器(


non-volatile

< p>
m


emory


)或者存储器的空间不够也会导致这 个错误



4.


QuartusII< /p>


的默认设置导致的错误



Quartus II


默认将所有没有使用的


IO


口接地


,


这种时候可能导致某些元器


件工作不 正常


;


最好将不用的


IO


口设置为三态



5.


USB-blaster


坏了


,


或者


JTAG


通信的信号噪声太大

< p>


JTAG


的端口需要一个弱上拉电阻来抗干扰< /p>



6.


确保你的


sdram


既连接到


CPU


的指令总线也连接到


CPU

< p>
的数据总线



31.


关于


DMA


传输的几点说明:



1



memory




外设的传输,调用


alt_dma_txchan_ioctl()


时,有一个参


数为


alt_dma_tx_only_on




2


.调用


alt_ dma_txchan_send


函数时,在传输结束前就返回一个值,如


果此值为负的话,说明发送请求失败。正确传输结束后,调用


done



数。



3




接收函 数


alt_dma_rxthan_prepare


类似上面的


1



2


4< /p>



传输结束,


有两种可能:


数据传完或者


end


of


packet


(要预先使能)



5



SOPCbuilder


中例化时要制定哪些可以访问


DMA


的主端口,


DMA



avalon

slave


端口要接


cpu



实际传输的最大数可以帮助确定设置的位数



6



alt_dma_txchan_ioctl

< p>
用于控制


dma


的一些工作性质,使用多的话可< /p>


以用信号量等来



抢占

< br>”



7



dma


传输最小应该传


4


字或者其倍 数。





32.


1.


建立

< br>CPU


时,下面的那个


HardWare


Multiply


里面可以选①


Embedded


Multipliers


,②


Logi c


Elements


,③


None< /p>


,这三个选项有什么


区别呀





答:




Embedded


Multipl iers


,使用专门的内嵌硬件乘法单元(不


可编程,仅能做乘 法,且乘法速度最快),不是


RAM





Logic


Eleme

< p>
nts


,使用逻辑单元也就是


FPGA

< p>
中的查找表(速度较慢)。③


None,



就是不要声长硬件乘法器了,这是只能通过软件模拟乘法,速度最慢。





33.


下载是出现


“not


responding”


错误的又一点发现:





答:


在设 计的过程中,


经常使用板子上内部的两个晶振作为


CPU



者有些信号的时钟,而且习惯用


osc_2 7



osc_50


命名。在绑定管脚时


又经常导入一个



CSV


文件,没有手动一一绑定,而在那个


CSV


文件中< /p>


晶振管脚名分别为


CLOCK_27,CLOCK_50,


这样系统的


CPU


根本就没有绑


定管脚,不出错才怪。把名称改为


CLOCK_27,CLOCK_50


,重新编译下载


就可以了。





34.


安装了之后,


为什么在


New->Project


时并没有出现


Microtronx


NIOS


II


选项呢





答:这个问题好像难倒过很多人,其实在运行安装的第一步, 里面


有个提示:



Information


Regarding


the


Installation


Procedure


IMPORTANT:


Please


ensure


that


you


specify


the


correct


path


for


the



Altera


Nios


II


Kit


installation


directory


and


the


Cygwin


root


director


y.


The


typical


Altera


Nios


II


Kit


directory


is:c:alterakits


ios2


The


typical


Cygwin


root


directory


is:


c:alteraquartus50


incygwin < /p>


问题的关键就是上面的路径不正确。


对于


Nios


和的路径分别为


nios_51


nios_60,


都不是


nio s2



所以安装后找不到模板工程很正常。

但它的一


些必要文件又确实是安装在了


< br>nios_51



nios_60


中。我也遇到了过同


样的问题,想到了一个简单的方法可以解决:

-


-


-


-


-


-


-


-



本文更新与2021-02-09 09:44,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/620399.html

niosII常见错误及解答的相关文章