实验3ucosII实时操作系统Word文档下载推荐.docx

上传人:b****6 文档编号:17262202 上传时间:2022-11-29 格式:DOCX 页数:44 大小:3.52MB
下载 相关 举报
实验3ucosII实时操作系统Word文档下载推荐.docx_第1页
第1页 / 共44页
实验3ucosII实时操作系统Word文档下载推荐.docx_第2页
第2页 / 共44页
实验3ucosII实时操作系统Word文档下载推荐.docx_第3页
第3页 / 共44页
实验3ucosII实时操作系统Word文档下载推荐.docx_第4页
第4页 / 共44页
实验3ucosII实时操作系统Word文档下载推荐.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

实验3ucosII实时操作系统Word文档下载推荐.docx

《实验3ucosII实时操作系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《实验3ucosII实时操作系统Word文档下载推荐.docx(44页珍藏版)》请在冰豆网上搜索。

实验3ucosII实时操作系统Word文档下载推荐.docx

这里需要注意:

由于“SOPCBuiler”工具不能识别空格、中划线等符号,故实验所有步骤中如果需要命名,命名中不允许有空格、中划线出现,但“SOPCBuiler”工具能识别下划线。

“thenameofthetop-leveldesignentityforthisproject”(工程顶层实体名称)会自动与工程名字相同,也为“demo_ucos”,如图3-3所示。

这里需要注意:

编写顶层文件时注意这个名字。

图3-3

鼠标左键单击“next”按钮,会弹出如图3-4所示的问句。

图3-4

鼠标左键单击“是”按钮,进入“AddFiles[page2of5]”页,如图3-5所示。

由于实验到这里还没有建立任何文档,再加上后面步骤中也可以添加,鼠标左键单击“Next”按钮跳过此页,进入“Family&

DeviceSettings[page3of5]”页面。

在“Family&

DeviceSettings[page3of5]”页面:

“Devicefamily”栏里的“family”选择“CycloneII”;

“Availabledevices”栏里选择“EP2C70F896C6”器件,其它为缺省设置,如图3-6所示。

鼠标左键单击“next”按钮的话,还会出现第4页EDA工具的设置和第5页的“Summary”,如果用到可以在此设置。

由于目前没有用到,所以在这里就可以用鼠标左键单击“Finish”按钮,完成工程的初建。

新建的“QuartusII-E:

/demo/demo_ucosii/demo_ucos-demo_ucos”工程页面如图3-7所示。

图3-7

在“QuartusII-E:

/demo/demo_ucosii/demo_ucos-demo_ucos”工程页面,“entity”栏下,可以看到“CycloneII:

EP2C70F896C6”和工程名字“demo_ucos”。

工程初建过程牵涉到几个方面,过程中的步骤没有先后之分。

例如,完成“QuartusII”工程的初建后,如果发现“entity”栏里不是“CycloneII:

EP2C70F896C6”,比如是“StratixII:

AUTO”,如图3-8所示。

图3-8

鼠标左键双击或者箭头指着“StratixII:

AUTO”然后鼠标单击右键,在下拉菜单里点击“settings”,两种方法都能使“Settings-demo_ucos”的设置页(如图3-6所示)弹出,在“Device”中可以重新设置。

初建的“QuartusII-E:

/demo/demo_ucosii/demo_ucos-demo_ucos”工程页面,会自动保存在路径“E:

\demo\demo_ucosii”下,如果在“QuartusII”工程页面关闭时想要完成工程后续设计,可以打开此路径下的工程文件夹“demo_ucosii”,如图3-9所示。

鼠标左键双击带有蓝色“Quartus”图标的“demo_ucos”文件,就可以打开“QuartusII-E:

/demo/demo_ucosii/demo_ucos-demo_ucos”工程页面。

(二)利用“SOPCBuilder”工具配置硬件

事实上,为了方便可以把实验2的硬件配置拷贝到实验3来用。

/demo/demo_ucosii/demo_ucos-demo_ucos”工程页面,鼠标左键单击“open”按钮,弹出“打开”对话框。

在对话框“查找范围”选择实验2所在的路径“E:

/demo/demo_MEMtest”,把此路径下的“nios0.sopc”文件拷贝到实验3所在的路径“E:

/demo/demo_ucosii”下。

鼠标左键双击“nios0.sopc”文件,打开后可以重新配置硬件。

有些在实验3需要用到的硬件可以保留,有些用不到的硬件可以一个个删除:

