chore: turn cos to cdn

This commit is contained in:
camera-2018
2023-07-25 02:23:45 +08:00
parent e81e23ef85
commit 3716e9f77c
98 changed files with 522 additions and 522 deletions

View File

@@ -8,7 +8,7 @@
这不是因为那些人没有完全入门嵌入式,而是因为在嵌入式的学习过程中你会发现,它的概念会越来越大,逐渐模糊了你的认知,就拿一张某乎上的照片而言:
![](https://pic-hdu-cs-wiki-1307923872.cos.ap-shanghai.myqcloud.com/boxcny07MPlh99IIS5yxAdL4iDb.png)
![](https://cdn.xyxsw.site/boxcny07MPlh99IIS5yxAdL4iDb.png)
可见嵌入式的概念之广。
@@ -20,7 +20,7 @@
这玩意儿大家估计不陌生,比如你去酒店里,也许会有一个可以坐电梯上下楼层来完成特定任务的机器人(说实话高二在某季酒店第一次见的时候还蛮新鲜)
![](https://pic-hdu-cs-wiki-1307923872.cos.ap-shanghai.myqcloud.com/boxcn99MPmacSrXPkIgQ13FLABc.jpg)
![](https://cdn.xyxsw.site/boxcn99MPmacSrXPkIgQ13FLABc.jpg)
而它也是一个嵌入式产品(或者说它们)。

View File

@@ -83,15 +83,15 @@ ORG 0BH
下面引入一个 STM32F1 系列的 GPIO 部分寄存器图(来源正点原子提供的 F1 参考手册):
![](https://pic-hdu-cs-wiki-1307923872.cos.ap-shanghai.myqcloud.com/MyDMbeCKLowC1Mx7Q6Ec9BLPn4g.png)
![](https://cdn.xyxsw.site/MyDMbeCKLowC1Mx7Q6Ec9BLPn4g.png)
![](https://pic-hdu-cs-wiki-1307923872.cos.ap-shanghai.myqcloud.com/LJ1SbFfv6oUIgtx8CstcbWTNnRg.png)
![](https://cdn.xyxsw.site/LJ1SbFfv6oUIgtx8CstcbWTNnRg.png)
如果我们想做一个简单的实验-驱动一个 LED 灯(假设此 LED 灯以 PB5 为输出驱动口),在对相应的 RCC 时钟等配置之外,最重要的是对相应的 GPIO 口的配置,首先我们查阅其寄存器的物理起始地址:
![](https://pic-hdu-cs-wiki-1307923872.cos.ap-shanghai.myqcloud.com/CZ3cbiEhsoWDgJxhwXIcpUkAnMg.png)
![](https://cdn.xyxsw.site/CZ3cbiEhsoWDgJxhwXIcpUkAnMg.png)
![](https://pic-hdu-cs-wiki-1307923872.cos.ap-shanghai.myqcloud.com/HTFUbsQCNouQVzx0QYiciQWOnZf.png)
![](https://cdn.xyxsw.site/HTFUbsQCNouQVzx0QYiciQWOnZf.png)
可见 GPIO 外设通过 APB2 总线进行地址定位与传输数据的,所以我们要控制 PB5 的话首先需要定位到对应的地址:

View File

@@ -16,13 +16,13 @@ RTOS 中最重要的概念则是“任务”。
我们可以回想一下在 MCU 开发过程中,一般都是在 main 函数里做个 while1来完成大部分的处理将一些相对来说对实时性要求高的函数如 PID 控制器扔到定时器中断当中即应用程序是个无限的循环是个单任务系统前后台系统while1作为后台中断服务函数作为前台。这里采用了“正点原子”的一张图
![](https://pic-hdu-cs-wiki-1307923872.cos.ap-shanghai.myqcloud.com/boxcnFySF1Cd02I052V0a9glH1c.png)
![](https://cdn.xyxsw.site/boxcnFySF1Cd02I052V0a9glH1c.png)
而 RTOS 则是一个多任务系统,那么它这么做有什么好处呢?
2>1 嘛(乐),实际上在前后台系统中,你的每项 Task 要轮流排队等着上次 Task 执行结束后再进行自己的程序,大大影响了其系统的实时性要求;而 RTOS 中我们把整个 while1区分成了很多小任务并且在表面上看起来这些任务运行起来像是同时进行实际上是因为任务所需的时间较少导致它看起来像是并行但这将会带来新的疑问到底什么任务先执行呢RTOS 就为此提供了任务的相关 API 接口,赋予任务相应的执行优先级属性,并通过任务调度器来控制任务的执行顺序。这里同样采用了“正点原子”的一张图:
![](https://pic-hdu-cs-wiki-1307923872.cos.ap-shanghai.myqcloud.com/boxcntQgR61yRboDpyb1bpI10Xp.png)
![](https://cdn.xyxsw.site/boxcntQgR61yRboDpyb1bpI10Xp.png)
所以,<strong>其实可以这么说RTOS 将整个流程变成了很多个 while1【每个任务都是个 while1】。</strong>
@@ -66,7 +66,7 @@ int main{
由于硬件技术的飞速发展,针对于机器人软件设计的框架也面临着极大的挑战,而 ROS 的出现无异是所有机器人开发者的福音,因为如果按照以前的制作一个机器人流程来讲,也许你要经历以下步骤:硬件结构搭建、控制处理、相关算法构建等等,但是 ROS 的开源共享模式令其可以在其平台上巧妙利用别人的开源模型完成自己的机器人搭建,<strong>也就是说 Ros 的出现打破了原本各个开发者(或团队)闭门造车的开发现象,使得其可以共享优秀的机器人应用软件,换句话说就是提高了机器人研发的软件复用率。(毕竟哪个团队都不可能同时在建图、导航、视觉等机器人应用方面处于顶尖位置)</strong>
![](https://pic-hdu-cs-wiki-1307923872.cos.ap-shanghai.myqcloud.com/boxcnRy7E27xggqNshXX3cu4J5Q.png)
![](https://cdn.xyxsw.site/boxcnRy7E27xggqNshXX3cu4J5Q.png)
由于 ROS 中完成度最高的是 Ubuntu所以我们建议你以此展开学习当然你也可以选择 macOS、Debian 等 OS。

View File

@@ -16,6 +16,6 @@ Author肖扬
> “点星星之火,燃燎原之势,热血芳华,理想当燃”
![](https://pic-hdu-cs-wiki-1307923872.cos.ap-shanghai.myqcloud.com/boxcn3t2GyLQqe4RpGdRtakcwBc.png)
![](https://cdn.xyxsw.site/boxcn3t2GyLQqe4RpGdRtakcwBc.png)
ps若对此部分讲义有相关疑问或者建议欢迎 QQ 联系-1213047454