diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/README.md" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/README.md" deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/1.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/1.png" deleted file mode 100644 index 79d934def2f6e6d35386923acc3ec736b6b150af..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/1.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/10.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/10.png" deleted file mode 100644 index b06c840a85238155039a0d4a25b9971e3fdc69f0..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/10.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/11.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/11.png" deleted file mode 100644 index 3b272ea3dce8e9bca1351a3b044ffbccdfca9f4f..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/11.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/12.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/12.png" deleted file mode 100644 index 106a07824143169a8893f95612762722ec597048..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/12.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/13.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/13.png" deleted file mode 100644 index 3aef293b865234009bb714ca615bb3a3f7cc36c9..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/13.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/14.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/14.png" deleted file mode 100644 index d72ebdfee9c54169ca345069919d9f97f0304666..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/14.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/2.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/2.png" deleted file mode 100644 index 348a7c6ce0d5b6b61fa027d19092f0b62cb44dc4..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/2.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/3.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/3.png" deleted file mode 100644 index 7848d8ddc4dac65fa2d2e9cfbe59a63084f94e1c..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/3.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/4.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/4.png" deleted file mode 100644 index 87b2264c5ddeab03d13a634b38a00cc7b2166440..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/4.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/5.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/5.png" deleted file mode 100644 index 60712db1a26986b5207e3eb0eb6bfb216032283b..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/5.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/6.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/6.png" deleted file mode 100644 index 9ae9f2e07d5ea62776e3ea6a15000d4147a7b0d4..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/6.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/7.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/7.png" deleted file mode 100644 index 2381d04f8799c012a787595b1cd99916165ee30c..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/7.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/8.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/8.png" deleted file mode 100644 index 97754f1c8aeb4eb33ad807da1b889ecda34e21df..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/8.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/9.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/9.png" deleted file mode 100644 index 19916c1eb48a93e140d051d4c4d1e834b8885137..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/images/day1/9.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/\347\254\254\344\270\200\345\244\251\344\275\234\344\270\232.md" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/\347\254\254\344\270\200\345\244\251\344\275\234\344\270\232.md" deleted file mode 100644 index 68a4000c092da0865e9288049da1e88d2ef61169..0000000000000000000000000000000000000000 --- "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\344\275\234\344\270\232/\347\254\254\344\270\200\345\244\251\344\275\234\344\270\232.md" +++ /dev/null @@ -1,26 +0,0 @@ -# 课堂作业:构建一个新的目录,并编译成功 -## 1. 首先,新建一个目录(WIFI) -![image](images/day1/1.png) -![image](images/day1/2.png) -## 2. 在此目录下,新建wifi.c文件 -![image](images/day1/3.png) -![image](images/day1/4.png) -## 3. 在wifi.c文件中,写入一些代码(可以参考main.c) -![image](images/day1/5.png) -## 4.创建一个SConscript脚本,因为下面没有文件夹,所以不需要再递归了 -![image](images/day1/6.png) -![image](images/day1/7.png) -## 5.编写完成后,保存,进行编译,可以看到成功编译了wifi.c -![image](images/day1/8.png) -## 6.编译完成后,运行查看效果,效果和刚才一样 -![image](images/day1/9.png) -## 7.从上面的效果来看,wifi.c中写的东西并没有被执行,这是因为在main.c中没有调用wifi.c,那么如何在main.c中调用wifi.c? -### 1)新建一个wifi.h -![image](images/day1/10.png) -### 2)在wifi.c中包含头文件 -![image](images/day1/11.png) -### 3)在main.c中包含wifi.h -![image](images/day1/12.png) -### 4)重新编译并运行,可以看到能够显示出wifi.c中编写的输出语句 -![image](images/day1/13.png) -![image](images/day1/14.png) \ No newline at end of file diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image1.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image1.png" deleted file mode 100644 index 3a1cab2787ccec89de2823db156fb9e548515b4c..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image1.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image10.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image10.png" deleted file mode 100644 index d0dc314ef38a02da786849367dc554a04dfd760c..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image10.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image100.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image100.png" deleted file mode 100644 index edd99bd929bf934827aab46bb6692e06555f7a95..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image100.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image101.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image101.png" deleted file mode 100644 index 3d63e16e5fd10a32fd83a96e11b60ff0fd908039..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image101.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image102.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image102.png" deleted file mode 100644 index 4917bcea53740001f8f6c685b7d8cca4357241db..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image102.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image103.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image103.png" deleted file mode 100644 index 31b4f350bfec2911690761127df23bd4960ec77e..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image103.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image104.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image104.png" deleted file mode 100644 index a0ea95fc1201d3bdbf8f6c62fd3b2f6db9ba5faa..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image104.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image105.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image105.png" deleted file mode 100644 index 509aa05c1bd671e9c6c7a8f5c66bc51a85e5b2bb..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image105.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image106.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image106.png" deleted file mode 100644 index 7fc399d1073e75849719de2f6f2f8a2e89b2196f..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image106.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image107.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image107.png" deleted file mode 100644 index 51f92b481c22092afa69d5075ce1944d01297f18..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image107.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image108.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image108.png" deleted file mode 100644 index 6b47717bb83efc9eec6f9bf368357f92c958a73b..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image108.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image109.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image109.png" deleted file mode 100644 index 54fe53315569d939e382791f1f884d71513043e2..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image109.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image11.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image11.png" deleted file mode 100644 index 52b2e5392a97b98454bdb33cc926bb0d0615b78b..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image11.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image110.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image110.png" deleted file mode 100644 index de15228aad887632e6673e9c25ded10413fe8ee7..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image110.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image111.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image111.png" deleted file mode 100644 index 48752006adfc6486a5f9a4334ccad7968763ae36..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image111.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image112.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image112.png" deleted file mode 100644 index 93bda8e0bf106fb2eb45ecc3c73d59d38fd2e85a..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image112.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image113.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image113.png" deleted file mode 100644 index a5d0900bc16ec5b62bdb4c05c888a2fdd704bf97..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image113.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image114.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image114.png" deleted file mode 100644 index 87cd0267673ea6a9a53c0f92df0af8b0c4aed30d..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image114.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image115.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image115.png" deleted file mode 100644 index 8462468c52c50c1266815d05eff17743e615a0ed..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image115.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image116.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image116.png" deleted file mode 100644 index bda62398c5aba36829f255be40f58b87f5881eca..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image116.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image117.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image117.png" deleted file mode 100644 index 6358e9eb186a0982e646329b5b03dc00466e14cb..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image117.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image118.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image118.png" deleted file mode 100644 index f0f90b1a97de8d9be186837b0b857daa1fd2c265..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image118.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image119.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image119.png" deleted file mode 100644 index 5ca36505810f46d20966d19c392ebf55aef0e21c..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image119.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image12.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image12.png" deleted file mode 100644 index f2f3c4d24dcdb20236f8e201772988a0dd65f725..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image12.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image120.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image120.png" deleted file mode 100644 index 2124504e4d3e987644a9af70a9cb53f00bc7e891..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image120.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image121.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image121.png" deleted file mode 100644 index f18f6685ccfffaf3cc9ef36c5f7967871b10c382..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image121.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image122.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image122.png" deleted file mode 100644 index 2d25fe68bb0bbd982971ddbf45229494b1f9e53d..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image122.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image123.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image123.png" deleted file mode 100644 index 478e75193dfc2f72fa61b4f151a0fca8a6f00672..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image123.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image124.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image124.png" deleted file mode 100644 index d18fed369aad2d9daf9c75c50fd395856b79779f..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image124.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image125.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image125.png" deleted file mode 100644 index 73019755a49eb7f7cdff0b20e3105b94706dcf05..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image125.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image126.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image126.png" deleted file mode 100644 index f97404183c7a351f568a5e1248157bbfa4cfc672..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image126.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image127.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image127.png" deleted file mode 100644 index 77325f3631131562c1c00fcc52e72c9c0499d763..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image127.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image128.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image128.png" deleted file mode 100644 index 49749ed615246014f341b3aaa321ab4b727a2e1f..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image128.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image129.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image129.png" deleted file mode 100644 index 536639d9077a88eb3b7d5bcb7ab621bec53e834a..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image129.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image13.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image13.png" deleted file mode 100644 index 1a5b27f4a9611958dbcff8d76a75fca1fa0c639f..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image13.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image130.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image130.png" deleted file mode 100644 index b6a3a24f6de0b5959d2fad1c3b893ad9682a434c..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image130.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image131.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image131.png" deleted file mode 100644 index 8889e32dcf02fd77e756450c9aa010ba36b031c6..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image131.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image132.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image132.png" deleted file mode 100644 index de15228aad887632e6673e9c25ded10413fe8ee7..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image132.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image133.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image133.png" deleted file mode 100644 index 4a23e8950971bbaaa05af609e2b0bd0faa89dde9..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image133.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image134.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image134.png" deleted file mode 100644 index 8a841e2ed1becbfff81a53b41c258a39790bc323..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image134.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image14.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image14.png" deleted file mode 100644 index a809dac25635bb723a6b481cbd02ba59e380d48d..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image14.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image15.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image15.png" deleted file mode 100644 index 79afdd76293bd40ee73a1c6f5596638e445dbfdb..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image15.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image16.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image16.png" deleted file mode 100644 index f82263cc53a79b370bc304aaa5445ef80538ffd6..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image16.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image17.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image17.png" deleted file mode 100644 index dd974ef87d85c44c792e284dca5fa4f5573a34e3..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image17.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image18.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image18.png" deleted file mode 100644 index f4d266b3cf18180786d2619694d55adf6373d9b8..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image18.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image19.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image19.png" deleted file mode 100644 index 1091238c6f0b36f90d69da3ecdb31792680adb2c..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image19.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image2.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image2.png" deleted file mode 100644 index 57b27e1fed8774d7c6b81ced00ffb1a7739f872e..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image2.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image20.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image20.png" deleted file mode 100644 index 2b67655a9e9dc0285b29a62e108dcb8721db488a..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image20.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image21.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image21.png" deleted file mode 100644 index a55370b46caf9fa9d1716ba997058120b6a9a4ea..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image21.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image22.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image22.png" deleted file mode 100644 index a99181285b0d862b833663206fac87b811569c9a..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image22.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image23.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image23.png" deleted file mode 100644 index 2abd4ec666bb1c612bd3bb7ae6212ede5c1594d6..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image23.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image24.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image24.png" deleted file mode 100644 index 92fec4b122c8317869ce0bb0a0de242bb4a5541f..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image24.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image25.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image25.png" deleted file mode 100644 index 5fba7f035bdcb2d34c703d6009226c686c081db8..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image25.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image26.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image26.png" deleted file mode 100644 index 5a4f7bca345458dcb90c049aac2debb89116e592..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image26.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image27.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image27.png" deleted file mode 100644 index dc5d031fcb3009cf72c1a1acccce3e0100306247..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image27.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image28.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image28.png" deleted file mode 100644 index a6c7864f019c5ff6cdde5a1581e0028ef552b73c..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image28.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image29.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image29.png" deleted file mode 100644 index 6056b5519dd8fe2dc87dd195361ef546f0fa759e..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image29.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image3.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image3.png" deleted file mode 100644 index 6c9891d261e97a4f290c52c4ad9927b615e21a6c..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image3.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image30.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image30.png" deleted file mode 100644 index 4e2d07142a8f9fc974a4066082c1ba26bd4b4324..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image30.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image31.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image31.png" deleted file mode 100644 index 6d7d437eb2d2b366254fe0167839d0be1834146a..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image31.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image32.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image32.png" deleted file mode 100644 index 57512b56d32a0a8c256ea0d88d321fca3bbc6972..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image32.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image33.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image33.png" deleted file mode 100644 index fd8e33119c2d947c30523a52783ca2207af732ac..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image33.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image34.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image34.png" deleted file mode 100644 index ea9d5049670d2136eeebe95348db9a182b5bff77..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image34.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image36.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image36.png" deleted file mode 100644 index 7b3a240285554af20aab9993db3f15148cb9e345..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image36.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image37.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image37.png" deleted file mode 100644 index b19a71eb65b3c5bc701a1d0cdfca36c08508c4dd..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image37.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image38.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image38.png" deleted file mode 100644 index 82629ce26c660351ceff4a945e0e0098a76496e9..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image38.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image39.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image39.png" deleted file mode 100644 index bed15cf2e88d885f33f9a28427775bcaf3a2c205..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image39.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image4.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image4.png" deleted file mode 100644 index da359fecc69e8b7ee804c000c953ae6e8336662a..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image4.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image40.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image40.png" deleted file mode 100644 index 4cbe1145b17680ca9607640cf26ce44c8f33cbd3..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image40.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image41.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image41.png" deleted file mode 100644 index d1d19c02b7eb8609d331e59626cf40e8dc170817..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image41.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image42.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image42.png" deleted file mode 100644 index c5210105b4c6fc9aa2cb436ff544a72d9f4263a8..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image42.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image43.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image43.png" deleted file mode 100644 index 87dbdf53e2fb8b6ddadc7d0b262129c165d7830f..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image43.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image44.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image44.png" deleted file mode 100644 index 85a907ce5d73e8d7f9bb3855ef5435f644f321c2..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image44.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image45.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image45.png" deleted file mode 100644 index 153be2d3643a4eb363d0cca8042c5c3fc02d68dc..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image45.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image46.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image46.png" deleted file mode 100644 index 1702500d813fed19e7cd37eb549fc4628b24e1f3..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image46.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image47.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image47.png" deleted file mode 100644 index 72165ef47797a428fc8e59045af8c879409e43ba..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image47.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image48.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image48.png" deleted file mode 100644 index 49e19c2679c66fe6ee3ae0a0285b0966f97545f6..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image48.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image49.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image49.png" deleted file mode 100644 index 8fc2c59da0c09e1f5f1203053aac413d93f853a0..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image49.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image5.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image5.png" deleted file mode 100644 index ad60d64f12c26b28d5415fb94075a2b830a68692..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image5.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image50.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image50.png" deleted file mode 100644 index 009a94fe0494768a09041b6507cac517d222159c..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image50.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image51.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image51.png" deleted file mode 100644 index 35370fb96c5fe9440db07e2e4db47e116a06817c..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image51.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image52.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image52.png" deleted file mode 100644 index 680360f190ad0f3250550d476225309e2e565ff1..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image52.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image53.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image53.png" deleted file mode 100644 index e0d199b2e4fe52e125203953ac0e9195a68626ef..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image53.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image54.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image54.png" deleted file mode 100644 index 492e679f0822a8053c713bb85dadffd2977dbbda..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image54.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image55.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image55.png" deleted file mode 100644 index 5e77cbaf6996ea68cbf2f115cb4bf202c1b85b18..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image55.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image56.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image56.png" deleted file mode 100644 index 3dd502f41e19244792660cff9707da9ed081c0a0..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image56.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image57.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image57.png" deleted file mode 100644 index 24a833db4747e01e144b2d042e4e6ddc032ddc60..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image57.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image58.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image58.png" deleted file mode 100644 index c87b36cf540808722e2263f62927208276507942..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image58.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image59.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image59.png" deleted file mode 100644 index 117afeb8e57ef60216bf871d68613525f5ce004d..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image59.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image6.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image6.png" deleted file mode 100644 index 4fd083f93e3f910a47b3d6b122481a41c0a28385..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image6.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image60.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image60.png" deleted file mode 100644 index 3aacc65abcae3bdb683fc0aaa634cba1b4a3bc96..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image60.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image61.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image61.png" deleted file mode 100644 index 8d0a4353e54b16f19e1509011c14ae66df3f4691..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image61.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image62.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image62.png" deleted file mode 100644 index 3f859b01d684686ea187832e7a0f26ca18890bb0..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image62.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image63.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image63.png" deleted file mode 100644 index 6aca9e928ad97e02145a4e4cf25f8ad7f23270ac..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image63.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image64.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image64.png" deleted file mode 100644 index bb1088b7df9c03a9857307002d76f14b7ca81e70..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image64.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image65.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image65.png" deleted file mode 100644 index c652af49296ade8523241bd3bbe30f833d436413..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image65.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image66.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image66.png" deleted file mode 100644 index 3a58f3f154b4d5a2523aa5b082f7a625b93e57d5..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image66.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image67.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image67.png" deleted file mode 100644 index 72c2257bcd15b61b527d93d7bf76ff4a2a08c005..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image67.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image68.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image68.png" deleted file mode 100644 index 1951ac0f2f578d7e86ddc0aca05d0b4ce58ea650..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image68.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image69.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image69.png" deleted file mode 100644 index 38f4eebf2ea804ff3df555ecd80713ad9d7a1b17..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image69.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image7.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image7.png" deleted file mode 100644 index 58486240c99aac1c2f43a6a434be0d38da178822..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image7.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image70.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image70.png" deleted file mode 100644 index 4fd48498e411b3a9e195d61a88531aaaf45b935d..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image70.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image71.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image71.png" deleted file mode 100644 index 8da088a6bf76d9358a6d851d3d19de7cad9557b4..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image71.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image72.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image72.png" deleted file mode 100644 index dcb6bf81f860492a3fb37ced697e746606054179..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image72.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image73.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image73.png" deleted file mode 100644 index 809551fdc7ea959528c3c505fbf5fe5ac7d5a9be..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image73.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image74.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image74.png" deleted file mode 100644 index ac931150de43ef7c4fbac816061a0499807c947e..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image74.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image75.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image75.png" deleted file mode 100644 index 1894929f6e4c82ac29bb2a8d5dc90278ed2e79b0..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image75.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image76.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image76.png" deleted file mode 100644 index 3f1c527ad1cdb1cd0f45265f00effa81787c191e..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image76.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image77.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image77.png" deleted file mode 100644 index 181c071b13949f1250e8c3f4be8ea41796c88191..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image77.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image78.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image78.png" deleted file mode 100644 index ee2897f26d056c03ca239c791e9c4758959ab439..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image78.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image79.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image79.png" deleted file mode 100644 index 01f8e88eb22ab8f80db89c40d29cfcfdbd621a4c..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image79.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image8.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image8.png" deleted file mode 100644 index 9ed5614ed357191df82313192f1ca23ad397117d..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image8.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image80.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image80.png" deleted file mode 100644 index 4ef573de5058093e6ce1723b40ff081736afcb31..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image80.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image81.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image81.png" deleted file mode 100644 index 753c48f92e357bf9fb537e284b3058cec1ad05bc..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image81.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image82.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image82.png" deleted file mode 100644 index 6463cc292f2d43a6c46b3d113440eda766f1782a..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image82.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image83.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image83.png" deleted file mode 100644 index d7c1a7d7103d8f809530f7b6e30bccb47ef4f73d..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image83.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image84.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image84.png" deleted file mode 100644 index 768dc260bfa4a9537c25741c78959ac4c67d13ec..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image84.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image85.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image85.png" deleted file mode 100644 index 9e470293a5c6d4fdf119fd7a939d3b558abd35be..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image85.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image86.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image86.png" deleted file mode 100644 index d89b7021ca63b7491f62f55c09c0059b1b11f69d..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image86.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image87.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image87.png" deleted file mode 100644 index 3c2987636bff5f6b702cc792708aca8e9eb7ac88..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image87.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image88.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image88.png" deleted file mode 100644 index cefc8b5b379716679d4a95c726950e674dd08c7e..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image88.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image89.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image89.png" deleted file mode 100644 index b346a66fa73f3a94ddb5ea4f9f2d892528125504..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image89.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image9.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image9.png" deleted file mode 100644 index 97cd1d6aed4cd9ed7adf78063656bf78768dbe06..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image9.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image90.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image90.png" deleted file mode 100644 index 9b189387e7e8fc30fa2aef065eb6c4a677ab54b2..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image90.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image91.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image91.png" deleted file mode 100644 index 5064211bb4eee5784dc25d781c5dbac65f176973..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image91.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image92.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image92.png" deleted file mode 100644 index 8889d8ad26acdb8415078e0eb00d646e7b94de9b..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image92.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image93.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image93.png" deleted file mode 100644 index 75a81a86086f32d4e54c866cd47893dcdae4591b..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image93.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image94.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image94.png" deleted file mode 100644 index a0cdc3f91a52d43bc29ff8dcd627bfa38c514db2..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image94.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image95.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image95.png" deleted file mode 100644 index c716e2ceb2d7f22d5ca35d4b453703dbab6f5f62..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image95.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image96.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image96.png" deleted file mode 100644 index 460fde6b04fa8616a63b9274c888cfd8c3c41233..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image96.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image97.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image97.png" deleted file mode 100644 index 0b62869c314fb33e22b74285fe95d61acc8a3ebd..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image97.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image98.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image98.png" deleted file mode 100644 index 81bf24bf68b2f58285caae3a343ba7f207e24584..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image98.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image99.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image99.png" deleted file mode 100644 index ccd95f611c9f5963d9d92fd2adafb9a4406ca0a5..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/images/day1/image99.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/\343\200\220RSOC25\343\200\221Day1 \350\257\276\347\250\213\347\254\224\350\256\260\357\274\232git\347\216\257\345\242\203\351\205\215\347\275\256.md" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/\343\200\220RSOC25\343\200\221Day1 \350\257\276\347\250\213\347\254\224\350\256\260\357\274\232git\347\216\257\345\242\203\351\205\215\347\275\256.md" deleted file mode 100644 index 142eb04931961cff282cc26c71bc45cc9c8ec139..0000000000000000000000000000000000000000 --- "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\345\221\250\351\224\266\347\220\252/\347\254\224\350\256\260/\343\200\220RSOC25\343\200\221Day1 \350\257\276\347\250\213\347\254\224\350\256\260\357\274\232git\347\216\257\345\242\203\351\205\215\347\275\256.md" +++ /dev/null @@ -1,362 +0,0 @@ -# 【RSOC25】Day1 课程笔记:git环境配置 -# 1. 新建目录与拉取仓库操作指南 -## 1.1 git下载网站: -下载网站:https://git-scm.com/downloads/win 选择x64版本 -![image1](images/day1/image1.png) -下载完成后,可以在win中看见git应用 -![image2](images/day1/image2.png) - -## 1.2 将RT-Thread代码拉取到本地 -### 1.2.1 在D盘新建一个RSOC的目录,用来存放RT-Thread的相关文件 -![image3](images/day1/image3.png) -新建完成后里面什么都没有 -![image4](images/day1/image4.png) -### 1.2.2 打开git base软件,并将当前工作目录切换到刚刚新建的2025-RSOC目录 -1. cd命令可切换工作目录 -![image5](images/day1/image5.png) -2. 打开git的仓库包 -链接:https://github.com/RT-Thread/rt-thread -![image6](images/day1/image6.png) -3. 点击code找到HTTP的链接,并复制。如下图所示 -链接为:https://github.com/RT-Thread/rt-thread.git -![image7](images/day1/image7.png) -4. 将链接粘贴后,到git-Bash中使用git clone命令进行仓库的拉取 -命令:``git clone https://github.com/RT-Thread/rt-thread.git`` -![image8](images/day1/image8.png) -__【备用方案】在gitee中克隆镜像的仓库(由于我的网络不稳定,所以我采用的是这个方案)__ -链接:https://gitee.com/mirrors_RT-Thread/rt-thread -同样也是复制HTTP的链接到git-Bash中进行仓库的拉取 -![image9](images/day1/image9.png) -![image10](images/day1/image10.png) -当进度条为百分百之后,表示仓库以及拉取完毕,可打开文件夹验证 -![image11](images/day1/image11.png) -![image12](images/day1/image12.png) - -## 1.3 拉取ENV工具(构建工具) -新建一个用来存放ENV工具的文件夹,在刚刚的文件夹下新建 -![image13](images/day1/image13.png) -仓库链接:https://github.com/RT-Thread/env-windows -![image14](images/day1/image14.png) -### 另一种使用git的方式:直接在当前要存放的文件夹下,打开命令提示符,并在此输入仓库拉取的命令(在网址下有克隆的命令) -命令:``git clone --recursive --depth 1 https://gitee.com/mirrors_RT-Thread/env-windows.git`` -![image15](images/day1/image15.png) -![image16](images/day1/image16.png) -当进度条为百分百之后,表示仓库以及拉取完毕,可打开文件夹验证 -![image17](images/day1/image17.png) -拉取成功后可以在文件夹中找到 -![image18](images/day1/image18.png) - -## 1.4 ENV的配置 -1. 打开刚刚拉取的ENV仓库,打开env.bat(第一次打开会自动配置一些依赖,等它下载完成以后就是配置好了,下面第一张图为正在配置,第二张图就是配置好了) -![image19](images/day1/image19.png) -![image20](images/day1/image20.png) -2. 打开右上角的setting,找到Integration栏,点击Register(注册),它会将env注册到我们的一个系统里面 -![image21](images/day1/image21.png) -![image22](images/day1/image22.png) -注册好以后,可以在文件夹中通过右键打开env -![image23](images/day1/image23.png) - -# 2. 环境配置与代码编译操作指南 -## 2.1 在rt-thread文件夹下右键打开env,可以看见env工作目录即为打开的文件夹,在env中输入 pkgs --update 进行更新 -### 检查 Env 工具是否正常工作 -命令: -``pkgs --list `` # 查看已安装的包 -``menuconfig `` # 检查配置界面是否正常 -![image24](images/day1/image24.png) -## 2.2 RT-Thread源代码目录结构 -![image25](images/day1/image25.png) - -# 3. Q启动与代码编辑操作指南 -1. 在D:\2025-RSOC\rt-thread\bsp\qemu-vexpress-a9目录下重新打开env -![image26](images/day1/image26.png) -2. 输入 ``menuconfig ``进行配置 -![image27](images/day1/image27.png) -![image28](images/day1/image28.png) -第一次进来,按下Q退出,会提示“是否需要保存” -![image29](images/day1/image29.png) -保存后,退出,输入 ``scons -j4 ``进行编译 (4取决于电脑的进程数) -![image30](images/day1/image30.png) -![image31](images/day1/image31.png) -输入``ls `` 查看目录下的文件,可以看到,当前目录以及成功编译出了.elf文件 -将.elf文件使用烧入工具把它烧录到对应的板子就可以运行起来了 -![image32](images/day1/image32.png) -3. 使用Q对它进行启动,由于没有打开GUI,直接使用没有中心化的版本 -命令: qemu-nographic.bat -![image33](images/day1/image33.png) - -# 4. git bash 环境中查用命令 -1. 命令:``help``(可以查看支持的一些命令) -![image34](images/day1/image34.png) -2. 命令:list device(可以查看当前开启的一些设备) -![image36](images/day1/image36.png) -3. 命令:``list thread``(可以查看当前开启的线程) -![image37](images/day1/image37.png) -显示栏中一些参数的含义 -![image38](images/day1/image38.png) -4. 命令:``list timer``(可以查看当前的定时器) -![image39](images/day1/image39.png) -5. ctrl+A+X:退出当前的终端 -![image40](images/day1/image40.png) -【遇到的问题】在我的电脑中,按下ctrl+A+X是打出一堆笑脸 -【解决办法】按下ctrl+a再松开,再按x就可以退出了 - -# 5. 终端操作与构建系统应用 -## 5.1 用VScode打开D:\2025-RSOC\rt-thread\bsp\qemu-vexpress-a9 -1. 选择打开文件夹,找到这个文件夹 -![image41](images/day1/image41.png) -![image42](images/day1/image42.png) -2. 如果跳出是否信任此作者,请选择信任 -![image43](images/day1/image43.png) -3. 打开完成后如下图所示 -![image44](images/day1/image44.png) -4. 在applications栏下找到main.c,在main.c中对dsp代码进行编辑 -![image45](images/day1/image45.png) -5. 加入一句打印的语句 -![image46](images/day1/image46.png) -6. 加入完成后,对此进行编译(__加入完成后,一定要保存!!!__) -命令:``scons -j4 `` -![image47](images/day1/image47.png) -7. 编译完成后,输入命令让它跑起来 -命令:``qemu-nographic.bat`` -可以看到我们刚刚写的2025-RSOC被打印到终端上了 -![image48](images/day1/image48.png) -## 5.2 思考:ENV是怎么把.c文件添加到构建中的? -1. 找到根目录中的一个SConscript文件 -![image49](images/day1/image49.png) -在此文件中采用递归查找同样是SConscript的文件 -![image50](images/day1/image50.png) -2. 找到内文件中的一个SConscript文件 -![image51](images/day1/image51.png) -3. 运行过程:在编译时,首先会找到根目录先的SConscript文件,进行递归搜索,搜索到子目录中的SConscript文件,会继续往下递归。并将.c文件添加到SRC中。 -![image52](images/day1/image52.png) -## 5.3 思考:如何将新的目录添加到当前的构建系统中? -1. 创建一个新的目录(test1) -![image53](images/day1/image53.png) -![image54](images/day1/image54.png) -2. 在test1中新建.c文件,并输入一些代码(方便起见,直接用main.c) -![image55](images/day1/image55.png) -![image56](images/day1/image56.png) -main.c中的代码如下: -![image58](images/day1/image58.png) -3. 将test.c添加到当前的构建中 -创建一个SConscript脚本,因为下面没有文件夹,所以不需要再递归了 -脚本代码如下 -![image57](images/day1/image57.png) -4. 编写完成后,保存,进行编译 -![image59](images/day1/image60.png) -5. 编译完成后,运行查看效果,效果和刚才一样 -![image60](images/day1/image61.png) -## 5.4 代码规范 -### 例:比如要获取传感器的数据 -新建一个目录专门放置传感器的代码,如Sensor -![image62](images/day1/image62.png) - -# 6.管理包 -1. 打开menuconfig -![image63](images/day1/image63.png) -2. 找到Enable LVGL for LCD,将它打开 -依次打开下面的栏 -![image64](images/day1/image64.png) -![image65](images/day1/image65.png) -![image66](images/day1/image66.png) -3. 然后返回,在Kconfig中查看是否配置完成,可以看到在Kconfig中看见Enable LVGL for LCD,说明配置成功,并且将这个配置自动创建到.config中 -![image67](images/day1/image67.png) -4. 使用`` pkgs --update`` 进行下载 -![image68](images/day1/image68.png) -5. 下载完成以后,输入`` scons -j4`` 进行编译 -![image69](images/day1/image69.png) -![image70](images/day1/image70.png) -6. 编译完成后,运行 ``qemu.bat`` -![image71](images/day1/image71.png) -![image72](images/day1/image72.png) -# 7.git版本控制系统与基本使用介绍 -## 7.1 核心概念 -### Git:它是一个版本控制系统。把它想象成一个超级智能的 “时光机器” 或 “文档追踪器”。 -#### 1. 它的核心工作是跟踪文件的变化。每次你对文件做了重要的修改(比如完成一个功能、修复一个 bug),你就可以告诉 Git 记录下这个 “快照”。 -#### 2. 它允许你回溯历史。如果你改错了东西,或者想看看一周前的代码是什么样子,Git 可以轻松带你回到那个 “快照” 的状态。 -#### 3. 它支持协作。多人可以在同一个项目上工作,Git 能帮大家合并各自的修改,管理不同版本。 -#### 4. 它支持分支。想象你在写小说,想尝试一个不同的结局。Git 允许你创建一个独立的分支来写这个结局,而不会影响主线故事。写完后,你可以决定是否合并回主线。 -### 本地 Git 仓库 (Repository / Repo):这是 Git 工作的核心场所。把它理解成一个项目专属的数据库或时光胶囊。 -#### 1. 位置:它通常是你项目根目录下的一个隐藏文件夹(名为 .git )。 -#### 2. 内容:这个文件夹里包含了 Git 运作所需的一切: -1. 项目的所有文件的历史版本(以高效压缩的方式存储)。 -2. 记录每次修改的日志(谁、什么时候、改了哪里、为什么改)。 -3. 指向当前状态和各个历史版本的指针。 -4. 分支信息、标签信息、远程仓库地址等配置。 -#### 3.作用:对项目文件的所有修改记录都保存在这里。 -### 如何理解它们之间的关系? -#### 想象你有一个木匠工作坊(你的项目文件夹)。 -#### Git 就像是这个工作坊的管理系统,负责记录每件工具的摆放位置(文件状态)、每次制作家具的步骤(修改历史)、不同的设计方案草稿(分支)。 -#### Git 仓库 (.git 文件夹) 就是这个工作坊里一个特殊的、上了锁的档案室。里面存放着: -1. 所有工具的详细清单和每次使用记录。 -2. 每件家具从木料到成品的完整制作过程录像(所有历史版本)。 -3. 不同设计方案(分支)的图纸和模型。 -#### 当你在工作坊(项目目录)里干活(修改文件)时,Git 系统(通过命令)让你可以选择: -1. 暂存 (git add):把改动好的零件 / 图纸放进一个 “准备区”,告诉 Git 系统这些是下次要记录进档案室的。 -2. 提交 (git commit):把 “准备区” 的东西正式拍个快照,存档到档案室(仓库)里,并写下这次存档的说明(比如 “完成了桌面打磨” )。这就是创建了一个新的历史版本。 -3. 查看历史 (git log):去档案室翻阅以前的存档记录和快照。 -4. 回退 (git checkout,git reset):根据档案室的记录,把工作坊恢复到某个历史快照的状态(比如桌面打磨前的状态)。 -5. 创建分支 (git branch/git checkout -b):复制一份当前的设计图纸,开始尝试一个新的设计方案,不影响原来的主线设计。 -6. 合并分支 (git merge):把新设计方案中满意的部分合并回主线设计。 -## 7.2自己创建仓库 -### 7.2.1 使用git bash创建 -1. 新建一个文件夹,命名为test -![image73](images/day1/image73.png) -2. 初始化仓库:``git init`` -![image74](images/day1/image74.png) -初始化完成后,本地会有一个.git文件夹 -![image75](images/day1/image75.png) -3. 在test文件夹中新建一个文本,命名为hello.txt,并且编写一些内容 -![image76](images/day1/image76.png) -4. 使用 ``git status`` 查看它的状态 -[标红原因:没有添加到暂存区] -![image77](images/day1/image77.png) -使用``git add . ``将当前文件添加到暂存区 -![image78](images/day1/image78.png) -再次使用 ``git status``查看它的状态 -![image79](images/day1/image79.png) -5. 使用 ``git commit ``提交到仓库,使用`` -m "测试提交" ``添加说明 -![image80](images/day1/image80.png) -[遇到的问题]显示这个是因为没有配置全局信息,利用下面的代码配置完成后,再次运行就可以了: -![image81](images/day1/image81.png) -![image82](images/day1/image82.png) -使用``git log``命令显示日志 -![image83](images/day1/image83.png) -### 7.2.2 使用vscode插件创建 -1. 用vscode打开当前目录 -![image84](images/day1/image84.png) -2. 安装扩展:git graph -![image85](images/day1/image85.png) -3. 可以在git graph中进行源代码管理 -![image86](images/day1/image86.png) -4. 怎么在git graph中提交文件到仓库 -新建一个1.txt并在1.txt中写入内容 -![image87](images/day1/image87.png) -![image88](images/day1/image88.png) -5. 打开源代码管理,会看见更改的内容,对应了git status -![image89](images/day1/image89.png) -6. 在文件右边选择暂存更改 -![image90](images/day1/image90.png) -7. 将暂存的文件进行提交,并添加说明 -![image91](images/day1/image91.png) -8. 提交后就可以在图形中看见了 -![image92](images/day1/image92.png) -### 7.2.3 创建分支 -1. 在图形栏右键创建分支 -![image93](images/day1/image93.png) -2. 输入分支名字(比如first) -![image94](images/day1/image94.png) -3. 在图形栏可以看见被标为了first,这表示创建完毕 -![image95](images/day1/image95.png) -4. 新建一个2.text文件,并将其提交 -![image96](images/day1/image96.png) -![image97](images/day1/image97.png) -![image98](images/day1/image98.png) -5. 新建一个终端,使用 ``git branch -a ``查看当前所有分支 -![image99](images/day1/image99.png) -6. 使用``git switch master`` 可以切换分支 -![image100](images/day1/image100.png) -7. 使用 ``git checkout -b test`` 创建分支,并且图形已经切换到了test分支 -![image101](images/day1/image101.png) -8. 使用``git reset --hard HEAD~``强制回到上一次的提交(把第三次的修改去掉)【硬重置】 -![image102](images/day1/image102.png) -9. 使用``git reset --soft HEAD~``将上一次提交放回暂存区【软重置】 -![image103](images/day1/image103.png) -### 7.3 使用命令查看RT-thread仓库的情况 -1. 打开源码管理 -![image104](images/day1/image104.png) -在这里面可以查看一些修改 -![image105](images/day1/image105.png) -点击撤回可以撤回到刚刚从拉下来的状态 -![image106](images/day1/image106.png) -![image107](images/day1/image107.png) -2. 在D:\2025-RSOC\rt-thread\bsp\qemu-vexpress-a9中重新输入menuconfig,并进行编译运行 -![image108](images/day1/image108.png) -![image109](images/day1/image109.png) -### 7.4 远端仓库提交 -示例远程仓库:https://gitee.com/rtthread/rsoc-rtt -默认是没有权限的,只能通过DPR对仓库进行修改 -#### 7.4.1 将本地仓库推送到远端仓库 -1. 将仓库拉取到本地(进行fork) -![image110](images/day1/image110.png) -打开fork下来的仓库(前缀已经变成了我们的用户名),我们可以对它进行修改 -![image111](images/day1/image111.png) -为了将代码推送到远端仓库,根据下面的提示进行配置(用户信息和密钥) -![image112](images/day1/image112.png) -![image113](images/day1/image113.png) -得到加密后的密钥 -![image114](images/day1/image114.png) -![image115](images/day1/image115.png) -把得到的密钥粘贴到自己的SSH公钥中 -![image116](images/day1/image116.png) -到网站中复制SSH的链接 -![image117](images/day1/image117.png) -![image118](images/day1/image118.png) -在D:\2025-RSOC文件夹中进行拉取(命令:git clone git@gitee.com:zhou-strontium-qi/rsoc-rtt.git) -![image119](images/day1/image119.png) -2. 在当前目录下打开vs code(命令:code .) -![image120](images/day1/image120.png) -3. 新建一个自己的文件夹并新建一个.md文件用来记笔记 -![image121](images/day1/image121.png) -记笔记的语法参考:https://markdown.com.cn/basic-syntax/paragraphs.html -5. 在vscode右上角可以打开预览,看一下笔记的样子 -![image122](images/day1/image122.png) -![image123](images/day1/image123.png) -6. 进入源代码管理进行提交【注意:不要提交到主分支】 -![image124](images/day1/image124.png) -![image125](images/day1/image125.png) -7. 使用软重置将刚刚提交的内容放回暂存区 -![image126](images/day1/image126.png) -8. 使用``git checkout -b first_notes``创建分支并重新提交 -![image127](images/day1/image127.png) -9. 使用 ``git push origin first_notes``推送到远程仓库 -![image128](images/day1/image128.png) -10. 刷新远程仓库,可以看见新建的分支和刚刚新建的笔记 -![image129](images/day1/image129.png) -![image130](images/day1/image130.png) -##### 7.4.2 PR -1. 在网页端新建pull requests -![image132](images/day1/image132.png) -2. 选择正确的源分支和目标分支 -![image131](images/day1/image131.png) -3. 填写完内容以后就可以提交了 -![image133](images/day1/image133.png) - -# 8. 整体架构以及常用命令 -## 8.1 整体架构 -![image134](images/day1/image134.png) -## 8.2 常用命令 -1. 初始化一个新的Git仓库 -``git init`` -2. 查看当前 Git 仓库中文件的状态 -``git status`` -3. 将当前目录(包括子目录)下所有有修改、新增等状态变化的文件,添加到 Git 的暂存区 -``git add .`` -4. 把暂存区的文件变动,正式提交到本地 Git 仓库,创建一个新的版本记录 --m 选项后面跟着的是提交说明 -``git commit -m "本次提交说明" `` -5. 查看本地 Git 仓库的提交历史记录 -``git log`` -6. 查看当前所有分支 -``git branch -a`` -7. 切换分支 -``git switch master`` -8. 创建分支 -``git checkout -b test`` -9. 硬重置 -`` git reset --hard HEAD~`` -10. 软重置 -`` git reset --sort HEAD~ `` -11. 推送到远程仓库 -`` git push origin first_notes`` -12. 推送至远端仓库的代码修改 -`` git push origin test --force`` -[需要先进行硬重置] -13. 删除分支之后更新 -`` git pull `` - -# 9.参考资料 -git使用教程:https://mp.weixin.qq.com/s/raSGv-aLHjK1HUcLZvQBeA -Markdown使用教程:https://markdown.com.cn/basic-syntax/paragraphs.html -RT-Thread文档中心:https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/basic/basic - diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\344\275\234\344\270\232/\347\254\254\344\270\200\345\244\251\344\275\234\344\270\232 20250721.md" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\344\275\234\344\270\232/\347\254\254\344\270\200\345\244\251\344\275\234\344\270\232 20250721.md" deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/20250721_note.md" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/20250721_note.md" deleted file mode 100644 index 41c2f6661d2d8c885ac5ee20c42f0761f9ce5c38..0000000000000000000000000000000000000000 --- "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/20250721_note.md" +++ /dev/null @@ -1,147 +0,0 @@ -# [RSOC25] DAY1 课程笔记:开发环境搭建与Git使用 - - - -## **1.开始前** - -### 1.1 什么是Git? - -Git 是一个**分布式版本控制系统**,每个开发者本地都拥有完整的代码仓库副本(包括历史记录和分支),无需依赖中央服务器即可提交、分支或查看历史。离线时仍可工作,网络恢复后同步更改即可。 - -采用**快照(Snapshot)模型**,每次提交保存文件的完整状态,而非仅记录差异,未修改的文件通过引用复用,节省存储空间并提升回滚速度。 - -#### Git 的基本概念 - -- 仓库(Repository):包含项目文件及版本历史的目录,通过``git init``或``git clone``创建。 - -- 提交(Commit):记录文件状态的快照,包含唯一哈希值、作者信息和提交说明。 - -- 工作区、暂存区、本地仓库: - - **工作区**:用户直接编辑的目录。 - - **暂存区(Index)**:临时存储待提交的更改,通过 `git add` 添加。 - - **本地仓库**:永久存储提交历史,通过``git commit``提交。 - -### 1.2 什么是QEMU和menuconfig? - -#### 1.2.1 **QEMU的作用** - -QEMU是一个开源的硬件模拟器,用于在没有物理开发板的情况下模拟ARM等架构的开发板环境。在RT-Thread中,QEMU主要用于: - -- 模拟开发板:如ARM-vexpress-A9开发板,提供虚拟的LCD、键盘、以太网卡等外设支持,方便开发者调试和验证RT-Thread系统功能。 -- 运行RT-Thread BSP:通过运行``qemu.bat``脚本启动虚拟环境,加载RT-Thread的板级支持包(BSP),并运行RT-Thread系统。 - -#### 1.2.2 **menuconfig的作用** - -`menuconfig`是RT-Thread Env工具提供的图形化配置界面,用于系统裁剪和功能定制: - -- 内核与组件配置:通过交互式菜单选择RT-Thread内核功能(如线程调度、内存管理)、组件(如文件系统、网络协议栈)的启用或关闭。 -- 软件包管理:集成RT-Thread的在线软件包生态(如MQTT、文件系统工具),支持一键下载和版本管理。 -- 自动生成配置:保存配置后自动生成``rtconfig.h``文件,定义宏开关(如``#define RT_USING_FINSH``),指导Scons编译系统构建工程。 -- 依赖处理:自动解决功能依赖关系,例如启用动态模块组件需同时打开文件系统和POSIX支持。 - -### 1.3 **RT-Thread 的 env 工具** - -在嵌入式开发领域,`env` 是 RT-Thread 操作系统提供的开发辅助工具,主要用于**系统配置、编译构建和软件包管理**。其核心功能包括:**图形化配置**、**软件包管理**、**工程构建**、**环境变量管理**。 - -- 快速搭建 RT-Thread 项目框架,适配不同硬件 BSP。 -- 动态加载第三方软件包(如 GUI 引擎或网络协议栈)。 -- 自动化生成 IDE 工程文件,提升开发效率。 - -## 2. 环境搭建与env使用 - -### 2.1 利用git获取RT-thread和env源码 - -创建一个文件夹作为项目主文件夹,进入文件夹,右键git bash,打开输入 - -``` -git clone https://gitee.com/rtthread/rt-thread.git -``` - -![1753093446924](figures/1753093446924.png) - -``` -git clone --recursive --depth 1 https://gitee.com/mirrors_RT-Thread/env-windows.git -``` - -![1753093413668](figures/1753093413668.png) - -耐心等候所有下载,回到**MINGW64**后才算真正完成。若在线获取失败,可以在[RT-Thread论坛](https://gitee.com/link?target=https%3A%2F%2Fclub.rt-thread.org%2Fask%2Farticle%2Faf8952fcf0ca464b.html)查看离线下载方法。 - -### 2.2 env工具激活 - -进入env-windows文件夹,运行env.bat文件。 - -![image-20250722094626269](figures/image-20250722094626269.png) - -环境激活成功后,右上角``settings->integration->register``注册env工具到右键菜单栏 - -![image-20250722095044001](figures/image-20250722095044001.png) - -注册成功之后右键菜单栏,进入RT-thread源代码目录利用ENV工具打开。 - -![image-20250722100103532](figures/image-20250722100103532.png) - -打开env工具,执行`menuconfig`命令,随意取消选中一项,再将其选中,使有更改痕迹。ESC退出并按Y保存,操作完成之后``.config``文件会自动从生成。 - -![image-20250722100559677](figures/image-20250722100559677.png) - -输入`pkgs --update`命令,等待更新完毕。 - -![image-20250722094810173](figures/image-20250722094810173.png) - -### 2.3 工程编译与运行 - -#### 2.3.1 Vscode下载和安装 - -前往[vscode官网](https://gitee.com/link?target=https%3A%2F%2Fcode.visualstudio.com%2F)下载并安装vscode。 - -![image-20250722101516910](figures/image-20250722101516910.png) - -#### 2.3.2 Scons构建脚本简介 - -在Vscode中打开``rt-thread\bsp\qemu-vexpress-a9``目录。 - -![image-20250722101917294](figures/image-20250722101917294.png) - -创建一个新的目录并将其纳入编译路径,在该目录下创建SConscript脚本。 - -![image-20250722102427361](figures/image-20250722102427361.png) - -### 2.3.3 简易工程编译 & 运行 - -main.c文件可以简单修改,改为``Hello RT-thread!``和``2025-RSOC``。 - -![image-20250722104807154](image721/image-20250722104807154.png) - -在RT-thread目录下打开env工具,进入bsp\qemu-vexpress-a9目录。输入`menuconfig`后保存生成配置文件,再`scons-j4`编译。 - -![image-20250722105051064](figures/image-20250722105051064.png) - -键入Ctrl+A,再按X键推出。 - -### 2.3.4 LVGL demo工程编译和运行 - -接上一节退出后执行`menuconfig`命令:``Hardware Drivers Config->Onboard Peripheral Drivers->Enable LVGL demo 和 Enable LVGL for LCD``,然后退出并保存。输入`scons-j4`编译,成功后输入`qemu.bat`,如下。 - -![image-20250722112542353](figures/image-20250722112542353.png) - -![image-20250722112626395](figures/image-20250722112626395.png) - -![image-20250722112641554](figures/image-20250722112641554.png) - - - -## 3. 总结 - -### 3.1 可供参考网站链接 - -[Git使用教程:最详细、最傻瓜、最浅显、真正手把手教!(建议收藏)](https://gitee.com/link?target=https%3A%2F%2Fmp.weixin.qq.com%2Fs%2FraSGv-aLHjK1HUcLZvQBeA) - -[PR提交参教程Github](https://gitee.com/link?target=https%3A%2F%2Fgithub.com%2FHPUJSJSH%2FcodingForUs%2Fblob%2Fmain%2FPR%E6%8F%90%E4%BA%A4%E6%95%99%E7%A8%8B%2Freadme.md) - -### 3.2 关系图 - -![image-20250722114041878](figures/image-20250722114041878.png) \ No newline at end of file diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/1753093413668.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/1753093413668.png" deleted file mode 100644 index 10b58f1de28c4bd437f5b3a0140b9871c14ef1b1..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/1753093413668.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/1753093446924.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/1753093446924.png" deleted file mode 100644 index cd52360f659173472875f428e5e56ab4d9f57a74..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/1753093446924.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722094626269.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722094626269.png" deleted file mode 100644 index 86bb147505128f62bf97a3f41dc4ca78547bec62..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722094626269.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722094810173.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722094810173.png" deleted file mode 100644 index a0638ada2938b47acc49e10bda0aba733b1591bf..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722094810173.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722095044001.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722095044001.png" deleted file mode 100644 index 3610be79f30913d0afaef2bfe21b07deee406109..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722095044001.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722100103532.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722100103532.png" deleted file mode 100644 index d60f3f61954f16c46067816c8bee16ae51282057..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722100103532.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722100559677.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722100559677.png" deleted file mode 100644 index 31698e3b2bcabac8db031070ec4a295319ea79b9..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722100559677.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722101516910.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722101516910.png" deleted file mode 100644 index f7674d347dca4e5be95594387359a7de9def14ee..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722101516910.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722101917294.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722101917294.png" deleted file mode 100644 index 3290b3ec445dc4f7e7f98dfc1fa4d9d831f31806..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722101917294.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722102427361.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722102427361.png" deleted file mode 100644 index a98aba052dcb6fc58c89c771fd2a8fa890aa5224..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722102427361.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722105051064.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722105051064.png" deleted file mode 100644 index 8dce33843822ce8c2c4160290f33c3ff11c5764a..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722105051064.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722112542353.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722112542353.png" deleted file mode 100644 index b31632ca36116f0437c67da10f503abe2d800c45..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722112542353.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722112626395.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722112626395.png" deleted file mode 100644 index cee569f20419553ba74b0ba90411cb2a87510ccf..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722112626395.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722112641554.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722112641554.png" deleted file mode 100644 index a3893f3d42e34adcf26f1ee13099aa9183d236ca..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722112641554.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722114041878.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722114041878.png" deleted file mode 100644 index 9de13c7968b2e79939f11f61557ff672ed7a3751..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\346\235\216\344\270\234\346\265\251/\347\254\224\350\256\260/figures/image-20250722114041878.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721214034203.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721214034203.png" deleted file mode 100644 index 32ef0d78ff073bc3536ab760a48d055e3c42636e..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721214034203.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721214052626.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721214052626.png" deleted file mode 100644 index 2e0bd99afdc7336127562da899a7b99a40523c6a..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721214052626.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721214101966.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721214101966.png" deleted file mode 100644 index 2e0bd99afdc7336127562da899a7b99a40523c6a..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721214101966.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721214115016.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721214115016.png" deleted file mode 100644 index 2e0bd99afdc7336127562da899a7b99a40523c6a..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721214115016.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721214800169.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721214800169.png" deleted file mode 100644 index 086ce969d008351745e337f458fb1709ec1bcfd8..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721214800169.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721215511230.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721215511230.png" deleted file mode 100644 index 6dd60113b2ac68ee64d371649906b85c62a9c39d..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721215511230.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721215911120.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721215911120.png" deleted file mode 100644 index 585ab207c2ec752f3442c67117cc8d14ba4a353e..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721215911120.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721235218921.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721235218921.png" deleted file mode 100644 index f58335b1f2850a02d0c884aefee13d32170652ba..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721235218921.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721235514442.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721235514442.png" deleted file mode 100644 index 817f2db2508830d4abdf8c6460fcd5c944dda374..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721235514442.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721235817609.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721235817609.png" deleted file mode 100644 index 127d1a87bd28197d376c4267622196a4fd87db5f..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250721235817609.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722000600930.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722000600930.png" deleted file mode 100644 index 5591c35d832051fd2ef7d903ad320675f1e6ff2a..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722000600930.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722000616826.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722000616826.png" deleted file mode 100644 index 5591c35d832051fd2ef7d903ad320675f1e6ff2a..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722000616826.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722000827134.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722000827134.png" deleted file mode 100644 index 5dbaab43862d12b515d30a0b19c300d25cc02286..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722000827134.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722000921706.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722000921706.png" deleted file mode 100644 index d973ce2e995408511b0d17789b3556df157d9957..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722000921706.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722001118428.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722001118428.png" deleted file mode 100644 index 8376a7a687b0f71c990878cf5ce83ca737959c34..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722001118428.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722001313133.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722001313133.png" deleted file mode 100644 index 1fa395f12b9a76714637220b91047411ee38171d..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722001313133.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722001752323.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722001752323.png" deleted file mode 100644 index eb8aff2879ad1570c5ef6e274b2bec587bf0a14c..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722001752323.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722001803792.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722001803792.png" deleted file mode 100644 index eb8aff2879ad1570c5ef6e274b2bec587bf0a14c..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722001803792.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722002210177.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722002210177.png" deleted file mode 100644 index f599e96ea19962d9867d8e613b0669a9cecf5dcc..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722002210177.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722003350851.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722003350851.png" deleted file mode 100644 index 995ae1824433d9b6f95bbe0dad824002d89b61ce..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722003350851.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722003643448.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722003643448.png" deleted file mode 100644 index 675c892c188ee2c95cf233c439b1da0708de1e8e..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722003643448.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722004332854.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722004332854.png" deleted file mode 100644 index cab7a18712da0051c94945714982a614fe914221..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722004332854.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722004542166.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722004542166.png" deleted file mode 100644 index 5966b153b7c9dd954c4aec150f29233d6c239e53..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722004542166.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722005150058.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722005150058.png" deleted file mode 100644 index dd12d0d7b748484fe87105dc1cd48bfc9a68e32f..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722005150058.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722005335028.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722005335028.png" deleted file mode 100644 index 8cef95205c998609fd896e6b5c65a2761d7f3943..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722005335028.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722005449113.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722005449113.png" deleted file mode 100644 index f02c8e5b5771158c606440dfc872eaef79e58b98..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/image/image-20250722005449113.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/\347\216\257\345\242\203\346\220\255\345\273\272&git.md" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/\347\216\257\345\242\203\346\220\255\345\273\272&git.md" deleted file mode 100644 index 4c981bfb5d16a1d2d0379651315d64814cd0224d..0000000000000000000000000000000000000000 --- "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\230\256\347\247\213\345\251\225/\347\254\224\350\256\260/\347\216\257\345\242\203\346\220\255\345\273\272&git.md" +++ /dev/null @@ -1,121 +0,0 @@ -# 环境搭建&git - -## env环境搭建 - -安装git:https://gitee.com/rtthread/rsoc-rtt/pulls/18 - -下载env-windows:https://github.com/RT-Thread/env-windows - -~~~shell -git clone --recursive --depth 1 https://github.com/RT-Thread/env-windows.git -~~~ - -如果网络有问题可以使用下面命令: - -``` -git clone --recursive --depth 1 https://gitee.com/mirrors_RT-Thread/env-windows.git -``` - -![image-20250722000616826](./image/image-20250722000616826.png) - -也可以去官网下载:https://www.rt-thread.org/download.html#download-rt-thread-env-tool - -![image-20250722000921706](./image/image-20250722000921706.png) - -双击env.bat - -![image-20250721235218921](./image/image-20250721235218921.png) - -等待下载完成,如果环境不好请到官网下载env离线包。 - -把env添加到右键 - -![image-20250721235514442](./image/image-20250721235514442.png) - -![image-20250721235817609](./image/image-20250721235817609.png) - -## qemu使用 - -克隆rt-thread仓库 - -``` -git clone https://github.com/RT-Thread/rt-thread.git -``` - -![image-20250722000827134](./image/image-20250722000827134.png) - -如果网络环境不行,可以克隆gitee上面的。 - -进入到qemu的目录 - -![image-20250722001118428](./image/image-20250722001118428.png) - -右击打开env工具 - -![image-20250722001313133](./image/image-20250722001313133.png) - -* 先输入menuconfig,然后按Esc直接退出。 - -![image-20250722001803792](./image/image-20250722001803792.png) - -* 输入scons -j4编译,编译完成后如下图所示: - -![image-20250722002210177](./image/image-20250722002210177.png) - -* 执行qemu-nographic.bat,启动qemu运行环境。 - -![image-20250722003350851](./image/image-20250722003350851.png) - -* 退出qemu:ctrl+a,松开然后按x。 - -### LVGL的使用 - -输入menuconfig,使能lvgl的宏。 - -![image-20250722003643448](./image/image-20250722003643448.png) - -拉取lvgl的软件包,pkgs --update。 - -重新编译,使用qemu就可以看到lvgl的命令。 - -![image-20250722004542166](./image/image-20250722004542166.png) - -## git的简单使用 - -### git工作区域 - -![image-20250721214800169](./image/image-20250721214800169.png) - -* 提交到暂存区 - -``` -git add -``` - -* 提交到本地仓库 - -``` -git commit -m "messge" -``` - -* 推送到远程仓库 - -``` -git push <远程仓库别名> <分支> -``` - -* 建立新分支 - -![image-20250721215511230](./image/image-20250721215511230.png) - -### vscode中的git使用 - -添加到暂存区 - -![image-20250722005150058](./image/image-20250722005150058.png) - -![image-20250722005335028](./image/image-20250722005335028.png) - -推送到远端 - -![image-20250722005449113](./image/image-20250722005449113.png) \ No newline at end of file diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\270\211\345\244\251\344\275\234\344\270\232/event_test.c" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\270\211\345\244\251\344\275\234\344\270\232/event_test.c" new file mode 100644 index 0000000000000000000000000000000000000000..2e847376e80909fd7e4e29c70ccff36d8e6035ae --- /dev/null +++ "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\270\211\345\244\251\344\275\234\344\270\232/event_test.c" @@ -0,0 +1,71 @@ +#include + +#define THREAD_PRIORITY 15 +#define THREAD_STACK_SIZE 512 +#define THREAD_TIMESLICE 5 + +/* 定义事件标志 */ +#define WORK_READY_EVENT (1 << 0) // 工作准备事件 +#define DATA_READY_EVENT (1 << 1) // 数据准备事件 + +static struct rt_event sync_event; // 同步事件集 + +/* 工作线程 - 等待同步事件 */ +static void worker_thread(void *param) +{ + rt_uint32_t recv_events; + + rt_kprintf("Worker: Waiting for work and data ready...\n"); + + /* 同时等待工作准备和数据准备事件 */ + rt_event_recv(&sync_event, + WORK_READY_EVENT | DATA_READY_EVENT, + RT_EVENT_FLAG_AND | RT_EVENT_FLAG_CLEAR, + RT_WAITING_FOREVER, &recv_events); + + rt_kprintf("Worker: Both events received! Start processing...\n"); + + /* 模拟工作处理 */ + rt_thread_mdelay(1000); + rt_kprintf("Worker: Job done!\n"); +} + +/* 准备线程 - 发送同步事件 */ +static void preparer_thread(void *param) +{ + /* 模拟准备工作 */ + rt_thread_mdelay(300); + rt_kprintf("Preparer: Work is ready now!\n"); + rt_event_send(&sync_event, WORK_READY_EVENT); + + /* 模拟准备数据 */ + rt_thread_mdelay(800); + rt_kprintf("Preparer: Data is ready now!\n"); + rt_event_send(&sync_event, DATA_READY_EVENT); +} + +int event_sync_demo(void) +{ + /* 初始化事件集 */ + rt_event_init(&sync_event, "sync_event", RT_IPC_FLAG_PRIO); + + /* 创建工作线程 */ + rt_thread_t worker = rt_thread_create("worker", + worker_thread, RT_NULL, + THREAD_STACK_SIZE, + THREAD_PRIORITY, THREAD_TIMESLICE); + + /* 创建准备线程 */ + rt_thread_t preparer = rt_thread_create("preparer", + preparer_thread, RT_NULL, + THREAD_STACK_SIZE, + THREAD_PRIORITY + 1, THREAD_TIMESLICE); + + /* 启动线程 */ + if (worker) rt_thread_startup(worker); + if (preparer) rt_thread_startup(preparer); + + return 0; +} + +MSH_CMD_EXPORT(event_sync_demo, event synchronization demo); diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\270\211\345\244\251\344\275\234\344\270\232/mailbox_test.c" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\270\211\345\244\251\344\275\234\344\270\232/mailbox_test.c" new file mode 100644 index 0000000000000000000000000000000000000000..a484ce2d5595258974094b3e42aa1bf45ea4cb87 --- /dev/null +++ "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\270\211\345\244\251\344\275\234\344\270\232/mailbox_test.c" @@ -0,0 +1,108 @@ +#include + +#define THREAD_PRIORITY 10 +#define THREAD_TIMESLICE 5 + +/* 定义消息结构 */ +struct message { + int id; + char content[32]; +}; + +/* 邮箱控制块 */ +static struct rt_mailbox mb; +/* 邮箱内存池 */ +static char mb_pool[sizeof(struct message) * 4]; // 可存储4条消息 + +/* 定义几条测试消息 */ +static const struct message msgs[] = { + {1, "Hello from Thread2"}, + {2, "RT-Thread Mailbox"}, + {3, "Message passing"}, + {4, "End of messages"} +}; + +/* 接收线程 */ +static void receiver_thread_entry(void *parameter) +{ + struct message *msg; + rt_kprintf("Receiver thread started\n"); + + while (1) { + /* 接收消息 */ + if (rt_mb_recv(&mb, (rt_ubase_t*)&msg, RT_WAITING_FOREVER) == RT_EOK) { + rt_kprintf("Received: ID=%d, Content=%s\n", msg->id, msg->content); + + if (msg->id == 4) { // 收到结束消息 + rt_kprintf("Receiver: Got termination message\n"); + break; + } + } + } + rt_kprintf("Receiver thread exit\n"); +} + +/* 发送线程 */ +static void sender_thread_entry(void *parameter) +{ + rt_uint8_t count = 0; + rt_kprintf("Sender thread started\n"); + + /* 发送所有预定义消息 */ + for (count = 0; count < sizeof(msgs)/sizeof(msgs[0]); count++) { + rt_kprintf("Sending: ID=%d, Content=%s\n", + msgs[count].id, msgs[count].content); + + /* 发送消息到邮箱 */ + while (rt_mb_send(&mb, (rt_uint32_t)&msgs[count]) != RT_EOK) { + rt_kprintf("Mailbox full, waiting...\n"); + rt_thread_mdelay(100); + } + + rt_thread_mdelay(500); // 发送间隔 + } + + rt_kprintf("Sender thread exit\n"); +} + +int mailbox_demo(void) +{ + /* 初始化邮箱 */ + if (rt_mb_init(&mb, + "demo_mb", + mb_pool, + sizeof(mb_pool) / sizeof(rt_ubase_t), + RT_IPC_FLAG_FIFO) != RT_EOK) { + rt_kprintf("Mailbox init failed\n"); + return -1; + } + + /* 创建接收线程 */ + rt_thread_t receiver = rt_thread_create( + "receiver", + receiver_thread_entry, + RT_NULL, + 1024, + THREAD_PRIORITY + 1, + THREAD_TIMESLICE); + + /* 创建发送线程 */ + rt_thread_t sender = rt_thread_create( + "sender", + sender_thread_entry, + RT_NULL, + 1024, + THREAD_PRIORITY, + THREAD_TIMESLICE); + + if (receiver && sender) { + rt_thread_startup(receiver); + rt_thread_startup(sender); + return 0; + } + + return -1; +} + +/* 导出到 msh 命令列表中 */ +MSH_CMD_EXPORT(mailbox_demo, mailbox communication demo); diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\270\211\345\244\251\344\275\234\344\270\232/msgq_test.c" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\270\211\345\244\251\344\275\234\344\270\232/msgq_test.c" new file mode 100644 index 0000000000000000000000000000000000000000..0604afd23871b4b29f38208c89cfd065009468fe --- /dev/null +++ "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\270\211\345\244\251\344\275\234\344\270\232/msgq_test.c" @@ -0,0 +1,87 @@ +#include + +#define THREAD_PRIORITY 20 +#define THREAD_STACK_SIZE 512 +#define THREAD_TIMESLICE 5 + +/* 消息队列控制块和内存池 */ +static struct rt_messagequeue mq; +static char msg_pool[256]; // 消息队列内存池 + +/* 接收消息线程 */ +static void recv_msg_thread(void *param) +{ + char msg_buf; + rt_uint8_t count = 0; + + rt_kprintf("Receiver thread ready\n"); + + while (count < 5) + { + /* 接收消息(永久等待) */ + if (rt_mq_recv(&mq, &msg_buf, sizeof(msg_buf), RT_WAITING_FOREVER) == RT_EOK) + { + rt_kprintf("Received message: %c (count=%d)\n", msg_buf, count+1); + count++; + } + } + rt_kprintf("Receiver thread exit\n"); + rt_mq_detach(&mq); // 脱离消息队列 +} + +/* 发送消息线程 */ +static void send_msg_thread(void *param) +{ + char msgs[] = {'A', 'B', 'C', 'D', 'E'}; + rt_uint8_t i = 0; + + rt_kprintf("Sender thread ready\n"); + rt_thread_mdelay(500); + + /* 发送普通消息 */ + for (i = 0; i < 3; i++) { + rt_mq_send(&mq, &msgs[i], 1); + rt_kprintf("Sent normal: %c\n", msgs[i]); + rt_thread_mdelay(200); + } + + /* 发送紧急消息(插入队列头部) */ + rt_mq_urgent(&mq, &msgs[3], 1); + rt_kprintf("Sent urgent: %c\n", msgs[3]); + + /* 发送最后一条普通消息 */ + rt_mq_send(&mq, &msgs[4], 1); + rt_kprintf("Sent normal: %c\n", msgs[4]); + + rt_kprintf("Sender thread exit\n"); +} + +int msgqueue_demo(void) +{ + /* 初始化消息队列 */ + if (rt_mq_init(&mq, "mq_demo", + msg_pool, 1, // 每个消息1字节 + sizeof(msg_pool), + RT_IPC_FLAG_PRIO) != RT_EOK) + { + rt_kprintf("Init msgqueue failed!\n"); + return -1; + } + + /* 创建接收线程 */ + rt_thread_t tid1 = rt_thread_create("recv_msg", + recv_msg_thread, RT_NULL, + THREAD_STACK_SIZE, + THREAD_PRIORITY, THREAD_TIMESLICE); + if (tid1) rt_thread_startup(tid1); + + /* 创建发送线程 */ + rt_thread_t tid2 = rt_thread_create("send_msg", + send_msg_thread, RT_NULL, + THREAD_STACK_SIZE, + THREAD_PRIORITY + 1, THREAD_TIMESLICE); + if (tid2) rt_thread_startup(tid2); + + return 0; +} +MSH_CMD_EXPORT(msgqueue_demo, message queue demo); diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\270\211\345\244\251\344\275\234\344\270\232/mutex_test.c" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\270\211\345\244\251\344\275\234\344\270\232/mutex_test.c" new file mode 100644 index 0000000000000000000000000000000000000000..c76e25eff83640771e7df68e714181ba775a26a5 --- /dev/null +++ "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\270\211\345\244\251\344\275\234\344\270\232/mutex_test.c" @@ -0,0 +1,102 @@ +#include + +#define THREAD_PRIORITY 25 +#define THREAD_TIMESLICE 5 + +/* 共享资源 */ +static int shared_counter = 0; +static rt_mutex_t counter_mutex = RT_NULL; + +/* 线程1:增加共享计数器 */ +static void thread_increment(void *parameter) +{ + while (1) + { + /* 获取互斥锁 */ + rt_mutex_take(counter_mutex, RT_WAITING_FOREVER); + + /* 临界区开始 - 操作共享资源 */ + int temp = shared_counter; + rt_thread_mdelay(10); // 模拟处理延时 + shared_counter = temp + 1; + rt_kprintf("Thread1: counter = %d\n", shared_counter); + /* 临界区结束 */ + + /* 释放互斥锁 */ + rt_mutex_release(counter_mutex); + + /* 线程延时 */ + rt_thread_mdelay(500); + + if (shared_counter >= 20) break; + } + rt_kprintf("Thread1 exit!\n"); +} + +/* 线程2:减少共享计数器 */ +static void thread_decrement(void *parameter) +{ + while (1) + { + /* 获取互斥锁 */ + rt_mutex_take(counter_mutex, RT_WAITING_FOREVER); + + /* 临界区开始 - 操作共享资源 */ + int temp = shared_counter; + rt_thread_mdelay(15); // 模拟处理延时 + shared_counter = temp - 1; + rt_kprintf("Thread2: counter = %d\n", shared_counter); + /* 临界区结束 */ + + /* 释放互斥锁 */ + rt_mutex_release(counter_mutex); + + /* 线程延时 */ + rt_thread_mdelay(300); + + if (shared_counter <= -10) break; + } + rt_kprintf("Thread2 exit!\n"); +} + +/* 互斥锁示例初始化 */ +int mutex_sample(void) +{ + /* 创建互斥锁 */ + counter_mutex = rt_mutex_create("cmutex", RT_IPC_FLAG_PRIO); + if (counter_mutex == RT_NULL) + { + rt_kprintf("Failed to create mutex!\n"); + return -1; + } + + /* 创建线程1 */ + rt_thread_t tid1 = rt_thread_create( + "increment", + thread_increment, + RT_NULL, + 1024, + THREAD_PRIORITY, + THREAD_TIMESLICE); + + /* 创建线程2 */ + rt_thread_t tid2 = rt_thread_create( + "decrement", + thread_decrement, + RT_NULL, + 1024, + THREAD_PRIORITY, + THREAD_TIMESLICE); + + if (tid1 && tid2) + { + rt_thread_startup(tid1); + rt_thread_startup(tid2); + return 0; + } + + return -1; +} + +/* 导出到 msh 命令列表中 */ +MSH_CMD_EXPORT(mutex_sample, mutex synchronization sample); diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\270\211\345\244\251\344\275\234\344\270\232/semaphore_test.c" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\270\211\345\244\251\344\275\234\344\270\232/semaphore_test.c" new file mode 100644 index 0000000000000000000000000000000000000000..eabcb025af08d056dd03f6a57d013a9483815b91 --- /dev/null +++ "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\270\211\345\244\251\344\275\234\344\270\232/semaphore_test.c" @@ -0,0 +1,95 @@ +#include + +#define THREAD_PRIORITY 25 +#define THREAD_TIMESLICE 5 + +/* 定义信号量 */ +static rt_sem_t sync_sem = RT_NULL; + +/* 生产者线程 */ +static void producer_thread_entry(void *parameter) +{ + rt_uint8_t count = 0; + + while (count < 5) // 生产5次 + { + count++; + + /* 模拟生产过程 */ + rt_kprintf("Producer: Producing item %d...\n", count); + rt_thread_mdelay(500); + + /* 生产完成,释放信号量 */ + rt_kprintf("Producer: Item %d ready! Releasing semaphore.\n", count); + rt_sem_release(sync_sem); + + /* 生产间隔 */ + rt_thread_mdelay(1000); + } + + rt_kprintf("Producer: Finished production!\n"); +} + +/* 消费者线程 */ +static void consumer_thread_entry(void *parameter) +{ + rt_uint8_t count = 0; + + while (count < 5) // 消费5次 + { + /* 等待信号量 - 等待产品就绪 */ + rt_kprintf("Consumer: Waiting for item...\n"); + rt_sem_take(sync_sem, RT_WAITING_FOREVER); + + count++; + + /* 模拟消费过程 */ + rt_kprintf("Consumer: Consuming item %d...\n", count); + rt_thread_mdelay(800); + rt_kprintf("Consumer: Item %d consumed!\n", count); + } + + rt_kprintf("Consumer: Finished consumption!\n"); +} + +/* 信号量同步示例初始化 */ +int semaphore_sync_sample(void) +{ + /* 创建信号量,初始值为0 */ + sync_sem = rt_sem_create("ssem", 0, RT_IPC_FLAG_FIFO); + if (sync_sem == RT_NULL) + { + rt_kprintf("Failed to create semaphore!\n"); + return -1; + } + + /* 创建生产者线程 */ + rt_thread_t producer = rt_thread_create( + "producer", + producer_thread_entry, + RT_NULL, + 1024, + THREAD_PRIORITY + 1, + THREAD_TIMESLICE); + + /* 创建消费者线程 */ + rt_thread_t consumer = rt_thread_create( + "consumer", + consumer_thread_entry, + RT_NULL, + 1024, + THREAD_PRIORITY, + THREAD_TIMESLICE); + + if (producer && consumer) + { + rt_thread_startup(producer); + rt_thread_startup(consumer); + return 0; + } + + return -1; +} + +/* 导出到 msh 命令列表中 */ +MSH_CMD_EXPORT(semaphore_sync_sample, semaphore synchronization sample); diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\270\211\345\244\251\344\275\234\344\270\232/signal_test.c" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\270\211\345\244\251\344\275\234\344\270\232/signal_test.c" new file mode 100644 index 0000000000000000000000000000000000000000..7acf36724b8710df776746745d6f72d6cc45b2ad --- /dev/null +++ "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\270\211\345\244\251\344\275\234\344\270\232/signal_test.c" @@ -0,0 +1,93 @@ +#include + +#define THREAD_PRIORITY 25 +#define THREAD_STACK_SIZE 512 +#define THREAD_TIMESLICE 5 + +/* 自定义信号 */ +#define WORKER_START_SIG SIGUSR1 // 工作开始信号 +#define WORKER_STOP_SIG SIGUSR2 // 工作停止信号 + +static rt_thread_t worker_tid = RT_NULL; + +/* 工作线程的信号处理函数 */ +void worker_signal_handler(int sig) +{ + switch(sig) { + case WORKER_START_SIG: + rt_kprintf("[Worker] Received START signal\n"); + break; + case WORKER_STOP_SIG: + rt_kprintf("[Worker] Received STOP signal\n"); + break; + default: + rt_kprintf("[Worker] Received unknown signal: %d\n", sig); + } +} + +/* 工作线程入口函数 */ +static void worker_thread_entry(void *parameter) +{ + int count = 0; + + /* 安装信号处理函数 */ + rt_signal_install(WORKER_START_SIG, worker_signal_handler); + rt_signal_install(WORKER_STOP_SIG, worker_signal_handler); + rt_signal_unmask(WORKER_START_SIG); + rt_signal_unmask(WORKER_STOP_SIG); + + rt_kprintf("[Worker] Thread started, waiting for signals...\n"); + + while (1) { + rt_kprintf("[Worker] Working cycle %d\n", count++); + rt_thread_mdelay(500); + + if (count > 20) break; // 安全退出机制 + } +} + +/* 控制线程入口函数 */ +static void controller_thread_entry(void *parameter) +{ + rt_kprintf("[Controller] Sending START signal after 1s\n"); + rt_thread_mdelay(1000); + + /* 发送开始工作信号 */ + rt_thread_kill(worker_tid, WORKER_START_SIG); + + rt_kprintf("[Controller] Sending STOP signal after 3s\n"); + rt_thread_mdelay(3000); + + /* 发送停止工作信号 */ + rt_thread_kill(worker_tid, WORKER_STOP_SIG); +} + +int signal_demo(void) +{ + /* 创建工作线程 */ + worker_tid = rt_thread_create("worker", + worker_thread_entry, + RT_NULL, + THREAD_STACK_SIZE, + THREAD_PRIORITY, + THREAD_TIMESLICE); + + /* 创建控制线程 */ + rt_thread_t ctrl_tid = rt_thread_create("controller", + controller_thread_entry, + RT_NULL, + THREAD_STACK_SIZE, + THREAD_PRIORITY - 1, + THREAD_TIMESLICE); + + if (worker_tid && ctrl_tid) { + rt_thread_startup(worker_tid); + rt_thread_startup(ctrl_tid); + return 0; + } + + return -1; +} + +/* 导出到 msh 命令列表中 */ +MSH_CMD_EXPORT(signal_demo, signal communication demo); diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\272\214\345\244\251\344\275\234\344\270\232.c" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\272\214\345\244\251\344\275\234\344\270\232.c" new file mode 100644 index 0000000000000000000000000000000000000000..678d2b90ed52a1a2c82972ba974eebcb6087aea1 --- /dev/null +++ "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\344\272\214\345\244\251\344\275\234\344\270\232.c" @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-11-06 SummerGift first version + * 2018-11-19 flybreak add stm32f407-atk-explorer bsp + */ + +#include +#include +#include + + +rt_thread_t thread1; +rt_thread_t thread2; +rt_thread_t thread3; + +void thread1_task(void*parm) +{ + while(1) + { + rt_kprintf("run the thread1\r\n"); + rt_thread_delay(1000); + } +} +void thread2_task(void*parm) +{ + while(1) + { + rt_kprintf("run the thread2\r\n"); + rt_thread_delay(500); + } +} +void thread3_task(void*parm) +{ + while(1) + { + rt_kprintf("run the thread3\r\n"); + rt_thread_delay(500); + } +} + +int main(void) +{ + + thread1 = rt_thread_create("thread1", thread1_task, RT_NULL, 1024, 4, 10); + thread2 = rt_thread_create("thread2", thread2_task, RT_NULL, 1024, 5, 10); + thread3 = rt_thread_create("thread3", thread3_task, RT_NULL, 1024, 5 ,10); + + if(thread1 !=RT_NULL) + { + rt_thread_startup(thread1); + } + if(thread2 !=RT_NULL) + { + rt_thread_startup(thread2); + } + if(thread3 !=RT_NULL) + { + rt_thread_startup(thread3); + } + return RT_EOK; +} \ No newline at end of file diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\345\233\233\345\244\251\344\275\234\344\270\232/drv.temp_sensor.c" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\345\233\233\345\244\251\344\275\234\344\270\232/drv.temp_sensor.c" new file mode 100644 index 0000000000000000000000000000000000000000..3912671cd7b91a745745a734c16c9a6c8c50ff42 --- /dev/null +++ "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\344\275\234\344\270\232/\347\254\254\345\233\233\345\244\251\344\275\234\344\270\232/drv.temp_sensor.c" @@ -0,0 +1,221 @@ +#include +#include +#include +#include +#include "drv_config.h" + +//#define DRV_DEBUG +#define LOG_TAG "drv.temp_sensor" +#include + +#include "drv_temp_sensor.h" + +/* 温度传感器设备结构体 */ +struct temp_sensor_dev { + char name[RT_NAME_MAX]; // 设备名称 + float current_temp; // 当前温度值 + float min_temp; // 最低温度 + float max_temp; // 最高温度 + + int (*read_temp)(struct temp_sensor_dev *dev, float *temp); // 读取温度函数指针 + int (*set_range)(struct temp_sensor_dev *dev, float min, float max); // 设置范围函数指针 +}; + +static struct temp_sensor_dev* temp_sensor_devs[100]; // 设备数组 +static int temp_sensor_dev_cnt = 0; // 设备计数 + +/* 注册温度传感器设备 */ +int register_temp_sensor_dev(struct temp_sensor_dev* dev) +{ + if(temp_sensor_dev_cnt < 100) + { + temp_sensor_devs[temp_sensor_dev_cnt++] = dev; + LOG_D("register temp sensor device: %s", dev->name); + return 0; + } + else + { + LOG_E("temp sensor device list full"); + return -1; + } +} + +/* 根据名称获取温度传感器设备 */ +struct temp_sensor_dev* get_temp_sensor_dev(char* name) +{ + int i; + for(i = 0; i < temp_sensor_dev_cnt; i++) + { + if(strcmp(name, temp_sensor_devs[i]->name) == 0) + return temp_sensor_devs[i]; + } + + LOG_E("temp sensor device %s not found", name); + return NULL; +} + +/* 写入操作 - 用于配置设备 */ +static rt_size_t temp_sensor_write(rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size) +{ + char name[RT_NAME_MAX]; + char cmd[RT_NAME_MAX]; + float value1, value2; + int parsed; + struct temp_sensor_dev* sensor_dev; + + /* 解析buffer,格式为: name,cmd,value1[,value2] */ + parsed = sscanf(buffer, "%[^,],%[^,],%f,%f", name, cmd, &value1, &value2); + if(parsed < 3) + { + rt_set_errno(-RT_ERROR); + LOG_E("command format error"); + return 0; + } + + /* 根据设备name找到设备 */ + sensor_dev = get_temp_sensor_dev(name); + if(!sensor_dev) + { + rt_set_errno(-RT_ERROR); + return 0; + } + + /* 处理不同命令 */ + if(strcmp(cmd, "set_range") == 0 && parsed == 4) + { + if(sensor_dev->set_range) + { + if(value1 >= value2) + { + LOG_E("invalid range: min(%f) >= max(%f)", value1, value2); + rt_set_errno(-RT_ERROR); + return 0; + } + return sensor_dev->set_range(sensor_dev, value1, value2); + } + } + else if(strcmp(cmd, "set_temp") == 0 && parsed == 3) + { + if(value1 < sensor_dev->min_temp || value1 > sensor_dev->max_temp) + { + LOG_E("temperature %f out of range [%f, %f]", + value1, sensor_dev->min_temp, sensor_dev->max_temp); + rt_set_errno(-RT_ERROR); + return 0; + } + sensor_dev->current_temp = value1; + LOG_D("set %s temperature to %f", name, value1); + } + else + { + LOG_E("unknown command: %s", cmd); + rt_set_errno(-RT_ERROR); + return 0; + } + + return size; +} + +/* 读取操作 - 获取温度值 */ +static rt_size_t temp_sensor_read(rt_device_t dev, rt_off_t pos, void *buffer, rt_size_t size) +{ + char name[RT_NAME_MAX]; + struct temp_sensor_dev* sensor_dev; + float temp; + int ret; + + /* 设备名称不能超过缓冲区大小 */ + if(size < RT_NAME_MAX) + { + rt_set_errno(-RT_ERROR); + LOG_E("buffer too small for device name"); + return 0; + } + + /* 复制设备名称 */ + strncpy(name, buffer, RT_NAME_MAX); + name[RT_NAME_MAX-1] = '\0'; + + /* 根据设备name找到设备 */ + sensor_dev = get_temp_sensor_dev(name); + if(!sensor_dev) + { + rt_set_errno(-RT_ERROR); + return 0; + } + + /* 读取温度 */ + if(sensor_dev->read_temp) + { + ret = sensor_dev->read_temp(sensor_dev, &temp); + if(ret != 0) + { + rt_set_errno(-RT_ERROR); + return 0; + } + } + else + { + temp = sensor_dev->current_temp; + } + + /* 检查缓冲区是否足够大 */ + if(size < sizeof(float)) + { + rt_set_errno(-RT_ERROR); + LOG_E("buffer too small for temperature value"); + return 0; + } + + /* 返回温度值 */ + memcpy(buffer, &temp, sizeof(float)); + return sizeof(float); +} + +/* 设备操作结构 */ +static struct rt_device temp_sensor_drv; + +#ifdef RT_USING_DEVICE_OPS +const static struct rt_device_ops temp_sensor_ops = +{ + RT_NULL, + RT_NULL, + temp_sensor_read, + RT_NULL, + temp_sensor_write, + RT_NULL, +}; +#endif + +/* 驱动初始化函数 */ +static int drv_temp_sensor_init(void) +{ + int ret; + + temp_sensor_drv.type = RT_Device_Class_Sensor; + temp_sensor_drv.rx_indicate = RT_NULL; + temp_sensor_drv.tx_complete = RT_NULL; + +#ifdef RT_USING_DEVICE_OPS + temp_sensor_drv.ops = &temp_sensor_ops; +#else + temp_sensor_drv.init = RT_NULL; + temp_sensor_drv.open = RT_NULL; + temp_sensor_drv.close = RT_NULL; + temp_sensor_drv.read = temp_sensor_read; + temp_sensor_drv.write = temp_sensor_write; + temp_sensor_drv.control = RT_NULL; +#endif + + ret = rt_device_register(&temp_sensor_drv, "temp_sensor", RT_DEVICE_FLAG_RDWR); + if(ret != RT_EOK) + { + LOG_E("temp sensor driver register failed"); + return ret; + } + + LOG_I("virtual temperature sensor driver initialized"); + return RT_EOK; +} + +INIT_BOARD_EXPORT(drv_temp_sensor_init); \ No newline at end of file diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/1.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/1.png" new file mode 100644 index 0000000000000000000000000000000000000000..faacd593e5d5bfc4d823929c2f2314f61de9ac35 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/1.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2.png" new file mode 100644 index 0000000000000000000000000000000000000000..1475147eea83f2f0380268e68373b21ab50d9a0b Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_1.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_1.png" new file mode 100644 index 0000000000000000000000000000000000000000..bc30b8f3bfa4fe5dd600e9adb2a51ffedeecca8d Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_1.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_10.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_10.png" new file mode 100644 index 0000000000000000000000000000000000000000..328c25c1fc3f22d237679f43ce2d2573de0bfaa7 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_10.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_11.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_11.png" new file mode 100644 index 0000000000000000000000000000000000000000..0cdad59e0d5f4833299c3eb6c3d8c6af8386e1cb Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_11.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_12.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_12.png" new file mode 100644 index 0000000000000000000000000000000000000000..fc887fb9c3caaad6fd485b236f7c5b09279b0fec Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_12.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_13.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_13.png" new file mode 100644 index 0000000000000000000000000000000000000000..ec6890f679c856ab878c729fe4703c28e2f3519f Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_13.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_14.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_14.png" new file mode 100644 index 0000000000000000000000000000000000000000..2fcf4a2590f00ba83b0d1cc1564744085ad4508b Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_14.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_15.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_15.png" new file mode 100644 index 0000000000000000000000000000000000000000..df2027fdc54abd4255cea7e433722d74732b028b Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_15.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_16.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_16.png" new file mode 100644 index 0000000000000000000000000000000000000000..54906aaebd0eabb6a774ecf9c2b095534d831c9e Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_16.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_17.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_17.png" new file mode 100644 index 0000000000000000000000000000000000000000..4f63b020d0bc7872bea0af786eaf4bfd3b362e0e Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_17.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_18.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_18.png" new file mode 100644 index 0000000000000000000000000000000000000000..cb1867cf1ea4ea5c5e55a7de33086702100660f2 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_18.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_19.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_19.png" new file mode 100644 index 0000000000000000000000000000000000000000..20038f652cd9cf62790a6dcd59771e8376ea4ef0 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_19.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_2.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_2.png" new file mode 100644 index 0000000000000000000000000000000000000000..98229c5bf4413a3149f6d3270a1ea382eaaf687f Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_2.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_20.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_20.png" new file mode 100644 index 0000000000000000000000000000000000000000..be3d16d957e3b9a339b8901d9a143e3fb99d041e Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_20.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_21.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_21.png" new file mode 100644 index 0000000000000000000000000000000000000000..275a479ac98a9ca1ba3acb8ecb3a42a25acdb046 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_21.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_3.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_3.png" new file mode 100644 index 0000000000000000000000000000000000000000..5f1c8c2a53e5c6c4ae01b42da72a192dd49f96e5 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_3.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_4.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_4.png" new file mode 100644 index 0000000000000000000000000000000000000000..9d043f0dd13a64222b0c5fedce3be694dd006642 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_4.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_6.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_6.png" new file mode 100644 index 0000000000000000000000000000000000000000..18f9e67f2be74ba447e8342fb2c7a1e1784cd646 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_6.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_7.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_7.png" new file mode 100644 index 0000000000000000000000000000000000000000..913a295ad6a783ac612429a70deb9ebc740246bf Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_7.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_8.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_8.png" new file mode 100644 index 0000000000000000000000000000000000000000..fbd8d277a0935d66c120a17ffcf271758f2a4b57 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_8.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_9.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_9.png" new file mode 100644 index 0000000000000000000000000000000000000000..3c634ca82841e31777f1cb45b507ca6071aab180 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/2_9.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3.png" new file mode 100644 index 0000000000000000000000000000000000000000..a236d83777e7711130e421ea7797edf1e6d01010 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_1.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_1.png" new file mode 100644 index 0000000000000000000000000000000000000000..1d3873d0cf35f0a049b77a678d2d7021a3f5a251 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_1.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_2.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_2.png" new file mode 100644 index 0000000000000000000000000000000000000000..1443a4ee04078dee05e2623b75d926c79e8327fb Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_2.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_3.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_3.png" new file mode 100644 index 0000000000000000000000000000000000000000..2a95ff349d657a6d3ae8ddb88be8e31c116485ae Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_3.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_4.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_4.png" new file mode 100644 index 0000000000000000000000000000000000000000..0ec72acc28dc633d427702912f2a30a8cb52553b Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_4.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_5.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_5.png" new file mode 100644 index 0000000000000000000000000000000000000000..436da5e6d37774b294ebcb524a2e96e0eda176e9 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_5.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_6.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_6.png" new file mode 100644 index 0000000000000000000000000000000000000000..da2d37e7c64bdbd2336551e169df7a4328b8791d Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_6.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_7.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_7.png" new file mode 100644 index 0000000000000000000000000000000000000000..cd5bd75d231fbab9e990bf444b7bbd3b01bd36fa Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_7.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_8.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_8.png" new file mode 100644 index 0000000000000000000000000000000000000000..57b808166c308b152d64954b2c6be743b41415fb Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/3_8.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/4.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/4.png" new file mode 100644 index 0000000000000000000000000000000000000000..cada9393e50638a5258fc0f40c626258ebb7596a Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/4.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/4_1.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/4_1.png" new file mode 100644 index 0000000000000000000000000000000000000000..c6c23e7b9604f30fbb8b08243b2e772c6f2b6b0b Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/4_1.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/4_2.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/4_2.png" new file mode 100644 index 0000000000000000000000000000000000000000..9fd68beb4510586353df7494966826ebe3d86873 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/4_2.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/5.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/5.png" new file mode 100644 index 0000000000000000000000000000000000000000..0e40787f7e56a732762a7956f74d5301aa1a792c Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/5.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/6.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/6.png" new file mode 100644 index 0000000000000000000000000000000000000000..332c3ad745ffec2a9201242f4b7dbcf611558e49 Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/6.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/7.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/7.png" new file mode 100644 index 0000000000000000000000000000000000000000..c57f9d107c0740a7c1f2368b332c7f4060b12d9b Binary files /dev/null and "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/Figures/7.png" differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/\347\254\254\344\270\200\345\244\251\347\254\224\350\256\260.md" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/\347\254\254\344\270\200\345\244\251\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..243a2a5e8aa230f38ba5336cc136762af8913245 --- /dev/null +++ "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/\347\254\254\344\270\200\345\244\251\347\254\224\350\256\260.md" @@ -0,0 +1,98 @@ +# RT-Thread & Git 开发环境搭建与使用指南 + +## 一、RT-Thread 开发环境搭建 + +### 上午操作流程 +1. **环境准备** + ```bash + # 下载env工具和RT-Thread源码 + git clone https://github.com/RT-Thread/env.git + git clone https://github.com/RT-Thread/rt-thread.git +2. **ENV工具安装** + 运行env.bat安装ENV环境 + 在Setting中创建右键快捷入口 + ![6](../笔记/Figures/6.png) +3. **QEMU-A9工程编译** + ```bash + cd rt-thread/bsp/qemu-vexpress-a9 + 首次配置 + menuconfig + 编译工程 + scons -j4 + 运行模拟器 + qemu-nographic.bat +![1](../笔记/Figures/1.png) + +4. **LVGL集成** + ```bash + menuconfig # 在软件包中启用LVGL + pkgs --update + scons -j4 +5. **开发流程** + 在VSCode中打开qemu-vexpress-a9工程 + 修改application/main.c后重新编译运行 +![2](../笔记/Figures/2.png) +![7](../笔记/Figures/7.png) + +## 二、Git的使用 +1. **基础配置** + ```bash + git --version # 查看版本 + git config --global user.name "YourName" + git config --global user.email "your@email.com" + git config --global credential.helper store # 保存认证信息 + +![3](../笔记/Figures/3.png) +![4](../笔记/Figures/4.png) + + 常用命令速查 + + 操作 命令 + 初始化仓库 git init + 克隆仓库 git clone + 查看状态 git status + 添加文件 git add + 提交更改 git commit -m "msg" + 查看历史 git log --graph --oneline +![5](../笔记/Figures/5.png) +2. **分支管理** + ```bash + git branch new-feature # 创建分支 + git switch new-feature # 切换分支 + git merge hotfix # 合并分支 + git branch -d old-branch # 删除分支 +3. **远程协作** + + 1. ***SSH密钥配置*** + ```bash + ssh-keygen -t rsa -b 4096 + cat ~/.ssh/id_rsa.pub # 复制到Gitee/GitHub + + 2. ***PR工作流*** + ```bash + git fork # 派生仓库 + git checkout -b feature # 创建特性分支 + git push origin feature # 推送分支 # 在平台发起Pull Request + +# 三、学习心得 +1. **RT-Thread开发** + + 定期执行pkgs --update更新软件包 + + 使用menuconfig调整配置后需重新编译 + +2. **Git最佳实践** + + 遵循"小步提交"原则 + + 使用.gitignore过滤中间文件 + + 重要分支(如main)开启保护 + +3. **排错技巧** + + ```bash + git reflog # 查看所有操作记录 + git diff HEAD~1 # 比较版本差异 + git reset --hard commit_id # 版本回退 + diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/\347\254\254\344\270\211\345\244\251\347\254\224\350\256\260.md" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/\347\254\254\344\270\211\345\244\251\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..3db67dcb31fdf16f6cf93a034481d72182d0d02e --- /dev/null +++ "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/\347\254\254\344\270\211\345\244\251\347\254\224\350\256\260.md" @@ -0,0 +1,119 @@ +# 一、 线程间同步 +## 1. 线程创建机制 +### 1.1 动态创建方式 +#### 核心特性 +- 内存管理:动态分配线程控制块(TCB)和栈空间(系统堆内存) +- 生命周期:可运行时创建/销毁,灵活性高 +- 资源消耗:需额外内存管理开销 + +#### API 接口 +```c +rt_thread_t rt_thread_create(const char *name, + void (*entry)(void *parameter), + void *parameter, + rt_uint32_t stack_size, + rt_uint8_t priority, + rt_uint32_t tick); +rt_err_t rt_thread_startup(rt_thread_t thread); +``` +#### 典型应用场景 +- 动态网络连接管理 +- 按需创建的临时任务处理 +- 不确定生命周期的服务线程 +## 线程同步机制 +| 机制 | 特性 | 适用场景 | 性能开销 | +| :------- | :----------- | :------- | :--- | +| **信号量** | 计数型,支持优先级继承 | 资源管理/互斥锁 | 中 | +| **互斥量** | 二值信号量+优先级天花板 | 临界区保护 | 低 | +| **事件集** | 32位标志位组合触发 | 多条件等待 | 极低 | + + +信号量例程演示 +![3_2](../笔记/Figures/3_2.png) +互斥量例程演示 +![3_3](../笔记/Figures/3_3.png) +事件集例程演示 +![3_4](../笔记/Figures/3_4.png) + +# 二 线程间通信 +## 1.实现步骤 +```c +\\1.声明栈空间和控制块 +static rt_uint8_t thread_stack[512]; +static struct rt_thread thread_ctrl; +\\2.线程初始化 (适用于资源受限的MCU环境、需要特定性内存分配的系统、长期运行的固定功能线程) +rt_thread_init(&thread_ctrl, "stat_thread", + thread_entry, RT_NULL, + &thread_stack[0], sizeof(thread_stack), + priority, tick); +``` +## 2.线程通信(邮箱系统) +### 2.1 架构设计 +| 特性 | 说明 | +| :- | :- | +| 消息单元 | 4字节(32位系统)或指针 | +| 缓冲机制 | 环形队列实现,可配置容量 | +| 阻塞模式 | 支持超时等待机制 | +### 2.2 操作接口 +```c +// 发送邮件(非阻塞) +rt_err_t rt_mb_send(rt_mailbox_t mb, rt_uint32_t value); + +// 接收邮件(可阻塞) +rt_err_t rt_mb_recv(rt_mailbox_t mb, rt_uint32_t *value, rt_int32_t timeout); +``` +### 2.3 应用模式 +1. 轻量级通知:传递状态标志/事件编号 +2. 数据共享:传递数据指针(需自行管理生命周期) +3. 跨核通信:在SMP系统中实现核间通信 + +邮箱系统例程演示 +![3_6](../笔记/Figures/3_6.png) +## 3.信号量机制 +### 3.1 类型对比 +| 类型 | 初始值 | 典型应用 | +| --- | --- | --- | +| 二值信号量 | 1 | 互斥锁、资源独占空间 | +| 计数信号量 | N | 资源池管理、流量控制 | +### 3.2 关键操作 +```c +// 获取信号量(支持超时设置) +rt_err_t rt_sem_take(rt_sem_t sem, rt_int32_t timeout); + +// 释放信号量 +rt_err_t rt_sem_release(rt_sem_t sem); +``` +### 3.3 使用规范 +互斥场景: +必须成对调用take/release +避免优先级反转问题 + +同步场景: +建议配合事件标志使用 +超时设置应考虑系统实时性要求 +### 3.4 例程演示 +![3_8](../笔记/Figures/3_8.png) +## 4.线程栈对齐 +### 4.1 对齐要求 +基本单位:RT_ALIGN_SIZE(ARCH_CPU_BITS/8) +双重约束: +```c +start_addr % RT_ALIGN_SIZE == 0 +stack_size % RT_ALIGN_SIZE == 0 +``` +### 4.2 实现方式 +```c +// 1.编译器自动对齐(静态数组) +ALIGN(RT_ALIGN_SIZE) +static rt_uint8_t thread_stack[1024]; +``` +```c +// 2.动态对齐保证: +void *stack = rt_malloc(size); +RT_ASSERT((rt_uint32_t)stack % RT_ALIGN_SIZE == 0); +``` +### 4.3 调试建议 +- 使用rt_thread_self()->stack_size验证实际栈大小 +- 开启栈溢出检测功能(CONFIG_STACK_GUARD) +- 对于ARM Cortex-M架构,建议8字节对齐以获得最佳性能 + diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/\347\254\254\344\272\214\345\244\251\347\254\224\350\256\260.md" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/\347\254\254\344\272\214\345\244\251\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..9497f496452df7d894dd70e2f6bf2ca8c07ff085 --- /dev/null +++ "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/\347\254\254\344\272\214\345\244\251\347\254\224\350\256\260.md" @@ -0,0 +1,160 @@ +# 裸机 vs RTOS 与 RT-Thread 内核详解 +![2_2](../笔记/Figures/2_2.png) +## 一、裸机 vs RTOS 对比 + +| 维度 | 裸机开发 | RTOS开发 | +|---------------|--------------------------|---------------------------| +| **系统架构** | 前后台系统(中断+主循环) | 多线程调度 | +| **代码复杂度** | 低(适合简单功能) | 高(支持复杂逻辑) | +| **内存占用** | 极小 | 需额外存储空间(≥10KB) | +| **调度方式** | 顺序执行 | 优先级抢占+时间片轮转 | +| **开发效率** | 低(耦合度高) | 高(模块化设计) | +### 1.学习例程代码 +![2_3](../笔记/Figures/2_3.png) +![2_4](../笔记/Figures/2_4.png) +![2_6](../笔记/Figures/2_6.png) +![2_8](../笔记/Figures/2_8.png) +![2_9](../笔记/Figures/2_9.png) +### 2.静态 or 动态 建立线程 与 分离 or 删除 线程 +![2_10](../笔记/Figures/2_10.png) +![2_11](../笔记/Figures/2_11.png) +### 3.空闲线程与主线程 +![2_7](../笔记/Figures/2_7.png) +### 4.举例:sample +![2_12](../笔记/Figures/2_12.png) +寄存器初始状态 +![2_13](../笔记/Figures/2_13.png) + +## 二、RT-Thread 核心机制 + +### 1. 系统启动流程 + + ```c + // 硬件层初始化 + Reset_Handler: + BL SystemInit // 时钟配置 + BL entry // RT-Thread入口 + BX LR + + // 软件层初始化(按顺序执行) + 1. rt_hw_interrupt_disable() + 2. rt_hw_board_init() // UART/GPIO等 + 3. rt_show_version() // 打印RT-Thread LOGO + 4. rt_system_timer_init() + 5. rt_system_scheduler_init() + 6. rt_application_init() // 创建main线程 + 7. rt_thread_idle_init() // 空闲线程(CPU统计/资源回收) + ``` + +### 2. 系统启动流程 +线程控制块结构 + ```c + struct rt_thread { + char name[RT_NAME_MAX]; // 截断超长部分 + void *entry; // 函数指针 + void *parameter; // 形参 + rt_uint32_t stack_size; // 需4字节对齐 + rt_uint8_t priority; // 0-255,0最高 + rt_uint32_t tick; // 时间片(单位tick) +}; +``` +#### 几个关键API: +| 功能 | 函数原型 | 说明 | +|---------------|--------------------------|---------------------------| +| 静态创建 | rt_thread_init() | 编译期分配内存 | +| 动态创建 | rt_thread_create() | 运行时申请内存 | +| 线程启动 | rt_thread_startup() | 加入就绪队列 | +| 让出CPU | rt_thread_yield() | 立即触发调度 | +| 延时挂起 | rt_thread_delay(ticks) | 相对延时 | + + ![2_1](../笔记/Figures/2_1.png) +#### 线程状态转换图: +![2_16](../笔记/Figures/2_16.png) +### 3. 调度策略 +#### a.优先级抢占规则: +任何时候高优先级线程都可抢占低优先级线程 +![2_17](../笔记/Figures/2_17.png) + ```c + void high_prio_thread() { /* 优先级5 */ } + void main() { /* 优先级10 */ } + // high_prio_thread将立即抢占main +``` +#### b.时间片轮转规则: +仅在同优先级线程间生效 +![2_17](../笔记/Figures/2_17.png) + ``` + //时间片计算公式: + 实际时间 = tick * (1000/RT_TICK_PER_SECOND) ms + ``` +# 三、实验例证 +### 实验1 优先级抢占 +![2_19](../笔记/Figures/2_19.png) +```c +#include + +void thread1_entry(void *p) { + rt_kprintf("[Thread1] 开始执行!\n"); + // 无循环,执行完自动退出 +} + +int main(void) { + // 创建线程(优先级5 > main的10) + rt_thread_t tid = rt_thread_create("thread1", + thread1_entry, RT_NULL, + 512, 5, 20); + rt_thread_startup(tid); + + rt_kprintf("[Main] 继续执行\n"); + return 0; +} +``` +### 实验2:时间片轮转 +```c +void thread2_entry(void *p) { + while(1) { + rt_kprintf("[Thread2] 运行\n"); + // 无delay,主动释放CPU + rt_thread_yield(); + } +} + +void thread3_entry(void *p) { + while(1) { + rt_kprintf("[Thread3] 运行\n"); + // 无delay,主动释放CPU + rt_thread_yield(); + } +} + +// 创建两个同优先级线程 +rt_thread_create("thread2", thread2_entry, RT_NULL, + 512, 15, 10); // 时间片10tick +rt_thread_create("thread3", thread3_entry, RT_NULL, + 512, 15, 10); +``` +# 四、开发实践 +### 1.内存配置建议 +```c +// rtconfig.h 关键配置 +#define RT_MAIN_THREAD_STACK_SIZE 2048 // main线程栈 +#define RT_THREAD_PRIORITY_MAX 32 // 优先级数 +#define RT_TICK_PER_SECOND 1000 // 1ms/tick +``` +### 2.调试命令行 +```shell +ps # 查看线程状态 +free # 显示内存使用 +list # 查看所有命令 +``` +### 3.易错点排查 +```shell +ps # 查看线程状态 +free # 显示内存使用 +list # 查看所有命令 +``` +### 4.收获 +```text +栈溢出:线程出现莫名崩溃时,优先增大stack_size +调度阻塞:检查是否有线程未调用delay/yield +优先级反转:使用互斥量(mutex)保护共享资源 +``` \ No newline at end of file diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/\347\254\254\345\233\233\345\244\251\347\254\224\350\256\260.md" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/\347\254\254\345\233\233\345\244\251\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..99abf23656d4277e91f573a7b3c6819d571f88aa --- /dev/null +++ "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\231\210\347\247\213\351\276\231/\347\254\224\350\256\260/\347\254\254\345\233\233\345\244\251\347\254\224\350\256\260.md" @@ -0,0 +1,138 @@ +# 一、设备驱动框架核心架构 +## 1.1 分层架构设计 + ![4_1](../笔记/Figures/4_1.png) +## 1.2 核心API +```c +// 设备管理 +rt_device_t rt_device_find(const char* name); // 查找设备‌:ml-citation{ref="5" data="citationList"} +rt_err_t rt_device_register(rt_device_t dev, const char* name, rt_uint16_t flags); // 注册设备‌:ml-citation{ref="2" data="citationList"} + +// 数据读写 +rt_size_t rt_device_write(rt_device_t dev, rt_off_t pos, const void* buffer, rt_size_t size); // 写设备‌:ml-citation{ref="5" data="citationList"} +rt_size_t rt_device_read(rt_device_t dev, rt_off_t pos, void* buffer, rt_size_t size); // 读设备‌:ml-citation{ref="5" data="citationList"} + +// 中断控制 +rt_err_t rt_device_set_rx_indicate(rt_device_t dev, rt_err_t (*rx_ind)(rt_device_t dev, rt_size_t size)); // 接收回调‌:ml-citation{ref="6" data="citationList"} +``` +## 1.3串口例程 +```C +#include + +static rt_device_t serial; +static struct rt_semaphore rx_sem; + +/* 接收回调函数 */ +static rt_err_t uart_rx_cb(rt_device_t dev, rt_size_t size) { + rt_sem_release(&rx_sem); + return RT_EOK; +} + +int main() { + // 查找设备 + serial = rt_device_find("uart2"); + + // 初始化信号量 + rt_sem_init(&rx_sem, "rx_sem", 0, RT_IPC_FLAG_FIFO); + + // 打开设备(中断接收模式) + rt_device_open(serial, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX); + + // 设置回调 + rt_device_set_rx_indicate(serial, uart_rx_cb); + + while(1) { + if(rt_sem_take(&rx_sem, RT_WAITING_FOREVER) == RT_EOK) { + char ch; + rt_device_read(serial, 0, &ch, 1); // 读取1字节 + rt_kprintf("Received: %c\n", ch); + } + } +} +``` + +# 二、GPIO深度开发技巧 +## 2.1 中断优化 +```C +// 增强中断处理模板 +static void _pin_isr(void *args) +{ + rt_uint32_t pin = (rt_uint32_t)args; + rt_interrupt_enter(); + + /* 添加临界区保护 */ + rt_enter_critical(); + // 中断处理逻辑 + rt_exit_critical(); + + rt_interrupt_leave(); +} + +// 注册中断时添加去抖参数 +rt_pin_attach_irq(pin, mode, _pin_isr, (void *)pin); +rt_pin_irq_enable(pin, RT_TRUE); +``` +## 2.2 GPIO性能优化策略 +1.使用位带操作替代API调用(针对实时性要求高的场景) + +2.批量GPIO操作使用端口级寄存器访问 + +3.中断服务程序分层处理(顶半部/底半部) + +# 三、I2C应用 +## 3.1 死锁预防方案 +```C +// I2C总线恢复函数 +void i2c_bus_recovery(rt_i2c_bus_device *bus) +{ + // 1. 切换为GPIO模式 + // 2. 发送9个时钟脉冲 + // 3. 发送STOP条件 + // 4. 恢复I2C模式 +} +``` +## 3.2 多设备管理技巧(画图理解) + ![4_2](../笔记/Figures/4_2.png) + +# 四、SPI高速传输 +## 4.1 设备挂载 +```C +struct rt_spi_device *spi_dev; +spi_dev = rt_spi_bus_attach_device("spi1", "spi10", "spi1", RT_NULL); +``` +## 4.2 数据传输 +```C +struct rt_spi_message msg; +rt_uint8_t tx_buf[4], rx_buf[4]; + +msg.send_buf = tx_buf; +msg.recv_buf = rx_buf; +msg.length = 4; +msg.cs_take = 1; +msg.cs_release = 1; + +rt_spi_transfer_message(spi_dev, &msg); +``` + +# 五、收获心得 + +## 5.1错误处理: + +- 所有设备操作必须检查返回值 + +- 资源申请失败要有回滚逻辑 + +## 5.2性能优化: + +- 减少设备开关次数 + +- 合理设置缓冲区大小 + +- 必要时使用DMA传输 + +## 5.3调试技巧: + +- 使用ulog分级打印日志 + +- 关键操作添加耗时统计 + +- 利用RT-Thread的msh命令测试驱动 \ No newline at end of file diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\344\275\234\344\270\232/day2/images/readme/1753184948639.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\344\275\234\344\270\232/day2/images/readme/1753184948639.png" deleted file mode 100644 index 61cb25a9024bc7e71ba80606ff51dff0e070933c..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\344\275\234\344\270\232/day2/images/readme/1753184948639.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\344\275\234\344\270\232/day2/mian.c" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\344\275\234\344\270\232/day2/mian.c" deleted file mode 100644 index 8037212150a8b505546f34dfc2f4a427b8b7e49c..0000000000000000000000000000000000000000 --- "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\344\275\234\344\270\232/day2/mian.c" +++ /dev/null @@ -1,85 +0,0 @@ -#include -#include -#include - -// 线程控制块指针声明 -rt_thread_t thread1 = RT_NULL; -rt_thread_t thread2 = RT_NULL; -rt_thread_t thread3 = RT_NULL; - -/** - * 线程1入口函数 - * 功能:循环打印"thread1 run",并在特定计数时延时 - */ -void _thread1(void) -{ - int i = 0; // 计数变量,用于控制延时时机 - - while(1) // 线程主循环,持续运行 - { - rt_kprintf("thread1 run\n"); // 打印线程1运行信息 - - // 当计数达到10、100、1000、10000时执行延时(原代码此处i=10000为笔误,保持原样) - if(i == 10 || i == 100 || i == 1000 || i=10000) - { - rt_thread_mdelay(1000); // 延时1000ms,便于观察输出结果 - } - - i++; // 计数自增 - } -} - -/** - * 线程2入口函数 - * 功能:循环打印"thread2 run" - */ -void _thread2(void) -{ - while(1) // 线程主循环,持续运行 - { - rt_kprintf("thread2 run \n"); // 打印线程2运行信息 - } -} - -/** - * 线程3入口函数 - * 功能:循环打印"thread3 run" - */ -void _thread3(void) -{ - while(1) // 线程主循环,持续运行 - { - rt_kprintf("thread3 run \n"); // 打印线程3运行信息 - } -} - -/** - * 主函数 - * 功能:创建并启动三个线程,打印主函数运行信息 - */ -int main(void) -{ - // 创建线程1:名称"thread1",入口函数_thread1,无参数,栈大小1024,优先级9,时间片5 - thread1 = rt_thread_create("thread1", _thread1, RT_NULL, 1024, 9, 5); - // 创建线程2:名称"thread2",入口函数_thread2,无参数,栈大小1024,优先级11,时间片5 - thread2 = rt_thread_create("thread2", _thread2, RT_NULL, 1024, 11, 5); - // 创建线程3:名称"thread3",入口函数_thread3,无参数,栈大小1024,优先级11,时间片5 - thread3 = rt_thread_create("thread3", _thread3, RT_NULL, 1024, 11, 5); - - // 若线程1创建成功,则启动线程1 - if(thread1 != RT_NULL) - { - rt_thread_startup(thread1); - } - - // 若线程2和线程3均创建成功,则启动这两个线程 - if(thread2 != RT_NULL && thread3 != RT_NULL) - { - rt_thread_startup(thread2); - rt_thread_startup(thread3); - } - - rt_kprintf("main run conut \n"); // 打印主函数运行信息 - - return 0; // 主函数返回(RT-Thread中主函数退出后仍会运行线程) -} diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\344\275\234\344\270\232/day2/readme.md" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\344\275\234\344\270\232/day2/readme.md" deleted file mode 100644 index b63a7b38fd1635e67a48be53ddd2f5a5da0e0e8a..0000000000000000000000000000000000000000 --- "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\344\275\234\344\270\232/day2/readme.md" +++ /dev/null @@ -1,79 +0,0 @@ -# day2 :homework - - -今日作业: -1.在论坛发文章描述对今天内容的总结与收获 -2.编写代码上传至git仓库,创建至少3个线程,能体现抢占与时间片轮转,在今天的工程的mian.c中实现,其他同学拿到该文件可以直接运行。 - -自行研究: -1.ARM函数调用规范 - -代码图解: - -![1753184948639](images/readme/1753184948639.png) - - -``` -#include -#include -#include - - -rt_thread_t thread1 =RT_NULL; -void _thread1(void) -{ - int i =0; - - while(1) { - - rt_kprintf("thread1 run\n"); - - - if(i == 10 || i == 100 || i == 1000||i=10000) { //防止太快根本看不清结果 - rt_thread_mdelay(1000); // 延时1000ms - } - - i++; -} -} - -rt_thread_t thread2 =RT_NULL; -void _thread2(void) -{ - - while(1){ - rt_kprintf("thread2 run \n"); - } -} - -rt_thread_t thread3 =RT_NULL; -void _thread3(void) -{ - - - while(1){ - rt_kprintf("thread3 run \n"); - } -} -int main(void) -{ - - thread1 = rt_thread_create("thread1", _thread1, RT_NULL, 1024, 9, 5); - thread2 = rt_thread_create("thread2", _thread2, RT_NULL, 1024, 11, 5); - thread3 = rt_thread_create("thread3", _thread3, RT_NULL, 1024, 11, 5); - if(thread1 != RT_NULL) - { - rt_thread_startup(thread1); - - } - if(thread2 != RT_NULL||thread3 != RT_NULL) - { - - rt_thread_startup(thread2); - rt_thread_startup(thread3); - } - rt_kprintf("main run conut \n"); -} - - -``` diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\344\275\234\344\270\232/\347\254\254\344\270\200\345\244\251\344\275\234\344\270\232.md" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\344\275\234\344\270\232/\347\254\254\344\270\200\345\244\251\344\275\234\344\270\232.md" deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093139645.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093139645.png" deleted file mode 100644 index 04a4aef23ac4cd0f03c1ad6841111197797a08bc..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093139645.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093218923.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093218923.png" deleted file mode 100644 index cdc6f9379edd4a33d7c170b4bacde15d4370ae5f..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093218923.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093251733.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093251733.png" deleted file mode 100644 index eb1a06d5a15873990ee5f5771393dd6c86e3ae26..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093251733.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093413668.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093413668.png" deleted file mode 100644 index 2c5c2723fde10cf040f09ff2afcdb39cd277eb6e..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093413668.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093446924.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093446924.png" deleted file mode 100644 index b672c5d24da77551df2dfcf81274fe76980d2132..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093446924.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093598609.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093598609.png" deleted file mode 100644 index 39f9f95c15da5358792185dce3ebe432ad3082f3..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093598609.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093728528.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093728528.png" deleted file mode 100644 index a5d6daf4772a1236cf0baf445bfdaf57e50e5a68..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093728528.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093761169.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093761169.png" deleted file mode 100644 index 4e5bfa6549a00e96faeb012c4a409f9cd27c9c55..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753093761169.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753094072773.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753094072773.png" deleted file mode 100644 index ae8e19eefa420c998bc6601949ac9601ca4fcac7..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753094072773.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753094178375.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753094178375.png" deleted file mode 100644 index 9d4ae4714e311428d0cffb079ff0a1e346464919..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753094178375.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753094269113.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753094269113.png" deleted file mode 100644 index 4ac86e6013c2674b6a56d4255b21e05f74e5cdcd..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753094269113.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753094435751.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753094435751.png" deleted file mode 100644 index 227f18d8a95d80dfbcf2a02d7aaabaee50ac8195..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753094435751.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753094632755.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753094632755.png" deleted file mode 100644 index 0e126f788c95bf167183d40860d0c48409616656..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753094632755.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753094809575.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753094809575.png" deleted file mode 100644 index 4b27ae59fe3dd90dbfda514440f60fabebc58885..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753094809575.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753095064469.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753095064469.png" deleted file mode 100644 index 983db99f26d9156bdab3374e99057798712f7cae..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753095064469.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753095285943.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753095285943.png" deleted file mode 100644 index 4fad6298219de1b9d04dc3f653f43162601f6acd..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753095285943.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753095516501.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753095516501.png" deleted file mode 100644 index fb04fff3fd9847dfce7f977beed83e66ac6838d3..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753095516501.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753095757317.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753095757317.png" deleted file mode 100644 index 5f6ea5f590f20b4e7676c33e60ae33f76f2ab3ae..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753095757317.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753095976025.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753095976025.png" deleted file mode 100644 index 577eec06a53cd830da1db29328081204fcb661ec..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753095976025.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753096272836.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753096272836.png" deleted file mode 100644 index d235e2a132bbbb7f338060693ebd81c43bc2622a..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753096272836.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753096544142.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753096544142.png" deleted file mode 100644 index 7c3072b6be395bdc4f1879d7cf8afc541e6720b7..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753096544142.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753096839775.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753096839775.png" deleted file mode 100644 index 982fc7d4eaf42afc65aa5d4f1410c25e7735cfa8..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753096839775.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753099222978.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753099222978.png" deleted file mode 100644 index d406922ff4444b956d930414e60f66290be95982..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753099222978.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753099645884.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753099645884.png" deleted file mode 100644 index 351f65985aa0a32e61ab4bef2f6758b5fb6a6f0e..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day1\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250/1753099645884.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753155683355.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753155683355.png" deleted file mode 100644 index 3875334d6fa1f1c505f940db69d23c08213da3e8..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753155683355.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753155823461.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753155823461.png" deleted file mode 100644 index beb4a418aec57213f9ce44f7f7497564041a3aa1..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753155823461.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753155966120.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753155966120.png" deleted file mode 100644 index 6ef45527da13b7bf6818f59bce32a6893dfb211f..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753155966120.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753156125970.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753156125970.png" deleted file mode 100644 index e3647310369a9e395ee7d5d0a5c240cbc2ed89f0..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753156125970.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753156351872.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753156351872.png" deleted file mode 100644 index c885a243d0e6e73a3414b36604c426fba146a68e..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753156351872.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753156490789.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753156490789.png" deleted file mode 100644 index 12164b87cd14be92c982237b74f306d2bbed46ec..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753156490789.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753156632718.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753156632718.png" deleted file mode 100644 index 112d02d754d12df57d7a06a3f3edb4d16725a900..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753156632718.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753156706609.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753156706609.png" deleted file mode 100644 index 64f015d7ed89e15298d8a22427c18b136cfe6315..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753156706609.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753156829136.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753156829136.png" deleted file mode 100644 index 0e1cc01a83d5b96d923bd896ba9bc93fb609478d..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753156829136.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753157755057.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753157755057.png" deleted file mode 100644 index ace9d00fcac457cfc9d51c00f9217447b5b28308..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753157755057.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753158320939.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753158320939.png" deleted file mode 100644 index b863a7fa766ec6d21f97bec2087c6875ae7f0a76..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753158320939.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753158740464.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753158740464.png" deleted file mode 100644 index b59097fa3c16596ff374a041acb13de58b919b22..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753158740464.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753176072844.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753176072844.png" deleted file mode 100644 index 02814cd4bb437f15b19c9b1cbe0eada06282a809..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753176072844.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753178489017.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753178489017.png" deleted file mode 100644 index cddd5ed3da5c97bf0efdf0f8222f6251c83a0012..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753178489017.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753178806755.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753178806755.png" deleted file mode 100644 index 143253ba66d3ca7556fb52546be7db626c2cd2e2..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753178806755.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753179024941.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753179024941.png" deleted file mode 100644 index 71827fb65616cb43cc2592d2a43cbcc6222aea05..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753179024941.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753179061231.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753179061231.png" deleted file mode 100644 index daec767d1011429503fd0cb9895b26fa67336186..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753179061231.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753179200663.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753179200663.png" deleted file mode 100644 index 17700a4960242a4a874d6c3fa8a186829ba46de7..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753179200663.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753179446661.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753179446661.png" deleted file mode 100644 index 0b3346a26ab1fcb8feab442b1e9f358543e2501c..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753179446661.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753179663732.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753179663732.png" deleted file mode 100644 index 7345fc0ddd8339f25320212ab8d7605a5b8bc86e..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753179663732.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753179997633.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753179997633.png" deleted file mode 100644 index ead49e7af6267eab0b508f3b29afffb6fcad0679..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753179997633.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753180187070.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753180187070.png" deleted file mode 100644 index 9d2523ebcd2122bcc597f699bc672976508bc0cc..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753180187070.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753181531962.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753181531962.png" deleted file mode 100644 index 216c0b32f3845c1dd0bf220076703c7b40bd8ea3..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753181531962.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753182120380.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753182120380.png" deleted file mode 100644 index e4b851e69aa0a51e35d4c39813ea3b6d974bcb23..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753182120380.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753185070376.png" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753185070376.png" deleted file mode 100644 index 61cb25a9024bc7e71ba80606ff51dff0e070933c..0000000000000000000000000000000000000000 Binary files "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/images/\343\200\220RSOC25\343\200\221Day2\350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250/1753185070376.png" and /dev/null differ diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/\343\200\220RSOC25\343\200\221Day1 \350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250.md" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/\343\200\220RSOC25\343\200\221Day1 \350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250.md" deleted file mode 100644 index 98d2f4b938a983097dbd238e83d04643d2dc25ea..0000000000000000000000000000000000000000 --- "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/\343\200\220RSOC25\343\200\221Day1 \350\257\276\347\250\213\347\254\224\350\256\260\357\274\232\345\274\200\345\217\221\347\216\257\345\242\203\346\220\255\345\273\272\344\270\216GIT\344\275\277\347\224\250.md" +++ /dev/null @@ -1,177 +0,0 @@ -# 【RSOC25】Day1 课程笔记:开发环境搭建与GIT使用 - -## 1. git工具的下载和配置 - -### 1.1 git工具下载 - -前往[git官网](https://https://git-scm.com/)下载windows版本并安装。 - -![1753099645884](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753099645884.png) - -### 1.2 gitte官网SSH密钥配置 - -右键菜单打开git终端输入一下命令创建密钥,然后一路回车。 - -``` -ssh-keygen -t rsa -b 4096 -C "your email@qq.com" -f ~/.ssh/id_rsa_gitee -``` - -创建好之后,输入以下代码打印密钥,并复制 - -``` -cat ~/.ssh/id_rsa_gitee.pub -``` - -![1753093218923](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753093218923.png) - -进入[gitte官网](https://gitee.com/)右上角头像->个人主页->设置->SSH公钥,将复制的公钥填入并取个名称,点击确定。 - -![1753093139645](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753093139645.png) - -回到git bash输入`ssh -T git@gitee.com`验证gitte连接,若出现绿色框中信息则说明配置成功。 - -![1753093251733](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753093251733.png)## - -## 2. 环境搭建与env工具使用 - -### 2.1 利用git拉取源码 - -#### 2.1.1 RT-thread源码拉取 - -创建一个文件件作为本次项目的主文件夹,进入文件夹右键在git bash中打开输入以下命令 - -``` -git clone https://gitee.com/rtthread/rt-thread.git -``` - -拉取RT-thread源代码 - -![1753093446924](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753093446924.png) - -#### 2.1.2 ENV工具源码拉取 - -在和RT-thread同级目录下利用输入以下代码拉取ENV-windows源码 - -``` -git clone --recursive --depth 1 https://gitee.com/mirrors_RT-Thread/env-windows.git -``` - -![1753093413668](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753093413668.png) - -这里一定要耐心等待,拉取万源码之后还会自动下载一些必要的依赖和工具,不要着急关闭。 - -若在线拉取失败可前往[RT-Thread论坛](https://club.rt-thread.org/ask/article/af8952fcf0ca464b.html)查看离线下载方法 - -2.2 ENV工具配置和使用 - -### 2.2 ENV工具的激活 - -进入env—windows文件目录下双击env.bat文件并运行 - -![1753093598609](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753093598609.png) - -首次运行系统会自动下载和激活环境耐心等待即可 - -![1753093728528](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753093728528.png) - -环境激活成功后在右上角->settings->intgreation->register注册ENV工具到右键菜单栏 - -![1753093761169](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753093761169.png) - -注册成功之后右键菜单栏会出现在ENV工具中打开(说明注册成功)然后进入RT-thread源代码目录利用ENV工具打开 - -![1753094072773](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753094072773.png) - -输入`pkgs --upgrade`命令更新,等待更新完毕即可。 - -####若出现以下报错#### - -![1753094178375](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753094178375.png) - -进入ENV目录:\env\tools\scripts\cmds,注意ENV安装的目录 - -在这个目录下打开ENV工具,执行`menuconfig`命令,取消选中第一项然后再选中(有更改痕迹)然后ESC退出并回车保存即可,操作完成之后.config文件会自动从生成。 - -![1753094269113](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753094269113.png) - -再次运行`pkgs --upgrade` - -![1753094435751](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753094435751.png) - -### 2.3 工程编译与运行 - -#### 2.3.1 Vscode下载和安装 - -前往[vscode官网](https://code.visualstudio.com/)下载并安装vscode - -![1753094632755](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753094632755.png) - -#### 2.3.2 Scons构建脚本简介 - -进入rt-thread\bsp\qemu-vexpress-a9目录右键菜单栏在vscode中打开 - -![1753094809575](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753094809575.png) - -打开后可以看到几乎每个目录下都会存在SConscript脚本文件 - -![1753095064469](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753095064469.png) - -这里以LVGL目录下的构建脚本为例子说明,详细用法可参考Scons构建工具介绍以及python语法(其实和Cmake等构建工具类似反而更简单)。 - -![1753095285943](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753095285943.png) - -那么我们需要创建一个新的目录并将其纳入编译路径只需要在该目录下创建SConscript脚本并添加以下内容即可。 - -![1753095516501](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753095516501.png) - -#### 2.3.3 Hello RT-thread工程编译和运行 - -接上一小节,找到mian.c中的mian函数可以简单做修改我们这里改为Hello RT-thread!2025。 - -![1753095757317](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753095757317.png) - -在RT-thread目录下打开ENV构建工具,然后进入\bsp\qemu-vexpress-a9目录。 - -接着输入`menuconfig`后保存生成配置文件(不需要修改)。 - -最后`scons-j4`编译。 - -![1753095976025](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753095976025.png) - -等待编译完成后输入`qemu-nographic.bat`运行可以看到控制台打印`Hello RT_thread! 2025` - -![1753096272836](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753096272836.png) - -(退出:Ctrl+A +X,自己尝试反正对我的电脑没用只会出现几个表情包) - -#### 2.3.4 LVGL demo工程编译和运行 - -接上一节工程退出后执行`menuconfig`命令Hardware Drivers Config->Onboard Peripheral Drivers-> - -选择Enable LVGL demo和 Enable LVGL for LCD,然后退出并保存。 - -![1753096544142](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753096544142.png) - -接着输入`scons-j4`编译,编译成功后输入`qemu.bat`,结果如下图。 - -![1753096839775](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753096839775.png) - -## 3.git工具的使用 - -关于git工具使用,虽然自己以前也用过但只是会简单的拉取代码,今天学习之后也算小有成就,关于该工具的学习放在这里太过啰嗦就不做讲解了,但git工具和linux操作系统学习方法类似,死记硬背无用多用就顺手了,忘了就查,不会就AI,百度。远比自己盯着那几行晦涩难懂的命令有用,故在此推荐两篇夏令营中大佬推荐的博文供大家参考学习: - -Git学习和使用教程(来自本次夏令营中叶大佬推荐的教程) - -[Git使用教程:最详细、最傻瓜、最浅显、真正手把手教!(建议收藏)](https://mp.weixin.qq.com/s/raSGv-aLHjK1HUcLZvQBeA) - -pr提交详细教程(来自本次夏令营中曹大佬写的教程) - -[PR提交参教程Github](https://github.com/HPUJSJSH/codingForUs/blob/main/PR%E6%8F%90%E4%BA%A4%E6%95%99%E7%A8%8B%2Freadme.md) - -另外在我觉得Git使用工具中最难理解的地方就是官方远程仓库,个人远程仓库,本地仓库,暂存区之间的关系,也得益于群中大佬讲解,将大佬讲的思路和画的图我在完善了一下供大家学习和理解Git工具使用 - -![1753099222978](images/【RSOC25】Day1课程笔记:开发环境搭建与GIT使用/1753099222978.png) - -## 4.总结 - -今日课程主要介绍了开发环境的搭建与GIT工具的使用,包括GIT工具的下载安装与SSH密钥配置、RT-Thread源码及ENV工具的获取与配置、VSCode的安装、Scons构建脚本的基本用法,以及如何编译和运行Hello RT-Thread和LVGL demo工程。通过实际操作,掌握了从环境搭建到项目编译运行的完整流程,并对GIT工具的基本使用和常见问题有了更深入的理解,为后续的开发工作打下了坚实基础。 diff --git "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/\343\200\220RSOC25\343\200\221Day2 \350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250.md" "b/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/\343\200\220RSOC25\343\200\221Day2 \350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250.md" deleted file mode 100644 index 959f84428c17c84c6a816cc05ae2e7c069e40fba..0000000000000000000000000000000000000000 --- "a/2025/\347\254\2545\347\273\204(CanMV-K230)/\351\251\254\351\224\241\345\260\247/\347\254\224\350\256\260/\343\200\220RSOC25\343\200\221Day2 \350\257\276\347\250\213\347\254\224\350\256\260\357\274\232RTT\345\267\245\345\205\267\344\275\277\347\224\250\345\222\214\345\206\205\346\240\270\345\205\245\351\227\250.md" +++ /dev/null @@ -1,458 +0,0 @@ -# 【RSOC25】Day2 课程笔记:RTT工具使用和内核入门 - -## 1. RT-thread STtudio配置和使用 - -### 1.1 RTT工具下载和SDK资源包下载 - -#### 1.1.1 RT studio工具下载 - -前往[RTT官网](https://www.rt-thread.org/download.html#download-rt-thread-studio)下载RT-studio工具最新版本,下载后安装双击打开登录即可。 - -![1753155683355](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753155683355.png) - -#### 1.1.1 SDK资源包管理 - -右上角打开SDK资源管理器选择STM32下拉找到STM32F407勾选最新版本然后点击安装。 - -![1753155823461](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753155823461.png) - -安装完成之后在debug下面找到QEMU工具栏勾选最新版本下载安装 - -![1753155966120](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753155966120.png) - -耐心等待安装完成 - -### 1.2 RT-studio新建工程和QEMU模拟运行 - -#### 1.2.1 新建工程和编译 - -左上角文件->新建工程->新建RTT工程 - -![1753156125970](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753156125970.png) - -选择基于开发板创建->开发板:STM32F407-ATK-EXPLORER->调试器:QEMU 然后点击完成。 - -![1753156351872](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753156351872.png) - -创建完后选择我们创建的工程RTT_RSOC点击左上角的小锤子构建 - -![1753156490789](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753156490789.png) - -构建完成如下图 - -![1753156632718](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753156632718.png) - -#### 1.2.2 QEMU模拟运行 - -点击工具栏的下载->选择模拟器:STM32F407-ATK-EXPLORER - -![1753156706609](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753156706609.png) - -下载完成后会自动运行系统控制台终端显示如下,可输入`PC`指令查看当前任务状态 - -![1753156829136](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753156829136.png) - -## 2. RT-Thread内核入门 - -[写在前:本章节内容简略详细教程可查看[RTT官网教程](https://www.rt-thread.org/document/site/#/)理解和阅读] - -内核介绍 - -内核是一个操作系统的核心,是操作系统最基础也是最重要的部分。它负责管理系统的线程、线程间通信、系统时钟、中断及内存等。下图为 RT-Thread 内核架构图,可以看到内核处于硬件层之上,内核部分包括内核库、实时内核实现。 - -![RT-Thread 内核及底层结构](https://www.rt-thread.org/document/site/rt-thread-version/rt-thread-standard/programming-manual/basic/figures/03kernel_Framework.png) - -内核库是为了保证内核能够独立运行的一套小型的类似 C 库的函数实现子集。这部分根据编译器的不同自带 C 库的情况也会有些不同,当使用 GNU GCC 编译器时,会携带更多的标准 C 库实现。 - -实时内核的实现包括:对象管理、线程管理及调度器、线程间通信管理、时钟管理及内存管理等等,内核最小的资源占用情况是 3KB ROM,1.2KB RAM。 - -### 2.1 RT-Thread内核入门1:启动流程分析 - -#### 2.1.1 RT-thread启动流程概括 - -一般了解一份代码大多从启动部分开始,同样这里也采用这种方式,先寻找启动的源头。RT-Thread 支持多种平台和多种编译器,而 rtthread\_startup() 函数是 RT-Thread 规定的统一启动入口。一般执行顺序是:系统先从启动文件开始运行,然后进入 RT-Thread 的启动函数 rtthread\_startup() ,最后进入用户入口函数 main(),如下图所示: - -![启动流程](https://www.rt-thread.org/document/site/rt-thread-version/rt-thread-standard/programming-manual/basic/figures/rtt_startup.png) - -#### 2.1.2 RT-thread启动流程分析 - -我们可以打开我们之前的工程进入RT_RSOC\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\gcc\startup_stm32f407xx.s汇编启动文件113行查看,上面的代码执行几乎与裸机启动文件没有任何区别。而操作系统和裸机启动最大的区别便是在这里,当完成上述操作后裸机会直接跳转到mian()函数和RTOS还需要进行操作系统初始化和启动,如rt-thread就需要进入上一节启动流程概述图的rtthread_startup()函数完成操作系统初始化后,蔡会进入main()函数。 - -![1753157755057](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753157755057.png) - -而rtthread_startup()函数由上述的概述图可知,在进入该函数之前还会调用一个函数 在该函数中会调用rtthread_startup(),关于这个我们可以进入\RT_RSOC\rt-thread\src\components.c中查看139行到165的内容可以看到这里对应概述图中根据编译器选择汇编调用的操作系统初始化函数入口函数,因为RT-thread studio本身也就是利用GCC编译器完成构建,所以我们这里可以看到只要entry函数被编译,这也就可以解释在上述启动文件中的113行为什么是 `bl entry` - -![1753158320939](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753158320939.png) - -到这里简单的启动流程已经结束,调用rtthread_startup()函数进入操作系统初始化,因代码过多就不一一查看了,我们可以关注一下启动流程中重点完成了那些操作会和我们后续的开发有关: - -首先我们关注系统调度器初始化后的三个线程初始化函数,这三个函数会分别创建main主线程,time时间线程,idel空闲线程,然后会开启系统调度,也就是说在我们系统启动完成之后会自动创建三个线程。而其中main()主线程最终会进入main()主函数也就是完成系统初始化进入用户程序。 - -然后我们会发现在rt_hw_board_init()和main()中都会调用两个带compoents的函数rt\_components\_board\_init() 与 rt\_components\_init()其后掉调用的蓝色方框的函数我们称为自动初始化函数,其中rt\_components\_board\_init()进入的函数主要完成硬件自动初始化,而rt\_components\_init()进入的函数主要完成组件应用程序等自动初始化,这个机制称之为自动初始化机制,是指初始化函数不需要被显式调用,只需要在函数定义处通过宏定义的方式进行申明,就会在系统启动过程中被执行。 - -举个简单的例子我们现在需要开发一个lvgl_demo,那么我们就可以将显示屏硬件初始化的函数启用rt\_components\_board\_init()调用的硬件自动初始化,然后将lvgl初始化函数启用rt\_components\_init()的组件自动初始化,最后在main()主函数中直接调用lvgl ui相关的函数即可,而显示屏硬件初始化函数和lvgl组件初始化函数会在系统启动过程中执行到rt\_components\_board\_init() 与 rt\_components\_init()两个函数时候就被初始化,这样在开发时候就可以减少代码的冗余和依赖。 - -具体详细教程可参考[rh-thread内核启动过程中的自动初始化机制](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/basic/basic?id=rt-thread-%e8%87%aa%e5%8a%a8%e5%88%9d%e5%a7%8b%e5%8c%96%e6%9c%ba%e5%88%b6) - -![1753158740464](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753158740464.png) - -系统线程和空闲线程介绍可看PPT说明 - -![1753176072844](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753176072844.png) - -### 2.2 RT-Thread内核入门2:线程管理和调度 - -RT-Thread 线程管理的主要功能是对线程进行管理和调度,系统中总共存在两类线程,分别是系统线程和用户线程,系统线程是由 RT-Thread 内核创建的线程,用户线程是由应用程序创建的线程,这两类线程都会从内核对象容器中分配线程对象,当线程被删除时,也会被从对象容器中删除。 - -![对象容器与线程对象](https://www.rt-thread.org/document/site/rt-thread-version/rt-thread-standard/programming-manual/thread/figures/04Object_container.png) - -RT-Thread 的线程调度器是抢占式的,主要的工作就是从就绪线程列表中查找最高优先级线程,保证最高优先级的线程能够被运行,最高优先级的任务一旦就绪,总能得到 CPU 的使用权。 - -当一个运行着的线程使一个比它优先级高的线程满足运行条件,当前线程的 CPU 使用权就被剥夺了,或者说被让出了,高优先级的线程立刻得到了 CPU 的使用权。 - -如果是中断服务程序使一个高优先级的线程满足运行条件,中断完成时,被中断的线程挂起,优先级高的线程开始运行。 - -当调度器调度线程切换时,先将当前线程上下文保存起来,当再切回到这个线程时,线程调度器将该线程的上下文信息恢复。 - -对于线程的介绍和线程工作机制重要属性这里不再做介绍内容比较深大家仔细前往[RT-thread官网:线程的工作机制及重要属性介绍](https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/programming-manual/thread/thread?id=%e7%ba%bf%e7%a8%8b%e7%9a%84%e5%b7%a5%e4%bd%9c%e6%9c%ba%e5%88%b6)查看,接下来我们主要将线程管理和调度的方式。 - -#### 2.2.1 线程的管理方式 - -##### 2.2.1.1 线程管理方式及其对线程状态的影响 - -线程的相关操作,包含:创建 / 初始化线程、启动线程、运行线程、删除 / 脱离线程。可以使用 rt\_thread\_create() 创建一个动态线程,使用 rt\_thread\_init() 初始化一个静态线程,动态线程与静态线程的区别是:动态线程是系统自动从动态内存堆上分配栈空间与线程句柄(初始化 heap 之后才能使用 create 创建动态线程),静态线程是由用户分配栈空间与线程句柄。 - -![线程相关操作](https://www.rt-thread.org/document/site/rt-thread-version/rt-thread-standard/programming-manual/thread/figures/04thread_ops.png) - -对于线程管理中我们所需要注意的两点: - -1.线程管理的方式有哪些具体开发如何使用 - -2.线程管理方式对线程状态会产生什么影响 - -不同线程管理操作对于线程状态之间的变化如下 - -![1753178489017](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753178489017.png) - -在这里我们需要区别以下静态创建线程rt_thread_init()和动态创建线程rt_thread_create()的区别 - -- 动态创建线程时,系统会初始化线程控制块(TCB)和栈空间,但未立即加入调度队列。调用 `rt_thread_startup()` 后,线程才被加入调度队列参与系统调度。 -- 静态创建线程时,需手动分配栈空间(数组),并通过 `rt_thread_init()` 初始化线程控制块。 - -##### 2.2.1.2 线程创建和应用示例 - -打开RT-studio软件,进入之前创建的工程rtthread-setting->软件包->杂项软件包->找到rt-thread内核示例勾选thread - -![1753178806755](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753178806755.png) - -然后Ctrl+s保存并关闭,等待系统下载软件包。 - -![1753179024941](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753179024941.png) - -在pakges软件包下课查看thread_sample函数中实现了创建/初始化,启动,运行和删除/脱离的示例。 - -![1753179061231](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753179061231.png) - -编译并运行工程,在控制台输入t然后tab可以看到返回了thread_sample然后回车。 - -![1753179200663](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753179200663.png) - -可以看到系统已经调用thread_sample函数创建线程1初始化线程2,然后运行线程2 10次之后脱离线程,运行线程1。 - -![1753179446661](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753179446661.png) - -运行结果应如下 - -``` - \ | / -- RT - Thread Operating System - / | \ 3.1.0 build Aug 24 2018 - 2006 - 2018 Copyright by rt-thread team -msh >thread_sample -msh >thread2 count: 0 -thread2 count: 1 -thread2 count: 2 -thread2 count: 3 -thread2 count: 4 -thread2 count: 5 -thread2 count: 6 -thread2 count: 7 -thread2 count: 8 -thread2 count: 9 -thread2 exit -thread1 count: 0 -thread1 count: 1 -thread1 count: 2 -thread1 count: 3 -… - -``` - -#### 2.2.2 线程的调度方式 - -在RT-thread系统中线程的调度和任务切换工作主要由调度器来完成 - -![1753179663732](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753179663732.png) - -##### 2.2.2.1 优先级抢占调度 - -在不同优先级下,调度器执行优先级抢占调度,高优先级会抢占低优先级的线程运行 - -![1753179997633](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753179997633.png) - -优先级抢占式调度示例工程 - -在上一节的main.c代码中修改如下创建一个优先级比mian()的线程并启动 - -``` -#include -#include -#include - - - -rt_thread_t thread1 =RT_NULL; -void _thread1(void) -{ - int count=10; - for(int i=0;i -``` - -##### 2.2.2.2 时间片轮转调度 - -在相同优先级下,存在两个或多个线程就处于就绪状态时,调度器执行时间片轮转调度,按照预设时间片进行调度。 - -![1753180187070](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753180187070.png) - -时间片轮转调度示例工程 - -编写代码创建两个相同优先级的工程 - -``` -#include -#include -#include - - -rt_thread_t thread1 =RT_NULL; -void _thread1(void) -{ - - - while(1){ - rt_kprintf("thread1 run \n"); - } -} - -rt_thread_t thread2 =RT_NULL; -void _thread2(void) -{ - - while(1){ - rt_kprintf("thread2 run \n"); - } -} -int main(void) -{ - - thread1 = rt_thread_create("thread1", _thread1, RT_NULL, 1024, 9, 5); - thread2 = rt_thread_create("thread2", _thread2, RT_NULL, 1024, 9, 5); - if(thread1 != RT_NULL&&thread2 != RT_NULL) - { - rt_thread_startup(thread1); - rt_thread_startup(thread2); - } - rt_kprintf("main run conut \n"); -} - -``` - -更具代码:我们创建了相关相同优先级的线程,运行系统应该按照时间片轮转的方法依次调度两个线程运行并打印日志。 - -我们编译并运行代码查看结果 - -![1753181531962](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753181531962.png) - -发现结果好像和我们想的并不一样,为什么只有线程1在运行呢?我们仔细再看以下代码,之前说过mian()线程的优先级是10而我们创建的两个线程的优先级是9,貌似没有问题,但仔细深究就会发现在我们创建线程1和线程2,相要的是启动线程1和线程2,但我们启动了线程1之后由于其优先级大于main()线程,也就是此时thread1线程已经抢占了main()线程的运行都还没有来得及启动thread2线程,所以只有线程1在运行,那我们要等main()线程成功启动两个线程,并被打断,所以我们要将两个线程的优先级改为比main()线程要小,我们修改为11。 - -``` -#include -#include -#include - - -rt_thread_t thread1 =RT_NULL; -void _thread1(void) -{ - - while(1){ - rt_kprintf("thread1 run \n"); - } -} - -rt_thread_t thread2 =RT_NULL; -void _thread2(void) -{ - - while(1){ - rt_kprintf("thread2 run \n"); - } -} -int main(void) -{ - - thread1 = rt_thread_create("thread1", _thread1, RT_NULL, 1024, 11, 5); - thread2 = rt_thread_create("thread2", _thread2, RT_NULL, 1024, 11, 5); - if(thread1 != RT_NULL&&thread2 != RT_NULL) - { - rt_thread_startup(thread1); - rt_thread_startup(thread2); - } - rt_kprintf("main run conut \n"); -} - -``` - -编译运行结果如下:系统更具时间片在轮询调度打印日志 - -![1753182120380](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753182120380.png) - -## 3.课后作业 - -今日作业: -1.在论坛发文章描述对今天内容的总结与收获 -2.编写代码上传至git仓库,创建至少3个线程,能体现抢占与时间片轮转,在今天的工程的mian.c中实现,其他同学拿到该文件可以直接运行。 - -自行研究: -1.ARM函数调用规范 - -代码图解: - -![1753185070376](images/【RSOC25】Day2课程笔记:RTT工具使用和内核入门/1753185070376.png) - -``` -#include -#include -#include - -// 线程控制块指针声明 -rt_thread_t thread1 = RT_NULL; -rt_thread_t thread2 = RT_NULL; -rt_thread_t thread3 = RT_NULL; - -/** - * 线程1入口函数 - * 功能:循环打印"thread1 run",并在特定计数时延时 - */ -void _thread1(void) -{ - int i = 0; // 计数变量,用于控制延时时机 - - while(1) // 线程主循环,持续运行 - { - rt_kprintf("thread1 run\n"); // 打印线程1运行信息 - - // 当计数达到10、100、1000、10000时执行延时(原代码此处i=10000为笔误,保持原样) - if(i == 10 || i == 100 || i == 1000 || i=10000) - { - rt_thread_mdelay(1000); // 延时1000ms,便于观察输出结果 - } - - i++; // 计数自增 - } -} - -/** - * 线程2入口函数 - * 功能:循环打印"thread2 run" - */ -void _thread2(void) -{ - while(1) // 线程主循环,持续运行 - { - rt_kprintf("thread2 run \n"); // 打印线程2运行信息 - } -} - -/** - * 线程3入口函数 - * 功能:循环打印"thread3 run" - */ -void _thread3(void) -{ - while(1) // 线程主循环,持续运行 - { - rt_kprintf("thread3 run \n"); // 打印线程3运行信息 - } -} - -/** - * 主函数 - * 功能:创建并启动三个线程,打印主函数运行信息 - */ -int main(void) -{ - // 创建线程1:名称"thread1",入口函数_thread1,无参数,栈大小1024,优先级9,时间片5 - thread1 = rt_thread_create("thread1", _thread1, RT_NULL, 1024, 9, 5); - // 创建线程2:名称"thread2",入口函数_thread2,无参数,栈大小1024,优先级11,时间片5 - thread2 = rt_thread_create("thread2", _thread2, RT_NULL, 1024, 11, 5); - // 创建线程3:名称"thread3",入口函数_thread3,无参数,栈大小1024,优先级11,时间片5 - thread3 = rt_thread_create("thread3", _thread3, RT_NULL, 1024, 11, 5); - - // 若线程1创建成功,则启动线程1 - if(thread1 != RT_NULL) - { - rt_thread_startup(thread1); - } - - // 若线程2和线程3均创建成功,则启动这两个线程 - if(thread2 != RT_NULL && thread3 != RT_NULL) - { - rt_thread_startup(thread2); - rt_thread_startup(thread3); - } - - rt_kprintf("main run conut \n"); // 打印主函数运行信息 - - return 0; // 主函数返回(RT-Thread中主函数退出后仍会运行线程) -} - -```