课程试听地址:
https://pan.baidu.com/s/13nCmoaXTEfKc9F9-bdtHcA
开场白:
大家好,我是佐须之男,感谢大家参加OpenWrt开发入门班。先做下自我介绍,我从08年至今一直从事着路由器开发的相关工作(固件定制、技术咨询、开发培训),担任Anywlan和恩山无线的版主。首先回答下很多人的疑问,为什么搞OpenWrt开发培训?原因很简单:随着智能家居和物联网的的兴起,OpenWrt的热度也随之日益提高,但市面上并没有质量高、系统化的OpenWrt开发教程,所以我就萌生了做OpenWrt开发视频的想法。许多人会觉得我道貌岸然,就如我座右铭所说-"技术需要沉淀,成长需要痛苦,成功需要坚持,敬仰需要奉献",我深知奉献才是作为作为大神的职责所在,抛开奉献大神和常人无异或许还不如。
OpenWrt开发入班的主要的目的是:补足大家知识体系上的欠缺、省去大家摸索的时间,进而能更快地参与到OpenWrt的开发中去。在授课过程中,欢迎大家和我交流互动。由于是入门教程,所以会尽量用通俗易懂的语言帮助大家理解OpenWrt。
下面是广告时间,大家身边有老板、朋友、熟人有需要路由器相关的固件定制、技术咨询、开发培训的业务的话,希望大家帮忙推介。
教程部分:(需要准备路由器主图片、Flash、RAM的图片)
广告时间结束,下面言归正传,本讲的内容是:路由器的软硬件构成。其实路由器硬件架构和PC架构并无区别,CPU、RAM、ROM这些概念都是相通的。路由器的CPU是SOC,集成度很高,通常集成了交换机芯片、WIFI芯片,有些甚至了集成了Flash和RAM。
路由器的RAM一般采用的是DDR2或DDR3,出于成本考虑所以相比PC会晚1-2代。比如电脑在采用DDR4时,路由器才刚刚用上DDR3颗粒。早期玩家改内存路由器通常是SDRAM,当年有叠焊这类神乎其神的改机技巧。路由器的ROM通常有SPI Flash、NAND FLash、NOR Flash,ROM的容量一般在8-32M。SPI Flash 和 NAND FLash是按扇区读取的,NOR FLash可以用地址寻址,所以NOR Flash的引脚也多,因为有地址线。早期由于RAM芯片太贵,所以路由器一般采用的是NOR Flash,因为NOR FLash架构类似于内存,代码可以直接在NOR FLash上执行,这样就可以省很多成本。由于SPI Flash受SPI 总线工作模式(单双工)、工作速度的限制,所以读写速度低、容量小、响应慢。未来的趋势是NAND Flash,容量大、速度快、响应快。
路由器的软件一般由bootloader和固件组成,类似于PC的BIOS和操作系统。首先解释下,为什么需要bootloader,因为CPU上电后内存里没有任何代码。需要靠bootloader将Flash中的代码搬运到内存,这也是loader的概念,搬运工。为了满足大家的求知欲,我来从芯片内部实现的角度讲解下CPU启动的原理。CPU上电后,首先会执行CPU内部固化的微码,复制FLash前xx字节到xx址内存,并执行xx地址的代码。此过程对软件是不可见的,是CPU内部的实现。固件的话,就很好理解了,简单来说就是操作系统,它决定了路由器的功能,同时也是路由器的灵魂所在。比如Tomato、OpenWrt、DD-WRT这类都固件。在后面的教程中,会重点讲固件的构成和实现。
视频比文字更精彩,欢迎大家来参加我的OpenWrt开发入门培训班。报名地址:http://forgotfun.org/2018/04/openwrt-training-2018.html