TataJen的个人空间 https://bbs.21ic.com/?1162358 [收藏] [复制] [RSS]

日志

NIOS II buglist

已有 690 次阅读2017-10-30 22:01 |系统分类:兴趣爱好| nios, ii

1:system id :在qsys里面删除sysid_qsys,重新添加sysid_qsys,个人认为添加nios,clk,onchip_memery的时候会有一个顺序,否则会造成nios flash program时提示system id 不match,解决办法重新添加sysid_qsys吧,


2:nios烧写进epcs芯片时,要添加epcs_flash_controll模块,且引出引脚,配置上pinplan,并且把base地址锁定从0x0000_0000开始,在device setting里面把所有jtag引脚配置为regular  io,这个位置注意下,因为习惯性动作unused pin 设置为高组态,也会改变这几个脚属性,别忘了改为regular io到所选芯片大小,不然能烧写成功,但是掉电丢失

3:nios的reset vector选择epcs_flash
4:时钟PLL倍频给nios时,读写IO值用IOWR(LED_BASE, 0, 0X0);函数,不要用
typedef struct
{
    unsigned long int DATA;
    unsigned long int DIRECTION;
    unsigned long int INTERRUPT_MASK;
    unsigned long int EDGE_CAPTRUE;
}PIO_STR;
#define LED ((PIO_STR *)LED_BASE)
LED->DATA=0xffffffff;
这个结构体进行操作,这个会造成一级缓存,程序能烧写成功,但是执行不正确
5:内部onchip_memory可编写的代码挺大的,SDRAM我认为没必要加,要是非要处理缓存多,算法复杂,就别用NIOS了,外部总线接个DSP吧,我是用EC3C16Q240C8控制了8个BLDC电机,PID运算
6:至于NIOS仿真的时候提示timestamp mismatched,原因是编译qsys的时候会在先kernal文件里面生成一个sopcinfo文件,编译quartus的时候还会再生成一个sopcinfo文件,在nios 中进行BSP editor的时候,默认是选kernal内的sopcinfo生成elf文件,此时应该在bsp editor里面选择NEW,选quaruts下的sopcinfo下的sopcinfo生产elf就不会报错,不过这个也不影响,仿真烧写的时候可以选择忽略这个问题,不影响。
7:can't resolve错误:关闭eclipse,在qsys里面重新调用eclipse,选择clean project-->index_refresh all-->index-->bsp_editor,在bsp_editor选项中有些不需要,出现错误百度一下就能找到答案,这里不写了。
8:quartus-->sof download-->nios -->flash program
9:nios操作比较琐碎,经常出现各种小问题,具体怎么解决熟悉了就好了,新手真的会很懵哈哈

10:niso烧写flash烧写成功,但是没有烧写进epcs原因在bsp editor页面 common->exception_stack_memory_region_name->选择epcs_flash_control,还有下面的interrupt_stack也选epcs_flash_control
11:quartus工程拷贝到其他路径,quartus->setting->library  还需要改nios->右击工程switch workplace->然后deleate现有工程文件->import ->gengroal->exiting porject->select root->工程所在文件->导入--》更改bsp工程文件下的setting.bsp和create-this-bsp
12:timestamp不一致,可以通过更改setting.bsp下的sopcinfo的选用路径,来选择使用quartus工程生成的sopcinfo还是qsys生成的sopcinfo,选择quarus后,提示timestamp不一致就会消失。

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)