<delect id="jxvjd"></delect>

<p id="jxvjd"><output id="jxvjd"><delect id="jxvjd"></delect></output></p><p id="jxvjd"><output id="jxvjd"><menuitem id="jxvjd"></menuitem></output></p>
<p id="jxvjd"><output id="jxvjd"><menuitem id="jxvjd"></menuitem></output></p>
<p id="jxvjd"><output id="jxvjd"></output></p>
<p id="jxvjd"><output id="jxvjd"></output></p>

<pre id="jxvjd"></pre><pre id="jxvjd"></pre>
<noframes id="jxvjd">

<noframes id="jxvjd">
<pre id="jxvjd"></pre>

<p id="jxvjd"><output id="jxvjd"><menuitem id="jxvjd"></menuitem></output></p><pre id="jxvjd"></pre>

<pre id="jxvjd"></pre>
<p id="jxvjd"><delect id="jxvjd"></delect></p>

<pre id="jxvjd"></pre><pre id="jxvjd"></pre><p id="jxvjd"><output id="jxvjd"><delect id="jxvjd"></delect></output></p>

<p id="jxvjd"></p>

<p id="jxvjd"></p>

<pre id="jxvjd"><delect id="jxvjd"></delect></pre>
<p id="jxvjd"><output id="jxvjd"><menuitem id="jxvjd"></menuitem></output></p>

<p id="jxvjd"></p>
<pre id="jxvjd"><pre id="jxvjd"></pre></pre>

<output id="jxvjd"></output>

<pre id="jxvjd"><output id="jxvjd"></output></pre>

<p id="jxvjd"><output id="jxvjd"><menuitem id="jxvjd"></menuitem></output></p> <pre id="jxvjd"></pre>
<output id="jxvjd"><delect id="jxvjd"><menuitem id="jxvjd"></menuitem></delect></output>

<pre id="jxvjd"><output id="jxvjd"></output></pre>

<p id="jxvjd"></p>
<pre id="jxvjd"><delect id="jxvjd"></delect></pre>

<pre id="jxvjd"><output id="jxvjd"><menuitem id="jxvjd"></menuitem></output></pre>

<pre id="jxvjd"><output id="jxvjd"></output></pre>

<pre id="jxvjd"></pre>
<p id="jxvjd"><delect id="jxvjd"></delect></p><p id="jxvjd"></p>

<noframes id="jxvjd"><pre id="jxvjd"><p id="jxvjd"></p></pre><p id="jxvjd"></p>
<noframes id="jxvjd"><p id="jxvjd"><output id="jxvjd"></output></p>

<p id="jxvjd"><delect id="jxvjd"></delect></p>

<noframes id="jxvjd"><output id="jxvjd"></output>

<pre id="jxvjd"></pre>

<p id="jxvjd"></p>
<pre id="jxvjd"><output id="jxvjd"></output></pre>

<noframes id="jxvjd"><p id="jxvjd"></p>
<pre id="jxvjd"></pre>
<pre id="jxvjd"></pre>
<pre id="jxvjd"></pre><p id="jxvjd"><output id="jxvjd"><delect id="jxvjd"></delect></output></p>
<pre id="jxvjd"><p id="jxvjd"></p></pre>

<p id="jxvjd"></p>
<p id="jxvjd"></p>
<p id="jxvjd"></p>

<pre id="jxvjd"><p id="jxvjd"></p></pre><pre id="jxvjd"><p id="jxvjd"></p></pre><p id="jxvjd"><output id="jxvjd"></output></p>
<p id="jxvjd"></p>

<p id="jxvjd"><output id="jxvjd"><menuitem id="jxvjd"></menuitem></output></p>

<output id="jxvjd"><delect id="jxvjd"></delect></output>
<pre id="jxvjd"><p id="jxvjd"></p></pre>

<pre id="jxvjd"><output id="jxvjd"></output></pre>

<p id="jxvjd"></p>

<pre id="jxvjd"><p id="jxvjd"><menuitem id="jxvjd"></menuitem></p></pre>

<pre id="jxvjd"></pre>

<pre id="jxvjd"><p id="jxvjd"></p></pre>
<p id="jxvjd"><delect id="jxvjd"></delect></p>
<noframes id="jxvjd"><pre id="jxvjd"><p id="jxvjd"></p></pre>

<p id="jxvjd"></p>
<pre id="jxvjd"><p id="jxvjd"></p></pre>
<p id="jxvjd"></p>

<noframes id="jxvjd">
<pre id="jxvjd"></pre>
<pre id="jxvjd"></pre><pre id="jxvjd"><p id="jxvjd"><menuitem id="jxvjd"></menuitem></p></pre>

<noframes id="jxvjd">

<p id="jxvjd"></p>

<p id="jxvjd"><menuitem id="jxvjd"></menuitem></p>

<pre id="jxvjd"><p id="jxvjd"><delect id="jxvjd"></delect></p></pre>

ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU
打印

[应用相关] 【RT-Thread读书笔记+嵌入式实时操作系统RT-Thread设计与实现】

[复制链接]
283|3
跳转到指定楼层
楼主
本帖最后由 hxfxt 于 2019-6-2 22:52 编辑

    先说下阅读情况:目前为止还未阅读完毕,目前阅读到内核篇的中断管理(进度有点缓慢),由于有ucos的相关基础,因此不急于移植,先了解下RT-Thread与ucos有什么区别,然后再对其移植及应用。

    为什么选择本书阅读,当然是因为RT-Thread作者写的。应该描述的更多的是实现原理,讲解的比较深入,对以后使用RT-Thread开发是有诸多益处的,当然也会间接地影响自己的软件开发思路。

说下我认为有用或者和ucos有显著差别的部分:
1、FinSH(虽然还未阅读到这一章节,但是前面章节中相关例程均由其打印输出)用于调试或查看系统消息,对于开发者来说这个绝对是开发调试利器,虽然说就是一个串口(此处以串口为例,因为大家最常用),但是对于开发者来说必不可少,至少对于我来说。此处不针对那些连串口都不用的应用。ucos中需要自己实现。,虽然说不难,但可见RT-Thread更贴心点。

2、静态对象和动态对象的区分,这个在ucos里面并未做这样的区分,而且RT-Thread中静态内核对象和动态内核对象的初始化并不一样。本人觉得实际使用的以静态对象较多,静态对象通常放在RW端和ZI端中,系统启动后在程序中初始化,静态对象不依赖与内存堆管理器,内存分配由编译器来完成,分配时将确定。当然以实际应用为主。

3、RT-Thread中的高精度延时us级延时,对于高精度延时还是比较好的,ucos中并未提供有us级延时的函数,需要自己结合硬件定时器来实现精确延时。

4、RT-Thread中的邮箱,当然书中提到了可以使用消息队列来实现,ucosiii中已经省略了邮箱。

5、RT-Thread中的信号(软中断信号),用来通知线程发生了异步事件,用作线程之间的异常通知、应急处理。ucos中并未有此概念。


  由于先入为主的缘故,感觉RT-Thread和ucos存在很多相同的地方,原理和实现应该有很多相同之处(当然代码还没有去扒,可能也没时间去扒)。此处只是本人的拙见,又因本人能力有限,如果上述有说的不对的地方,敬请指出。谢谢!

下面摘抄下来的基础知识点,对于初学者来说是非常重要的:
一、集成开发环境Keil的编译信息
1. Keil工程在编译完成之后,会有相应的程序占用的空间提示信息:

  (1)Code      :代码段,         存放程序的代码部分。
  (2)RO-data:只读数据段,存放程序中定义的常量。

  (3)RW-data:读写数据段,存放初始化为非0值的全局变量。

  (4)ZI-data  :0数据段,      存放未初始化的全局变量及初始化为0的变量

2. 编译工程后生成的.map文件(说明各个函数占用的尺寸和地址)部分
    信息解读:
  (1)RO Size:包含了Code及RO-data,表示程序占用Flash空间的大小。

  (2)RW Size:包含了RW-data及ZI-data,表示运行时占用的RAM的大小。

  (3)ROM Size:包含了Code、RO-data以及RW-data,表示烧写程序
所占用的Flash空间的大小。





使用特权

评论回复
沙发
 楼主 | 2019-6-2 22:49 | 只看该作者
此楼备用

使用特权

评论回复
板凳
| 2019-6-18 12:45 | 只看该作者
期待楼主的更新

使用特权

评论回复
地板
| 2019-6-18 12:48 | 只看该作者
加油楼主 支持你

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表
加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】| 加拿大28预测计划【复制fh118.com打开】|