https://blog.csdn.net/aggresss/article/details/52573265

从这一期开始我会利用10期的量来在我们之前改造过的开发板上进行U-Boot相关的实验,目标是将ralink_SDK3.6版本的U-Boot增加 web failsafe 功能,就是论坛里大家说的”不死U-Boot“的特殊功能,可以通过web的形式加载固件。当然,以U-Boot的代码量,想要系统化详细分析是一个巨大的工程,所以我的方式是讲解一些基础知识,然后再讲解为实现某一功能的改造的过程,通过这个过程,让大家掌握对U-Boot分析、学习和改造的方法。
        关于U-Boot的介绍可以参看U-Boot的官方wiki http://www.denx.de/wiki/U-Boot/WebHome 
        U-Boot是德国DENX小组的开发用于多种嵌入式CPU的bootloader程序, U-Boot不仅仅支持嵌入式Linux系统的引导,当前,它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS嵌入式操作系统。UBoot除了支持PowerPC系列的处理器外,还能支持MIPS、 x86、ARM、NIOS、XScale等诸多常用系列的处理器。
        U-Boot的介绍我在这里就不做赘述了,任何一本和嵌入式开发相关的书籍都会提到U-Boot,可以有很多种方式去了解U-Boot的理论知识,我在这里还是以讲解动手操作为主。
        ftp://ftp.denx.de/pub/u-boot/  可以下载到所有的U-Boot版本。
        U-Boot版本命名规则:
        (1)2008年8月及以前按版本号命名:例如u-boot-1.3.4;
        (2)2008年8月以后均按日期命名:例如u-boot-2011.06(2011年6月更新)
        我们采用的ralink_SDK3.6使用的是U-Boot早期的1.1.3版本,并在其上做了一些删减和修改,具体做了哪些改动我们可以借助比对工具进行分析,这里推荐两个工具beyond compare 和 meld 分别是windows和linux的比对工具,都是基于图形界面,可以清晰的看到代码的增删状态。

Ralink_SDK中的U-Boot我们可以拿来直接使用,一些针对HG255d的移植我们在后几期再讨论,这里先初步体验一下。在SDK的Code目录下的Uboot文件夹就是Ralink_SDK3.6的U-Boot,在linux环境下,安装必要的编译工具后进入该目录然后 make menuconfig 命令,进入如下的界面:

将每个选项选择到如下状态,关于DRAM Component 选择128Mb 这个作出解释,HG255d的RAM是32MByte容量,由两颗16bit位宽的RAM芯片并列组成,所以是32位宽,这里注意下一大写的B表示byte,小写的b表示bit,1byte=8bit,DRAM Component 值表示单颗RAM芯片的bit数量,DRAM Component选择128Mbit,128Mbit = 16MByte,两颗16MByte得容量就是32MB。
        将配置保存,然后 make 就能生成Uboot的可执行文件 uboot.bin 将 文件导入hg255d的内存然后运行,具体的操作方法请参考第十期。U-boot的默认console通过TTL输出,可以使用串口调试工具查看U-Boot的输出信息,我这里使用的是SecureCRT,Ralink的U-Boot的console波特率默认为57600bps 具体的连接参数为:

接收到的信息为:

U-Boot 1.1.3 (Sep 15 2016 - 18:21:14)Board: Ralink APSoC DRAM:  16 MB
relocate_code Pointer at: 80fb0000
config usb..Set info->start[0]=BF000000
flash_protect ON: from 0xBF030000 to 0xBF030FFF
*** Warning - bad CRC, using default environment============================================
Ralink UBoot Version: 3.6.0.0
--------------------------------------------
ASIC 3052_MP2 (Port5<->None)
DRAM component: 128 Mbits SDR
DRAM bus: 32 bit
Total memory: 32 MBytes
Flash component: NOR Flash
Date:Sep 15 2016  Time:18:21:14
============================================
icache: sets:256, ways:4, linesz:32 ,total:32768
dcache: sets:128, ways:4, linesz:32 ,total:16384 ##### The CPU freq = 384 MHZ #### estimate memory size =16 MbytesPlease choose the operation: 1: Load system code to SDRAM via TFTP. 2: Load system code then write to Flash via TFTP. 3: Boot system code via Flash (default).4: Entr boot command line interface.7: Load Boot Loader code then write to Flash via Serial. 9: Load Boot Loader code then write to Flash via TFTP. You choosed 30 3: System Boot system code via Flash.
## Booting image at bf050000 ...
Bad Magic Number,FFFFFFFF

默认是启动系统,如果在启动时输入4,可以进入命令模式:

You choosed 40 4: System Enter Boot Command Line Interface.U-Boot 1.1.3 (Sep 15 2016 - 18:21:14)
RT3052 # ?
?       - alias for 'help'
bootm   - boot application image from memory
cp      - memory copy
erase   - erase FLASH memory
go      - start application at address 'addr'
help    - print online help
loadb   - load binary file over serial line (kermit mode)
md      - memory display
mdio   - Ralink PHY register R/W command !!
mm      - memory modify (auto-incrementing)
mw      - memory write (fill)
nm      - memory modify (constant address)
printenv- print environment variables
protect - enable or disable FLASH write protection
reset   - Perform RESET of the CPU
rf      - read/write rf register
saveenv - save environment variables to persistent storage
setenv  - set environment variables
spicmd  - read/write data from/to eeprom or vtss
tftpboot- boot image via network using TFTP protocol
version - print monitor version
RT3052 #

