![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ChibiOS
Coud_Boy
这个作者很懒,什么都没留下…
展开
-
ChibiOS 同优先级周期调度问题
ChibiOS的任务如果优先级不同会按优先级来进行调度,高优先级的就绪任务能够block低优先级的当2个任务的优先级相同时,ChibiOS的默认配置不支持周期轮训调度,此时就需要修改配置文件我们可以观察os/rt/src/chschd.c文件中函数chSchDoReschedule的实现,可以看到里面涉及到一个特殊的参数配置:CH_CFG_TIME_QUANTUM该参数>0时,将会调用chSchReadyI函数从任务就绪队列中取出一个任务,由于这个队列是循环的,所以每个同等优先级的任务将能平原创 2020-05-11 22:27:37 · 559 阅读 · 0 评论 -
ChibiOS如何建立独立工程(linux)
在ChibiOS的使用过程中,我们往往需要利用ChibiOS来完成我们的开发但不想要提交ChibiOS本身的代码(比如需要提交代码到github上),因为如果在ChibiOS的目录下开发就会带来这个问题。前面已经有一篇讲到了如何在ChibiOS的目录下进行自定义工程的创建,链接如下:https://blog.csdn.net/jtd9009001/article/details/10261...原创 2020-03-25 23:48:56 · 392 阅读 · 0 评论 -
ChibiOS使用hal库之PAL
PAL全称是I/O Ports Abstraction Layer,即“IO硬件抽象层”。ChibiOS通过对GPIO进行抽象,使得不同的平台不同的MCU能够用同样风格的代码进行IO的操作,本节我们来简单介绍一下PAL的使用一、开启PAL配置一般来说,大部分的ChibiOS工程都会用到GPIO,所以自然会将PAL的配置开启。我们打开halconf.h文件,确认一下HAL_USE_PAL这个...原创 2019-10-25 22:42:45 · 1953 阅读 · 0 评论 -
ChibiOS使用hal库之I2C
之所以使用ChibiOS,是因为其有强大完整的HAL库支持,能够对不同平台的硬件设备进行抽象描述,屏蔽了底层细节,使得开发人员能把更多的目光和精力集中在应用层开发和软件逻辑上面,本节我们学习使用ChibiOS的I2C一、开启I2C配置像很多的其他RTOS一样,ChibiOS的HAL中的组件一般都是可裁剪的,需要我们去配置才能开启某些组件功能。为了能够在我们的工程中使用I2C,我们需要修改工...原创 2019-10-25 00:13:15 · 909 阅读 · 0 评论 -
ChibiOS如何建立自己的板级(board)配置
一、ChibiOS的编译体系背景:ChibiOS的编译体系是非常清晰的,由如下几部分构成:APP层、HAL层、BOARD层、OS层、PLATFORM层、CPU层等,每层一般都有对应的makefile文件分别构建。比如在demo中的STM32F4 DISCOVERY板子的工程中,platform使用了/os/hal/ports/STM32/STM32F4xx/platform.mkboa...原创 2019-10-21 23:21:58 · 1233 阅读 · 0 评论 -
ChibiOS如何建立自己的工程(linux)
一、源码准备首先我们需要下载ChibiOS的源码工程,可以在Github上找到,链接如下:https://github.com/ChibiOS/ChibiOS或者可以到ChibiOS的官网进行下载,链接是这个:http://www.chibios.org/dokuwiki/doku.php?id=chibios:downloads:start下载下来是一个压缩包,我这边的版本以...原创 2019-10-18 10:46:24 · 1223 阅读 · 0 评论 -
ChibiOS系统启动调度过程
ChibiOS是一个来自日本的小型嵌入式操作系统,由于其包含了STM32全系列、AVR等MCU的驱动支持,所以对STM32、AVR等MCU的RTOS开发来说非常友好,这篇文章记录并探索一下ChibiOS在STM32内核下的启动调度过程(版本4.0.0,RT函数库): 我们先从main函数入手,ChibiOS的demos目录下有很多的例程,我们随便选择一个STM32的,可以看到在main函...原创 2019-09-29 10:41:05 · 2084 阅读 · 2 评论