路由器就是开发板
文章平均质量分 90
aggresss
开源社区搬运工/二手市场垃圾佬
展开
-
第六期 Wiggler调试路由器 《路由器就是开发板》
JTAG接口的调试器有很多种,一般都很贵RMB四位数的也有,尤其是MIPS的开发板不想ARM市场那么广,所以调试器的价格确实很贵,对于学习研究来说当然还是本着开源共享的原则,所以我们需要探索一条开源免费的调试器方案。经过在论坛的持续潜水终于发现了这个叫Wiggler的东西。 Wiggler是世界上最泛滥的一种调试工具,它非常简单,只需要一片74HC244八路正相缓冲器/线路驱动器原创 2016-08-28 18:36:16 · 6034 阅读 · 2 评论 -
第十八期 U-Boot 网络原理分析《路由器就是开发板》
上一期在写入flash时用到了tftp服务tftpboot 0x80100000 uboot.bin,也就是通过网络传输协议,这一期我们来分析一下U-Boot是怎么控制hg255d进行网络传输的。首先,在common/cmd_net.c 文件中找到tftpboot的定义,U_BOOT_CMD( tftpboot, 3, 1, do_tftpb, "tftpboot- boot imag原创 2016-09-30 16:53:17 · 3955 阅读 · 2 评论 -
第八期 RT3052F芯片分析 《路由器就是开发板》
这一期来了解一下Ralink的RT3052芯片,也许在做产品开发的人会不屑于这么陈旧的芯片,但是当你了解了MT7688或者MT7621之后就会发现,这些芯片的核心思想和开发方式都是不变的,差别就是各项参数的提高,细微的功能增加和删减。Ralink在被MTK收购前风格也和MTK很相近,都是基于Turnkey的原则设计芯片。SOC,Demoboard,SDK,各种一站式服务。所以可以看到,那些半路出道原创 2016-08-30 23:20:41 · 13429 阅读 · 1 评论 -
第七期 OpenOCD配置分析 《路由器就是开发板》
这一节我们来说说OpenOCD。刚开始接触嵌入式硬件时只知道写程序,觉得调试根本不需要,随着时间的积累和问题复杂度的提升,才发现调试对于一个系统的重要性。生活中很多这样的例子,调试,永远都是事物良性发展过程中必不可少的一个环节,两个人过日子遇到了矛盾,静下来沟通就是调试,总不能一言不合就分手。在设计一个产品或者一个流程时,都要充分的考虑到调试因素,这样系统在运行过程中一旦出现了问题,可以及时的追溯原创 2016-08-28 18:58:05 · 10739 阅读 · 4 评论 -
第十九期 基于HG255d_U-Boot的uIP移植《路由器就是开发板》
前面三期我们大略了解了U-Boot的三个常用功能,串口调试输入输出,flash操作,和网络连接,这一期我们来进行U-Boot的改造,我们改造的主题是优化U-Boot的网络功能,我们最终的目的是优化U-Boot的交互界面,最终通过WEB方式与U-Boot进行交互。 U-Boot自带的网络功能都是为了实现从网络上copy数据到本地,并没有引入TCP/IP协议栈的架构,这样限制了很多网原创 2016-10-04 22:23:37 · 3990 阅读 · 0 评论 -
第二十三期 基于hg255d的OpenWrt固件编译《路由器就是开发板》
这一期来进行OpenWrt的编译,我们的最终目的是生成可以被U-Boot引导的OpenWrt固件,整个编译过程比较耗时,根据网络情况而定,我用了3个小时,编译磁盘要预留10G的存储空间。 编译步骤如下:git git://git.openwrt.org/15.05/openwrt.git./scripts/feeds update -a./scripts/feeds原创 2016-10-07 22:52:32 · 5899 阅读 · 0 评论 -
第二十二期 OpenWrt 原理和结构分析《路由器就是开发板》
这一期我们来真正的接触OpenWrt,这个接触是从源码方面的,不是刷机后通过web登录配置的那种。Wrt(Wireless RouTer)的历史和文化大家可以自行搜索一下,很有趣的。 当Linksys释放 WRT54G/GS 的源码后,网上出现了很多不同版本的 Firmware 去增强原有的功能。大多数的 Firmware 都是99%使用 Linksys的源码,只有1%是加上去的原创 2016-10-07 22:48:35 · 12425 阅读 · 0 评论 -
第二十一期 U-Boot启动OpenWrt实验 《路由器就是开发板》
这一期我们来做一个引导OpenWrt的实验,虽然还没有讲到OpenWrt的内容,但这里我们先拿一个我编译好的固件来实验一下,具体固件怎么编译下一期再讲。如果使用RalinkSDK3.6的U-Boot进行编译出来的U-Boot启动时TTL会输出如下信息:3: System Boot system code via Flash.## Booting image at bf050000 ..原创 2016-10-07 22:43:55 · 7839 阅读 · 0 评论 -
第二十五期 总结《路由器就是开发板》
在读《人人都是产品经理》这本书时,我最大的收获就是:不光要低头拉车,还要抬头看路。研究技术为了一个问题不吃不睡是经常的,但为了一个超出个人挑战能力的问题浪费时间而影响到团队的进度是万万不可取的。看到有人时不时晒加班博得大家得认可,聊天时总要把自己怎么怎么辛苦和勤奋挂在嘴边,我觉得这都是在用战术上的辛苦来掩盖战略上的懒惰。这一期我们来分析一下无线路由器的行业环境和前景,在埋头学习技术的同时也要分析一原创 2016-10-08 00:47:47 · 5113 阅读 · 18 评论 -
第二十四期 OpenWrt ipk helloworld 《路由器就是开发板》
OpenWrt作为一个Linux的发行版,同样由各种软件构建了上层的生态系统,它有自己的应用封装方式,和debian系的deb文件,redhat系的rpm文件一样OpenWrt的应用封装文件为ipk,应用的管理软件为opkg。这一期我们来学习一下在OpenWrt系统环境下怎样开发和发布应用程序。 在上一期编译好的OpenWrt的bin目录下有一个文件:OpenWrt-SDK-ra原创 2016-10-08 00:44:42 · 6392 阅读 · 0 评论 -
目录 《路由器就是开发板》
第一篇 准备工作 10 |--1.前言 |--2.路由器选型 |--3.约定 |--4.jtag接口和TTL接线 |--5.Jlink调试路由器 |--6.Wiggler调试路由器 |--7.OpenOCD配置分析 |--8.RT3052F芯片分析 |--9.HG255d硬件分析 |--10.路原创 2016-10-08 00:49:34 · 23619 阅读 · 1 评论 -
第十期 路由器调试之HelloWorld 《路由器就是开发板》
前面几期都是在做准备工作,这一期我们开始实际操作。很多教程的开始都喜欢用HelloWorld来先做个演示,我也不例外,在硬件开发板教程里流水灯就是一种HelloWorld,程序简单,只要控制GPIO就能实现,并且直观明显。现在开始动手将HG255d实现流水灯功能,实现后的效果是这样的:如果你感兴趣,那我们就先来动手操作一下,算是控制开发板的第一步。首先编译环境是在linux_3原创 2016-09-06 23:34:54 · 9246 阅读 · 12 评论 -
第一期 前言 《路由器就是开发板》
大家好,路由器就是开发板这个提议最早是在2010年的时候在逛一个国外的论坛时看到有人提到的,那时我还处在一个从论坛上下载一个固件刷成功后兴奋不已的阶段。上大学时WIFI刚刚兴起,还是802.11b的年代,当时特有想法,用一个磊科的WR加一个定向天线架在寝室对面的楼顶,用WR当AP,PC装个Mirotek的RouterOS当AC,利用PPPOE漏洞截获几个免费账号实现多拨,请全楼的人免费上网,每天看原创 2016-08-24 22:04:33 · 12759 阅读 · 7 评论 -
第十七期 U-Boot norflash 操作原理分析 《路由器就是开发板》
在一些论坛里大家说路由器变砖了往往指的就是flash中关键的内容被清空了。就像PC中的硬盘被格式化了一样,有点常识都知道,硬盘被清空了只要没有重要数据,从技术角度讲并不大碍,重新安装一个操作系统就可以了,PC的硬盘相对于路由器的flash简单的地方就在于PC机的底层还有一个标准的BIOS系统,可以支持从其他介质比如光盘,U盘,网络启动PE环境进行一些操作,而且硬盘容易拆卸,很方便导入数据,但路由器原创 2016-09-28 21:20:39 · 4197 阅读 · 9 评论 -
第五期 Jlink调试路由器 《路由器就是开发板》
如果第四期提到的你都做完啦,而且还满怀希望的看第四期,那真真是极好的。这一节我们就让路由器动起来,并且验证第四期的飞线是否成功。如果你没有Jlink调试器可以跳到下一期,使用Wiggler或者自制Wiggler调试器。 HG255d的CPU属于MIPS架构,而Jlink调试器是我当年学习ARM时买的,大家都说Jlink只能调试ARM,但有一次用Jlink官方的工具时无意间原创 2016-08-27 22:28:54 · 10829 阅读 · 8 评论 -
第四期 JTAG接口和TTL接口 《路由器就是开发板》
这一节我们来进行一些准备工作,主要两个任务:1.制作JTAG接口作为CPU硬件级别调试,2.引出TTL线,作为console接口。这是一个门槛,首先要求你有一点焊接经验,至少能精美的焊接DIP封装的芯片,只有这样才会对烙铁使用有一个感性认识。我们首先要做的是在hg255D路由器上飞线,来将JTAG接口引出,达到调试路由器的目的,路由器上所有器件均是SMT工艺,稍不留神路由器就真的物理变砖了,所原创 2016-08-27 16:23:03 · 15643 阅读 · 2 评论 -
第三期 约定 《路由器就是开发板》
在开始前一切之前,声明一下以后章节的约定,所有使用到的工具和开发环境都会在这里有一个说明。文章中所有提到的文件或者代码如果不做说明都可以在下面这个链接里找到:https://github.com/aggresss/RFDemo一、关于使用的操作系统。我不是任何一个操作系统的激进分子,我坚持的认为任何操作系统都有它自身的优势和独特的生态系统,所以只要能以最高的效率做完一件事,你可以使用任意操作系原创 2016-08-27 13:45:41 · 7225 阅读 · 3 评论 -
第二期 开发板选型 《路由器就是开发板》
首先说明一下我为什么要用路由器作开发板。第一,路由器是一件成熟的商品,它经历了厂商和消费者的考验,其设计肯定是相对成熟的,我们用它作开发板是在这个路由器经历了完整的产业链流程最终到达消费者手里之后,这样我们可以从很多确定的东西里回顾式的分析,回顾式的分析有时候是站在巨人的肩膀上,可以学到很多细节。第二,我们的目的是为了学习,而不是商业开发,所以没必要找一些芯片厂商刚推到市场上的解决方案原创 2016-08-26 22:23:53 · 13464 阅读 · 0 评论 -
第十一期 U-Boot介绍《路由器就是开发板》
从这一期开始我会利用10期的量来在我们之前改造过的开发板上进行U-Boot相关的实验,目标是将ralink_SDK3.6版本的U-Boot增加 web failsafe 功能,就是论坛里大家说的”不死U-Boot“的特殊功能,可以通过web的形式加载固件。当然,以U-Boot的代码量,想要系统化详细分析是一个巨大的工程,所以我的方式是讲解一些基础知识,然后再讲解为实现某一功能的改造的过程,通过这个原创 2016-09-18 11:58:34 · 6640 阅读 · 0 评论 -
第十五期 MIPS汇编U-Boot从start.S开始《路由器就是开发板》
这一期我们概略说一下MIPS架构并了解一下简单的汇编语句。首先推荐大家阅读一下SDK里DataSheet文件夹下的See MIPS Run Linux.pdf和MIPS.Assembly.Language.pdf两个文档。MIPS的ISA(Instruction Set Architecture)超级精简,现在市面上大多数的路由器都是基于MIPS架构的,因为当年ARM还没有发力网络终端这个领域原创 2016-09-22 15:02:48 · 5766 阅读 · 2 评论 -
第十二期 U-Boot工作原理 《路由器就是开发板》
刚开始接触U-Boot时都是别人编译好的bin文件,拿来直接刷入就可以用,第一次从官网下载了一个U-Boot时瞬间被它的代码量吓住了,虽然代码量不足linux内核的5%,但它也完全有自己的分层结构,如果适度改造完全就是一个单进程的小系统,启动系统内核可能只是它功能的一小部分。从源代码级别修改U-Boot和拿别人编译好的U-Boot直接刷从技术层面上讲还是有很大差距的,在这里呼吁在论坛上发布各种U-原创 2016-09-19 21:59:51 · 4445 阅读 · 0 评论 -
第九期 HG255d硬件分析 《路由器就是开发板》
这一期从芯片级别分析HG255d的硬件结构,如果想把它作为开发板,那外壳可以拆开扔掉啦。我将HG255d的图片贴在下面,每个功能模块采用不同的颜色标记,然后分别说明。HG255d正面PCB图:HG255d背面PCB图: HG255d的设计图纸并没有公开,但Ralink的芯片的Demo板的图纸还是可以找到的,在SDK的Datashee原创 2016-09-04 11:17:39 · 22489 阅读 · 0 评论 -
第十六期 U-Boot TTL串口输出原理分析《路由器就是开发板》
这一期我们来分析一下U-Boot中TTL串口输出是怎么实现的,我们带着这个疑问来分析U-Boot的源文件。 TTL的电气原理是这样的:发送数据时,CPU将并行数据写入UART,UART按照一定的格式在一根电线上串行发出;接收数据时,UART检测另一根电线上的信号,串行收集然后放在缓冲区中,CPU即可读取UART获得这些数据。UART之间以全双工方式传输数据,最精确的连线方法只有3原创 2016-09-24 00:00:07 · 3833 阅读 · 0 评论 -
第十三期 U-Boot编译原理《路由器就是开发板》
大体了解了U-Boot的源码结构后有一个问题必须得掌握透彻,那就是U-Boot的源码是怎么生成可执行文件的,如果把这个问题搞明白,就可以对U-Boot的全局有一个把控能力。这一期我们来分析Ralink_SDK3.6中U-Boot的编译原理,因为这是一个比较关键的节点,我准备换一种风格,争取把每一个细节都讲到。看这期之前,建议你了解一下Makefile的语法,在SDK的DateSheet目录下有一个原创 2016-09-21 22:32:28 · 3812 阅读 · 1 评论 -
第十四期 U-Boot命令原理《路由器就是开发板》
这一期我们说一说人机交互的话题,说白了就是用户界面,当我们拿到一款设备肯定要根据我们自己的环境进行配置,小到路由器大到矩阵存储一般都会提供一种或几种配置方法。我总结了一下接触过的设备,大体上把人机交互的方法分为三种: (1) CLI (Command Line Interface) 典型的命令行就是这种交互方式,一般设备的Console接口都是CLI接口,只要设定好连接参数就可以原创 2016-09-22 11:17:05 · 2771 阅读 · 0 评论 -
第二十期 U-Boot添加web failsafe功能《路由器就是开发板》
这一期我们在U-Boot上搭建一个简易的web serbver,实现http方式的更新功能,web server是基于uIP实现,已经有前辈在这方面完成了需求,所以我这里向大家推荐两个github的repository:https://github.com/widora/u-boot-mt7688 widora 基于mt7688修改的U-Boot 添加了 web failsafe 功能,我原创 2016-10-06 13:30:20 · 6235 阅读 · 0 评论