您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > chapter10--嵌入式软件的开发流程
0Chapter10嵌入式软件的开发流程本节以S3C4510实验板为例说明嵌入式软件的开发流程。嵌入式系统软件由三部分组成,BSP(板级支持包),RTOS(嵌入式实时操作系统),APP(应用程序),因而嵌入式软件开发流程,包括如下几个阶段:BSP的移植与开发嵌入式实时操作系统内核的移植与开发应用程序的设计与调试最终软件产品(客户定制映像文件)的生成几点补充说明1166交叉开发环境TargetsystemLAN,serialorparallelMainchassis--Overlaymemory-TraceCapability-SystemcontrolandhostinterfaceSimpleplug-inprobesubstitutesforsystemROMsJtag/BDM接口FlashPrg软件2178实验平台(1)VisionICE仿真器VisionClick软件BDM接口3BootROM¾Target’sbootROMcodeexecutesonpowerup.zBootROM’sdonotcontaintheVxWorkssystemunderwhichyourapplicationruns.zVxWorkssystemimageisanobjectmoduleonthehost.¾ThebootROMcode:zAllowssettingofbootparameters.zDownloadsVxWorksintotargetmemoryviathenetwork.zStartsexecutingVxWorks.4BSP的移植与开发(01)生成bootrom.hex5BSP的移植与开发(02)配置编程器6BSP的移植与开发(03)78910移植嵌入式实时操作系统内核(01)1112131415161718192021222324hostname:为开发程序的宿主机的机器名filename:为要下载到目标机的RAM中的映像文件inetonEthernet(e):为目标机要与主机通信使用的IP地址,必须设置成与主机IP地址在同一个网段。Hostinet(h):为开发程序的宿主机的IP地址Useru):用于文件访问,登录ftp服务器的用户名ftppassword(pw):用于设置使用ftp传输文件的设置用户的访问密码25262728设计并调试应用程序WindSHCrossWindBrowserWindCodigEditorTargetServer应用程序VxWorksTargetAgent目标系统Tornado开发环境(PC)2930313233343536373839404142关于boot参数的几点说明¾Bootparametersaresetviaaseriallink.¾VxWorksisbootedthroughtheethernet(whichismuchfaster).¾Keybootparameters:zBootdeviceNetworkinterfacetouse.zHostinternetaddressAddressofhostfromwhichtoboot.zPathofVxWorksimageFiletotransferovernetwork.zUsernameForfileaccesspurposes.zTargetinternetaddressDefinesthetarget’saddress.zCPUnumberEachboardinchassisgetsadifferentnumber.ThesharedmemorymasterisCPU0.43Onemaytype‘h’atthebootprompttoseealistofcommands.[VxWorksBoot]:h?-Printthislist@-boot(loadandgo)p-printbootparamsc-changebootparamsl-loadbootfilegadrs-gotoadrsdadrs[,n]-displaymemory...nnetif-printnetworkinterfacedeviceaddress44$dev(0,procnum)host:/fileh=#e=#b=#g=#u=usr[pw=passswd]f=#tn=targetnames=scripto=otherBootflags:0x02-loadlocalsystemsymbols0x04-don’tautoboot0x08-quickautoboot(nocountdown)0x20-disableloginsecurity0x40-usedhcptogetbootparameters0x80-usetftptogetbootimage0x100-useproxyarpavailablebootdevices:ei0sm45ChangingBootParameters¾Type“c”atthebootprompttochangethebootparametersinteractively.¾TargetboardswithNVRAMretainchangesafterpoweriscycled.¾Alternatively,cantypebootparametersonasinglelineatthebootprompt:$ei(0,0)wolverine:c:\tornado2\target\config\mv162\vxWorks\h=147.11.12.165e=147.11.12.204u=toddpw=coverttn=t12-20446AlternativeBootingSchemes¾ThesharedmemorynetworkallowsatargettobootovertheVMEbus.Thisschemeisdiscussedintheappendix.¾Bootfromalocaldisk.¾BootoneVxWorkstargetfromanother,usingtheFTPserver.¾Bootoveraserialline,usingSLIP,CSLIP,PPP,orTSFS.Slowerthanbootingacrossethernet.¾ObtainbootparametersusingDHCPorBOOTP,thendownloadthebootfileusingTFTP.¾CanputVxWorksinROM.ThiswillbecoveredintheReconfigurationchapter.47关于bootable和downloadable工程的说明TornadoII采用工作区(Workspace)和工程(Project)的模式来管理应用程序,一个工程可以包含源代码文件,以及与该工程相关的设计信息等,工作区好比一个容器,可以容纳多个工程。通过菜单”File”-”NewProject”来创建新的工程。创建工程时有两种不同类型的工程可供选择:可启动的工程(BootableVxWorksImage),可下载(Downloadableapplicationmodules)的工程。可启动的工程则是指一个链接到VxWorks映像的应用程序,该工程不仅包含应用程序的代码,还包含VxWorks内核代码,在工程管理器中,可以通过非常方便的手段来增加或删除一些内核组件,从而调整VxWorks内核的特征,比如操作系统中的“ANSIC”组件、“POSIX”组件等。通过组件的增加或删除,一方面可以根据需要调整VxWorks内核的代码大小(要知道嵌入式系统的资源都是非常有限的,保持内核的高度精简很必要);另一方面还可以保证整个系统运行所需要的组件都包含在所生成的目标代码中。当目标机启动后,该应用程序会被自动加载且运行。48可下载的工程是指该工程所编译的目标代码是一种可重定位的代码,一般在一个可下载的工程中可以包含多个可重定位的模块,这些模块可以被动态下载到一个运行了VxWorks内核的目标系统中,并可以通过Shell或者调试器来启动这些模块。动态加载是TornadoII的一个特点,通过这项功能,可以将目标模块装载到一个正在运行的系统中,这样与重新构建和链接整个操作系统相比,所需的时间更短,从而大大加快调试周期。49关于目标机管理工具——TargetServer的说明目标服务器管理主机与目标机的通信,所有与目标机交互工具都通过服务器器来完成,它也管理主机上的目标机符号表,提供目标模块的加载和卸载。目标代理程序是一个驻留在目标机中的任务,它起到一个桥梁作用,用于联系Tornado工具和目标机系统的组件,一般来说,目标代理程序往往是不可见的。一个目标服务器必须为一个目标机而配置,并在启动主机工具之前启动该目标服务器,对于一个目标服务器,必须配置合适的通讯协议,如串口通讯协议“wbdserial”和网络通讯协议“wbdrpc”,当一个目标服务器启动后,需要使用该通讯协议来确定运行在目标机上的代理程序并与其通讯。目标服务器启动后,在Windows系统的任务栏会出现一个类似于靶的图标,双击该图标,可以看到该目标服务器的一些输出信息,如下图启动了一个基于VxSim的目标服务器:在“TargetServerProperties”下来列表框中还有一些非常有用的配置选项,包括“CoreFileandSymbols”、“Memorycachesize”、“TargetServerFile50System”。“CoreFileandSymbols”:用于读取目标机系统上运行的内核代码的符号表信息,这样当通过Shell运行一些例程或者执行其他操作时,都会从该文件读取符号调试信息,从而定位一些例程的入口,以及一些变量的地址等。所以该编辑框内所指定的文件应该就与下载到目标机上运行的文件相对应(一般下载到目标机上运行的内核代码可以通过一些工具如arm-elf-objcopy去除调试信息,但这里指定的文件是包含调试信息的文件,即去除调试信息之前的文件),在下面有个选项可以选择是从该文件中读取所有符号(“AllSymbol”)还是只读取全局符号(“GlobalSymbol”)。注意:如果该文件输入错误,一方面在目标服务器启动后,会出现一个“Chksummismatch”的提示信息,另外通过Shell进行一些例程调用或者表达式计算,将可能得到不正确的结果。“Memorycachesize”:为了避免与目标机进行过多的数据交换,在目标机服务器中维持了一个目标机的数据缓冲,默认情况下为1M字节,我们也可以指定该51缓冲的大小,通过选择“Specify(KBytes)”来指定。“TargetServerFileSystem”:该文件系统简称“TSFS”,这是一个简单而且非常好用的文件系统,它提供了一个对主机上的文件进行全功能访问的目标机文件系统接口。为了使用该文件系统,需要在内核中配置该模块,即“WBDTargetserverfilesystem”组件同时还需要在这里进行一些简单的配置,首先要选中“EnableFileSystem”,然后在“Root”对应的编辑框中输入主机文件系统的目录,该目录将作为TSFS的根目录,最后还要指定文件系统的属性,是只读的“Readonly”还是可读写的“Read/Write”。该文件系统配置成功,启动相应的内核,然后在Shell下通过devs命令检查,就会发现一个“/tgtsvr”设备,这就是TSFS文件系统,该设备的文件目录“/tgtsvr”实际上就等价于我们在这里所输入的“root”对应的主机目录,随后在目标机上,就可以象使用本地文件系统一样来操作主机上的文件。52关于targetAgent的说明¾TheWDBAgentactsonthetargetonbehalfofthetargetserverandTornadotools:zReadingormodifyingmemory.zSe
本文标题:chapter10--嵌入式软件的开发流程
链接地址:https://www.777doc.com/doc-635288 .html