可以输入命令了解一下与U-Boot的交互方式,如果你是第一次接触U-Boot那可以利用搭建好的环境结合一些理论知识对U-Boot进行一次系统的学习,我的原则就是边动手边学习,所有的理论学习都要通过一次动手实践来巩固。文章前面讲到的是怎样实现一个最简单的U-Boot实践环境,接下来我们会继续深入,分析U-Boot的编译和运行原理。
---------------------------------------------------------------------------
SDK下载地址:   https://github.com/aggresss/RFDemo

第十一期 U-Boot介绍《路由器就是开发板》相关推荐

  1. 第二十五期 总结《路由器就是开发板》

    在读<人人都是产品经理>这本书时,我最大的收获就是:不光要低头拉车,还要抬头看路.研究技术为了一个问题不吃不睡是经常的,但为了一个超出个人挑战能力的问题浪费时间而影响到团队的进度是万万不可 ...

  2. 第十期 路由器调试之HelloWorld 《路由器就是开发板》

            前面几期都是在做准备工作,这一期我们开始实际操作.很多教程的开始都喜欢用HelloWorld来先做个演示,我也不例外,在硬件开发板教程里流水灯就是一种HelloWorld,程序简单,只 ...

  3. 第一期 前言 《路由器就是开发板》

    大家好,路由器就是开发板这个提议最早是在2010年的时候在逛一个国外的论坛时看到有人提到的,那时我还处在一个从论坛上下载一个固件刷成功后兴奋不已的阶段.上大学时WIFI刚刚兴起,还是802.11b的年 ...

  4. 第二期 开发板选型 《路由器就是开发板》

            首先说明一下我为什么要用路由器作开发板.         第一,路由器是一件成熟的商品,它经历了厂商和消费者的考验,其设计肯定是相对成熟的,我们用它作开发板是在这个路由器经历了完整的产 ...

  5. 第十九期 基于HG255d_U-Boot的uIP移植《路由器就是开发板》

    前面三期我们大略了解了U-Boot的三个常用功能,串口调试输入输出,flash操作,和网络连接,这一期我们来进行U-Boot的改造,我们改造的主题是优化U-Boot的网络功能,我们最终的目的是优化U- ...

  6. 第五期 Jlink调试路由器 《路由器就是开发板》

    https://blog.csdn.net/aggresss/article/details/52337449 如果第四期提到的你都做完啦,而且还满怀希望的看第五期,那真真是极好的.这一节我们就让路由 ...

  7. 第六期 Wiggler调试路由器 《路由器就是开发板》

    JTAG接口的调试器有很多种,一般都很贵RMB四位数的也有,尤其是MIPS的开发板不想ARM市场那么广,所以调试器的价格确实很贵,对于学习研究来说当然还是本着开源共享的原则,所以我们需要探索一条开源免 ...

  8. Hi3516开发笔记(一):海思HI3516DV300芯片介绍,入手开发板以及Demo测试

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/121314575 长期持续项目技术分享,Shang业Di ...

  9. RK3568开发笔记(一):瑞芯微RK3568芯片介绍,入手开发板的核心板介绍

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/124900731 红胖子(红模仿)的博文大全:开发技术集 ...

最新文章

  1. java反序列化漏洞的一些gadget
  2. GPIO做输出还能作外部中断输入吗?
  3. 两个Python web框架:Django Tornado比较
  4. Spring Android 1.0.0.M3 发布
  5. Python3网络爬虫开发实战,IP代理池的维护
  6. 如何成为一名牛逼Web前端开发人员?入行学习完整指南
  7. 0.计划用libgdx写一个六边形回合制slg兵棋游戏
  8. [Python] 字典 items()方法:同时对字典的键和值进行遍历
  9. Nginx基础和原理介绍
  10. eclipse新建java项目_用eclipse创建Java项目(以一个初学者的角度全面教学)
  11. 【路径规划】基于matlab A_star算法机器人走迷宫路径规划【含Matlab源码 1332期】
  12. PADS2007破解方法之图文并茂版----本人亲自实践
  13. 使用webpack搭建vue项目;webpack+vue
  14. 2021年应届生,找java后端开发要什么水平才算合格?
  15. “抛弃 Gmail!”
  16. 做VR需要UI设计师具备哪些能力?
  17. bugku rev1(xman) WP
  18. 我的开源项目:C++ Qt高仿QQ影音视频播放器
  19. 取得df的列名的列表,取得df的列宽,把df的列融入成为其他df的列
  20. Samsung 展示6G 原型,测试速度达6.2Gbps,最终目标为1000Gbps

热门文章

  1. 个人博客后台管理系统
  2. MuMu模拟器网络连接异常如何处理?
  3. MATLAB-基于长短期记忆网络(LSTM)的SP500的股票价格预测 股价预测 matlab实战 数据分析 数据可视化 时序数据预测 变种RNN 股票预测
  4. ios快捷指令:一键登录/登出南京大学校园网
  5. smb连接错误“请检查服务器名称或IP地址,然后再试一次,如果问题持续发生,请联系系统管理员“
  6. SUSE12 LVM- Logical Volume Manager(逻辑卷管理)实例
  7. HTML5和CSS3核心笔记
  8. Windows Server 2003 R2标准版 SP2 64位 (简体中文)官方原版ISO镜像迅雷下载
  9. 自媒体一键多平台分发工具,自媒体人必备
  10. 【测试用例】一支笔的测试用例