欢迎来到天天文库
浏览记录
ID:36958292
大小:663.50 KB
页数:7页
时间:2019-04-29
《方圆程序启动模式.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、程序启动模式EmbeddedSRAM在调试过程中,将程序下载到RAM中运行的过程是由C-SPY处理的。所谓下载,就是通过与开发板进行连接,将数据写入板中。当C-SPY处理过程如下:1.从application.dxx读取程序的二进制映像(binaryimage)和调试信息;2.通过连接开发板,将二进制映像传输到开发板上的RAM上;3.将程序指针(PC)指向RAM中程序的入口地址。接下来就是程序的表演时间。EmbeddedFlash在调试过程中,将程序下载到Flash中运行的过程是由特殊的代理程序flashloader执行的。Flashloader属于IAR嵌入式开发平台
2、(IAREmbeddedWorkbench)的一部分,并可在IAR嵌入式开发平台对Flashloader上进行开发和调试。程序下载至flash中运行的全过程如下:1.从flashloader.dxx文件中读取flashloader二进制映像;2.通过连接将二进制映像传输至开发板的RAM中;3.将程序指针(PC)指向RAM中flashloader的入口地址,启动flashloader;4.Flashloader通过文件I/O从application.sim文件中加载程序二进制映像,并将其编写进flash存储器;5.C-SPY从application.dxx文件中读取调试信
3、息,并将程序指针设置为flash存储器中的程序入口地址。接下来就是程序的表演时间。这种程序启动方式需要程序编译链接时产生的两个文件——文件扩展名为dxx的正常的UBROF对象格式文件和一种文件扩展名为sim的简单二进制格式文件。UBROF(UniversalBinaryImageRelocatableFormat)又称通用二进制重定位目标格式。UBROF格式文件包括所有的指令和调试信息,允许我们实现全速、单步、设置断点、观察变量等调试功能,它是由编译器输出的目标文件。而sim文件易压缩,体积小巧,是flashloader要下载的对象。Flashloader的主要功能是使
4、用文件I/O从主机上读取程序二进制映像,解压映像并将映像写入flash存储器。一般来说,flashloader可以被分成通用框架(flashloaderframework)和设备驱动(flashloaderdriver)两部分。Flashloader的通用框架由IARSystems编写,并作为IAR开发平台的一部分。通用框架代表了所有flashloader的共性,实现了包括从调试器中读取二进制映像、传递用户参数至flashloader的机制和对创建用户GUI交互界面(如进度条)的支持。设备驱动的代码只有一小撮,但其承担着将程序写入flash存储器的任务。设备驱动与具体的
5、设备相对应。通用框架与设备驱动之间交互是通过调用函数实现的。在flashloader启动后,通用框架会先初始化设备驱动,包括设备驱动写入函数的注册。通用框架将使用这一写入函数将下载得到的数据传输给设备驱动,每次传输一个字节。不同的设备驱动可能会使用不同的闪存算法,有些设备驱动可能会缓存得到的字节,直到填满一个扇区。所以通用框架在写入最后一个字节后,会向设备驱动发出一个刷新请求,使得设备驱动中剩下的所有数据写入flash。当设备驱动发生错误时,设备驱动不会向通用框架报告,而是通过FlMessageBox()函数通知用户并使用FlErrorExit()终止flashload
6、er。SystemMemoryBootLoader在用户程序执行前,除了程序映像需要在适当的内存位置外,CPU还必须具备一定的条件。CPU寄存器的设置R0=0;R1=MachineID(即MachineTypeNumber);R2=程序启动参数在RAM中起始基地址;CPU模式必须禁止中断(IRQs和FIQs);CPU必须SVC(管理模式);Cache和MMU(内存管理单元)的设置MMU必须关闭;指令Cache可以打开也可以关闭;数据Cache必须关闭;但是在CPU刚上电启动的时候,一般连内存控制器都没有配置过,根本无法在内存中运行程序,更不可能处在对应的启动环境中。为了
7、初始化CPU及其他外设,使得用户程序可以在系统主存中跑起来,并让系统符合用户程序启动的必备条件,必须要有一个先于用户程序运行的程序,它就是所谓的引导加载程序(BootLoader)。为STR75xFlash微控制器开发的SystemMemory启动模式提供了用于内嵌Flash编程的所有基础函数。SystemMemory启动模式是在RAM中执行的,并使用16KRAM的后4K空间。即0x40003000到0x40003FFF。所以在下载代码至RAM后,用户只能使用剩余的12K空间。这里需要注意的是,当处于SystemMemory启动模式时,C
此文档下载收益归作者所有