小米CR6606,CR6608,CR6609 启用SSH和刷入OpenWRT 23.05.5
闲鱼上收了一台CR6606和一台CR6609, 一直没时间研究, 趁春节假期把这两个都刷成 OpenWRT
配置说明
- CPU: MT7621AT,双核880MHz
- 内存: NT5CC128M16JR-EKI 或 M15T2G16128A, 256MB
- 闪存: F59L1G81MB, 128MB
- 无线基带芯片(BB): T7905DAN
- 无线射频芯片(RF): MT7975DN
- 无外置FEM芯片,使用MT7975DN内置PA和LNA
配置和R3G相比是很像的, 区别就是升级了无线基带和射频芯片, 支持 WiFi6 支持 mesh. 但是去掉了USB口.
MT7905DAN + MT7975DN 组成了 MT7915D, 2.4G和5G均支持 2x2 MIMO, DBDC(双频并发), 2.4G最高速率574Mbps,5G最高速率1201Mbps. MT7975DN+MT7905DAN的发热量比 MT7603 + MT7612 要大一些, 因此功率也更大, 散热片比R3G更大.
相关连接
相关链接
- CR6609 拆机内部展示 https://www.acwifi.net/13821.html
- CR6606 拆机内部展示 https://www.acwifi.net/18380.html
- 通过OpenWRT路由器添加 lua脚本开启SSH https://www.luyouwang.com/7115.html
这种方法需要正好是兼容这种lua脚本的 OpenWRT 才行, 在OpenWRT 23.05.5 上无法使用 - 通过电脑运行python脚本启动http服务开启SSH https://haoyu.love/blog1389.html
这种方法比前一种好, 因为对无线路由器没要求, 而且从电脑启动一个http服务很简单 - 通过TTL开启SSH https://www.bilibili.com/opus/870238271997739025
- SSH密码计算工具 https://blog.csdn.net/zhoujiazhao/article/details/102578244
- SSH密码计算工具 http://mi.avue.cn/
OpenWRT 下载
https://firmware-selector.openwrt.org/
在上面搜对应的型号, 例如 Xiaomi Mi Router CR6609
Breed下载
https://breed.hackpascal.net/
拉到底下, 在 r1338 [2021-12-16]/ 目录下, 搜 r3g.
CR6606 CR6608 CR6609 用的都是和小米 R3G 一样的 breed, 这个版本可以用于刷入 OpenWRT 上下载的固件
最新的版本是 r1416 [2022-07-24] (git-46ae2a1), 但是这个版本不能直接支持从 OpenWRT 下载的固件, 原因可以看 这里, 所以只能用旧一点的 r1338 版本
带SSH的降级固件
6606 1.0.103 链接: https://pan.baidu.com/s/1kn68F2M019rHB7PWqRYnCA 提取码: 9c92
刷机过程
CR660x 这一系列的型号属于小米给运营商的定制版, 在小米路由的官网上是不存在的, 所以也就不可能通过官方下载"开发版ROM"开启SSH烧录第三方系统. 开启SSH的方式主要有 TTL 和 getToken 漏洞两种方式
通过TTL获取SSH权限
通过TTL开启SSH相对简单, 不需要复杂设置, 如果有TTL2USB模块优先用这种方法, 但是不是所有设备都能用
有一台CR6609 电信版的版本是"系统版本: 1.0.41 稳定版", 不需要降级直接用TTL方法就可以进SSH, root口令和admin密码一样, 在背面的标签上. 而另一台 CR6606, 版本是"系统版本: 1.0.134 稳定版", 这个版本在TTL下没有命令行输入功能, 需要降级到 1.0.103 通过辅助路由器的方式获取SSH权限.
如果不想拆机的话, 背面把靠近wan口天线位置, 用水口钳剪掉一两根塑料打开一个口子, 方便刷机探针伸进去连里面的TTL口. 探针要用2mm间距的. 从网口那一侧往外4个焊盘分别是 VCC, RX, GND, TX, 如果不确定可以用万用表测一下, VCC的电压是3.3, GND是0, 其它两个都是3.2左右.
用探针接到TTL上, 只需要接RX, GND, TX三根线, 分别对应TTL的 TX, GND, RX, 码率 115200, 要在上电之后再连, 否则路由器不启动. 在日志输出结束后, 回车可以看到命令行提示符.
在电脑的串口终端上顺序执行这4个命令
nvram set ssh_en=1
nvram commit
sed -i 's/channel=.*/channel=\"debug\"/g' /etc/init.d/dropbear
/etc/init.d/dropbear start
之后电脑和路由器之间连上网线, 就可以用ssh访问了.
通过小米路由的getToken漏洞开启SSH
这种方式相对复杂, 有一台 CR6606 通过 TTL 访问只有日志输入没法输入, 所以不得不用这种方式. 这种方式需要有电脑和另一台路由器配合
- 辅助路由器的LAN 关闭DHCP, IP设置为 169.254.31.5 (除了 169.254.31.1, 169.254.31.2 以外的任意一个IP都行), 因为31.1是电脑用的要提供链接地址, 31.2是待破解的CR660x用的默认地址.
- 电脑的LAN IP设置为固定IP 169.254.31.1 用于启动http服务为目标CR660x路由器提供破解命令, 运行python脚本(内容附后), 命令
sudo python server.py
- 如果电脑是Ubuntu 记得把80端口防火墙打开, 命令是
udo ufw allow 80/tcp
, 查看实际的设置sudo ufw status
, - 电脑用网线连上辅助路由器的LAN口, 这时候从辅助路由器应该要能访问到 http://169.254.31.1 看到正确的输出, 如果没有输出则需要检查python服务是否启动, 端口是否生效, 防火墙是否打开
- 辅助路由器的2.4G WIFI 设置一个简单点的名称和密码, 方便下面输入
注意此时的连接状态是, 辅助路由器的LAN口连着电脑的LAN口, 其它没有任何连接, 后面也不需要动
下面是CR660x上的操作
- 首先要降级到一个可以开启SSH的版本, CR6606降级到 1.0.103
- 启动后, 从电脑用WIFI连接, 连接上进入管理后台后, 从链接地址中拿到 stok 字符串值
- 使用链接让CR660x连上辅助路由器的WIFI, 链接: http://[CR660x地址]/cgi-bin/luci/;stok=[刚才拿到的stok]/api/misystem/extendwifi_connect?ssid=[辅助路由器WIFI的SSID]&password=[辅助路由器的WIFI口令]
如果操作正确, 这里会响应{"msg":"connect succces!","code":0}
, 同时从电脑可以ping通 169.254.31.2 这时候说明可以从CR660x访问到你的电脑了, 如果ping不通说明前面操作有问题, 需要检查 - 使用链接让CR660x执行伪造的getToken指令打开, 链接: http://[CR660x地址]/cgi-bin/luci/;stok=[刚才拿到的stok]/api/xqsystem/oneclick_get_remote_token?username=xxx&password=xxx&nonce=xxx 后面的三个xxx不需要动
如果操作正确, 这里会响应{"token":"; nvram set ssh_en=1; nvram commit; sed -i 's/channel=.*/channel=\u0022debug\u0022/g' /etc/init.d/dropbear; /etc/init.d/dropbear start;","code":0}
, 此时CR660X上的ssh就已经打开了
从电脑可以ssh连接CR660X, 口令在 http://mi.avue.cn/ 上通过序列号计算可以得到. 登入SSH后就可以写入breed
附: python脚本, 因为请求可能是 GET 也可能是 POST, 所以两种method都要
from http.server import BaseHTTPRequestHandler, HTTPServer
import jsonclass SimpleServer(BaseHTTPRequestHandler):def do_GET(self):print("It comes!")data = {"code": 0,"token": "; nvram set ssh_en=1; nvram commit; sed -i 's/channel=.*/channel=\"debug\"/g' /etc/init.d/dropbear; /etc/init.d/dropbear start;"}self.send_response(200)self.end_headers()self.wfile.write(json.dumps(data).encode())def do_POST(self):print("It comes!")data = {"code": 0,"token": "; nvram set ssh_en=1; nvram commit; sed -i 's/channel=.*/channel=\"debug\"/g' /etc/init.d/dropbear; /etc/init.d/dropbear start;"}self.send_response(200)self.end_headers()self.wfile.write(json.dumps(data).encode())server_address = ('0.0.0.0', 80)
httpd = HTTPServer(server_address, SimpleServer)
httpd.serve_forever()
写入 breed
能ssh访问后, 从电脑上通过scp将 breed 上传到路由器
scp breed-mt7621-xiaomi-r3g.bin root@192.168.2.1:/tmp/
然后在路由器的ssh里面, 使用mtd命令写入
mtd write breed-mt7621-xiaomi-r3g.bin Bootloader
写入成功后, 关闭电源, 用针顶住reset孔, 然后上电, 待两个灯快速闪烁时就可以松开顶针, 此时就会启动进入Breed系统.
连接任意LAN口到电脑, 电脑会获取到 192.168.1.x 网段的地址, 此时访问 http://192.168.1.1 就能访问 breed 界面
在"小米 R3G Bdata" 界面可以看到当前路由器的型号和配置信息.
之后如果已经刷入了 Breed, 可以在 Breed 界面上用写入 Bootloader 的方式升级或降级成其它版本的 Breed.
写入 OpenWRT
- 在 Breed “固件更新"界面上, 选择闪存布局为"小米路由器 3G 固件 1”, 在固件栏, 选择从 OpenWRT 下载的 kernel.bin 包写入. 待其重启, 这一步写入后, 路由器上就有基础的OpenWRT系统, 但是文件系统还没初始化, 做任何设置都不会保存.
- 重启后在电脑获得IP后(默认是192.168.1.1), 访问 http://192.168.1.1 可以进入 OpenWRT 界面(口令为空), 在 OpenWRT 界面上会提示仅有基本文件系统需要升级
System running in recovery (initramfs) mode.
, 到升级界面, 选择结尾为 sysupgrade.bin 的固件升级, 重启后就升级完成了.
相关文章:
小米CR6606,CR6608,CR6609 启用SSH和刷入OpenWRT 23.05.5
闲鱼上收了一台CR6606和一台CR6609, 一直没时间研究, 趁春节假期把这两个都刷成 OpenWRT 配置说明 CPU: MT7621AT,双核880MHz内存: NT5CC128M16JR-EKI 或 M15T2G16128A, 256MB闪存: F59L1G81MB, 128MB无线基带芯片(BB): T7905DAN无线射频芯片(RF): MT7975DN无外置F…...
我的求职面经:(2)C++中空指针请使用nullptr不要使用NULL
1. C中NULL定义就是整数字面量0 2. 对于C函数,由于存在重载,使用NULL而不是nullptr可能导致函数走错重载。 3. C中定义NULL为(void* )0,确实是代表空指针。使用时隐式转换成对应的需要类型的空指针。 4. C中void指针…...
Java8_StreamAPI
Stream 1.创建流 1.1 集合创建流 List<String> list List.of("a", "b", "c"); Stream<String> stream list.stream(); stream.forEach(System.out::println);1.2 数组创建流 String[] array {"a","b",&qu…...
[STM32 - 野火] - - - 固件库学习笔记 - - -十二.基本定时器
一、定时器简介 STM32 中的定时器(TIM,Timer)是其最重要的外设之一,广泛用于时间管理、事件计数和控制等应用。 1.1 基本功能 定时功能:TIM定时器可以对输入的时钟进行计数,并在计数值达到设定值时触发中…...
信息学奥赛一本通 1606:【 例 1】任务安排 1 | 洛谷 P2365 任务安排
【题目链接】 ybt 1606:【 例 1】任务安排 1 洛谷 P2365 任务安排 【题目考点】 1. 动态规划:线性动规 【解题思路】 可以先了解法1,虽然不是正解,但该解法只使用了动规的基本思路,易于理解,有助于理解…...
【解决方案】MuMu模拟器移植系统进度条卡住98%无法打开
之前在Vmware虚拟机里配置了mumu模拟器,现在想要移植到宿主机中 1、虚拟机中的MuMu模拟器12-1是目标系统,对应的目录如下 C:\Program Files\Netease\MuMu Player 12\vms\MuMuPlayer-12.0-1 2、Vmware-虚拟机-设置-选项,启用共享文件夹 3、复…...
【C语言】预处理详解
他们想要逃避工作的压迫,却又被功绩社会深植的价值观绑架。 前言 这是我自己学习C语言的第九篇博客总结。后期我会继续把C语言学习笔记开源至博客上。 上一期笔记是关于C语言的编译链接,没看的同学可以过去看看: 【C语言】编译链接_c 读取一行…...
设计模式Python版 适配器模式
文章目录 前言一、适配器模式二、适配器模式实现三、适配器模式在Django中的应用 前言 GOF设计模式分三大类: 创建型模式:关注对象的创建过程,包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模式。结构型模式&…...
系统思考—蝴蝶效应
“个体行为的微小差异,可能在系统中引发巨大且不可预测的结果。” — 诺贝尔经济学得主托马斯谢林 我们常说,小变动带来大影响,这种现象,在复杂系统理论中被称为“蝴蝶效应”:即使极小的变化,也能在动态系…...
使用Edu邮箱申请一年免费的.me域名
所需材料:公立Edu教育邮箱一枚(P.S:该服务不支持所有的Edu教育邮箱,仅支持比较知名的院校) 说到域名,.me这个后缀可谓是个性十足,适合个人网站、博客等。.me是黑山的国家顶级域名(c…...
【开源免费】基于SpringBoot+Vue.JS体育馆管理系统(JAVA毕业设计)
本文项目编号 T 165 ,文末自助获取源码 \color{red}{T165,文末自助获取源码} T165,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...
C++ ——— 仿函数
目录 何为仿函数 仿函数和模板的配合使用 何为仿函数 代码演示: class Add { public:int operator()(int x, int y){return x y;} }; 这是一个 Add 类,类里面有一个公有成员函数重载,重载的是括号 那么调用的时候: Add ad…...
基于FPGA的BT656解码
概述 BT656全称为“ITU-R BT.656-4”或简称“BT656”,是一种用于数字视频传输的接口标准。它规定了数字视频信号的编码方式、传输格式以及接口电气特性。在物理层面上,BT656接口通常包含10根线(在某些应用中可能略有不同,但标准配置为10根)。这些线分别用于传输视频数据、…...
【Proteus仿真】【51单片机】简易计算器系统设计
目录 一、主要功能 二、使用步骤 三、硬件资源 四、软件设计 五、实验现象 联系作者 一、主要功能 1、LCD1602液晶显示 2、矩阵按键 3、可以进行简单的加减乘除运算 4、最大 9999*9999 二、使用步骤 系统运行后,LCD1602显示数据,通过矩阵按键…...
【16届蓝桥杯寒假刷题营】第1期DAY2
1.能选取元素的最多个数 - 蓝桥云课 问题描述 给定一个长度为 n 的数组 a,小蓝希望从数组中选择若干个元素(可以不连续),并将它们重新排列,使得这些元素 能够形成一个先严格递增然后严格递减的子序列(可以…...
安卓(android)饭堂广播【Android移动开发基础案例教程(第2版)黑马程序员】
一、实验目的(如果代码有错漏,可查看源码) 1.熟悉广播机制的实现流程。 2.掌握广播接收者的创建方式。 3.掌握广播的类型以及自定义官博的创建。 二、实验条件 熟悉广播机制、广播接收者的概念、广播接收者的创建方式、自定广播实现方式以及有…...
linux的/proc 和 /sys目录差异
/proc 和 /sys 都是Linux系统中用于提供系统信息和进行系统配置的虚拟文件系统,但它们的原理并不完全一样,以下是具体分析: 目的与功能 /proc :主要用于提供系统进程相关信息以及内核运行时的一些参数等,可让用户和程…...
使用Navicat Premium管理数据库时,如何关闭事务默认自动提交功能?
使用Navicat Premium管理数据库时,最糟心的事情莫过于事务默认自动提交,也就是你写完语句运行时,它自动执行commit提交至数据库,此时你就无法进行回滚操作。 建议您尝试取消勾选“选项”中的“自动开始事务”,点击“工…...
HTB:Active[RE-WriteUP]
目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 将靶机TCP开放端口号提取并保存 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 使用nmap对靶机…...
新春登蛇山:告别岁月,启航未来
大年初一,晨曦透过薄雾,温柔地洒在武汉的大街小巷。2025 年的蛇年春节,带着新春的喜气与希望悄然而至。我站在蛇山脚下,心中涌动着复杂的情感,因为今天,我不仅将与家人一起登山揽胜,更将在这一天…...
如何获取小程序的code在uniapp开发中
如何获取小程序的code在uniapp开发中,也就是本地环境,微信开发者工具中获取code,这里的操作是页面一进入就获取code登录,没有登录页面的交互,所以写在了APP.vue中,也就是小程序一打开就获取用户的code APP.…...
LLM评估与优化技术解析
标题:LLM评估与优化技术解析 文章信息摘要: LLM的评估方法主要包括自动化基准测试、人工评估和基于模型的评估,每种方法各有优缺点。自动化测试快速但难以捕捉细微差别,人工评估细致但成本高,基于模型的评估结合了两者…...
SpringBoot 原理分析
SpringBoot 原理分析 依赖管理相关 启动器 starter Spring Boot 的 Starter 是预定义依赖项集合,可简化 Spring 应用配置与构建,启动时自动引入所需库、配置和功能。 Spring Boot 有很多预定义 Starter,如 spring - boot - starter - web 用…...
go入门Windows环境搭建
简介 Go 即 Golang,是 Google 公司 2009 年 11 月正式对外公开的一门编程语言。 根据 Go 语言开发者自述,近 10 多年,从单机时代的 C 语言到现在互联网时代的 Java,都没有令人满意的开发语言,而 C往往给人的感觉是&a…...
拦截器快速入门及详解
拦截器Interceptor 快速入门 什么是拦截器? 是一种动态拦截方法调用的机制,类似于过滤器。 拦截器是Spring框架中提供的,用来动态拦截控制器方法的执行。 拦截器的作用:拦截请求,在指定方法调用前后,根…...
Fort Firewall:全方位守护网络安全
Fort Firewall是一款专为 Windows 操作系统设计的开源防火墙工具,旨在为用户提供全面的网络安全保护。它基于 Windows 过滤平台(WFP),能够与系统无缝集成,确保高效的网络流量管理和安全防护。该软件支持实时监控网络流…...
第3章 基于三电平空间矢量的中点电位平衡策略
0 前言 在NPC型三电平逆变器的直流侧串联有两组参数规格完全一致的电解电容,由于三电平特殊的中点钳位结构,在进行SVPWM控制时,在一个完整开关周期内,直流侧电容C1、C2充放电不均匀,各自存储的总电荷不同,电容电压便不均等,存在一定的偏差。在不进行控制的情况下,系统无…...
九大服务构建高效 AIOps 平台,全面解决GenAI落地挑战
最近,DevOps运动的联合创始人Patrick Debois分享了他对AI平台与软件研发关系的深刻见解,让我们一起来探讨这个话题。 在AI的落地过程中,我们面临着两个主要难题: 引入AI编码工具后的开发者角色转变:随着像GitHub Copilot这样的AI工具的普及,工程师的角色正在发生深刻变革…...
Leetcode 131 分割回文串(纯DFS)
131. 分割回文串https://leetcode.cn/problems/palindrome-partitioning/https://leetcode.cn/problems/palindrome-partitioning/ 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 示例 1:…...
我的AI工具箱Tauri+Django内容生产介绍和使用
在现代内容生产环境中,高效、自动化的工具能够显著提升生产力,降低人工成本。Tauri 与 Django 结合打造的工作箱,集成了强大的 音频处理、视频剪辑、内容下载 以及 AI 文章撰写 等模块,帮助用户在多媒体内容生产的各个环节实现高效…...
“星门计划对AI未来的意义——以及谁将掌控它”
“星门计划对AI未来的意义——以及谁将掌控它” 图片由DALL-E 3生成 就在几天前,唐纳德特朗普宣布了“星门计划”,OpenAI随即跟进,分享了更多细节。他们明确表示,计划在未来四年内投资5000亿美元,在美国为OpenAI构建一…...
论文阅读(八):结构方程模型用于研究数量遗传学中的因果表型网络
1.论文链接:Structural Equation Models for Studying Causal Phenotype Networks in Quantitative Genetics 摘要: 表型性状可能在它们之间发挥因果作用。例如,农业物种的高产可能会增加某些疾病的易感性,相反,疾病的…...
【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.25 视觉风暴:NumPy驱动数据可视化
1.25 视觉风暴:NumPy驱动数据可视化 目录 #mermaid-svg-i3nKPm64ZuQ9UcNI {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-i3nKPm64ZuQ9UcNI .error-icon{fill:#552222;}#mermaid-svg-i3nKPm64ZuQ9UcNI …...
Linux Samba 低版本漏洞(远程控制)复现与剖析
目录 前言 漏洞介绍 漏洞原理 产生条件 漏洞影响 防御措施 复现过程 结语 前言 在网络安全的复杂生态中,系统漏洞的探索与防范始终是保障数字世界安全稳定运行的关键所在。Linux Samba 作为一款在网络共享服务领域应用极为广泛的软件,其低版本中…...
solidity基础 -- 可视范围
在 Solidity 编程语言中,可视范围(Visibility)用于控制合约中变量和函数的访问权限。这对于确保合约的安全性、模块化以及代码的可维护性至关重要。Solidity 提供了四种可视范围修饰符:public、private、external 和 internal。以…...
Spring Boot - 数据库集成07 - 数据库连接池
数据库连接池 文章目录 数据库连接池一:知识准备1:什么是数据库连接池?2:数据库连接池基本原理 二:HikariCP连接池1:简单使用2:进一步理解2.1:是SpringBoot2.x默认连接池2.2…...
智云-一个抓取web流量的轻量级蜜罐-k8s快速搭建教程
智云-一个抓取web流量的轻量级蜜罐-k8s快速搭建教程 github地址 https://github.com/xiaoxiaoranxxx/POT-ZHIYUN k8s搭建教程 首先下载代码文件 git clone https://github.com/xiaoxiaoranxxx/POT-ZHIYUN.git cd POT-ZHIYUN编译镜像 代码相关文件在github https://github.com/x…...
MySQL 事件调度器
MySQL 事件调度器确实是一个更方便且内置的解决方案,可以在 MySQL 服务器端自动定期执行表优化操作,无需依赖外部工具或应用程序代码。这种方式也能减少数据库维护的复杂性,尤其适用于在数据库频繁更新或删除时进行自动化优化。 使用 MySQL …...
3 Spark SQL
Spark SQL 1. 数据分析方式2. SparkSQL 前世今生3. Hive 和 SparkSQL4. 数据分类和 SparkSQL 适用场景1) 结构化数据2) 半结构化数据3) 总结 5. Spark SQL 数据抽象1) DataFrame2) DataSet3) RDD、DataFrame、DataSet 的区别4) 总结 6. Spark SQL 应用1) 创建 DataFrame/DataSe…...
多头潜在注意力(MLA):让大模型“轻装上阵”的技术革新——从DeepSeek看下一代语言模型的高效之路
多头潜在注意力(MLA):让大模型“轻装上阵”的技术革新 ——从DeepSeek看下一代语言模型的高效之路 大模型的“内存焦虑” 当ChatGPT等大语言模型(LLM)惊艳世界时,很少有人意识到它们背后隐藏的“内存焦虑”…...
Spring AI 在微服务中的应用:支持分布式 AI 推理
1. 引言 在现代企业中,微服务架构 已成为开发复杂系统的主流方式,而 AI 模型推理 也越来越多地被集成到业务流程中。如何在分布式微服务架构下高效地集成 Spring AI,使多个服务可以协同完成 AI 任务,并支持分布式 AI 推理&#x…...
赛博算卦之周易六十四卦JAVA实现:六幺算尽天下事,梅花化解天下苦。
佬们过年好呀~新年第一篇博客让我们来场赛博算命吧! 更多文章:个人主页 系列文章:JAVA专栏 欢迎各位大佬来访哦~互三必回!!! 文章目录 #一、文化背景概述1.文化起源2.起卦步骤 #二、卦象解读#三、just do i…...
数据分析系列--⑤RapidMiner进行关联分析(中文数据案例)
一、数据集 二、数据预处理 1.读取数据、拆分、重命名 2.数据预处理 三、关联分析 四、结论 一、数据集 点击下载数据集shopping_basket.xlsx ,这个数据集专门使用中文数据来进行分析. 二、数据预处理 1.读取数据、拆分、重命名 2.数据预处理 三、关联分析 四、结论 Ok…...
fpga系列 HDL:XILINX Vivado Vitis 高层次综合(HLS) 实现 EBAZ板LED控制(下)
补充代码,将clk之外的输入都设置能使其运行的默认值 timescale 1ns / 1ps module HLSLED(input wire clk ,input wire rst_n ,output wire led);wire led_o_i 0;reg rst 0;wire led_o_o_ap_vld;hlsv1_0 your_instance_name (.led_o_o_ap_vld(led_o_o_ap_vld), /…...
设计模式面试题
一、工厂方法模式: 1.简单工厂模式: (1).抽象产品:定义了产品的规范,描述了产品的主要特性和功能 (2).具体产品:实现或继承抽象产品的子类 (3).具体工厂:提供了创建产品的方法,调用者通过该方法来获取产品 所有产品都共有一个工厂,如果新…...
7层还是4层?网络模型又为什么要分层?
~犬📰余~ “我欲贱而贵,愚而智,贫而富,可乎? 曰:其唯学乎” 一、为什么要分层 \quad 网络通信的复杂性促使我们需要一种分层的方法来理解和管理网络。就像建筑一样,我们不会把所有功能都混在一起…...
12.udp
12.udp **1. UDP特性****2. UDP编程框架(C/S模式)****3. UDP发送接收函数****4. UDP编程练习** 1. UDP特性 连接特性:无链接,通信前无需像TCP那样建立连接。可靠性:不可靠,不保证数据按序到达、不保证数据…...
【Leetcode 热题 100】32. 最长有效括号
问题背景 给你一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长有效(格式正确且连续)括号 子串 的长度。 数据约束 0 ≤ s . l e n g t h ≤ 3 1 0 4 0 \le s.length \le 3 \times 10 ^ 4 0≤s.length≤3104 s [ i ] s[i] s[i] 为 ‘(’ 或 ‘…...
Python NumPy(8):NumPy 位运算、NumPy 字符串函数
1 NumPy 位运算 位运算是一种在二进制数字的位级别上进行操作的一类运算,它们直接操作二进制数字的各个位,而不考虑数字的整体值。NumPy 提供了一系列位运算函数,允许对数组中的元素进行逐位操作,这些操作与 Python 的位运算符类似…...
Fork/Join框架_任务分解与并行执行
1 概述 Fork/Join框架是Java 7引入的一个用于并行执行任务的框架。它特别适用于可以递归分解为多个子任务的工作,每个子任务可以独立执行,并且结果可以合并以获得最终结果。Fork/Join框架通过工作窃取(work-stealing)算法提高了多核处理器上的任务执行效率。 2 核心组件 …...