- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Zinus教你学SOPC和NiosII
系统环境:
操作系统:windows7 旗舰版
QuartusII:QuartusII 9.1 sp2
Nios II IDE:Nios II IDE 9.1 sp2
打开QuartusII file-new project wizard
设置工程名 xxx
Finish
Tools-SOPC Builder
设置系统名 xxxsopc
设置系统时钟频率 (即PLL的输出system时钟)(笔者使用 Cyclone EP3C10E144 设置频率 130 MHz)
新建 NiosII 系统 e经济型 s标准型 f快速型(不建议使用f,因为f型有自己的cache,笔者在上面创建工程总是不能下载软件)
(1DMIPS 的性能是指:这个处理器测整数计算能力为1*100万条指令/秒)
(系统的DMIPS 与Fsystem相关)
选择外部SDRAM
选择Custom 根据开发板,我们做如下设置
Bits:16 Chip Select:1 Banks:4 Row:12 Column:8
选中 Generic memory model
其余不变
Finish
再次进入 cpu ,设置 reset vector 和 exception vector
新建 I/O口,8位输出
选择自动配置地址,自动配置中断。
System-auto-assign base address
System-auto-assign IRQs
然后生成符号文件 点击 Generate
在生成NiosII符号文件的同时,我们回到QuartusII界面
新建block文件并立即file-save as-xxx
拖出一个ALEPLL 并设置两个输出 c0 c1 input设置为晶振频率(笔者为20MHz)
C0 用作 Fsystem
C1 用作Fsdram
拖出刚刚生成的NiosII符号文件(双击屏幕空白地方 选中选项并单击OK)
因为altpll的复位端为高电平有效,而我们的按键为低电平有效,所以我们在pll的复位端前面加上一个非门
添加I/O引脚,并修改每个引脚的名称
其中最注意为SDRAM的时钟引脚,其前缀和后缀最好与SDRAM的其他引脚保持一致
保存并编译文件,然后打开Assignments-Pin Planner
配置引脚如下图(笔者开发板引脚配置图),并再次编译和下载
(这时候编译会报错,说不能多匹配Pin_101 解决方法如下:Assignment-Settings-Device and Pin Options-Dual-PurposePins-nCEO 双击改为 use as regular I/O)
打开NiosII IDE (需要运行在 XP sp3 兼容模式 和 管理员模式 下面有设置方法)
File-new-nios II application and BSP from template
SOPC Info file Name 路径为 Quartus II 工程的路径,并选择 .sopcinfo 文件
Project name 为 xxxnios
其余不变
Finish
在下载软件时,要先进行 project-Build All
在工程名上右击-run as-nios ii hardware
在弹窗时,选中标签 target connection - refresh connection
选中 两项ignore 和 reset 再 apply 和 run
下面是笔者在Hello模板下写的一个LED流水灯程序,其中操作I/O口就是对特定地址赋值,0和1分别对应L和H电平。
系统每个外设的地址都放在system.h文件中,对地址进行操作时需要包含此文件。
#include stdio.h
#include ../lednios_bsp/system.h
int main()
{
volatile unsigned char * led = (volatile unsigned char *)PIO_0_BASE;
*led = 0x01;
printf(Hello from Nios II!\n);
while (1)
{
*led = *led 1;
if (*led == 0)
{
*led = 0x01;
}
}
return 0;
}
如果出现 downloading elf process failed 请查看以下整理信息
时钟过高,导致程序下载失败
设置时钟时,同时还要注意SDRAM clk和SYSTEM clk之间的相差
地址最好不要从 0x00 开始分配
每次烧写NiosII系统,
您可能关注的文档
- HEAL NY – Phase 17 Health Information Technology Grants.ppt
- History of British and American Literature2.ppt
- HRM10eCH08.ppt
- HR Management Development & Talent Management.ppt
- I Stochastic process.ppt
- I-PRESERVE TrialIrbesartan in heart failure with preserved EF.ppt
- ICND06_Catalyst Switch Operations.ppt
- hotel.1ppt.ppt
- ICRP_84_Pregnancy_s.ppt
- If tomorrow comes.ppt
文档评论(0)