HG255D刷flash记录
前些天看到了这位博主的《路由器就是开发板》教程:
目录 《路由器就是开发板》
跟着这位博主的教程一步步复现,从中也学习到了很多知识,uboot也可以拷贝到RAM中运行。
只不过在刷写flash这部分卡住了,刷完之后拔掉JLINK,手动关闭开启电源,然后TTL并没有输出任何log。 我使用了下面四种教程介绍的方法:
1.通过Web Failsafe刷
代码中本机的ip我通过改rt2880.h改为了
#define CONFIG_SERVERIP 192.168.1.10
#define CONFIG_IPADDR 192.168.1.20
由于我编译出来的uboot.bin
超出了这个网页更新大小的限制,于是改了uboot代码:
还是rt2880.h
//#define WEBFAILSAFE_UPLOAD_UBOOT_SIZE_IN_BYTES ( 128 * 1024 )
//改为如下
#define WEBFAILSAFE_UPLOAD_UBOOT_SIZE_IN_BYTES ( 192 * 1024 )
我看代码是一开机不管选什么都会自动选"5",即web failsafe模式,于是改代码board.c,1605行:
BootType = getc();// if ((BootType < '1' || BootType > '5') && (BootType != '7') && (BootType != '8') && (BootType != '9'))//BootType = '5';printf("\n\rYou choosed %c\n\n", BootType);
将BootType = '5';
注释掉
通过编译成功的带httpd的uboot.bin
,用openocd拷贝到内存中运行,开机选择5
进入web failsafe模式,此时打开浏览器输入192.168.1.20
,进入带openwrt字样的网页,选择uboot.bin
然后点击更新:
更新后如上图,虽然显示Rebooting...
,但是板子并没有重启,而且没有log输出,网络也不通,很明显uboot没有启动,具体原因不明,如果有知道的小伙伴欢迎下方留言,不胜感激!
2.通过uboot command,用tftp32刷
还是使用刚才的uboot,加载到内存运行后,开机输入4进入命令行
此时将tftp32.exe
复制到uboot.bin
文件夹下,并点开(不需要额外配置)
进入命令行模式后按行输入:
setenv serverip 192.168.1.103 //设置默认连接的tftp服务器的地址,我台式电脑的ip
tftpboot 0x80100000 uboot.bin //连接tftp服务器,下载uboot.bin文件到RAM中的0x80100000地址中
protect off all //取消flash写保护功能
erase 0xBF000000 0xBF03FFFF //将flash中0xbf000000~0xbf03ffff的内容擦除
cp.b 0x80100000 0xBF000000 0x40000 //将RAM中 0x80100000开始内容复制到flash中0xbf000000内,大小为0x40000
protect on all //打开flash写保护功能
saveenv //保存变量到flash
此时可以看到擦除并写入flash成功,我重启了路由器,但是现象和第一种一样,开机没log,网络不通,uboot应该还是没有启动。
3.openocd flash_uboot命令刷
由于在openocd下使用flash_uboot
命令刷写会报错误:
error writing to flash at address 0xbf000000 at offset 0x00000000flash write_bank bank_id filename offset
根据这篇文章下面的评论,修改了 openocd-ralink.cfg
文件:第十七期 U-Boot norflash 操作原理分析 《路由器就是开发板》
此时可以每秒钟256字节速率写进去:
此时重启路由器的现象同上,不行。
4.uboot刷机模式刷入
这个刷机模式就是uboot刚启动时选择的9
模式
此时重启路由器,现象同上。
分享出来我刷机的过程,希望能找出问题所在,欢迎热心的大家在下面留言!
================ 2021/3/14更新 ================
昨晚想出来为什么了,并且刷进去uboot和自己编了一晚上的openwrt了。
原来是我犯了低级错误:之前按教程在make menuconfig页面选的是编译RAM版本。
在这个页面改成如图的ROM即可,再sudo make
编译
之后进入RAM里的uboot,选择9
进入tftp刷uboot的模式:
这样它刷完后rebooting就可以进入flash中的uboot了。
同样,在开机的时候选择2
可以进入刷openwrt的页面,下图是成功进入openwrt:
至此,flash刷写完毕。
但是问题是这个我编译的openwrt并没有什么作用,在浏览器输入192.168.1.1
和192.168.1.20
都连接无响应,并且上不了网,估计openwrt固件编译的不对。后面我再熟悉一下openwrt功能,可能会再更新,希望复刻这个项目的朋友可以少走一些弯路。谢谢观看!
HG255D刷flash记录相关推荐
- android+tv盒子+主界面,x96max+ 盒子 与 CoreELEC系统配置(三)AndroidTV刷机记录
x96max+ 盒子 与 CoreELEC系统配置(三)AndroidTV刷机记录 2020-03-19 22:05:49 39点赞 211收藏 59评论 本文简要记录一下AndroidTV的刷机过程 ...
- Intel-Joule-570x刷板记录
Intel-Joule-570x刷板记录 前言 准备材料 流程 Bios刷入 Ubuntu系统安装 前言 不知道你是出于什么契机和笔者一样需要使用570x这块板子,由于已经停产,网上现有的刷版资料寥寥 ...
- LeetCode刷题记录15——21. Merge Two Sorted Lists(easy)
LeetCode刷题记录15--21. Merge Two Sorted Lists(easy) 目录 LeetCode刷题记录15--21. Merge Two Sorted Lists(easy) ...
- LeetCode刷题记录14——257. Binary Tree Paths(easy)
LeetCode刷题记录14--257. Binary Tree Paths(easy) 目录 前言 题目 语言 思路 源码 后记 前言 数据结构感觉理论简单,实践起来很困难. 题目 给定一个二叉树, ...
- LeetCode刷题记录13——705. Design HashSet(easy)
LeetCode刷题记录13--705. Design HashSet(easy) 目录 LeetCode刷题记录13--705. Design HashSet(easy) 前言 题目 语言 思路 源 ...
- LeetCode刷题记录12——232. Implement Queue using Stacks(easy)
LeetCode刷题记录12--232. Implement Queue using Stacks(easy) 目录 LeetCode刷题记录12--232. Implement Queue usin ...
- LeetCode刷题记录11——290. Word Pattern(easy)
LeetCode刷题记录11--290. Word Pattern(easy) 目录 LeetCode刷题记录11--290. Word Pattern(easy) 题目 语言 思路 源码 后记 题目 ...
- LeetCode刷题记录10——434. Number of Segments in a String(easy)
LeetCode刷题记录10--434. Number of Segments in a String(easy) 目录 LeetCode刷题记录9--434. Number of Segments ...
- LeetCode刷题记录9——58. Length of Last Word(easy)
LeetCode刷题记录9--58. Length of Last Word(easy) 目录 LeetCode刷题记录9--58. Length of Last Word(easy) 题目 语言 思 ...
- LeetCode刷题记录8——605. Can Place Flowers(easy)
LeetCode刷题记录8--605. Can Place Flowers(easy) 目录 LeetCode刷题记录8--605. Can Place Flowers(easy) 题目 语言 思路 ...
最新文章
- Linux: /dev/fd/详解
- R语言连接MySQL报错:could not run statement: The used command is not allowed with this MySQL version
- java iostream_【JAVA】IOStream
- 在centos6.4 编译64位的hadoop 2.4.1
- 执行计划重编译的时机
- 聊聊jdk http的HeaderFilter
- 【BZOJ2095】【POI2010】Bridge 网络流
- 20145240《信息安全系统设计基础》第十四周学习总结
- python列表写入字典_python – 将列表字典写入CSV文件
- python找数字程序_程序以查找Python中从1到N的所有缺失数字
- 推荐系统入门必读论文
- java搭建线程池框架_JAVA线程池经管及分布式HADOOP调剂框架搭建
- MFC中Doc,View,MainFrmae,App各指针的互相获取
- javascript(基础)_对数组的遍历方法总结(find, findIndex, forEach,)
- React五——React-router
- 声音均衡器怎么调好听_调音师必备:如何调出最佳人声?
- Spring核心JAR包
- html自定义指针,如何自定义鼠标指针 怎样在wpf中自定义鼠标指针
- Win7安装CAD出现错误1606 最简单的解决方法
- codeforces C - Dwarves, Hats and Extrasensory Abilities
热门文章
- 【QT】基于HTTP通信的天气查询的实现
- 简单的Flash网络游戏源代码
- 计算机新建没有文本文档,我的电脑新建文本文档没有显示TXT,为什么?
- Android源码学习(一)系统源码初识
- ViewFlipper使用详解
- c语言小游戏百度云资源,c语言小游戏合集
- 牛顿插值法 matlab程序计算方法,牛顿插值法matlab程序
- 佳能ir2002g无法扫描到计算机,佳能ir2002g扫描驱动
- 系统同传软件_影视翻译软件可实时在线翻译多国语言
- vue 插槽的版本变化1.x-2.6.0-3.x(详细)