鼠标左键单击硬件名称使其蓝色高亮,然后单击硬件默认显示栏下的“Remove”按钮,即可删去此硬件。

为了加深印象,这里还是把重新建立实验3工程的“SOPCBuilder”工具页面全过程列出来供参考。

/demo/demo_ucosii/demo_ucos-demo_ucos”工程页面,鼠标左键单击Tools->

SOPCBuilder,弹出“CreateNewSystem”对话框。

在“CreateNewSystem”对话框里:

“SystemName”项后输入“nios0”(也可以取其他名称);

“TargetHDL”项一般选择“Verilog”。

如图3-10所示。

鼠标左键单击“OK”按钮,弹出配置这个工程硬件的“SOPCBuilder”工具页面,如图3-11所示。

在“SOPCBuilder”工具页面可以添加实现此工程所需硬件,形成良好的硬件系统。

添加的硬件会在默认空白区出现,并且可以修改、删除,在默认空白区还显示硬件的主从连接。

“TargetHDL”项一般选择“Verilog”,表示“SOPCBuilder”会将你稍后所配置的IP,以Verilog表示,若你熟悉VHDL,也可以选择VHDL。

这里的设定不是限制了日后只能用Verilog或VHDL写代码,因为QuartusII本来就允许Verilog与VHDL混合編程,也就是说Verilog的module可以使用VHDL的entity,VHDL的entity可以使用Verilog的module,最后都能顺利编译。

图3-11

如果配置硬件的过程中暂停设计,关闭“SOPCBuilder”工具页面会弹出一个问句,如图3-12所示。

鼠标左键单击“Save”按钮,建立的硬件系统信息就保存到路径“E:

/demo/demo_ucosii”下的文件“nios0.sopc”中。

如果需要再次打开此工程的“SOPCBuilder”工具页面想要完成后续的硬件配置,可以先打开“QuartusII-E:

/demo/demo_ucosii/demo_ucos-demo_ucos”工程页面(方法如图3-9所示),在工程页面内,鼠标左键单击“open”按钮弹出“打开”页面。

在“查找范围”找到路径“E:

\demo\demo_ucosii”下的“nios0.sopc”文件,鼠标左键双击“nios0.sopc”文件即可打开此工程的“SOPCBuilder”工具页面。

(三)配置硬件

1.定义时钟

确认“SOPCBuilder”工具页面的“Target/DeviceFamily”是“CycloneII”。

在如图3-13所示的“ClockSettings”栏里可以看到50.0MHz,代表NiosIICPU在DE2-70可以运行在50.0MHz,但这时CPU降频在跑,正常情況下,NiosIICPU在DE2-70可以运行100.0MHz,所以可以用PLL将clk倍频成100.0Mhz。

2.增加用来保存Nios程序的片上存储器(OnChipMemory(RAMorROM))

“OnChipMemory”在FPGA芯片内,是DE2-70上所有存储器中存储量最小,但是速度最快的存储器。

在“SOPCBuilder”工具页面,鼠标左键单击SystemContents->

ComponentLibrary->

MemoriesandMemoryControllers->

OnChip->

OnChipMemory(RAMorROM)->

Add。

弹出“onchipmemory”设置页面,如图3-14所示。

在“onchipmemory”设置页面:

“TotalMemorySize”设置为80960;

其他为缺省设置,鼠标左键单击“Finish”按钮。

不用管状态框里的错误,添加Nios处理器后会自动消失。

“Totalmemorysize”与能使用的M4K存储器数量、FPGA、NiosIICPU和Megafunction(如fcfifo)都会影响“On-chipMemory”的size,本教程使用80k。

“OnChipMemory”会在“SOPCBuilder”工具页面默认空白区有显示如图3-15所示。

如果想修改“OnChipMemory”的设置,可以左键双击硬件名称,会重新弹出如图3-14所示的设置页面。

对于其他硬件来说,方法类似。

把“onchip_memory2_0”改成“onchip_mem”。

3.添加NiosII/s处理器(NiosIIProcessor)

ComponentLibrary->

NiosIIProcessor->

Add,弹出“NiosIIProcessor”设置页面。

在“NiosIIProcessor”设置页面:

设置NiosII/f处理器,“ResetVector”指向“cfi_flash”,“ExceptionVector”指向“onchip_mem”,如图3-16所示。

如果在添加CPU之后才添加“cfi_flash”,一定要记住回头修改CPU的“ResetVector”,使其指向“cfi_flash”。

