系统被刷坏了?我来看看
笔者这两天刷闲鱼,偶然看到了一台系统被机主刷坏了的小米路由器PRO,机器30¥,加上运费10¥。卖家自称刷Breed的时候刷错了,目前无法开机也无法进Breed,所以笔者就买来研究一下。
先试试能不能用串口线刷
一般来说,刷成砖了都能用串口救一下。刚好小米路由器的串口焊盘非常友好,所以笔者用烧录夹试了一下。
用Xshell连上后很遗憾,串口完全没有任何输出,这下只能把Flash干下来用编程器搞一搞了。
笔者这两天刷闲鱼,偶然看到了一台系统被机主刷坏了的小米路由器PRO,机器30¥,加上运费10¥。卖家自称刷Breed的时候刷错了,目前无法开机也无法进Breed,所以笔者就买来研究一下。
一般来说,刷成砖了都能用串口救一下。刚好小米路由器的串口焊盘非常友好,所以笔者用烧录夹试了一下。
用Xshell连上后很遗憾,串口完全没有任何输出,这下只能把Flash干下来用编程器搞一搞了。
不妨试试放大和拖动这张图
三极管,又称晶体管(Transistor),是一种由半导体材料制成的三端器件。其主要由三个区域构成: 发射极(Emitter)、基极(Base)和集电极(Collector)。根据材料的掺杂方式,三极管可以分为NPN型和PNP型两种类型。
发射极:高掺杂区域,用于发射载流子。
基极:极薄且轻掺杂,起到控制载流子流动的作用。
集电极:较厚的轻掺杂区域,用于收集发射极发出的载流子。
luci-app-lucky
nginx反向代理的配置对于我这种 !!菜狗!! 而言比较困难,幸而有一款简便易用的反向代理服务器。
这个软件包集成了DDNS、反向代理、防火墙管理等等一系列功能,而且是图形化页面,用起来相当方便😋。
luci-app-sqm
所谓QoS,就是Quality of Service的意思,也就是网络的服务质量管理。
简单来说,就是一个通过调节网络中数据包优先级,从而实现最佳网络服务质量的服务。试想一个场景:同一个局域网下,服务器正在马不停蹄地下载大量数据,你正在包点激情对枪,旁边还挂着电棍otto的直播,而你的女朋友正在和闺蜜煲微信电话粥。这时你家的上下行带宽均达到极限,这样的情况下,究竟谁的数据包应该优先通行才能带来最好的体验?这就需要使用QoS技术了。
软路由是指利用台式机或服务器的供应商配合一定软件而形成的路由解决方案,主要靠对软件的设置,实现路由器的功能,它的软件与硬件是独立分开的。软路由使用普通计算机,使用通用的操作系统,如Linux或windows,因此软路由的设置事实上是windows或linux的设置。根据使用的操作系统不同,可以分为基于windows平台和基于Linux/bsd平台开发的软件路由器。
软路由之所以叫软路由,就是为了和硬路由进行区分。硬路由有专用的包转发硬件设计,所以性能会优于软路由。虽然软路由使用软件实现包转发,但开放的生态和较强的硬件性能,或许可以实现“力大砖飞”的效果。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
轻量级、可移植的特性为家庭用户拓展NAS功能带来了极大的便利。如果没有Docker,光是处理不同设备上的依赖项就是难以愉悦的鸿沟。
笔者使用的是黑群晖S6400,所以接下来的介绍都是黑群晖平台上几乎开箱即用的DockerIMG。但是出于一些原因,有的DockersIMG我不能在此列出。
一般而言,笔者这种穷哥们上黑群晖都是为了便宜,所以这里就推荐性能普通的板U套装。这种板U套装和DIY装机所说的板U套装有所不同。NAS尤其是黑群晖常见的板U套装,CPU都是直接焊接在主板上的。这样一来,板U套装选择的局限性就比较大。 !!哥们你都玩黑群晖了还选啥?!!
以下是笔者选择的板U配置:
| 型号 | |
|---|---|
| CPU | intel N5105 |
| 内存 | DDR4 最大64G |
| 网卡 | 4个Intel i225 2.5G网卡 |
| SATA | 6个SATA3.0接口 |
| M.2 | 2个 |
| 外部USB接口 | 2个USB3.0,2个USB2.0 |
| 内部USB接口 | 4个USB2.0 |
| 尺寸 | 标准ITX |
| 散热器 | 自带一个丐版风冷 |
FreeRTOS是一个热门的嵌入式设备用即时操作系统核心,它于2003年由Richard Barry设计,并已被经成功移植到35种不同的微控制器上。
ESP32系列中的FreeRTOS和原始FreeRTOS有所不同。原始FreeRTOS是一款小巧高效的实时操作系统,适用于许多单核MCU和SoC。但为了支持双核ESP芯片,如ESP32、ESP32-S3、ESP32-P4,ESP-IDF特别提供了支持双核对称多处理 (SMP) 的 FreeRTOS 实现。
对于ESP32系列单片机而言,ESP-IDF在系统启动时会默认启动FreeRTOS。因此,如果我们想要高效地利用ESP32系列丰富的硬件资源,使用FreeRTOS几乎成为一种必然。此外,随着嵌入式硬件性能的不断发展,FreeRTOS所占用的系统资源比重越来越小,FreeRTOS已不再成为嵌入式硬件性能的负担。相反,RTOS提供的事件驱动型设计方式,使得RTOS只是在处理实际任务时才会运行,这能够更合理的利用CPU,也有利于实现日益发展的低功耗技术。在实际项目中,如果程序等待一个超时事件,传统的无RTOS情况下,要么在原地一直等待而不能执行其它任务,要么使用复杂(相对RTOS提供的任务机制而言)的状态机机制。如果使用RTOS,则可以很方便的将当前任务阻塞在该事件下,然后自动去执行别的任务,这显然更方便,并且可以高效的利用CPU。
C++大体上与C类似,是一门广泛应用的嵌入式开发语言。但因其支持面向对象特性,在嵌入式开发的部分领域,尤其是复杂系统的构建中更具优势。本文将以ESP-IDF为例,简要介绍C++的封装与多态在嵌入式开发中的应用。
本文基于ESP32-S3,编译环境是ESP-IDF v5.3.1
本文的例子来源于AS608指纹模块在ESP-IDF环境下的驱动
总线舵机是一种利用UART总线进行控制的舵机。笔者购买的总线舵机使用单线UART总线,即TX与RX在同一条线上。有的文章指出这样的设计会产生冲突,但笔者猜测如果总线上只有总线舵机,干扰可以通过软件方法解决。
本文基于ESP32-S3,编译环境是ESP-IDF v5.3.1
本文的例子来源于基于ESP32-S3的高安全性宿舍智能门锁设计
ESP-IDF利用结构体进行各种配置,计时器的配置是一个典型案例。
计时器的定义本文不再赘述。本文基于ESP32-S3,编译环境是ESP-IDF v5.3.1
ESP32-S3的计时器从无到有共三种状态,即:init -> enable -> run
计时器通常在以下场景中使用: