新闻中心

EEPW首页>嵌入式系统>设计应用> 采用ROM监控器的调试技巧分析

采用ROM监控器的调试技巧分析

作者: 时间:2012-06-01 来源:网络 收藏

更新目标平台

将RedBoot映像装进非易失性存储器根据目标不同有很多方法,一般情况下,映像必须用软件编进闪存或用设备编程器编入

RedBoot映像装入闪存后,就可以直接执行缺陷修正或增加功能等映像更新任务,此时需要已有的闪存RedBoot映像和新建立的从RAM运行的RedBoot映像的支持。

首先从闪存启动目标平台并运行旧的RedBoot映像,由于这里采用了闪存映像系统命令将新的RedBoot映像编入闪存,因此需要执行


RedBoot> fis init


命令初始化fis系统。该命令用于初始化闪存,使新的映像能用fis命令下载。映像系统初始化完成后,可以用


RedBoot> fis list


命令查看闪存中的映像。此时会得到类似于图5的输出,根据实际使用的硬件平台而显示不同的地址、长度和入口地点,同时还能看到RedBoot映像名,该映像名代表的是目前正在闪存中运行的RedBoot映像。

接着用上述同样的步骤创建一个RedBoot RAM映像redboot_ram.bin。为了建立从RAM运行的映像,需要确保启动类型(CYG_HAL_STARTUP)配置选项设为RAM。因为硬件平台包括和RAM最小配置文件,因此导入并建立RAM配置并不困难,重要的是要记住将RAM和映像存放到不同的工作目录中。

下一步用驻留在闪存中的原有RedBoot映像将新的redboot_ram.bin载入到RAM中,这步操作的命令是:


RedBoot> load redboot_ram.bin

载入命令的执行有好几种方法,如把映像从主机发送到目标硬件的TFTP,具体哪种方法取决于用户实际可用资源情况,fis load命令还能用来通过闪存映像存储系统装载和存储redboot_ram.bin映像。

我们用go命令执行刚载入RAM中的RedBoot映像。RedBoot映像从RAM执行后会产生新的类似于图1的初始化消息,要注意这时是从RAM执行RedBoot映像的。采用ROM监控器的调试技巧分析

接着用与上面相同的步骤装载新创建的ROM RedBoot映像,装载redboot_rom.bin映像的命令是:


RedBoot> load redboot_rom.bin -b


命令行中的ram_addr指RAM中的位置(不同的平台有不同的值),这里临时存放着即将编入闪存的redboot_rom.bin映像。

现在就可以用fis命令将新映像写进闪存了。某些平台可以支持闪存的锁定和解锁,如果用户能够解锁闪存,那么用户需要输入的第一条fis命令是:


RedBoot> fis unlock -l


这里flash_addr是需解锁的闪存地址,本例中这项参数对应的是fis list命令中RedBoot映像名称的闪存地址,从fis list命令中还能得到长度。如果平台不支持闪存锁定,那么用户可以跳过这一步。

随后可以用命令


RedBoot> fis create RedBoot -f -b -l -s


将RAM中的RedBoot新映像写入闪存中。其中flash_addr是RedBoot新映像写入闪存的位置,如fis list命令所示,ram_addr是redboot_rom.bin文件载入RAM存储器的位置。flash_len同样出现在fis list命令中,代表RedBoot闪存映像的长度,data_len则是将被写进闪存的redboot_rom.bin文件的长度。

在继续下面的操作之前,fis create命令会询问用户是否愿意替换现有名为RedBoot的映像,如果回答“是”则将把新的映像装入闪存。下一步,如果硬件平台允许锁定闪存,那么就可以用


RedBoot> fis lock -f -l


命令完成闪存锁定。上面讨论的针对所支持平台实际存储位置在RedBoot文档中有详细说明。

最后重新启动硬件就可以启用刚才写进闪存的RedBoot新映像了。

发展前景

目前新版RedBoot正计划与eCos v.2同时推出,新版RedBoot增强功能包括DHCP客户机、嵌入式web服务器、USB调试和IDE驱动支持。

即使没有这些功能改善,RedBoot ROM也能提供一种低成本而且容易使用的硬件调试与测试方法。由于RedBoot是开放式源代码,因此用户能够定制RedBoot以满足项目开发和测试阶段遇到的所有特殊需求。RedBoot对GDB的支持甚至可以让用户不再需要昂贵的硬件调试工具。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