鼠标左键单击“Finish”按钮,把“cpu_0”改成“cpu”。

图3-16

4.添加调试接口(JTAG-UART)

InterfaceProtocols->

Serial->

JTAGUART->

Add,弹出“JTAGUART”设置页,如图3-17所示。

使用缺省设置,鼠标左键单击“Finish”按钮。

把“jtag_uart_0”改成“jtag_uart”。

JTAGUART是PC与SOPC进行序列传输的一种方式,也是NiosIICPU标准的输出/输入设备。

如printf()通过JTAGUART,经过USBBlaster将输出结果显示在PC的NiosIIEDS上的console,scanf()通过USBBlaster经过JTAGUART将输入传给SOPC。

5.添加两个内部定时器(IntervalTimer)

Peripherals->

MicrocontrollerPeripherals->

IntervalTimer->

Add,弹出“IntervalTimer”设置页,按照图3-18所示设置,鼠标左键单击“Finish”按钮。

把“timer_0”改成“timer”。

同样方法再添加一个“time_1”,把名字改为“timestamp”。

6.添加系统ID(SystemID)

在“SOPCBuilder”工程页面,鼠标左键单击SystemContents->

Peripherals->

DebugandPerformance->

SystemIDPeripheral->

Add,弹出“SystemIDperipheral”设置页面,如图3-19所示。

使用缺省设置,鼠标左键单击“Finish”按钮,把“sysid_0”的名称改为“sysid”。

“SOPCBuilder”会使用SystemID为每个系统提供识别符号,NiosIIEDS可以识别符号防止使用者往FPGA上烧录了与“.ptf”不符合的“.sof”。

7.增加PLL

本实验需要两个时钟:

(1)100MHz的C0,用于“nios0”硬件系统总线的clk_c0_cpu;

(2)100MHz的C1,用于SDRAM的clk_c1_sdram。

c1的“Clockphaseshift”设置为-65deg,对SDRAM超频,使实验数据更漂亮。

PLL->

PLL->

Add。

在弹出的对话框里,鼠标左键单击“LaunchAltera’sALTPLLMegaWizard”,使按钮周框内侧出现虚方框,如图3-20所示。

图3-20

鼠标左键单击“next”按钮,进入ALTPLL多项设置页面。

默认进入的页面是:

1parametersettings栏的“General/Modes”设置页,显示为:

1parametersettings为深兰色背景,“General/Modes”为General/Modes,如图3-21左上角所示,此页缺省设置。

鼠标左键单击2outputclocks栏,默认转换到“c03-Core/Externaloutputclocks”的设置页面,在“c03-Core/Externaloutputclocks”的设置页面:

2outputclocks为深兰色背景,“clkc0”为clkc0,“clkc0”各参数按照图3-22所示页面设置。

图3-22

图3-23

鼠标左键单击2outputclocks栏下的“clkc1”,进入“c13-Core/Externaloutputclocks”的设置页,页面显示:

2outputclocks为深兰色背景,“clkc1”为clkc1,“clkc1”的设置按照图3-23所示。

鼠标左键单击“Finish”按钮,并且单击经过的所有页面的“Finish”按钮。

设置了PLL后,在本工程硬件系统的“SOPCBuilder”工具页面,“ClockSettings”栏下:

“clk_0”改名为“clk_50”;

“pll_0_c0”改名为“clk_c0_cpu”;

“pll_0_c1”,改名为“clk_c1_sdram”,如图3-24所示。

图3-24

8.增加SDRAM控制器

DE2-70多媒体开发板上有两片容量为32Mbytes的SDRAM(IS42S16160B),按照4M*16*4分布,“Datawidth”只有16bit。

而NiosIICPU与其他ip都是32bit,由于Datawidth不同,传输数据时,Avalonbus会启动DynamicBusSizing机制,2个clk才能完成32bit传输。

以传输来说,既然NiosIICPU是32bit,所有的ip都是32bit,SDRAM的16bit反而是传输上的瓶颈。

此处,将2片16bitSDRAM合并成1个32bitSDRAM使用,可以让整个系统顺畅地以32bit运行,不再需要Avalonbus的DynamicBusSizing机制,充分发挥DE2-70两片SDRAM的优势。

ComponentLibrary->

SDRAM->

SDRAMController->

进入“SDRAMController”的多项设置页面,默认进入“ParameterSettings”的MemoryProfile设置页面,此页面的设置严格按照如图3-25所示。

