感谢分享,这样就能不拆FALSH来备份了。
我的图书馆
感谢分享,这样就能不拆FALSH来备份了。
:~# cat /proc/mtd dev:&&& size&& erasesize& namemtd0: 10000 "RedBoot"mtd1: 007c0 "linux"mtd2: 10000 "rootfs"mtd3: 10000 "ddwrt"mtd4: 10000 "nvram"mtd5: 10000 "board_config"mtd6: 10000 "fullflash"mtd7: 10000 "fullboot":~# DDWRT备份成编程器固件命令(前提是有fullash分区):~# dd if=/dev/mtd6 of=/tmp/741_fullflash.bin16384+0 records in16384+0 records out:~# 刷成编程器固件命令(前提是有fullash分区):~# mtd -r write fullflash /tmp/741_fullflash.bin16384+0 records in16384+0 records out:~# &编程openwrt固件时修改mach-tl-mr3x20.c(对应3420)增加一个fullash }, {& .name& = "fullflash",& .offset& = 0,& .size& = 0x800000,& .mask_flags = MTD_WRITEABLE, }& .size& = 0x800000, 这个是flash大小8M去掉& .mask_flags = MTD_WRITEABLE,是分区可以写,否者只可读&&编程器固件包含uboot+内核固件+art/board_config (适用于ar 3240固件等)一、准备uboot、内核固件(firmware)、art/board_config& 1、登录路由& 2、切换到tmp目录,& 3、使用dd命令备份uboot、firmware、art/board_config,& 4、使用cat命令将文件合并,假设新文件名为xxx.bin& 5、使用WinSCP将文件复制到电脑 root@OpenWrt:~# cd /tmproot@OpenWrt:/tmp# cat /proc/mtddev:&&& size&& erasesize& namemtd0: 10000 "u-boot"mtd1: 10000 "kernel"mtd2: 10000 "rootfs"mtd3: 10000 "rootfs_data"mtd4: 10000 "art"mtd5: 007d0 "firmware"root@OpenWrt:/tmp# dd if=/dev/mtd0 of=uboot.binroot@OpenWrt:/tmp# dd if=/dev/mtd5 of=firmware.binroot@OpenWrt:/tmp# dd if=/dev/mtd4 of=art.binroot@OpenWrt:/tmp# cat uboot.bin firmware.bin art.bin & fullflash.bin相当于windows下&& copy /b&1.txt+2.txt 3.txt&区分固件是否带uboot用Uedit32打开固件这个是有uboot的这个是有没有uboot的的openwrt固件去掉固件的uboot&&(也就是删除固件前成128k数据)这个是有uboot的128K*1024 =131072 &固件加ubootcopy /b uboot.bin+固件.bin 新固件.bin&&uboot下刷机打开tftpd32 把固件放tftpd32设置的目录下打开SecureCRT 波特率115200这是7240 uboot下刷4M编程器的固件ar7240& printenvar7240& setenv ipaddr 192.168.1.222ar7240& setenv serverip 192.168.1.2&&&&&&&&&& #PC设置网卡IP为192.168.1.2ar7240& tftpboot 0xr.binar7240& erase 0x9fx3fffffar7240& cp.b 0xx9fx3fffffar7240& bootmubnt uboot刷机 tftpboot 0x8m.binerase 0xbfx3fffffcp.b 0xxbfx3fffffbootm普通的uboot 和 ubnt的uboot的刷机都搞定了&普通的uboot一个是 0x9f000000开始,ubnt是 0xbf000000开始&&&&&&刷编程器固件setenv ipaddr 192.168.1.111setenv serverip 192.168.1.2tftpboot 0xV3_factory_all.binerase 0x9fx400000cp.b 0xx9fx400000刷普通固件tftpboot 0x op.binerase 0x9fx400000cp.b 0xx9fx400000bootm&&
发表评论:
TA的最新馆藏[转]&[转]&[转]&[转]&RedBoot_readme_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
RedBoot_readme
上传于||文档简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩1页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢用MDK实现redboot的调试方法
本文是原创,转载请注明出处&
本文链接:
本文作用:用MDK实现elf文件的调试(据说axf文件也可以,本人没有测试)
1.用redboot.elf文件基于MDK软件和J-LINK仿真器,和目标板 实现 redboot 的调试
软件:MDK3.24
硬件:J-LINK仿真器,EM-STM3210E开发板
文件:用GNU的elf文件(这里是用linux的ECOS开发环境下生成的redboot)
一:新建工程:project-&new u vision
project,输入工程名,然后保存,然后选择你工程所用的芯片
这里用的是STM32F103ZE,如下图:然后点OK
看到如下对话框,选否,(就是不载入STM32的启动代码到工程中)
二:复制你的.elf文件到你新建的工程的同一文件夹下(.elf与工程文件同目录下)
三:单击options for target按钮(或者project-&options for
target'target 1')如下图:
四:经行一些设置,这里用到的是redboot.elf文件,所以要在output栏修改如下图:
在name of executable后面加入:redboot.elf
在debug栏修改如下图:
在右边点中use,并选择j-link(我这里的仿真器用的是j-link)并把 run to main()前面的√ 打开
在utilities栏修改如下图:
use target driver for Flash programming选择 j-link
然后点setting,选erase full chip打√
,然后点ADD,然后选择你的片内FLASH算法,STM32F103ZE这里是STM32F10x512kb
flash所以选这个点OK,最后再点OK。
五:然后点download to flash memory按钮,如下图:
六:最后点start/stop debug session 按钮,开始调试,如下图:
最终你会看到如下图所示的调试界面,右边Disassembly是elf文件反汇编的源代码内容,
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。