一、Markdown 标记的典型使用
标题
文章的顶层标题使用二级标题(有时文章的标题并不需要写在文章里,比如大多数博客有专门的位置填写文章标题,此时这级标题可以省略)
每个小节的标题使用三级标题
小节中进一步分层组织时使用四级标题
尽量少用五级标题和六级标题,考虑用有序列表和无序列表代替
完全不用一级标题
粗体、斜体
需要强调某处内容时使用粗体,如:
中文全角标点符号占一个汉字宽度,英文半角标点占半个汉字宽度(亦即一个字母宽度)。
在中文排版中不使用斜体。在英文排版中可用斜体表达强调,或表示书名、题目。
引用
以下情况使用引用标记:
引述内容时(也可直接用引号替代)
作示例时
给出提示、警告等额外说明时
行内代码
某一行文字中嵌入简短代码时使用行内代码,如:
打开 Linux 虚拟终端,输入 echo 'Hello World' 。恭喜,你已经入门 Shell 了 :)
图片
Markdown 中使用
![图片名称](x.x)
来插入图片,这里的「图片名称」可以任取,但是推荐使用对图片主题具有描述性的文字。因为在一些网站或软件中,图片无法加载时会显示这个「图片名称 ...
Openwrt编译menuconfig菜单选项解析
Target Sytem [架构]
Subtarget [开发板]
Target Profile [具体型号]
Target Images [编译产生的封装格式]
Global build settings [全局编译选项]
Base System [核心组件]
Administration [管理工具]
Firmware [无线网卡的BIOS]
Kernel modules [内核模块]
Language [编程语言扩展]
Lib [库]
LUCI [插件]
Nework [网络工具]
Utilities [小工具]
Openwrt编译环境目录结构
Openwrt是基于 Build Root 进行开发的
tool chain
rootfs
kernel
kernel + rootfs 称之为固件
编译时/后产生的目录
bin (编译完成后build_dir移动至bin)
build_dir 编译的主要目录
dl (make 下载的关联文件)
staging_dir (交叉编译工具的目录)
在Uboot下升级固件-QCA设备
基础流程相同
QSDK bin 固件目录结构
kernel
rootfs
配置桥接网卡的地址 sudo ifconfig 172.10.17.80
查阅开发板用户手册 - 配置uboot env变量
123456setenv bootcmd 'botm 0x9fe80000' set env lok 'tftp 0x80060000 kernel.bin && erase 0x9fe80000 +${filesize} && cp.b $fileaddr 0x9fe80000 0x160000'set env lok 'tftp 0x80060000 rootfs.bin && erase 0x9f050000 +${filesize} && cp.b $fileaddr 0x9f050000 $filesize' saveenv
查看ubootENV ...
在Uboot下升级固件-MTK设备
在路由器主板上焊接TTL引脚,准备USB-TTL数据线一条
安装串口、tftpd工具
ubuntu下采用minicom、tftpd-hpa
win下可以使用putty、tftpd32/64
虚拟机的设置
虚拟机USB共享
调整虚拟机的网卡设置,增加网卡然后设置为桥接
流程
硬件设置
准备一条 USB-TTL 数据线
pl2303 剪掉vcc的线
焊接在主板的TTL引脚位上
软件设置
通过USB连接到主机
在虚拟化软件上设置USB共享到虚拟机
添加一张桥接的网卡用于链接路由器
Ubuntu终端中对接口进行调试
dmesg
dmesg |grep pl2303
lsusb
1234$ lsusbBus 001 Device 002: ID 80ee:0021 VirtualBox USB tabletBus 001 Device 001: ID 1d6b:0001 Linux Foundattion 1.1 root hubBus 001 Device 003: ID 067b:2303 Prolifc T ...
路由器的软件构成
从整体来看,路由器是一个典型的嵌入式系统
BootLoader
BootLoader是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。
Bootlodaer 存储于 Flash 的头部
CFE: Common Firmware Environment (基于PMON)
BCM 使用较多
Uboot: Universal Boot Loader
QCA MTK 使用较多 总体占路由器 70%
Firmware(固件)
固件(Firmware)就是写入EPROM(可擦写可编程只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序。
固件是指设备内部保存的设备“驱动程序”,通过固件,操作系统才能按照标准的设备驱动实现特定机器的运行动作。
固件是担任着一个系统最基础最底层工作的软件。
开源系统
Openwrt
Tomato
DD-WRT
闭源系统
芯片厂商系统 (签保密协议才可以拿到 SDK)
高通 QSDK/LSDK
联 ...
路由器固件开发的一般流程
硬件部分
首先确保路由器硬件正常工作
排除硬件上的错误,比如替换损坏的晶振,确认传感器等工作正常
焊接TTL串口、备用一台编程器
一般是工程师来做
无线部分的校准
QCA的 ART
MTK的 EEPROM
一般是硬件工程师来做
软件部分
BootLoader的适配
GPIO相关的适配
业务相关开发
量产工具开发 (SN、MAC)
防逆向处理、固件加密
路由器的硬件构成
从整体来看,路由器是一个典型的嵌入式系统
SOC
集成了中央处理器(cpu)、硬件控制器、物理硬件和电路
Atheros/QualCom 高通(前者由高通收购)
BroadCom 博通
MediaTek 联发科(继承自 Rallink)
Realtek 瑞昱
HiSilicon 海思
Marvell 迈威
Intel 英特尔
RAM
RAM可读可写。但是存储的内容在系统重启或关机后将被清除。RAM是运行期间暂时存放操作系统和数据的存储器。让路由器能迅速访问这些讯息。
运行期间,RAM中包含有:路由表项目、ARP缓冲项目、日志项目和队列中排队等待发送的分组、运行配置文件、正在执行的代码、IOS操作系统程序、临时数据信息。
SDRAM
DDR
DDR2
DDR3
当前 DDR2 和 DDR3 是主流
ROM
只读内存(ROM ,Readly Memory) 只能读取而不能写入。用来储存厂家固化写入的程序数据。
SPI Flash
(分单双工,很难做到很大)
NOR Flash
结构上可以分为并口和串口,这里特指并口(比较老,目前使用很少。支持按位寻址, ...
Hexo-bilibili-card Demo
简介
一个Hexo插件,在你的文章中插入b站的视频卡片,样式模仿和借鉴自b站。。
安装
1npm i hexo-bilibili-card
格式
1{% bilicard video_id %}
参数解析
video_id 是b站的bv号或av号。
Demo
1{% bilicard BV13q4y1L7XE %}
undefined
出错了!
undefined
...