“Datawidth”设置为32bits,注意图3-25所示页面下部的变化,“Memorysize”显示“64Mbytes”。

编写顶层文件时,必须让两个SDRAM同步工作,数据也必须是高16位由一个SDRAM进出,低16位由另一个SDRAM进出。

图3-25所示页面完成后,鼠标左键单击“Timing”,进入Timing设置页面。

严格按照如图3-26所示设置各参数,设置完成后,鼠标左键单击“Finish”按钮。

将名称改为“sdram”。

9.增加字符LCD(CharacterLCD)

在“SOPCBuilder”工具页面的“SystemContents”栏中,鼠标左键单击ComponentLibrary->

Display->

CharacterLCD->

Add,弹出“CharacterLCD”设置页

面,如图3-27所示。

使用缺省设置,鼠标左键单击“Finish”按钮,名称改为“lcd”。

10.增加用于FLASH的Avalon三态桥

BridgeandAdapters->

MemoryMapped->

Avalon-MMTristateBridge->

Add,弹出“Avalon-MMTristateBridge”设置页面。

在“Avalon-MMTristateBridge”设置页面,所有参数为缺省设置。

鼠标左键单击“Finish”按钮,将名称改为“tristate_bridge_flash”。

提示框里也会有红色提示,先不要管。

11.增加FLASH

DE2-70多媒体开发板上有一片容量为2M×

16比特(8M字节)的FLASH芯片,型号为S29GL064。

FLASH->

FlashMemoryInterface(CFI)->

进入“FlashMemoryInterface(CFI)”多项设置页面,默认进入“ParameterSettings”的Attributes设置页面,严格按照如图3-28所示设置各参数。

然后鼠标左键单击“Timing”标签,进入“FlashMemoryInterface(CFI)”的“ParameterSettings”的Timing设置页。

严格按照如图3-29所示设置各参数。

设置完成后,鼠标左键单击“Finish”按钮,将名字改为“cfi_flash”。

此时,硬件添加栏里会出现如图3-30左图所示现象,需要手动将“cfi_flash”和三态桥“tristate_bridge_flash”连接上。

(将光标移近“cfi_flash”,会自动出现中图所示现象,鼠标左键单击小白圈,其变黑,移开鼠标即变成如右图所示。

手动将“cfi_flash”和三态桥“tristate_bridge_flash”连接后,提示框里的红色提示消失。

12.添加inputPIO

在“SOPCBuilder”工程页面,鼠标左键单击SystemContents‐>

ComponentLibrary‐>

Peripherals‐>

MicrocontrollerPeripherals‐>

PIO(ParallelI/O)‐>

Add,弹出“PIO(ParallelI/O)”多项设置页面。

默认进入“ParameterSettings”的“BasicSettings”设置页面,如图3-31所示。

在此页设置:

“Width”为18;

“Direction”为input;

其他为默认值,将该硬件的名称改为“pio_sw”。

13.添加outputPIO

在“SOPCBuilder”工具页面,鼠标左键单击SystemContents‐>

Peripherals‐>

MicrocontrollerPeripherals‐>

弹出“PIO(ParallelI/O)”多项设置页面。

“Direction”为output;

其他为默认值,如图3-32所示。

将名称改为“pio_ledr”。

至此,已经完成了“nios0”硬件系统的搭建,结构如图3-33所示。

鼠标左键单击各个元器件“Clock”,会出现下拉三角,左键点开下拉三角:

“pll”没办法选择,只能是“clk_50”;

“sdram”选择“clk_c1_sdram”;

其他器件选择“clk_c0_cpu”。

(四)产生“.ptf”文件

在“SOPCBuilder”工具页面,鼠标左键单击System->

Auto-AssignBaseAddresses,菜单自动设置映射地址;

在“SOPCBuilder”工具页面,鼠标左键单击System->

Auto-AssignIRQs,菜单自动设置中断号。

“SOPCBuilder”工具页面下部的红色警示会消失。

鼠标左键单击“Generate”,如果弹出问句,鼠标左键单击“Save”。

“Generate”过程中,弹出的页面下面有进度提示,如图3-34所示。

当进度提示出现“info:

systemgenerationwassuccessful”时“Generate”完成,鼠标左键单击“Exit”按钮退出,如果弹出与上面一样的问句,鼠标左键单击“Save”按钮。

“Generate”生成的“.ptf”等文件都自动保存在路径“E:

(五)建立顶层文件

下面要在QuartusII里例化“nios0”硬

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 商业计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1