diff --git "a/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\344\275\234\344\270\232/\344\273\243\347\240\201.md" "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\344\275\234\344\270\232/\344\273\243\347\240\201.md" new file mode 100644 index 0000000000000000000000000000000000000000..22e51db6aa995edb87c777e77c2a9dc35f2c854c --- /dev/null +++ "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\344\275\234\344\270\232/\344\273\243\347\240\201.md" @@ -0,0 +1,103 @@ +#include +#include +#include +#define DBG_TAG "main" +#define DBG_LVL DBG_LOG +#include + +rt_thread_t thread1 = RT_NULL; +rt_thread_t thread2 = RT_NULL; +struct rt_thread thread3; + +char thread3_stack[RT_ALIGN(1024,RT_ALIGN_SIZE)]; + +void thread1_back(void *parameter) +{ + while(1) + { + rt_kprintf("thread1 run\n"); + rt_thread_delay(1000); + } +} + +void thread2_back(void *parameter) +{ + while(1) + { + rt_kprintf("thread2 run\n"); + rt_thread_delay(1000); + } +} + +void thread3_back(void *parameter) +{ + while(1) + { + rt_kprintf("thread3 run\n"); + rt_thread_delay(500); + } +} + +int thread_config(void) +{ + thread1 = rt_thread_create( "thread1", + thread1_back, + RT_NULL, + 1024, + 5, + 10); + if(thread1 != RT_NULL) + { + rt_kprintf("thread1 create ok!\r\n"); + rt_thread_startup(thread1); + } + else { + return 1; + } + thread2 = rt_thread_create( "thread2", + thread2_back, + RT_NULL, + 1024, + 5, + 10); + if(thread2 != RT_NULL) + { + rt_kprintf("thread2 create ok\r\n"); + rt_thread_startup(thread2); + } + else { + return 1; + } + rt_err_t check = RT_NULL; + check = rt_thread_init( &thread3, + "thread3", + thread3_back, + RT_NULL, + &thread3_stack[0], + sizeof(thread3_stack), + 4, + 10); + if(check == RT_EOK) + { + rt_kprintf("thread3 init ok\r\n"); + rt_thread_startup(&thread3); + } + else { + return 1; + } + return 0; +} + +int main(void) +{ + if(thread_config()) + { + return 0; + } + while (1) + { + rt_thread_mdelay(10000); + } + + return RT_EOK; +} \ No newline at end of file diff --git "a/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\344\275\234\344\270\232/\344\275\234\344\270\232.md" "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\344\275\234\344\270\232/\344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..ec61d8f894032b5d837b6e85417a6a6315a5b318 --- /dev/null +++ "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\344\275\234\344\270\232/\344\275\234\344\270\232.md" @@ -0,0 +1,3 @@ +1. 笔记已提交 +2. 论坛已提交 +3. 内容已开源 \ No newline at end of file diff --git "a/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\344\275\234\344\270\232/\344\275\234\344\270\2322.md" "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\344\275\234\344\270\232/\344\275\234\344\270\2322.md" new file mode 100644 index 0000000000000000000000000000000000000000..277ddbbe94c32960061efd35fabcd11c62d9b88d --- /dev/null +++ "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\344\275\234\344\270\232/\344\275\234\344\270\2322.md" @@ -0,0 +1,3 @@ +1. 笔记已提交 +2. 论坛已提交 +3. 内容已开源 \ No newline at end of file diff --git "a/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\344\275\234\344\270\232/\347\205\247\347\211\2071.png" "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\344\275\234\344\270\232/\347\205\247\347\211\2071.png" new file mode 100644 index 0000000000000000000000000000000000000000..048159b2ef420a065e52257022ac8fd313e734d8 Binary files /dev/null and "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\344\275\234\344\270\232/\347\205\247\347\211\2071.png" differ diff --git "a/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\344\275\234\344\270\232/\347\205\247\347\211\2072.png" "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\344\275\234\344\270\232/\347\205\247\347\211\2072.png" new file mode 100644 index 0000000000000000000000000000000000000000..b4faf8cea01a919be3e96f11baa7ae8b6217ba27 Binary files /dev/null and "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\344\275\234\344\270\232/\347\205\247\347\211\2072.png" differ diff --git "a/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\344\275\234\344\270\232/\350\277\220\350\241\214.png" "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\344\275\234\344\270\232/\350\277\220\350\241\214.png" new file mode 100644 index 0000000000000000000000000000000000000000..12b3ca3e1ad810f6d5ffa92a2cd1039d289d9cd4 Binary files /dev/null and "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\344\275\234\344\270\232/\350\277\220\350\241\214.png" differ diff --git "a/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\347\254\224\350\256\260/\347\254\224\350\256\260.md" "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\347\254\224\350\256\260/\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..0a39e029e6f9b6f04b273e177004c6bf7ffdc886 --- /dev/null +++ "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\347\254\224\350\256\260/\347\254\224\350\256\260.md" @@ -0,0 +1,4 @@ +1. 了解RT-Thread开发环境和基础的内核机 +2. 安装RT-Thread Studio 开发工具 -- [RT-Thread Studio](https://www.rt-thread.com/studio.html) +3. 创建工程 --- f407 +4. 编译运行 diff --git "a/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\347\254\224\350\256\260/\347\254\224\350\256\2602.md" "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\347\254\224\350\256\260/\347\254\224\350\256\2602.md" new file mode 100644 index 0000000000000000000000000000000000000000..c87a4ee720e9a2438fae380eb04b0dca2eea1817 --- /dev/null +++ "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/[RSOC25]-Day2-\350\257\276\347\250\213\347\254\224\350\256\260-\346\235\250\350\222\231\346\201\251/Day2\347\254\224\350\256\260/\347\254\224\350\256\2602.md" @@ -0,0 +1,20 @@ +1. 了解RT-Thread开发环境和基础的内核机 +2. 安装RT-Thread Studio 开发工具 -- [RT-Thread Studio](https://www.rt-thread.com/studio.html) +3. 创建工程 --- f407 +4. QEMU调试 +5. 知识点 + * 4-11是通用寄存器 + * 0-3 是参数传递, 其他寄存器是pc sp psr + * r0~r3 是 “调用者保存寄存器”(Caller - Saved):函数调用时,用于临时传参 / 返回值,被调用函数可直接修改,无需主动保存(调用者(上层函数)不依赖其值持续存在)。 + * r4~r11 是 “被调用者保存寄存器”(Callee - Saved):被调用函数(如线程函数)若使用这些寄存器,必须手动保存 / 恢复(否则会破坏调用者上下文)这是网上的解释 +6. 线程切换 (时间片轮转,优先级强占) + * 二个线程优先级一样,系统调度会安装时间片轮转对若干个线程进行调度 + * 二个线程优先级不一样,系统调度会让排优先级高的优先调度,优先级一样,系统调度会安装时间片轮转对优先级高的进行调度 + * 线程回调函数必须要有延时函数来让出CPU资源,不能一个线程独占CPU资源 + * 线程回调函数不能有死循环,否则线程会一直运行,无法切换 + * 线程回调函数不能有阻塞操作,否则线程会阻塞,无法切换 + + + + + diff --git "a/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/\345\274\240\344\270\211/\344\275\234\344\270\232/README.md" "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/\345\274\240\344\270\211/\344\275\234\344\270\232/README.md" deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git "a/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/\345\274\240\344\270\211/\347\254\224\350\256\260/README.md" "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/\345\274\240\344\270\211/\347\254\224\350\256\260/README.md" deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git "a/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/\346\235\250\350\222\231\346\201\251-\346\217\220\344\272\244\346\265\213\350\257\225/\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\2541\347\273\204(STM32H750-ART-PI)/\346\235\250\350\222\231\346\201\251-\346\217\220\344\272\244\346\265\213\350\257\225/\344\275\234\344\270\232/\347\254\254\344\270\200\345\244\251\344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..06fdfdca28648ffe7fd23f2d93bcff998cff1305 --- /dev/null +++ "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/\346\235\250\350\222\231\346\201\251-\346\217\220\344\272\244\346\265\213\350\257\225/\344\275\234\344\270\232/\347\254\254\344\270\200\345\244\251\344\275\234\344\270\232.md" @@ -0,0 +1,3 @@ +1. 笔记已提交 +2. 论坛已提交 +3. 内容已开源 diff --git "a/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/\346\235\250\350\222\231\346\201\251-\346\217\220\344\272\244\346\265\213\350\257\225/\347\254\224\350\256\260/\345\206\205\346\240\270\347\254\224\350\256\260.md" "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/\346\235\250\350\222\231\346\201\251-\346\217\220\344\272\244\346\265\213\350\257\225/\347\254\224\350\256\260/\345\206\205\346\240\270\347\254\224\350\256\260.md" new file mode 100644 index 0000000000000000000000000000000000000000..5573d8cdacde7fc0e17b936f4c814292592394b4 --- /dev/null +++ "b/2025/\347\254\2541\347\273\204(STM32H750-ART-PI)/\346\235\250\350\222\231\346\201\251-\346\217\220\344\272\244\346\265\213\350\257\225/\347\254\224\350\256\260/\345\206\205\346\240\270\347\254\224\350\256\260.md" @@ -0,0 +1,32 @@ +* 2025年7月21日 --- RT-Thread训练营笔记 +* 安装Git工具(Git Bash) +* 安装ENV_WINDOW工具, 添加qemu-nographic.bat环境变量 + * 'pkgs --upgrade' 升级软件包 'pkgs --update' 更新软件包 + * +* 下载工程源码 +* 编译程序 + * menuconfig + * scons -j4 + * qemu-nographic.bat +* 使用vscode对源工程进行打开 +* 使用Gitee进行个人SSH密钥配置 + * 复制以下命令到终端执行 git clone + git@gitee.com:rtthread/rsoc-rtt.git + * 确保你提交的代码身份被 Gitee 正确识别 + git config --global user.name '杨蒙恩' + git config --global user.email '16073658+yang-meng- en@user.noreply.gitee.com' + * 生成 RSA 密钥 + ssh-keygen -t rsa + * 获取 RSA 公钥内容,并配置到 SSH公钥 中 + cat ~/.ssh/id_rsa.pub +* Gitee命令 + * 'git push/pull' --- 推送 + * 'git add .' --- 添加所有修改的文件到暂存区 + * 'git commit -m "log"'--- commit,log是commit的标题 + * 'git log' --- 查看修改日志 + * 'git status' --- 查看文件状态 + * 'git checkout -b first_branch' --- 创建一个分支名为first_branch + * 'git switch' --- 切换分支 + * 'git branch' --- 查看分支 + * 'git reset --hard HEAD~' --- 硬重置,把上一个退一个commit + * 'git reset --soft HEAD~' --- 软重置,把上一个commit退回暂存区里 \ No newline at end of file