diff --git "a/2025/\347\254\2542\347\273\204(RA8D1-Vision-Board)/\345\202\205\345\215\216\351\235\231/\347\254\224\350\256\260/58e9da5c022f1989fa48a51dddc5b3f.png" "b/2025/\347\254\2542\347\273\204(RA8D1-Vision-Board)/\345\202\205\345\215\216\351\235\231/\347\254\224\350\256\260/58e9da5c022f1989fa48a51dddc5b3f.png" new file mode 100644 index 0000000000000000000000000000000000000000..8b2c898851e382b03dd77b2ac3830b5eb8c9b2e4 Binary files /dev/null and "b/2025/\347\254\2542\347\273\204(RA8D1-Vision-Board)/\345\202\205\345\215\216\351\235\231/\347\254\224\350\256\260/58e9da5c022f1989fa48a51dddc5b3f.png" differ diff --git "a/2025/\347\254\2542\347\273\204(RA8D1-Vision-Board)/\345\202\205\345\215\216\351\235\231/\347\254\224\350\256\260/DAY1.md" "b/2025/\347\254\2542\347\273\204(RA8D1-Vision-Board)/\345\202\205\345\215\216\351\235\231/\347\254\224\350\256\260/DAY1.md" new file mode 100644 index 0000000000000000000000000000000000000000..30ffd6065104c8ac4fb9c7cba9e421b6f7446719 --- /dev/null +++ "b/2025/\347\254\2542\347\273\204(RA8D1-Vision-Board)/\345\202\205\345\215\216\351\235\231/\347\254\224\350\256\260/DAY1.md" @@ -0,0 +1,53 @@ +# # DAY1:创建环境 + +## env的使用 + +pkgs --upgrade 升级软件包 + +pkgs - -update 更新软件包 + +scons 编译文件 +menuconfig 打开配置菜单 记得保存后再退出 + + + + + +## git的使用 + +**git的四大组成区域:**工作区 暂存区 本地仓库 远端仓库 + +**关系流程图**:工作区 → (git add) → 暂存区 → (git commit) → 本地仓库 → (git push) → 远端仓库 + +git init 初始化新仓库 +git clone 克隆远程仓库到本地 +git status 查看工作区/暂存区状态 + +git commit 提交 + +git branch 查看分支(`-a` 查看所有分支) +git checkout -b 创建新分支 + +git checkout 切换的指定分支上 + +git merge 合并指定分支到当前分支 + +git branch -d 删除本地分支 + +git branch -D 强制删除一个分支 + +git remote -v 查看远程仓库地址 +git remote add 添加远程仓库 + +git push 推送 +git pull 拉取 +git fetch 仅获取远程更新(不自动合并) + +git log 查看提交历史 + +git reflog 查看git命令的所有操作记录 +git diff 比较工作区与暂存区差异 + +git reset --hard HEAD~ 硬重置 +git reset --soft HEAD~ 软重置 + diff --git "a/2025/\347\254\2542\347\273\204(RA8D1-Vision-Board)/\345\202\205\345\215\216\351\235\231/\347\254\224\350\256\260/DAY2.md" "b/2025/\347\254\2542\347\273\204(RA8D1-Vision-Board)/\345\202\205\345\215\216\351\235\231/\347\254\224\350\256\260/DAY2.md" new file mode 100644 index 0000000000000000000000000000000000000000..8965bd0a86e4a33f9abfa9f70702e9625e22cb79 --- /dev/null +++ "b/2025/\347\254\2542\347\273\204(RA8D1-Vision-Board)/\345\202\205\345\215\216\351\235\231/\347\254\224\350\256\260/DAY2.md" @@ -0,0 +1,122 @@ +#include + +#define THREAD_PRIORITY 25 +#define THREAD_STACK_SIZE 512 +#define THREAD_TIMESLICE 10 + + +static rt_thread_t tid1 = RT_NULL; +static rt_thread_t tid2 = RT_NULL; +static rt_thread_t tid3 = RT_NULL; + + +static void thread1_entry(void *parameter) +{ + rt_uint32_t count = 0; + while (1) + { + rt_kprintf("Thread1 (Low Priority) running: %d\n", count++); + rt_thread_mdelay(500); + } +} + +static void thread2_entry(void *parameter) +{ + rt_uint32_t count = 0; + while (1) + { + rt_kprintf("Thread2 (Medium Priority)抢占运行: %d\n", count++); + rt_thread_mdelay(1000); + } +} + + +static void thread3_entry(void *parameter) +{ + rt_uint32_t count = 0; + while (1) + { + rt_kprintf("Thread3 (High Priority)抢占运行: %d\n", count++); + rt_thread_mdelay(2000); + } +} + +int main(void) +{ + + tid1 = rt_thread_create("thread1", + thread1_entry, RT_NULL, + THREAD_STACK_SIZE, + THREAD_PRIORITY + 2, THREAD_TIMESLICE); + if (tid1 != RT_NULL) rt_thread_startup(tid1); + + + tid2 = rt_thread_create("thread2", + thread2_entry, RT_NULL, + THREAD_STACK_SIZE, + THREAD_PRIORITY + 1, THREAD_TIMESLICE); + if (tid2 != RT_NULL) rt_thread_startup(tid2); + + + tid3 = rt_thread_create("thread3", + thread3_entry, RT_NULL, + THREAD_STACK_SIZE, + THREAD_PRIORITY, THREAD_TIMESLICE); + if (tid3 != RT_NULL) rt_thread_startup(tid3); + + return 0; +} + + + +DAY2:课堂笔记 +![alt text](58e9da5c022f1989fa48a51dddc5b3f.png) + + rt_thread_init   为静态线程 +在编译阶段,代码编好后为线程分配空间 仅为这个线程使用 有安全要求 + rt_thread_detach 删除一个已经创建的线程 + + rt_thread_create  为动态线程   + 内存有限,但是需要的功能多,对安全没有太大的要求 + rt_thread_delete  删除一个已经创建的线程 + + rt_thread_self   用于获取当前正在执行的线程句柄 + + rt_thread_startup  将线程从初始状态转换到就绪状态,使其能够被操作系统调度执行 + + rt_thread_yield  用于主动让出 CPU 使用权,允许其他具有相同优先级的就绪线程获得执行机会 该函数在线程需要暂时放弃 CPU 资源时非常有用 + + rt_thread_find   用于通过线程名称查找对应的线程句柄 在线程间通信或需要操作其他线程时非常有用 + + rt_thread_delay   是 RT-Thread 实时操作系统中用于使当前线程暂停执行的函数 通过指定延时时间,线程可以主动释放 CPU 资源,让其他就绪线程有机会执行 + +时间线的单位是tick +优先级大小:数字越小,优先级越大 + + +参数: +name 线程的名称 +entry 线程的入口函数参数 +stack_size 线程栈的大小 +priority 线程的优先级 +tick 线程的时间片大小 + + +返回: +RE_EOK  线程创建成功 +-RE_ERROR  线程创建失败 + +无循环线程被执行完毕后,系统会自动回收资源,与需手动删除 + +循环线程需要有让出cpu的动作 +主动让出:使用系统延时 +被动让出:等待ipc + + +调度器的主要工作: +1.决定任务运行顺序 +2.执行任务切换 + +调度规则: +1.优先级抢占 +2.时间片轮转 \ No newline at end of file diff --git "a/2025/\347\254\2542\347\273\204(RA8D1-Vision-Board)/\351\273\204\345\255\220\351\230\263/\347\254\224\350\256\260/Git\344\275\277\347\224\250\350\257\264\346\230\216.md" "b/2025/\347\254\2542\347\273\204(RA8D1-Vision-Board)/\351\273\204\345\255\220\351\230\263/\347\254\224\350\256\260/Git\344\275\277\347\224\250\350\257\264\346\230\216.md" deleted file mode 100644 index 2d1fc4fe90583f03038ddca01c5b6c444651c25e..0000000000000000000000000000000000000000 --- "a/2025/\347\254\2542\347\273\204(RA8D1-Vision-Board)/\351\273\204\345\255\220\351\230\263/\347\254\224\350\256\260/Git\344\275\277\347\224\250\350\257\264\346\230\216.md" +++ /dev/null @@ -1,89 +0,0 @@ -# Git使用说明 - - - -## 远端仓库的fork与clone - - - -**①**在github或gitee中找到你所需要的项目 - -**②**找到fork,将仓库拉取到你的私有账号上 - -**③**配置ssh密钥 - -**④**新建文件夹并命名,在文件夹内打开Git Bash,输入 - -``` -git clone "ssh"/"https" -``` - -等待clone完成 - - - -## 本地仓库的分支创建,内容修改与提交 - -**①**clone完成后,默认处于master或main分支,输入 - -``` -git checkout -b "分支名称" -``` - -创建并切换到新建分支 - - - -``` -git swtich "分支名称" -``` - -切换到你想要的分支 - - - -``` -git status -``` - -获取当前所处分支 - - - -``` -git branch -a -``` - -显示当前所有分支 - - - -**②**向新建分支内添加内容,使用 - -``` -git add . -``` - -将更改内容添加到暂存区 - - - -**③**将暂存区的更新内容推送到私人仓库,使用 - -``` -git commit-m "说明" -``` - -将个人主仓更新 - - - -**④**将个人仓库与远端仓库进行合并,使用 - -``` -git push -u origin "上游分支名称" -``` - - - -**⑤**等待远端仓库管理员审核合并请求 \ No newline at end of file diff --git "a/2025/\347\254\2542\347\273\204(RA8D1-Vision-Board)/\351\273\204\345\255\220\351\230\263/\347\254\224\350\256\260/RT-Thread\347\216\257\345\242\203\351\205\215\347\275\256.md" "b/2025/\347\254\2542\347\273\204(RA8D1-Vision-Board)/\351\273\204\345\255\220\351\230\263/\347\254\224\350\256\260/RT-Thread\347\216\257\345\242\203\351\205\215\347\275\256.md" deleted file mode 100644 index ea058cab64b2f6527f075af59640eb8d87b6acd0..0000000000000000000000000000000000000000 --- "a/2025/\347\254\2542\347\273\204(RA8D1-Vision-Board)/\351\273\204\345\255\220\351\230\263/\347\254\224\350\256\260/RT-Thread\347\216\257\345\242\203\351\205\215\347\275\256.md" +++ /dev/null @@ -1,73 +0,0 @@ -# RT-Thread环境配置 - -## 工具介绍: - -ENV - -Vscode - -GIT - -## 具体步骤: - -**①**使用git将rtthread官方源码fork到私人的github仓库,并复制ssh链接 - -​ rtthread官方gitee代码仓库地址 - -​ https://gitee.com/rtthread/rt-thread.git - - - -**②**创建文件夹,在文件夹内打开git bash,对复制的ssh链接进行clone - -``` -git clone https://gitee.com/rtthread/rt-thread.git -``` - - - -**③**下载env工具软件,在软件右上角的setting里面注册环境变量 - - - -**④**在rtthread任一bsp包下打开env - - - -```c -scons -j4 -``` - -进行编译 - - - -```c -menuconfig -``` - -进入菜单配置页面 - - - -```c -qemu-nographic.bat -``` - -运行rtthread主程序 - - - -**⑥**进入菜单配置页面,使能LVGL图形化界面 - - - -**⑦**在env里进行编译,随后使用 - - - -```c -qemu.bat -``` - -打开qume图形化界面 \ No newline at end of file