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

        前面几期都是在做准备工作,这一期我们开始实际操作。很多教程的开始都喜欢用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引脚短接再开机,正常识别后再断开即可,具体参考:


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



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


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

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

欢迎使用全球首款能接网卡的智能路由-荣欣路由,一直被模仿,从未被超越,请记住:荣欣科技 =========================================================================================================== 荣欣系统目前分为两个版本,M1系列和M2系列,不是M2就比M1新。 M2.2.9 加入迅雷远程下载,手机可以下载客户端远程查看迅雷列表 M1.2.4 加入迅雷远程下载,手机可以下载客户端远程查看迅雷列表 M2.2.6 1.解决旧款路由刷上系统之后,有线获取不了IP的问题。 2.重新添加多无线管理。 3.重新添加智能中继。 M2.2.5 1.根据5代和6代开发,把网口的序列纠正,1-4代的顾客请注意了,你们的lan1和wan口有可能是反过来的。 M2.2.4 1.更新新内核 2.加入原厂rtl8188ru驱动 3.更新NTFS新驱动,使用NTFS格式的顾客可以,吞吐量很惊人。 =========================================================================================================== M2.2.3 1.修复自身中继删除信号 2.加入自动识别硬盘,自动配置网络共享,直接打开我的电脑,在地址栏输入\\192.168.10.1即可访问移动储存设备。 M2.2.0 叠加软件加入全局开关,需要在多WAN负载均衡的配置哪里打开全局才会启动多WAN负载均衡 M1.2.1 叠加软件加入全局开关,需要在多WAN负载均衡的配置哪里打开全局才会启动多WAN负载均衡 M1.2.0 加入智能QOS和PPPOE服务器 M2.1.8 修复自身无线重启之后不能获取IP地址,更新无线中继智能控制脚本(待测试,不稳定的话就去掉,及时反馈) M2.1.6 修复了挂载RT3070网卡,修改了多WAN负载均衡的设置(请看新教程) M1.1.5 加入了M2.1.6的软件 M2.1.5 加入了叠加软件,广告过滤 M2.1.4 去掉刷机时默认保留配置,即刷机不保留配置,修复3070重新加信号需要删除wwan,无线驱动改用最新版本,可以当网卡 使用,也可以当AP,也可以当中继(当网卡用没有多无线控制) M1.1为新源码,主要特点有:防止系统恢复出厂无故丢失系统,无线自身网卡可当网卡使用(即不发射Ap),也能当中继使用, 但是路由必须接收到上一级信号,才会发射信号。主要解决问题:1.可能能减少无线的衰减 2.系统丢失 N2.8.1 添加了无线自身中继的多无线管理 N1.7.0 添加了无线自身中继的多无线管理 N2.8.0 修复多WIFI管理器的扫描信号,只适合3070网卡。使用方法:先接入一个信号,然后到wifi管理器加入3个信号,事实 上,路由一共可以加4个信号,第一次加进去的信号加入掉线,掉线之后会连接wifi管理器的无线信号①(首先连接),如此类 推。 N2.7.9 加入众多顾客要求的多wifi管理器,即一台路由输入多个无线在路由,并非同时连接多个信号,举个栗子:无线路由A 关闭了,路由会2分钟内自检,连接无线路由B,无线路由B连不上,会连接无线路由C。目前还不够完善,做不到自动连接信号 高的无线路由,有待完善,荣欣科技谢谢您的支持。 N2.7.8 为了自身的中继把无线300M下降到144M,兼容性更好,抗干扰更好,自身无线脚本自适应加密方式(解决获取IP但 是上不了网。)支持13频道,支持上级SSID空格。添加了打印机服务器。RT3070L,无线脚本自适应加密方式(解决获取IP 但是上不了网。)支持13频道,支持上级SSID空格。 N2.7.4 添加打印机服务器(成功运行),添加了无线叠加软件(测试中,可能需要更换),无线自身脚本稍微更改,N2的 系列的RT3070L脚本也更改了(可能会出现链接不上的情况,链接不上请使用N1系列),N1和N2系列均加了RTL8187驱动, 两个是不同的,请轮流测试。 =========================================================================================================== N1和N2主要的更新内容: N2系列 使用的是闭源的RT3070L驱动(性能比开源的要好)适合RT3070L、RT3072。适合连接家用的信号。 N1系列 使用的是开源的RT3070L驱动,适合RT2870,RT3070L,RT3072,具有无线信号绑定,即绑定一个信号点。 =========================================================================================================== 请支持正版,谢谢。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值