闪存驱动器设计
1   焊接技巧
2   店铺点评
部分店铺的网评:大树推荐,翼浪排除
店铺总结(个人购买经验总结):
- 南翔科技(TB):东芝颗粒。店家会给芯片颗粒值球后再发货(自己懒得值球的,推荐这个店铺买颗粒,省事)
- QFZ FLY SPEED SSD U盘(TB):IS903主控板+外壳。(外壳设计属于个人觉得很好看的金属壳,主控板买了四块都正常工作)
- 约翰的咖啡屋(TB):模块化测试架。(模块化的设计十分优秀,买了一个IS903测试架,使用超级方便)
3   主控和颗粒的选择
- 一般的主控选择:不要4K上903,要4K,单贴3281,双头3280。(3280和3281在4k性能差不多,3280好一点)。预算足够的话,可考虑2246xt/2246en。
- 东芝颗粒在IS903主控上的适配性和兼容性都比较好
3.1   部分颗粒总结
- TH58TEG9DDKBA8H:经典DDK 64GB MLC颗粒,BGA132封装。ID为983A95937AD0。IS903单贴顺序读取312MB,写入101MB。4K读取7.7MB,写入0.26MB。
- TH58TFG9EFLBS8C:EFL 64GB MLC颗粒,BGA132封装。ID为983A3AA4A493937A7AD1D1。IS903单贴顺序读取300MB,写入79.89MB。4K读取7.7MB,写入0.26MB。IS903双贴EFL性能和单贴DDK性能差不多。
- 颗粒是从东芝Q200 EX固态拆出来(主控为TC358790XBG)
- TH58TFT0DFKBA8J:DFK 128GB MLC颗粒,BGA152封装。ID为983CA5937ED0。IS903双贴顺序读取212MB,顺序写入183MB。4K读取5.25MB,写入0.26MB。
- 29F2T08EMLCE:132BGA封装,256GB,镁光后打的自封丝印,网络资料传为B27B晶圆。IS903测试架检测ID为:2C2CC3C308083232E6E600,无法量产。可尝试用PS3111主控量产开卡。
- 颗粒是从七彩虹SL500固态拆出来(主控为MAS0902A-B2C)
- THGBMFG9C4LBAIR:64GB
- 颗粒从酷派平板拆出来
颗粒的部分资料:
4   颗粒芯片资料查询
5   开卡量产工具
6   测试架资料
- [其他] 请叫我“撸架狂魔”——秀一下这两些年撸过的测试架!
- [芯邦] 自打板6层沉金CBM2199测试架简单测试+大量晒图(支持1.2V、1.8V、3.3V 3D颗粒)
- [安国] 安国AU6989主控这下真是全球通了,居然还能支持长江颗粒
7   主控芯片资料
- 常见固态U盘主控芯片介绍总结
- 主流USB3.0闪存盘主控介绍
- [闪存] U盘主控解析(转发技术宅小唐)
- [SMI] 流言终结者之:SM2258XT是不是最好的固态U盘主控
- [慧荣] 新人必看:玩了这么久SM3280/3281,一些经验分享给大家
8   IS903
8.1   量产开卡步骤
- 焊接颗粒到主控盘,插上电脑
- 打开量产工具软件,「量产测试」标签页点击「搜寻装置」,点击下方通道查看是否有识别到颗粒ID
- 摁F9,点击强力擦除(量产之前推荐先擦除)
- 「量产设定」标签页,点击「编辑」,输入密码
IS0024
,设定好参数,点击「存档」 - 「量产测试」标签页点击「开始」就会开始量产
8.2   部分资料
- 银灿IS903主控 + MT29F64G08CBAAA(NAND) 制作8GB闪存驱动器
- [银灿] 免费共享IS903测试架原理图+PCB资料,带04T跳线,电压跳线
- [银灿] ISD903-V6.0主控板上市,彻底解决了Win10系统下掉盘的问题
- prashant87/IS903
9   关于开卡设定参数的帖子链接
- [银灿] 如何添加参数让银灿IS903支持自己的Flash颗粒-小白晋级+备忘
- [Toshiba] 东芝9DDK在sm2246xt上写入速度低的终极解决办法
- [慧荣] 发一个自己总结的SM3280、SM3281改参数的教程
- [慧荣] 修改forceflash文件里的一个小小参数,增容SM3280/3281贴东芝颗粒增容
10   参考文献
路由排障总结
1   联通光猫
1.1   烽火HG6142A获取超级管理员密码
1 | # 获取光猫的mac地址,获取地址删除-就是实际mac信息 |
2   参考文献
[1] 烽火HG6142A 破解超级管理员密码 改桥接[EB/OL]. http://blog.yunduanzhuji.com/archives/1317/.
[2] 烽火HG6142A 破解超级管理员密码 改桥接[EB/OL]. https://www.right.com.cn/forum/thread-8252962-1-1.html.
[2] 移动光猫HG6142A1烽火改桥接[EB/OL]. https://zhuanlan.zhihu.com/p/648892946.
Hexo个人博客搭建踩坑记
1   开发环境配置
1.1   安装Node.js和启用Yarn
下载链接:
- Node.js:推荐LTS长期版,不推荐用最新版,可能很多npm并未能适配新版。
- Yarn(<=v1.22.19才有编译好的安装包):若要使用新版Yarn,则不需要下载离线包安装,通过Node.js的corepack启用即可。
启用Yarn:
- 管理员终端运行命令启用:
corepack enable
,执行成功之后yarn命令即可系统全局正常调用。 - 终端运行命令:
yarn global bin
,复制路径添加到用户的PATH环境变量中。(这一步一定需要手动添加路径,因为程序没有自动添加PATH变量)
下载安装Yarn离线包即可,程序会自动添加PATH环境变量(Yarn程序路径和Package二进制程序路径)。
1.2   yarn和npm部分对应命令
yarn命令 | npm命令 | 说明 |
---|---|---|
yarn init | npm init | 初始化 |
yarn / yarn install | npm install | 安装包 |
yarn add [package] | npm install [package] --save | 安装包 |
yarn add global [package] | npm install -g [package] --save | 全局安装包 |
yarn remove | npm uninstall | 卸载包 |
yarn upgrade | npm update | 更新包 |
yarn global dir | npm config get prefix | 查看安装目录 |
yarn global bin | 查看安装bin目录 | |
yarn cache dir | 查看缓存目录 | |
yarn cache clear | npm cache clean | 清除缓存目录 |
1.3   版本和包更新
站点配置文件
_config.yml
和主题配置文件_config.next.yml
的更新改动项,通过查看Github仓库代码是否存在更新改动。
Next主题直接可通过package版本号更新即可。
1 | yarn outdated # 检查已过时的包,并修改 package 中 dependencies 中相关版本号 |
1.4   npm源设定
1 | yarn config get registry // 查看当前npm源 |
当前有效镜像链接:npm config set registry https://registry.npmmirror.com
已失效镜像链接:npm config set registry http://registry.npm.taobao.org
1.5   安装hexo和hexo-cli
在想要安装hexo的位置建立文件夹「hexo」,打开命令行终端,以此路径作为终端工作路径。然后执行下面命令(推荐全局安装)。
1 | yarn global add hexo-cli # 全局安装hexo-cli脚手架 |
1 | yarn add hexo-cli |
2   hexo配置
2.1   _config.yml
注:language根据主题设置,注意新版Next主题已经没有zh-Hans语言配置文件,设置中文简体请用zh-CN参数。
注:新版Next主题主仓库已从 iissnan 名下迁移至 theme-next 组织。
注:现阶段新版Next支持Font Awesome 5.13.0,而5.1.4旧版Next版本只支持Font Awesome 4.7.0
2.2   为Next主题引入Giscus评论系统
- 前置条件准备:
- 点击安装Giscus APP,选择安装到自己Github账户下的博客仓库
github.io
(不用勾选全部仓库)。 - 启用博客仓库
github.io
中的Discussions功能。
- 点击安装Giscus APP,选择安装到自己Github账户下的博客仓库
- 安装
hexo-next-giscus
插件:yarn add hexo-next-giscus
- 在博客配置文件
_config.yml
中添加giscus
配置项,具体配置项参数值可以通过Giscus官方配置页面查看(填好仓库地址,页面会检查该仓库地址是否符合要求)。选好各项配置项后,在启用 giscus
小节中可以看到最终生成的配置项参数值,例如repo_id
和category_id
。页面 ↔️ discussion 映射关系(mapping)
设置为pathname
即可,该选项是用来控制创建discussion
的名字,pathname
就是博文在博客中的路径值。Discussion 分类(category)
设置Announcements
类型即可,该类型只有管理员(项目维护者)有权限管理操作。
1 | giscus: |
2.3   为文章标题实现自动编号
2.3.1   CSS样式实现
该CSS样式仅针对hexo-theme-next主题优化,并且也会针对TOC目录项进行适配。
需要注意的是:计数器应在对应标签上层级的创建,计数器+1
就在对应标签中执行。
1 | .post-body, .post-toc{ |
2.4   live2d的修正处理
参考链接:"idle" 设置多个动作时每次加载只会执行其中一个动作,不会随机到别的动作
关于适配自动构建的两个解决方法:
- Github Action自动构建需要相应修改命令(比较繁琐,因此放弃)
- fork源码修改重新编译发布npm包(需要注册npmjs,发布全局包也需审核;使用个人仓库链接作为npm使用即可)
详细修改:
- cModel.js line 369(注释掉原来的,再添加以下代码)
1 | if (this.motions[motionName] == null) |
- cManager.js line 89(注释掉原来的,再添加以下代码)
1 | this.models[i].startRandomMotion(cDefine.MOTION_GROUP_FLICK_HEAD, |
- 修改两个文件的代码后,在live2d-widget路径下执行构建命令:
npm run inst:dev
和npm run build:prod
1 | yarn global add commitizen && yarn global add conventional-changelog-cli && yarn |
1 | npm run inst:dev |
yarn版本详细命令可通过查看
node_modules/live2d-widget/package.json
包得知:
1 | "inst:dev": "npm install -g commitizen && npm install -g conventional-changelog-cli && npm install" |
3   Github Action自动构建
3.1   以往编写actions测试的一些命令
Bash版本(ubuntu runner):
1 | export PATH="$PATH:$(yarn global bin)" |
Powershell版本(windows runner):
1 | (get-content _config.yml) -replace "GITHUB_ACCESS_TOKEN", "$TOKEN_VALUE" | Set-content _config.yml |
4   hexo部署报错排查
4.1   postinstall: npm run build:highlight failed
问题现象:在操作更新hexo-renderer-marked,在使用yarn执行构建时候,出现报错:hexo-util: command failed. Command: npm run build:highlight
。经过尝试全局单独安装hexo-util
排查发现,"npm'is not recognized as an internal or external command.
。
问题原因:安装node.js
,由于未勾选启用npm
模块,导致系统安装的node.js
环境缺失npm
,但由于新依赖包直接在包构建命令里面新增并写死了npm
命令,导致无法正常构建。
解决方法:重新运行node.js
安装包,选择「change」选项,启用npm
模块。然后重新运行yarn
构建。
4.2   Stylus for Node v14 'Accessing non-existent property' errors
问题原因:Node.js v14环境搭配出现该报错。
解决方法:
本地开发环境Node.js版本选择v12,可避免出现Stylus for Node v14 'Accessing non-existent property' errors
。
4.3   stylus出现奇怪的依赖报错问题
问题原因:stylus的依赖问题。
解决方法1:
- 更新hexo-renderer-stylus到v3.0.0以后(该版本默认子依赖stylus为v0.59.0)。
- 更新hexo-theme-next到v8.17.0以后(解决 stylus 依赖问题 ——css 库依赖报错)。
解决方法2:
在package.json
中用resolutions
字段手动指定stylus
依赖的版本。
1 | "resolutions": { |
5   hexo插件
5.1   修复hexo-heading-index
插件bug的记录
点击查看PR的具体修改内容。关于debug的思路:在updateHeadingIndexes
函数前后分别输出对应的数据,然后对比内容查看数据具体存在什么问题。
1 | var contentKeys = ['content', 'excerpt']; |
关于cheerio库的配置:配置 Cheerio
5.2   hexo-tag-mmedia插件替代方案<ifame>
标签
用 <iframe>
在 HTML 中插入B站视频:
5.3   hexo插件开发资料
- https://hexo.io/docs/plugins.html#Plugin
- https://jiangtj.com/articles/beechnut/hexo-next-injects/
- https://theme-next.js.org/docs/advanced-settings/injects
- https://jayshao.com/hexo-inject-css-js/
- https://frapples.github.io/articles/2016-09-21-6d0.html
6   参考文献
[1] npm 淘宝镜像最新官方指引(2023.08.31)[EB/OL]. https://zhuanlan.zhihu.com/p/653480874.
[2] postinstall: npm run build:highlight failes leaving full hexo install unusable...[EB/OL]. https://github.com/hexojs/hexo‑util/issues/9.
[3] Step-by-step[EB/OL]. https://yarnpkg.com/migration/guide.
[4] giscus[EB/OL]. https://giscus.app/zh-CN.
[5] Hexo评论系统对比推荐[EB/OL]. https://yzs020220.github.io/posts/44102.
[6] Hugo 博客引入 Giscus 评论系统[EB/OL]. https://www.lixueduan.com/posts/blog/02-add-giscus-comment.
[7] CSS技巧:利用counter-reset和counter-increment实现标题自动编号[EB/OL]. https://blog.csdn.net/qq_26822029/article/details/118864239.
[8] 使用 Node.js 写入文件[EB/OL]. https://dev.nodejs.cn/learn/writing-files-with-nodejs/.
Qt6 C++开发指南:第二章「GUI程序设计基踹」习题答案
1   第二章:GUI程序设计基础
项目目录文件结构:
- CMakeLists.txt:cmake构建系统的项目配置文件,存储了各种项目设置
- main.cpp:主程序入口文件,实现main函数
- widget.ui:使用XML格式描述元件及布局的界面文件
- widget.h:窗口类定义头文件,用到了.ui文件(Generate form)
- widget.cpp:是实现文件
- res.qrc:资源文件
指针的命名空间换名。Ui_Widget没有父类,不是窗口类。
1 | namespace Ui{ |
Qt项目构建过程基本原理:Qt C++头文件经过MOC(Meta-object Compiler),窗口UI文件通过UIC,资源文件通过RCC转换成标准C++程序,之后通过标准C++编译器生成可执行文件。