版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章快速点餐系统设计8.1案例简介8.2搭建MicroBlaze硬件平台8.3在EDK中配置项目软件环境8.4uClinux交叉编译环境的搭建8.5uClinux基本配置8.6添加网页素材8.7应用程序的验证在线教务辅导网:教材其余课件及动画素材请查阅在线教务辅导网QQ:349134187或者直接输入下面地址:8.1案例简介本案例实现了远程主机通过Web网络对终端开发板进行操作和控制,致力于为中高档酒店提供完善、个性化的点餐厨房处理系统(fast-ordersolution&service),可以有效降低酒店餐厅的运营成本,提高对顾客点菜单的处理效率,以及提高顾客的满意度。1.功能描述在V2PRO开发板上进行基于Web的点餐系统的设计,完成了WebSERVER的功能,并且可以利用网络访问该服务器的内容。本设计具有实时性、高效性、信息传递稳定精确、误操作少和系统功耗低等性能特点,并具有友好的用户界面。(2)软件环境与工具包含如下:● EDK8.2i(不可选用其他版本或其升级版本,如8.2.03i)。● FedoraCore4(或RedHat9Linux)操作系统。●虚拟机VMware5.0.0build-13124。3.案例源码本案例所使用的源码请参考本书配套光盘/Chapter8/目录:/Doc:本案例的操作指导文档。/Src:源代码与Web网页所需资源,以及LED、DIP驱动源文件。/Tools:本案例中使用的工具,包含uClinux配置文件uclinux_v1_00_d文件夹、交叉工具链microblaze-elf-tools-20060213.tar.gz、uClinux源码包uClinux-dist-20060803.tar.bz2。8.2搭建MicroBlaze硬件平台本节主要介绍如何搭建MicroBlaze硬件平台。(1)启动XPS8.2i,软件系统弹出图8.2.1所示的对话框,选中“BaseSystemBuilderwizard(recommended)”,以新建一个MicroBlaze硬件平台,点击“OK”按钮,进入硬件平台搭建向导。图8.2.1配置向导(2)在弹出的对话框中,点击Browse,选择一个目标磁盘并建立一个工程文件夹,双击进入所建立的工程文件夹后,点击保存按钮,系统会自动为此项目命名为system.xmp。点击“OK”按钮,进入BSB欢迎对话框。(3)在欢迎对话框内,选择“Iwouldliketocreatanewdesign”项,然后点击“Next”按钮。(4)进入开发板选择对话框(见图8.2.2)后,进行如下的系统配置:Boardvendor:XilinxBoardname:XUPVirtex-ⅡProDevelopmentSystemBoardrevision:C设置完毕后点击“Next”按钮。图8.2.2开发板选择窗口注:如果“Boardname”没有出现如上所示选项,则需先安装XUPVirtex-ⅡPro开发板的支持包,具体操作如下:将Xilinx_XUP_V2P开发板支持包拷贝到EDK软件目录下的board\Xilinx\boards文件夹下。(5)进入处理器选择对话框(见图8.2.3),选择“MicroBlaze”处理器,之后点击Next按钮。图8.2.3处理器选择窗口(6)进入MicroBlaze配置对话框,如图8.2.4所示,确认选择“NoCache”,并在后续步骤中选择DDR512MB作为内存,点击“Next”按钮。图8.2.4处理器配置窗口(7)进入I/O端口配置对话框(见图8.2.5),选择打开“RS232_Uart_1”端口及以太网端口的中断服务,波特率设为“115200”,其他采用默认设置,然后点击“Next”按钮。图8.2.5I/O端口配置(一)(8)继续配置I/O端口,如图8.2.6所示,打开所有外设端口的中断服务,点击“Next”按钮。图8.2.6I/O端口配置(二)(9)由于本案例中使用了操作系统,因而需要添加定时器,如图8.2.7所示,点击“AddPeriperals”按钮,在弹出的对话框中选择“OPBTIMER”,并点击“OK”按钮。图8.2.7添加OPBTIMER(10)接下来的对话框(见图8.2.8)显示了Timer的配置参数,这里,我们只需要一个Timer,并把中断打开,最后点击“Next”按钮。图8.2.8配置OPBTIMER(11)在“SoftwareSetup”对话框中只选择“Memorytest”,并取消“Peripheralselftest”,如图8.2.9所示。图8.2.9测试程序选择(12)余下的设置均采用默认配置即可,直至出现图8.2.10所示的对话框,点击“Generate”按钮。图8.2.10硬件系统基本信息表(13)点击“Finish”按钮后,系统会弹出一个窗口,如图8.2.11所示,选择“StartusingPlatformStudio”。图8.2.11系统配置结束(14)此时系统会出现如图8.2.12所示的界面,即“XilinxPlatformStudio”的操作界面。图8.2.12XPS操作界面8.3在EDK中配置项目软件环境本节将介绍在EDK中配置项目软件环境的方法。(1)由于此次设计中,我们需要在MicroBlaze处理器上运行uClinux,因此首先应将uClinux的配置文件uclinux_v1_00_d文件夹拷贝到\EDK\sw\lib\bsp文件夹下,否则后续的配置工作将会遇到很多问题。(2)启动EDK,打开8.2节中搭建的MicroBlaze硬件系统工作目录文件夹下的system.xmp文件。(3)在打开MicroBlaze系统文件后,可以在EDK开发环境中看到相关的系统信息,如图8.3.1所示。如果切换到“BusInterface”,就可以看到MicroBlaze系统中各个模块与总线的连接情况。图8.3.1硬件平台系统信息(4)这里,我们需要对此系统做出如下修改:把窗口切换到Ports之后,打开“debug_module”,点击“Interrupt”中的Net选项,选择“debug_module_interrupt”,见图8.3.2。图8.3.2中断配置(一)(5)点开Ports选项下的“opb_inct_0,”接着双击“LtoH”,见图8.3.3。图8.3.3中断配置(二)(6)此时系统会弹出图8.3.4所示的对话框。图8.3.4中断添加(一)(7)我们需要把“debug_module_Interrupt”加入到“ConnectedInterrupts”栏中,具体方法是选中“PotentialInterruptConnections”栏中的“debug_module_Interrupt”,点击加号,即可被加入到ConnectedInterrupts栏中,如图8.3.5所示。图8.3.5中断添加(二)(8)添加完成后,系统显示如图8.3.6所示。图8.3.6中断添加完成(9)进行软件平台配置时,点击“Software”菜单,启动“SoftwarePlatformSettings”,如图8.3.7所示。图8.3.7启动软件平台配置(10)系统弹出软件平台的配置窗口,如图8.3.8所示,可以看到共有四个可配置项:“SoftwarePlatform”、“OSandLibraries”、“Drivers”、“InterruptHandle”。图8.3.8软件平台配置窗口(11)对SoftwarePlatform进行配置时,点击“SoftwarePlatform”,如图8.3.9所示,在窗口右侧为可配置参数。在“OS&LibrarySettings”子窗口中,打开“OS”的下拉菜单,由于我们选择使用的操作系统为uClinux,因而这里选择“uclinux”。特别值得注意的是,如果步骤(1)没有完成,那么在点开OS的下拉菜单后,将没有uclinux选项。图8.3.9操作系统选择(12)完成上述配置后,选中“OSandLibrary”可配置选项(见图8.3.10),以实现开发板对uClinux的BSP进行配置,包括FLASH与MEMORY以及输入/输出调试端口的配置,我们主要对以下参数进行修改:main_memory_bank:0main_memory:DDR_512MB_64MB×64_rank2_row13_col10_col2_5stdin:RS232_Uart_1stdout:RS232_Uart_1图8.3.10操作系统与库配置(13) Drivers及InterruptHandle两项不需要进行配置,直接点击“OK”按钮,退出界面。至此,基于uClinux的MicroBlaze软件平台配置就完成了,下一步是根据软件平台的配置生成针对MicroBlaze处理器的BSP与库,使uClinux与开发板的信息交互成为可能。(14)进入EDK的“DeviceConfiguration”菜单,点击“UpdateBitstream”,XPS会进行硬件平台的生成和软件库的生成以及应用程序的编译,见图8.3.11。现在我们就可以在MicroBlaze硬件系统工作目录文件夹下的microblaze_0\libsrc\uclinux_v1_00_d文件夹内找到autoconfig.in文件了。图8.3.11更新Bitstream8.4uClinux交叉编译环境的搭建首先在Linux下建立uClinux交叉编译环境,这需要将交叉编译器microblaze-elf-tools和内核源码包uClinux-dist解压到指定的目录下。说明:以下均假定Windows主机的D盘下存有文件夹share,该文件夹下包括所需的交叉工具链和uClinux的压缩包。8.4.1建立共享文件夹本节中,我们需要建立一个可以在Windows与Linux之间共享的文件夹,通过虚拟机VMware来建立。从VMware 5开始,VMware支持直接将Windows下的文件夹映射到Linux的\mnt\hgfs目录下,从而实现Windows与Linux间的共享。(1)运行虚拟机VMware软件,点击“VM”菜单中的“Settings”选项,如图8.4.1所示。图8.4.1配置虚拟机(2)在出现的设置页面中选择“SharedFolders”,并确认以下内容:虚拟机中设置的Windows主机共享文件夹名称为“share”,指向包含交叉工具链和uClinux压缩包的文件夹“d:\share”,见图8.4.2。系统启动后,虚拟机会把此共享文件夹挂接到\mnt\hgfs中。在虚拟机的Linux系统中,用户可通过\mnt\hgfs\share访问到Windows文件夹。如图8.4.3所示,在“hgfs”下已经出现了“share”文件夹。图8.4.2配置共享目录图8.4.3查看共享目录8.4.2建立交叉编译环境(1)在虚拟机中以用户名root登录,在/home下建立名为embed的文件夹,然后在embed文件下建立microblaze-elf-tools文件夹,即输入以下命令:>cd/home>mkdirembed>cdembed>mkdirmicroblaze-elf-tools(2)从Windows主机中将交叉工具链(microblaze-elf-tools-20060213.tar.gz)复制到指定的目录(如d:\share)下,即在虚拟机终端中输入以下命令:>cp/mnt/hgfs/share/microblaze-elf-tools-20060213.tar.gz/home/embed/microblaze-elf-tools(3)解压交叉工具链的压缩包,输入以下命令:>tar-zxvfmicroblaze-elf-tools-20060213.tar.gz(4)打开当前用户的 .bash_profile文件,并修改/root目录下的该文件,即输入以下命令:>vi~/.bash_profile如图8.4.4所示,将MicroBlaze交叉工具链所在的路径加到PATH中,即输入以下命令:PATH=/home/embed/microblaze-elf-tools/bin:$PATH图8.4.4修改“bash_profile”(5)执行如下命令,使路径设置生效:>source~/.bash_profile再执行如下命令,检查路径设置是否已经生效:>echo$PATH(6)显示MicroBlaze交叉工具链的版本信息,即输入命令:>mb-gcc-v,将出现图8.4.5所示的画面,则说明MicroBlaze交叉工具链安装成功。图8.4.5uClinux的目录结构(7)在安装uClinux源码包时,首先将uClinux源码包(uClinux-dist-20060803.tar.bz2)复制到指定的目录(如/home/embed)下,命令如下:>cp/mnt/hgfs/share/uClinux-dist-20060803.tar.bz2/home/embed其次切换到用户目录/home/embed中,解压缩uClinux源码包,即使用以下命令:>cd/home/embed
>tar -jxvfuClinux-dist-20060803.tar.bz2再切换到uClinux目录下,即输入以下命令:>cduClinux-dist然后显示uClinux的目录结构,即输入以下命令:>ls -l这时会出现图8.4.6所示的画面,则说明uClinux源码包已经安装好了。图8.4.6MicroBlaze交叉工具链信息8.5uClinux基本配置(1)将FPGA工程文件夹下\microblaze_0\libsrc\uclinux_v1_00_d\autoconfig.in文件拷贝到uClinux-dist下的linux-2.4.x/arch/microblaze/platform/uclinux-auto目录下,命令如下:>cduClinux-dist>cp/mnt/hgfs/share/autoconfig.inlinux-2.4.x/arch/microblaze/platform/uclinux-auto(2)转换autoconfig.in的格式,即输入以下命令:>vilinux-2.4.x/arch/microblaze/platform/uclinux-auto/autoconfig.in出现vi的编辑界面后,在vi的命令行模式输入以下命令(见图8.5.1):>:setff=unix,然后保存退出,即输入命令>:wq。这样,就完成了autoconfig.in的导入工作。图8.5.1修改文件格式(3)将驱动程序文件(/Chapter8/Src/下的xup_v2pro_led.c和xup_v2pro_dip.c)复制到指定的目录(linux-2.4.x/drivers/char)下,并切换到指定的目录。(4)修改当前目录(linux-2.4.x/drivers/char)下的config.in文件,加入以下语句(见图8.5.2):tristate 'LED' CONFIG_DRIVER_LEDtristate 'DIP' CONFIG_DRIVER_DIP修改后,保存退出。图8.5.2修改config.in文件(5)修改当前目录(linux-2.4.x/drivers/char)下的Makefile文件,加入以下语句(见图8.5.3):并保存退出。obj-$(CONFIG_DRIVER_DIP)+=xup_v2pro_dip.oobj-$(CONFIG_DRIVER_LED)+=xup_v2pro_led.o图8.5.3修改Makefile文件(6)确认当前目录是uClinux-dist,即输入以下命令:>pwd(7)清除以前的编译记录,即输入命令:>makemrproper–i,来彻底清除各种不稳定的中间编译结果。(8)启动uClinux图形配置界面,即输入命令:>makemenuconfig,将出现图8.5.4所示的界面。图8.5.4uClinux配置向导(9)进入“Vendor/ProductSelection”菜单,如图8.5.5所示,在“Vendor”中选择“Xilinx”,在“XilinxProducts”中选择“uclinux-auto”。然后选择“Exit”,退回MainMenu。图8.5.5目标板选择(10)在MainMenu中选择“Kernel/Library/DefaultsSelection”选项,进入子菜单。在“KernelVersion”中选择“linux-2.4.x”,在“LibcVersion”中选择“uClibc”;另外,需要选中“CustomizeKernelSettings”和“CustomizeVendor/UserSettings”两个选项,见图8.5.6。然后选择“Exit”,退回MainMenu。在MainMenu里选择退出,会出现图8.5.7所示的界面,选择“Yes”,保存新的Kernel配置。图8.5.6“Kernel/Library/DefaultsSelection”子菜单图8.5.7保存退出(11)期间会出现如图8.5.8所示的询问,“LED”和“DIP”均选择“m”,表示以module模块方式加载LED及DIP驱动。图8.5.8驱动加载方式选择(12)如图8.5.9所示,弹出Kernel个性化设置的界面。图8.5.9配置主菜单(13)在MainMenu里选择并进入“Processortypeandfeatures”子菜单后,选择“ConsoleonUARTLITE”和“Ethernetdriver”,如图8.5.10所示,然后退回MainMenu。图8.5.10处理器配置菜单(14)进入“MemoryTechnologyDevices(MTD)”子菜单,然后在“RAM/ROM/Flashchipdrivers”下取消“DetectflashchipsbyCommonFlashInterface(CFI)probe”与“DetectJEDECJESD21ccompatibleflashchips”项的选择,见图8.5.11和图8.5.12。图8.5.11MTD配置图8.5.12RAM/RAOM/FLASH配置(15)退回到MemoryTechnologyDevices(MTD)菜单,进入“Mappingdriversforchipaccess”子菜单,确认“GenericuClinuxRAM/ROMfilesystemsupport”项被选中,而其他选项均未被选中,见图8.5.13。然后选择“Exit”,退回MainMenu。图8.5.13uClinux文件系统配置(16)在MainMenu中,进入“Blockdevices”菜单,确认“InitialRAMdisk(initrd)support”选项没有被选中,见图8.5.14。然后选择“Exit”,退回MainMenu。图8.5.14“Blockdevices”配置(17)进入“FileSystems”菜单后,确认选择“/devfilesystemsupport(EXPERIMENTAL)”和它的子选项“Automaticallymountatboot”和“Debugdevfs”,见图8.5.15,然后退出此菜单。图8.5.15文件系统配置(18)在MainMenu里选择“CharacterDevices”选项,进入该子菜单后,选择“LED”和“DIP”的状态为“M”(编译器会将这个驱动编译成一个独立的内核module,可以在系统中动态加载和移除,即使用insmod加载/rmmod移除这个驱动模块),见图8.5.16。图8.5.16字符型设备设置(19)在MainMenu中选择退出,将出现图8.5.17所示的界面,选择“Yes”,以保存设置。图8.5.17保存退出(20)如图8.5.18所示,出现Vendor/user定制的界面。图8.5.18配置主菜单(21)选择进入“CoreApplications”菜单,选择其中的“enableconsoleshell”项(见图8.5.19),并取消“agetty”项的选择(见图8.5.20),然后选择“Exit”,退回MainMenu。图8.5.19开启enableconsoleshell功能图8.5.20取消agetty(22)进入“FilesystemApplications”菜单,取消“flatfsd”项的选择,然后选择“Exit”,退回MainMenu,见图8.5.21。然后进入“NetworkApplications”菜单,取消“dhcpcd-new(2.012.4)”模块的选择,如图8.5.22所示,然后选择“Exit”,退回MainMenu。图8.5.21“FilesystemApplications”菜单图8.5.22网络服务配置
(23)进入“BusyBox”菜单,选择“ping”、“httpd”及其所有相关选项(见图8.5.23和图8.5.24),然后选择“Exit”,退回MainMenu。图8.5.23“BusyBox”配置(一)图8.5.24“BusyBox”配置(二)(24)回到MainMenu,进入“MiscellaneousApplications”子菜单内,选中“mknod”选项,然后选中“zmodemutils”及其子选项“lrz(NEW)”、“lsz(NEW)”,如图8.5.25和图8.5.26所示。最后选择“Exit”,退回MainMenu。图8.5.25“MiscellaneousApplications”配置(一)图8.5.26“MiscellaneousApplications”配置(二)(25)在MainMenu中选择退出,将出现图8.5.27所示的界面,选择“Yes”,以保存vendor/user设置。图8.5.27保存退出(26)进行uClinux内核的编译工作时,首先建立依赖关系,即输入以下命令:>makedep(27)对修改后的配置进行内核编译,即输入命令:>make,若无错误出现,编译完成后,会在当前的images目录下产生一个image.bin文件。8.6添加网页素材本节主要介绍如何添加网页素材。(1)将/Chapter8/Src/httpd下的所有文件复制到uClinux下的vendors/Xilinx/uclinux-auto/httpd文件夹下,命令如下:>cp–fr/mnt/hgfs/Data/.httpd/home/uClinux-dist/vendors/Xilinx/uclinux-auto/这些文件是网页素材文件,其制作涉及HTML代码制作和JAVA代码制作,有兴趣的读者可尝试自行修改。(2)在uClinux目录下新建一个文件夹Program,用于编译cgi程序,并将/Chapter8/Src/source中的getInfo.c、ledctl.c、priority.c文件复制到Program文件夹下。(3)在当前目录下创建一个Makefile文件,将以下内容输入这个文件内(或者从/Source目录拷贝到当前文件夹内):ifndefROOTDIRROOTDIR=/home/uClinux-dist(此目录是ucLinux的解压目录)endifUCLINUX_BUILD_USER=1include$(ROOTDIR)/.configLINUXDIR=linux-2.4.xLINUX_CONFIG=$(ROOTDIR)/$(LINUXDIR)/.configinclude$(LINUX_CONFIG)LIBCDIR=$(CONFIG_LIBCDIR)include$(ROOTDIR)/config.archLDFLAGS= -Wl-elf2fltPATH:=$(ROOTDIR)/tools:$(PATH)EXEC=Priority.cgiEXEC_OBJS=Priority.oall:$(EXEC)$(EXEC):$(EXEC_OBJS) $(CC)$(LDFLAGS)-o$@$(EXEC_OBJS)$(LDLIBS)clean: -rm-f$(EXEC)*.elf*.gdb*.o%.o:%.c $(CC)-c$(CFLAGS)-I$(LINUXDIR)/include-o$@$<(4)将终端切换到Program文件夹,并执行make命令,生成Priority.cgi。(5)修改Makefile文件,具体如下:EXEC=ledctl.cgiEXEC_OBJS=ledctl.o重新执行make命令,生成ledctl.cgi文件。(6)再次修改Makefile文件,具体如下:EXEC=getInfo.cgiEXEC_OBJS=getInfo.o重新执行make命令,生成getInfo.cgi文件。(7)将三个 .cgi文件移动到vendors/Xilinx/uclinux-auto/httpd下。(8)将8.5节中linux-2.4.x/drivers/char下已经编译成功的驱动文件xup_v2pro_led.o和xup_v2pro_dip.o复制到vendors/Xilinx/uclinux-auto/httpd下。(9)按照8.5节中的步骤,从步骤(6)开始进行,生成新的image.bin文件。8.7应用程序的验证本节将介绍应用程序的验证步骤。(1)将新生成的image.bin、xup_v2pro_led.o和xup_v2pro_dip.o文件复制到EDK工程根目录下。(2)按照图8.7.1进行连接,使用一根机对机的交叉网络线来连接FPGA开发板和一台PC机(方法不限于此,比如如何使用HUB相连)。图8.7.1系统连接图(3)通过“开始”菜单→程序→附件→通讯→超级终端,打开超级终端,然后进行属性配置。如图8.7.2所示,一定要选对端口,每个串口在连接时使用情况可能都不一样;然后在“配置”信息中选择正确的波特率,否则不能看到正确输出,如图8.7.3所示。图8.7.2超级终端建立图8.7.3超级终端配置(4)在EDK中打开当前工程,并在“DeviceConfiguration”菜单中选择“DownloadBitstream”,将Bitstream下载到FPGA芯片上,如图8.7.4所示。此时,在终端上会看到如图8.7.5所示的信息。图8.7.4下载Bitstream图8.7.5终端显示信息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47547-2026直埋保温管道安全运行光纤监测系统技术条件
- 三高人群膳食管理执行方案
- 慢病危险因素筛查方案
- 胃肠调理营养方案
- 假期后复工复产安全教育培训方案
- 葡萄避雨栽培技术操作指南
- 防洪防汛实战演练评估记录规范
- 广东深圳市2026年九年级下学期数学第一次质量检测试题附答案
- 大棚番茄标准化种植技术规范
- 个体防护装备选用标准管理
- 2026上海大歌剧院管理有限公司夏季工作人员招聘137人笔试备考试题及答案解析
- 湖北省新高考协作体2026年5月高三下学期壮行考试 历史试卷(含答案)
- 乐山市2025年四川乐山市人力资源和社会保障局选调事业单位工作人员笔试历年参考题库典型考点附带答案详解
- 浙江省Z20联盟2026届高三年级第三次学情诊断数学+答案
- 2026东莞松山湖管委会招聘工作人员24人笔试参考试题及答案详解
- 2025年湖南省长沙市初二地理生物会考真题试卷(+答案)
- 17《红军桥》课件 美术三年级下册 (赣美版2024)
- 雨课堂学堂在线学堂云《人工智能安全与伦理(北京航空航天)》单元测试考核答案
- 安全员C1证(专职安全员-机械类)考试题库及答案
- DB11T 527-2021 配电室安全管理规范
- 2024年广东省高考(历史)科目真题(试卷+答案解析版)
评论
0/150
提交评论