Motorola微处理器bootloader分析与应用三、bootloader用户应用 1、bootloader的系统移植 由于Motorola的dBUG bootloader为一标准的范例程序,要将其移植到具体的嵌入式系统中,还需要根据系统的硬件配置,修改其部分配置文件和底层接口文件。本文以用于网络数据存储的ColdFire5307C3开发板为例,介绍在其上的dBUG移植过程。 ① ColdFire5307C3开发板硬件情况: ② 修改bootloader的处理器和配置相关文件: 2、bootloader命令简介[2] dBUG提供了丰富的调试命令: ① 程序流程控制命令reset(系统重启)、go、exe(用户程序执行)、br(断点设置)、step(单步)、trace(单步跟入)、gt(运行到); ② 内存和寄存器操作命令md、mm(内存查看和修改)、rd、rm(寄存器查看和修改)、bm(内处块移动)、bf(内存块数据填充)、bc(内存块比较)、bs(内存块查找); ③ 指令和数据操作命令dc(数据转换)、dis(反汇编)、asm (汇编指令插入)、sym(符号表管理); ④ 程序下载命令dl(通过串口下载)、dn(通过网络下载)。 3、bootloader用户功能扩展 除了dBUG bootloader本身提供给用户的命令外,用户还希望根据不同的情况定制自己的命令。如Linux加载、μC/OS加载、kermit下载等。一般自己添加的命令都会放在一个单独的C文件里面。为了方便,用户也将自己添加的命令都放在board.c文件的最后。 例如,用户想要给dBUG添加μC/OS操作系统加载的功能,除了在dBUG中加上自己的程序加载代码外,还应给dBUG添加一个名为ucosii的用户命令。这样可以通过在界面上输入命令的形式实现相应的加载功能。首先应该在board.c里面实现这个函数: ucos_boot (int argc, char **argv) 而后,应在cmds.c文件里面声明这个函数,并在紧接着的UIF_CMD UIF_CMDTAB数组里面声明这个命令的特性和参数。 {“ucosii”, 4,0,0,0,ucos_boot, “Boot uCOS-II from RAM”,””}, 其中,第一个test字符串是命令的名称,第二个4表明命令识别的时候要匹配4个字符才行,最后的字符串是help命令时对test命令的解释。在描述中间的test表明指向的函数名称。这样就很方便地添加了这个用户命令。 四、结论 综上所述,Motorola公司的dBUG软件由于其良好的源代码组织结构使得用户在其上开发应用非常方便,用户稍加修改就可将其移植到不同的硬件平台上。它拥有良好的用户界面,不仅可以完成用户所需的程序下载、加载等功能,而且还可以方便地进行调试,使用户可以更好地监控自己的程序。除此之外,用户还可以很方便地添加自己所要的功能,其结构具有良好的可扩展性。所以,Motorola公司的dBUG bootloader的确是一个优秀的bootloader范例,给广大的嵌入式系统开发者提供了一个不错的选择。 参考文献 1 dBUG Reference Manual. Revision 0.21. 1999-04-08 上一篇:Fedora Core5 NFS服务器搭建过程介绍 下一篇:没有了 更多相关文章
|
推荐文章
精彩文章
|