build(备份): 2026年06月02日16时55分02秒自动备份
This commit is contained in:
parent
d72b9aec9d
commit
5071af4a45
54
.obsidian/workspace.json
vendored
54
.obsidian/workspace.json
vendored
@ -4,16 +4,16 @@
|
||||
"type": "split",
|
||||
"children": [
|
||||
{
|
||||
"id": "5ff9f52943a9f528",
|
||||
"id": "0ce13833b644ffa6",
|
||||
"type": "tabs",
|
||||
"children": [
|
||||
{
|
||||
"id": "75a3d0e40a5fc9c2",
|
||||
"id": "9b76304b5a89ea35",
|
||||
"type": "leaf",
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "Untitled 1.md",
|
||||
"file": "01-项目/2605-读书笔记/《生活》陈梦琪(生活记录出版社).md",
|
||||
"mode": "source",
|
||||
"source": false,
|
||||
"backlinks": true,
|
||||
@ -28,7 +28,7 @@
|
||||
}
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "Untitled 1"
|
||||
"title": "《生活》陈梦琪(生活记录出版社)"
|
||||
}
|
||||
}
|
||||
]
|
||||
@ -198,34 +198,34 @@
|
||||
"templater-obsidian:Templater": false
|
||||
}
|
||||
},
|
||||
"active": "75a3d0e40a5fc9c2",
|
||||
"active": "98d756dd048d7787",
|
||||
"lastOpenFiles": [
|
||||
"Untitled 2.md",
|
||||
"Untitled 1.md",
|
||||
"模板文件/模板-RAG更新时间.md",
|
||||
"模板文件/模板-RAG读书笔记.md",
|
||||
"Untitled.md",
|
||||
"Untitled 20.md",
|
||||
"01-项目/2603-CNB/参数配置-云构建语法.md",
|
||||
"01-项目/2605-读书笔记/《信念:人生每一步都算数(珍藏版)》雷殿生(微信读书出品).md",
|
||||
"01-项目/2605-读书笔记/《生活》陈梦琪(生活记录出版社).md",
|
||||
"01-项目/2605-读书笔记/《海鸥才不管那么多》莱亚布卢门塔尔(北京科技出版社).md",
|
||||
"Untitled 19.md",
|
||||
"Untitled 10.md",
|
||||
"Untitled 11.md",
|
||||
"Untitled 15.md",
|
||||
"Untitled 16.md",
|
||||
"Untitled 1.md",
|
||||
"Untitled 3.md",
|
||||
"Untitled 4.md",
|
||||
"Untitled 6.md",
|
||||
"Untitled 9.md",
|
||||
"Untitled 20.md",
|
||||
"Untitled 18.md",
|
||||
"Untitled 17.md",
|
||||
"Untitled 12.md",
|
||||
"Untitled 4.md",
|
||||
"Untitled 3.md",
|
||||
"Untitled 15.md",
|
||||
"Untitled 7.md",
|
||||
"01-项目/2604-物联数据中台/备忘-在线帮助文档-下载链接nginx服务.md",
|
||||
"Untitled 14.md",
|
||||
"Untitled 13.md",
|
||||
"Untitled 11.md",
|
||||
"Untitled 9.md",
|
||||
"01-项目/2604-物联数据中台/账号信息.md",
|
||||
"Untitled 18.md",
|
||||
"Untitled 10.md",
|
||||
"Untitled 16.md",
|
||||
"04-归档/归档资源/归档说明-信息科技实验板蓝牙样例程序.md",
|
||||
"04-归档/归档资源/归档说明-优创未来样例程序.md",
|
||||
"模板文件/模板-健康运动-练背日志.md",
|
||||
"01-项目/2602-健康运动/健康运动-周1-练胸训练计划.md",
|
||||
"模板文件/模板-RAG读书笔记.md",
|
||||
"模板文件/模板-RAG更新时间.md",
|
||||
"Untitled.md",
|
||||
"模板文件/模板-RAG训练日志.md",
|
||||
"Untitled 19.md",
|
||||
"Untitled 8.md",
|
||||
"Untitled 5.md",
|
||||
"01-项目/2605-MicroPythonESP32S3",
|
||||
"01-项目/2605-读书笔记",
|
||||
"attachments/Pasted image 20260525181302.png",
|
||||
|
||||
@ -4,7 +4,6 @@
|
||||
|
||||
#复盘/0 #临时/备忘 #状态/待处理
|
||||
|
||||
20260601-备忘-主题名-文件内容
|
||||
|
||||
## 一句话描述
|
||||
|
||||
@ -12,7 +11,7 @@
|
||||
|
||||
---
|
||||
|
||||
物联数据中台下载连接由另一个 nginx 服务托管
|
||||
物联数据中台在线帮助文档下载链接由另一个 nginx 服务托管
|
||||
|
||||
```bash
|
||||
C:\nginx\conf
|
||||
@ -65,4 +65,44 @@
|
||||
# 批注
|
||||
行为模式总是有原因的,以这里的母亲和父亲为例,他们都是在尝试将关注点从原来的冲突上转移开来,采用了两种行为模式,一是通过翻旧账数落拉高姿态,二是拒绝沟通建立防御,过度沟通和拒绝沟通都是问题。需要针对不同情况选取合适的共同方法。其次从以他人为镜,观察自己。
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
> 创建/更新:2026-06-02-142573/2026-06-02-142573
|
||||
|
||||
# 一句话描述
|
||||
知行合一,开始行动,从”不完美“的出发点前进,失败会给你指引方向
|
||||
# 摘抄
|
||||
看着她的背影,我想要喊些什么,想要提出抗议,直接躺在地下,乞求她的宽恕;想要大哭、大笑、向她道歉。我想同时做这一切。但相反地,我的双脚做了一件它们一直以来都在做的事情:跑。我朝着蒂娜追去。(原文中作者不想跑步,却不敢直接表达)
|
||||
# 批注
|
||||
知行不合一的问题,设计完行为模式之后,怎么样先“不完美”的开始行动,使其能够附着寄生在既定行为模式之上。思路总是能想的很快,行动却要时间累计,导致知的很大、行的很小的开始点,产生落差,克服这种落差,想的很大知的很大,不以为这现实很大,先开始行动,从不完美的行动开始。
|
||||
|
||||
---
|
||||
|
||||
> 创建/更新:2026-06-02-143223/2026-06-02-143223
|
||||
|
||||
# 一句话描述
|
||||
别惶恐会消失的困难,认真对待你的目标、认真践行你的梦想
|
||||
# 摘抄
|
||||
你的第一反应永远是向前一步。你的座右铭是”人若犯我,我必犯人!”。因此,有时候你的反应过于激烈,从而让自己陷入本不必要的冲突之中,而过后你也许还会为此感到愧疚。
|
||||
# 批注
|
||||
反应激烈之后陷入悔恨,但是没有调整反馈的悔恨毫无意义,如果你要悔恨,那么你就要做出反馈回应,否则放弃悔恨,不要去焦虑会消失的困难,更不要自己惶恐不会到来的困难,当你的目标是通过路口时,当你到路口之前,不管受红绿灯的影响,红灯还剩5秒,但你要20秒才能到路口,你不该受红灯的焦虑,绿灯还剩10秒,但你要20秒才能到路口,你却不该松懈放弃。前面有人掉头挡路,但等你到达的时候,他已经结束掉头了,你又何必惶恐他有没有挡路呢。只管为了自己的目标,为了自己的梦想,尽自己最大努力,认真对待的去做。
|
||||
|
||||
---
|
||||
|
||||
> 创建/更新:2026-06-02-153709/2026-06-02-153709
|
||||
|
||||
# 一句话描述
|
||||
既定事实或甚至既定不完美来淡化完美主义,理性看待失败,理性看待纠结也是一种“失败”
|
||||
# 摘抄
|
||||
在一些非常棘手的情况下,穿一双高跟鞋很有帮助,这样你几乎不可能撒腿就跑了。
|
||||
# 批注
|
||||
慎用这个方法,但的确给了我们启示,也许我们可以善用既定事实来解决犹豫不决的问题,因为当你纠结看什么视频时,其实你看什么已经不那么重要了,你总想那么完美,一方面你在纠结前期可以直接选一个,如果你不喜欢就会换的(善用这个点,接纳失败,接纳不完美),另一方面,你怎么觉得纠结来纠结去不算一种浪费时间,不算一种失败呢
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -55,48 +55,3 @@ python -m esptool --chip esp32s3 merge_bin -o merged.bin \
|
||||
|
||||
|
||||
|
||||
## 烧录
|
||||
|
||||
|
||||
|
||||
Windows ESP-IDF
|
||||
|
||||
```bash
|
||||
|
||||
|
||||
|
||||
# ren merged.bin merged_latest.bin
|
||||
|
||||
move /y ..\merged.bin merged.bin
|
||||
|
||||
move /y ..\firmware_v1.0.0_latest.bin merged.bin
|
||||
|
||||
# cd C:\Users\Administrator\Downloads
|
||||
|
||||
esptool.py --chip esp32s3 --port COM22 --baud 921600 write_flash -z 0x0 merged.bin
|
||||
|
||||
esptool.py --chip esp32s3 --port COM22 erase_flash
|
||||
|
||||
idf.py monitor -p COM22
|
||||
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
mkdir -p /workspace/pre-merge
|
||||
|
||||
cp cat_face.zip /workspace/pre-merge
|
||||
|
||||
|
||||
|
||||
|
||||
unzip cat_face.zip
|
||||
|
||||
|
||||
|
||||
|
||||
cd /workspace/pre-merge
|
||||
@ -1,16 +0,0 @@
|
||||
|
||||
---
|
||||
#领域/未知
|
||||
|
||||
#复盘/0 #临时/备忘 #状态/待处理
|
||||
|
||||
20260602-备忘-主题名-文件内容
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[________]
|
||||
|
||||
---
|
||||
可是厨房用纸,然后接水器,水龙头转接器,可以绑到空调外机出风口的香氛或者说发散香味的物体
|
||||
|
||||
五点四十五,到七点二十五收拾屋子
|
||||
@ -1,46 +0,0 @@
|
||||
|
||||
---
|
||||
#领域/未知
|
||||
|
||||
#复盘/0 #临时/备忘 #状态/待处理
|
||||
|
||||
20260601-备忘-主题名-文件内容
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[________]
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
> 创建/更新:2026-06-01-104322/2026-06-01-104322
|
||||
|
||||
# 早餐
|
||||
|
||||
## 三明治
|
||||
|
||||
重量:153g
|
||||
碳水:42.4
|
||||
蛋白质:14.5
|
||||
|
||||
|
||||
|
||||
|
||||
三明治:
|
||||
153g
|
||||
|
||||
碳脂蛋
|
||||
42.4,19.3,14.5
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -35,6 +35,16 @@
|
||||
碳水: 22.8
|
||||
脂肪: 0.4
|
||||
蛋白质: 3.9
|
||||
良芯匠人大丰收爆料包_200g
|
||||
每100g:
|
||||
碳水: 28.9
|
||||
脂肪: 3.4
|
||||
蛋白质: 4.4
|
||||
乌米蛋黄酥松饭团_175g
|
||||
每100g:
|
||||
碳水: 34.8
|
||||
脂肪: 7.3
|
||||
蛋白质: 4.8
|
||||
```
|
||||
|
||||
## 早餐记录
|
||||
@ -57,3 +67,24 @@
|
||||
重量(g): null
|
||||
份数: 1
|
||||
```
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
> 创建/更新:2026-06-02-134977/2026-06-02-134977
|
||||
|
||||
```yaml
|
||||
早餐:
|
||||
- 食物: *良芯匠人大丰收爆料包_200g
|
||||
重量(g): 200g
|
||||
份数: 1
|
||||
- 食物: *乌米蛋黄酥松饭团_175g
|
||||
重量(g): 175g
|
||||
份数: 1
|
||||
午餐:
|
||||
- 食物: *兰州拉面
|
||||
重量(g): 426
|
||||
份数: 1
|
||||
```
|
||||
@ -1,17 +0,0 @@
|
||||
|
||||
---
|
||||
#领域/未知
|
||||
|
||||
#复盘/0 #临时/备忘 #状态/待处理
|
||||
|
||||
20260602-备忘-主题名-文件内容
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[________]
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
211
Untitled 5.md
211
Untitled 5.md
@ -1,211 +0,0 @@
|
||||
|
||||
---
|
||||
#领域/未知
|
||||
|
||||
#复盘/0 #临时/备忘 #状态/待处理
|
||||
|
||||
20260528-备忘-主题名-文件内容
|
||||
|
||||
## 一句话描述
|
||||
|
||||
[________]
|
||||
|
||||
---
|
||||
# 🔥 MicroPython ESP32 自定义**内置 C 模块** 完整标准流程
|
||||
|
||||
(适配你的 ESP32-S3,零报错、可直接复用,总结所有实操步骤)
|
||||
|
||||
## 一、核心前提
|
||||
|
||||
我们做的是 **编译进固件的 C 语言内置模块**(性能高、可直接 import)
|
||||
|
||||
开发目录固定:
|
||||
|
||||
plaintext
|
||||
|
||||
```
|
||||
micropython/ports/esp32/
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 二、标准 5 步流程(必看)
|
||||
|
||||
### 步骤 1:创建模块文件
|
||||
|
||||
在 `ports/esp32/` 下新建 C 文件,命名规则:
|
||||
|
||||
`mod+模块名.c`
|
||||
|
||||
例:`modsayhello.c`
|
||||
|
||||
---
|
||||
|
||||
### 步骤 2:编写模块代码(固定万能模板)
|
||||
|
||||
直接复制,修改函数即可,**无报错、适配所有 ESP32**
|
||||
|
||||
```c
|
||||
#include "py/obj.h"
|
||||
#include "py/runtime.h"
|
||||
|
||||
// ====================== 函数1:无参数 hello() ======================
|
||||
static mp_obj_t sayhello_hello(void) {
|
||||
mp_printf(&mp_plat_print, "Hello from ESP32-S3!\n");
|
||||
return mp_const_none;
|
||||
}
|
||||
static MP_DEFINE_CONST_FUN_OBJ_0(sayhello_hello_obj, sayhello_hello);
|
||||
|
||||
// ====================== 函数2:带1个参数 hello(name) ======================
|
||||
static mp_obj_t sayhello_hello_name(mp_obj_t name) {
|
||||
const char *str = mp_obj_str_get_str(name);
|
||||
mp_printf(&mp_plat_print, "Hello %s!\n", str);
|
||||
return mp_const_none;
|
||||
}
|
||||
static MP_DEFINE_CONST_FUN_OBJ_1(sayhello_hello_name_obj, sayhello_hello_name);
|
||||
|
||||
// ====================== 函数3:带2个参数 add(a,b) ======================
|
||||
static mp_obj_t sayhello_add(mp_obj_t a_obj, mp_obj_t b_obj) {
|
||||
int a = mp_obj_get_int(a_obj);
|
||||
int b = mp_obj_get_int(b_obj);
|
||||
return mp_obj_new_int(a + b); // 返回计算结果
|
||||
}
|
||||
static MP_DEFINE_CONST_FUN_OBJ_2(sayhello_add_obj, sayhello_add);
|
||||
|
||||
// ====================== 把所有函数注册到模块 ======================
|
||||
static const mp_rom_map_elem_t sayhello_module_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_sayhello) },
|
||||
|
||||
// 在这里添加函数!
|
||||
{ MP_ROM_QSTR(MP_QSTR_hello), MP_ROM_PTR(&sayhello_hello_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_hello_to), MP_ROM_PTR(&sayhello_hello_name_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_add), MP_ROM_PTR(&sayhello_add_obj) },
|
||||
};
|
||||
|
||||
static MP_DEFINE_CONST_DICT(sayhello_module_dict, sayhello_module_table);
|
||||
|
||||
const mp_obj_module_t sayhello_module = {
|
||||
.base = { &mp_type_module },
|
||||
.globals = (mp_obj_dict_t*)&sayhello_module_dict,
|
||||
};
|
||||
|
||||
MP_REGISTER_MODULE(MP_QSTR_sayhello, sayhello_module);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 步骤 3:添加到编译列表(关键)
|
||||
|
||||
打开文件:`ports/esp32/esp32_common.cmake`
|
||||
|
||||
找到 `MICROPY_SOURCE_PORT` 列表,**添加你的 C 文件**:
|
||||
|
||||
cmake
|
||||
|
||||
```
|
||||
list(APPEND MICROPY_SOURCE_PORT
|
||||
# ... 其他文件不变
|
||||
modsayhello.c # 新增这一行
|
||||
)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 步骤 4:编译固件(必须清理缓存)
|
||||
|
||||
bash
|
||||
|
||||
运行
|
||||
|
||||
```
|
||||
# 进入目录
|
||||
cd micropython/ports/esp32
|
||||
# 清理旧缓存(必做!)
|
||||
make BOARD=ESP32_GENERIC_S3 clean
|
||||
# 编译固件
|
||||
make BOARD=ESP32_GENERIC_S3
|
||||
```
|
||||
|
||||
编译成功后,固件位置:
|
||||
|
||||
plaintext
|
||||
|
||||
```
|
||||
build-ESP32_GENERIC_S3/firmware.bin
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 步骤 5:烧录 + 测试
|
||||
|
||||
1. 烧录固件
|
||||
|
||||
bash
|
||||
|
||||
运行
|
||||
|
||||
```
|
||||
esptool.py --chip esp32s3 --port /dev/ttyUSB0 write_flash -z 0x1000 firmware.bin
|
||||
```
|
||||
|
||||
1. REPL 测试
|
||||
|
||||
python
|
||||
|
||||
运行
|
||||
|
||||
```
|
||||
import 模块名
|
||||
模块名.函数()
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 三、函数参数规则(万能记忆)
|
||||
|
||||
表格
|
||||
|
||||
|参数个数|注册宏|示例|
|
||||
|---|---|---|
|
||||
|0 个参数|MP_DEFINE_CONST_FUN_OBJ_0|无参数 hello ()|
|
||||
|1 个参数|MP_DEFINE_CONST_FUN_OBJ_1|带名字 hello (name)|
|
||||
|2 个参数|MP_DEFINE_CONST_FUN_OBJ_2|加法 add (a,b)|
|
||||
|
||||
---
|
||||
|
||||
## 四、添加多个函数(极简流程)
|
||||
|
||||
1. 写函数 → 2. 注册宏 → 3. 加入模块表
|
||||
|
||||
c
|
||||
|
||||
运行
|
||||
|
||||
```
|
||||
// 新增函数
|
||||
static mp_obj_t test_add(mp_obj_t a, mp_obj_t b) {
|
||||
return mp_obj_new_int(mp_obj_get_int(a)+mp_obj_get_int(b));
|
||||
}
|
||||
static MP_DEFINE_CONST_FUN_OBJ_2(test_add_obj, test_add);
|
||||
|
||||
// 加入模块表
|
||||
{ MP_ROM_QSTR(MP_QSTR_add), MP_ROM_PTR(&test_add_obj) },
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 五、实战避坑(你踩过的所有坑)
|
||||
|
||||
1. **`STATIC` 报错**:用 C 原生 `static` 替代
|
||||
2. **编译失败**:必须执行 `make clean` 清理缓存
|
||||
3. **函数重复定义**:一个函数只能写一个注册宏
|
||||
4. **文件不生效**:确认 `esp32_common.cmake` 文件名拼写正确
|
||||
5. **模块找不到**:确认 `MP_REGISTER_MODULE` 模块名一致
|
||||
|
||||
---
|
||||
|
||||
## 六、一句话总结
|
||||
|
||||
创建 `modxxx.c` → 写函数 → 注册到 CMake → 清理编译 → 烧录测试
|
||||
|
||||
**这就是 MicroPython ESP32 自定义 C 模块的完整标准流程!**
|
||||
@ -15,11 +15,17 @@
|
||||
|
||||
麦片、枕头、洁面、面霜、面膜
|
||||
|
||||
香水
|
||||
厨房纸(注意材质,偶尔会接触食物)
|
||||
香氛/发散香味的物体(绑到空调出风口)
|
||||
接水器、水龙头转接器(想蓄水快速倒水,但需要注意水不能存放太久,以及容器材质)
|
||||
|
||||
|
||||
|
||||
了解新事物,例如之前的Gurobi
|
||||
|
||||
|
||||
2026年6月2日 五点四十五到七点二十五收拾屋子,感觉很满足
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,10 +0,0 @@
|
||||
---
|
||||
|
||||
> 创建/更新:2026-05-31-122792/2026-05-31-122792
|
||||
|
||||
# 一句话描述
|
||||
|
||||
# 摘抄
|
||||
|
||||
# 批注
|
||||
|
||||
20
Untitled.md
20
Untitled.md
@ -100,8 +100,28 @@
|
||||
吃了宵夜,喝了柠檬水
|
||||
然后就睡觉了
|
||||
|
||||
---
|
||||
|
||||
> 创建/更新:2026-06-02-125922/2026-06-02-125922
|
||||
|
||||
2026年6月2日行为
|
||||
|
||||
早上醒来,洗漱,蒸饭团
|
||||
我冲了一杯蛋白粉,喝了补剂
|
||||
去健身房,发现健身房的门锁没电进不去
|
||||
|
||||
然后回去了
|
||||
五点四十五~七点二十五收拾屋子
|
||||
|
||||
收拾屋子很舒服
|
||||
|
||||
以及测试了香水+洗脸巾的方式,感觉还好
|
||||
|
||||
早上就吃了饭团
|
||||
|
||||
中午吃了兰州拉面
|
||||
|
||||
晚上我不想加班了,哈哈哈哈哈,要不去吃自助吧
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,9 +1,3 @@
|
||||
|
||||
> 创建/更新:<% tp.file.creation_date("YYYY-MM-DD-HHmmSS") %>/<% tp.file.creation_date("YYYY-MM-DD-HHmmSS") %>
|
||||
> 创建/更新:<% tp.date.now("YYYY-MM-DD-HHmmSS") %>/<% tp.date.now("YYYY-MM-DD-HHmmSS") %>
|
||||
|
||||
|
||||
|
||||
创建/更新:<% tp.date.now("YYYY-MM-DD-HHmmSS") %>/<% tp.date.now("YYYY-MM-DD-HHmmSS") %>
|
||||
|
||||
文件创建时间:<% tp.file.creation_date("YYYY-MM-DD HH:mm:ss") %>
|
||||
本次更新时间:<% tp.date.now("YYYY-MM-DD-HHmmSS") %>
|
||||
@ -1,6 +1,6 @@
|
||||
---
|
||||
|
||||
> 创建/更新:<% tp.file.creation_date("YYYY-MM-DD-HHmmSS") %>/<% tp.file.creation_date("YYYY-MM-DD-HHmmSS") %>
|
||||
> 创建/更新:<% tp.date.now("YYYY-MM-DD-HHmmSS") %>/<% tp.date.now("YYYY-MM-DD-HHmmSS") %>
|
||||
|
||||
# 一句话描述
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user