1 Star 0 Fork 0

网易云大侠 / miros-lesson22

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

miros学习项目

1.项目来源:

课程原版资料:https://www.state-machine.com/video-course, 网站包含视频、视频文字、源代码等资料;

b站视频:https://www.bilibili.com/video/BV1j3411B7KK, 英文无字幕;

miros主要学习课程为lesson22~lesson28;

2.硬件:

STM32F103RBT6线路板,其中PA2-LED1PA3-LED2;可根据实际情况自行准备对应硬件,建议使用Cotex-M3内核的开发板方便移植PendSV_Handler中的汇编代码。本项目采用HAL库进行开发;

3.课程内容:

lesson22:理解rtos内核中任务切换

整个试验过程如下:

1.创建2个简单可识别的thread,灯1、灯2的闪烁;

2.在SysTick_Handler结束时打断点;

3.通过register记录sp的值,并在memory中找到sp后,地址向下依次为:R0/R1/R2/R3/R12/LR/PC/xPSR;

4.在disassembly窗口中找到需要下一个执行thread的pc值,更改memory中的PC寄存器的值,点击单步调试,即可跳转到另一个thread;

以上4步是最原始的手动切换thread,接下来是用sp指针来切换thread;

1.定义栈数组和栈指针,并将thread的地址赋值到栈数组中;

2.在SysTick_Handler结束时打断点;

3.在registe中将sp的值更改为thread所对应的指针的地址(watch中查看);

4.选中disassembly窗口后点击单步调试,即可跳转到另一个thread;

空文件

简介

lesson22:理解rtos内核中任务切换 展开 收起
C 等 2 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/yundaxia/miros-lesson22.git
git@gitee.com:yundaxia/miros-lesson22.git
yundaxia
miros-lesson22
miros-lesson22
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891