北航 NIOSII 教程.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
备注:Flash器件型号一定要与实际器件一致! 注意: 在添加按键PIO组件时,在Input Options标签页中,在Edge Capture Regster域不要选择“Either Edge”,而应选择Falling Edge。否则当按动按键时,按键被按下和弹起所产生脉冲的两个边沿都将被捕获到,则计数器会跳动两次。如果是加1计数器,则每按动按键一次,计数器会加2。 备注:在“Memory Module”栏中单击第一行,单击下拉列表箭头,选择“ext_flash”;单击第二行,单击下拉列表箭头,选择“ext_ram”。 备注:若对Nios Ⅱ系统模块进行了修改,则必须执行此步骤,重新生成系统模块,系统生成完成后会提示是否替换原有模块,是否更新图形文件,均选择“是” ,则.bdf文件中显示的是新生成系统模块的符号 。 备注:指定目标器件——执行“AssignmentsDevice”命令。注意目标器件的选择应与开发板上实际器件的型号一致(这里采用Altera公司的Cyclone开发板,FPGA为EP1C20F400C7)! 进行引脚锁定——若沿用的是Nios ⅡIDE给出的与实际开发板对应的硬件设计示例,则已经根据板上外设进行了引脚锁定,用户只需根据实际需要再指定未锁定的外设即可。 参见《基于FPGA的嵌入式系统设计》第5章“NiosⅡ嵌入式处理器设计”P216~224 备注:若事先已在NiosⅡIDE中创建了软件工程,则启动NiosⅡIDE后会自动打开上次打开的所有工程(但并不一定是对应本Quartus Ⅱ工程的软件工程)。 备注: 1)若在左侧的Select Project Templete中,选择的是NiosⅡIDE自身提供的某个软件工程(如Counter Binary),则将是对NiosⅡIDE提供的某个程序进行编译、下载和调试运行。 2)这里系统库工程软件工程名_syslib即为elec_timer_std _syslib。 3)点击Finish,NiosⅡ IDE会在Quartus Ⅱ的工作目录elec_timer_std下自动生成software文件夹,并将软件工程elec_timer_std和系统库工程elec_timer_std _syslib 放入software文件夹中。 4)若对新建的软件工程不满意,可在NiosⅡ IDE界面的C/C++工程浏览器中右击该工程名,然后在弹出的快捷菜单中选择Delete,将其彻底删除。 备注:头文件和源文件均选择创建在软件工程elec_timer_std中。 备注:编译时,先编译系统库工程以及其它相关工程,再编译主工程,并将源代码编译到工程名.elf文件中。 执行“Run-Run”命令,将程序下载到FPGA中在线运行。 备注:1)具体调试过程和VC类似。 2)在代码行最左边空白处单击右键,选择“Disable Breakpoint”则是禁止断点。 3)执行“Run-Debug Last Launched”命令,将调试上次下载的程序;在程序中设置好断点后,再执行“Run-Resume”命令,则从刚才的代码继续运行到第一个断点处停止运行。 HAL系统库可以为用户提供以下支持 软件开发主要分为两部分:应用程序开发和驱动程序开发。 一方面,HAL系统库相当于用户程序与底层硬件之间的桥梁,用户在程序中使用HAL API,即可与硬件进行通信;当SOPC Builder系统改变时, Nios ⅡIDE 会处理HAL系统库,并更新驱动配置来适应系统硬件。 另一方面,HAL系统库将用户程序与底层的硬件相分离,用户在开发和调试程序代码时不必考虑程序与硬件是否匹配。 备注:如lcd就是一个字符模式的设备,其设备节点的名字为“/dev/lcd_display”。 备注:共17个输入、输出信号。 设置部分的程序主要是对按键的响应。 备注: 显示日期是调用display_day(lcd)子程序,在lcd上显示年-月-日; 显示时间是调用display_time(lcd)子程序,在lcd上显示小时:分钟:秒。 当begin=0时开始计时;当begin=1时,暂停计时。一旦有按键按下,当选择设置小时或分钟时,则将begin置为“1”,暂停计时,这样能更清楚地看到设置值的变化。而在设置年或月或日时,因为计时单位较小,计时值的变化一般不会影响到日期的值,所以可以使begin=0,边设置日期边计时。 handle_button_press(FILE * lcd) 参见《基于FPGA的嵌入式系统设计》 P24

文档评论(0)

xx88606 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档