《基于Xilinx的软件工程的创建.docx》由会员分享,可在线阅读,更多相关《基于Xilinx的软件工程的创建.docx(7页珍藏版)》请在第一文库网上搜索。
1、基于Xi1inx的软件工程的创建Xi1inx提供了完整的软件开发环境。在XiIinX8丛中,每一个软件工程,会包含一个应用程序工程,和一个BSP工程。应用程序工程,XIinX建议只包含与应用相关的代码。BSP工程,还有硬件相关的代码,以及一些公共的库,比如TCP/IP,操作系统等。新建工程时,缺省会创建一个应用程序工程和一个BSP工程。当然,客户可以改变缺省设置,使用已有的BSP工程。创建工程后,也可以更改应用程序工程对应的BSP工程。下图中,工程拄StI本来有自己的bsp工程test1_bsp。更改它的BSP工程为test2_bsp后,删除工程test1bsp,仍然可以编译成功。BSP工程,
2、被设计成用来管理公共代码,可以被多个应用程序工程共享。但是还是有部分客户,特别是原来使用睢庄机的客户,原来的工具把所有代码放在一个工程里,所以现在仍然更喜欢一个工程里包含所有代码。从某种角度来看,这样的代码更简单,和Xi1inX的工具遇合更低,更适合版本管理。这种要求,虽然很少客户要求,在XiIinXSDK中也可以做到。选中一个软件工程后,在右键菜单中选择“Properties”,再在设置窗口中选择C/也Bui1d”-“Setting”-4ARMGCCCompi1er”-“InferredOptions-SoftwarePIatform,-“SoftwareP1atformInc1udePat
3、h”,然后删除BSP工程提供府含路径(它指向头文件目录)。下面图片中,工程名为sing1e_app,则BSP工程对应的头文件目录是Sing1e_app_bsp/ps7_cortexa9_0/inc1ude”。可以参考下列图片。FiieEditSoUKeRectorNaXgaIeSerchRunPfQeNeW.Go1ntoFMOpeninNewWindow51心CopyCtri+C洲sinPasteCtdV.XDeieUDe1ete,Sovrce士,tes芯IeSMove.iZZC?Rfiname-F2ci*zc7gmpoct.JTzcExport.zc?SuddProjecti*ZC?ICea
4、nProject电ZfnhFS;C1oieProject)C1oseUhrdatedPrqe,MakeTargets,IndexShowiRemoteSystemswevConycrtTo.:RunAGDebugAs.Profi1eAsTeamCompdreVWthi.Restorefrom1OCXHktOnf即RunCC+*CodeAna1ysisNGenette1inkerScnpt,8Ui1dSemn95Properties(/,-U-j删除前的图片:Propertiesforzc706.def.he;1ope岬MIRbbovrcv6u4WJ,CX*3u1fdViH4cIftDowry0
5、pomEeconmHM1oggingStWr9:RChnEd:t”CC*GeneteiPrqecfeercRmb93*M19SettingsCOnig1f,horibu9(Act*STx1Xricgs.6u,ARM*MfWH公Ge1Ma0ARMhtWarrp.,QiEz*tkc以DebUO3E出PfO1nng后DfeCQxf占Mse,hrwo5* 占SsYECM8,一0%攸”P1aMm.0PtARMIJ,。Genera1*1xane忠MiehfW4vs各XEpt* 助MECPCPt6,*So?hv;rP1attotmPrcccworCp:cBarmmmZ0STMWPF1atIOfm1erred
6、f1Sc-tworcFO力ZEIx1tOCaW删除后的图片:tj-.第九PiOpertiMforrxj1r.4pp另外还要删除对BSP工程提供的库的引用。这需要在设置窗口的C/C+Bui1dv-“Setting”-“ARMGCC1inkerw-InferredOptionsw-SoftwareP1atform,-uSoftwareP1atformInferredF1ags”删除其中的“-Ixi1”。还要在设置窗口的C/C+Bui1d”-“Setting”-ARMGCC1inker,-InferredOptionsn-“SoftwareP1atform,-“SoftwareP1atform1ib
7、raryPath”删除其中的目录。对于工程”sing1e_appw,目录是./SingIe_appbspps7cortexa901ib”。删除前的图片:_-Pfgprt-to/M9*.a1tpe化errextftMC*,C8mI*CC*gu1dS3。VgMSDucct*yOpvoftiFRtofWm:IOW2SexongiToo1ChenEdigrcj+wftoecRefefm:esRtFVD1edUgSrt9*Settings5guraborcDgAw删除后的图片:Properties。sw*epj*oefk-vna.RcsoirceBuioers,CC*BuS6midYwistXtsOXO
8、veyCP11CrSFrwiforrnent1og9m9Seen9$Tooi6;,“CC*Gen,6Agccoft出5zgqgProfi1ing占DirectOf1ei府“诩4ar,,加MetreCOfM)E黎SchwarePIMomPrxeswrCptcnj-ARMc1irtef&IitwM八(MUd!JtfC.给Uk*rSX*占MfeTBCpuom闫S:Seto.SoftVWKeacmrfcredF1o*ESESESHBQDSaaE5。yF0p0/比Coc*ratto3aP*&e。Oro,Parx与,&AWnbt感GrIyT,aawjcCOfTptiefjgrg宙Fncft1n圣Orccs
9、des函Meve-ous5feedOp3oSCNemWWm.-cto*珍AWgicImy四GMtftX西1txfr彦Mitcemxs虎Iiy&CfX当In1eeedOPKOn4.I.I.-,Ooi,与AWPf1rcSzeSo-tYiPUgG1n,wf1口2$VI-SWfT-OOUP-JOX*i4.hsFjH*)4itJ删除对BSP工程的引用后,会失去所有头文件、驱动程序等。客户需要创建这些文件。也有一种简便办法,就是拷贝原来工程中的头文件,比如Xparameters.h,xparameters_ps.h,作为硬件信息的定义头文件。客户可以以此为建础,亲在上面修改。对争一个基本的嵌入式软件,需要
10、初始化的、cacheMMUtimer串口等,它需要的文件有asm_vectors.Svectors,hxi1_types.hboot.Sxi1-crtO.Sx12cc.hcpujnit.SXi1aSSert.hxparameters.hhe11owor1d.cxi1_a$sert.hxparameters_ps.hIscriptJdxi1-cache.cxpseudo_asm.houtbyte.cxi1_cache.hxpseudo_a$m_gcc.hp1atform.cXi1CaChJihxreg_cortexa9.hp1atform,hXi1eITata.hxstatus.hp1atfor
11、m_config.hxi1_exception.ctimej.crint.cxi1-exception.hxtimej.hps7Jnit.cxi1_ha1.hxuartps_hw.cps7Jnit.hxi1jo.cxuartps_hw.htrans1ation_tab1e.sxi1jo.h-itxJ.vectors.cxi1_printf.h这些文件,可以直接在BSP工程的“ps7cortexa901ibsrcstanda1one_v3_12_asrc”目录下,及iips7_cortexa901ibsrc,下的各个驱动目录下找到。这样一个最小的工程,如果去掉可选的ps7_inti.c和Xi1a
12、SSert.c,大小是25732字节。一个Xi1inXSDK创建的缺省he11o工程,大小是22812字节。这说明XiIinXSDK缺省生成的工程是最小的工程,Xi1inxSDK并没有增加额外的大小。这样的工程,SrC目录下有源代码,DCbUg/Re1ease目录下有Makefi1e。进入DebUg或者Re1eaSe目录,执行Inakec1ean则可以清除工程,执行make则可以编译工程。借助这种命令行编译功能,其它工具,如U1traedit和SoUrCeinsight,可以集成工程的编译功能。这样也可以方便的把工程打包,传到别的机器做编译。不使用BSP工程时,Xi1inx提供的设备驱动不会自动包含在客户的工程中。但是客户也可以很方便的使用Xi1inX提供的设