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

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

 前面几期都是在做准备工作,这一期我们开始实际操作。很多教程的开始都喜欢用HelloWorld来先做个演示,我也不例外,在硬件开发板教程里流水灯就是一种HelloWorld,程序简单,只要控制GPIO就能实现,并且直观明显。现在开始动手将HG255d实现流水灯功能,实现后的效果是这样的:


如果你感兴趣,那我们就先来动手操作一下,算是控制开发板的第一步。
首先编译环境是在linux_32位下进行的,需要搭建一个linux开发环境,这里以Ubuntu14.04为例,
$ sudo apt-get update
$ sudo apt-get install git g++ make libncurses5-dev subversion libssl-dev gawk libxml-parser-perl unzip wget python xz-utils vim
编译工具链我们使用Ralink的SDK里提供的,如果想自己编译也可以,网上有很多教程可以借鉴,SDK目录下Tools文件夹下的 buildroot-gcc342.tar.bz2 文件就是编译工具链,在Linux下的操作为:
        1. 进入SDK/Tools目录 cd xxxx/RFDemo/Tools
        2. 解压buildroot-gcc342.tar.bz2文件到/opt目录下 tar -jvxf buildroot-gcc342.tar.bz2 -C /opt
        3. (可选) 将/opt/buildroot-gcc342/bin/ 目录添加到Path变量中: vim ~/.profile 在末尾加入
        # MIPS Toolchain mipsel-linux-xxx
        PATH=$PATH:/opt/buildroot-gcc342/bin
重启后执行 mipsel-linux-gcc -v 就可以看到工具链的版本信息。
编译工具准备好后,开始生成我们想要的流水灯程序,这里因为我们想作最小的改动实现最小的功能,我就不单独生成工程了,而是直接在Uboot上修改,采用给Uboot打补丁的形式来演示我们的流水灯程序。这里再说明一下,以后的演示示例我都是已补丁的形式给出,这样做的好处有两点:1.对于复杂的工程可以清楚的看到修改了哪些地方;2.patch文件的操作是可逆的,实验完成后可以恢复。
进入SDK的Code/Uboot目录下 然后执行 patch -p1 < ../Patch/led_run.patch
如图所示:

然后执行 make menuconfig 就会出现编译配置程序,将所有选项改成下图的状态:

然后 Exit 选择 yes 保存并退出。

再执行 make 生成 uboot.bin 可执行文件


编译完成后如果在当前目录下生成了 u-boot 文件 就说明编译成功,接着就可以进行下一步啦,如果不成功,就细心找找原因。将 uboot.bin 文件放到OpenOCD的bin目录下 ,运行OpenOCD服务,如果不清楚请详细看前几期介绍,再使用telnet工具访问OpenOCD服务 telnet 127.0.0.1 4444 ,telnet成功后执行两条命令:
halt 和 run_uboot 
结果如下所示:
 

>Open On-Chip Debugger
> halt
target state: halted
target halted in MIPS32 mode due to debug-request, pc: 0x9f000380
> ralink_init
> run_uboot
125248 bytes written at address 0x00200000
downloaded 125248 bytes in 3.163181s (38.668 KiB/s)
>

如果显示如下的信息,你会惊喜的发现我们的开发板已经动起来了,流水灯程序就这样跑起来了。具体的原理我们以后分析,先来个小的Demo演示一下增加点兴趣。
如果显示如下的信息,你会惊喜的发现我们的开发板已经动起来了,流水灯程序就这样跑起来了。具体的原理我们以后分析,先来个小的Demo演示一下增加点兴趣。
这里需要注意一下如果在执行halt命令后pc的值为pc:0x00000000,那么说明你的开发板的U-Boot还能正常运行并将JTAG接口初始化为了GPIO口,这种情况需要将flash的53和54引脚短接再开机,正常识别后再断开即可,具体参考:
http://www.openwrt.org.cn/bbs/forum.php?mod=viewthread&tid=9314
http://www.right.com.cn/forum/thread-105069-1-1.html


当然,做完实验后要清理现场,因为Code目录下的程序以后还要用到,所以我们要把刚才的修改再还原回去,执行下面两个步骤就OK:
1. make distclean
2. patch -R -p1 < ../Patch/led_run.patch


到这里《路由器就是开发板》的准备工作就讲完了,下一期开始我会从源码分析问题,先说U-Boot再讲OpenWRT。


---------------------------------------------------------------------------

SDK下载地址:   https://github.com/aggresss/RFDemo

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
开发路由器和虚拟机是不同的技术设备,它们在TCP(传输控制协议)方面有着各自独特的功能和作用。 首先,开发是一种硬件设备,它通常由一块主和多个外部接口组成,用于开发和测试各种嵌入式系统和电子项目。开发可以通过TCP与其他设备进行通信,例如与计算机或服务器进行数据传输。通过TCP,开发可以保证数据的可靠性和稳定性,确保数据在传输过程中不会丢失或损坏。 其次,路由器是一种网络设备,用于将数据包从一个网络转发到另一个网络。路由器在数据包的转发过程中使用TCP协议来确保数据的可靠传输。通过TCP,路由器可以跟踪传输的数据包,并确保它们按照正确的顺序到达目标网络。此外,路由器还可以执行网络地址转换(NAT)和端口转发等功能,以提供更好的网络连接和安全性。 最后,虚拟机是一种在一个物理计算机上模拟多个独立的虚拟计算机环境的技术。虚拟机可以通过TCP与其他虚拟机或物理设备进行通信,并使用TCP协议确保数据的传输。虚拟机可以创建和管理自己的虚拟网络,通过TCP与其他虚拟机或物理设备进行网络通信。通过TCP,虚拟机可以提供分布式计算和资源共享等功能,使得系统更具弹性和可扩展性。 总之,开发路由器和虚拟机在TCP方面都发挥着重要的作用。它们通过TCP协议确保数据的可靠传输和网络通信,为各种应用和系统提供了强大的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值