一 概述
在嵌入式小系统领域,freertos是一个非常厉害的角色。它和小芯片结合,能迸发出非常大的威力。这里在H730上使用了这个freertos,是应该做一个总结和备忘。
二 实例解析
1 线程初始化:
freertos最大的优势就是多任务,所以,多线程非常重要,怎么定义一个线程呢?
下面给出一个例子:
  /* definition and creation of Task_ADS1299 */
osThreadDef(Task_ADS1299, StartTask_ADS1299, osPriorityHigh, 0, 2*512);
Task_ADS1299Handle = osThreadCreate(osThread(Task_ADS1299), NULL); /* definition and creation of Task_MPU6050 */
osThreadDef(Task_MPU6050, StartTask_MPU6050, osPriorityNormal, 0, 512);
Task_MPU6050Handle = osThreadCreate(osThread(Task_MPU6050), NULL);
这里面其实都是标准的,每个参数的含义可以看函数即可,没有太复杂的逻辑存在。
2 运行
下面这个函数是freertos启动的标志。
  /* Start scheduler */
osKernelStart();
3 线程内部,
线程内部其实是一个非常标准的流程,
初始化加主循环。
void StartTask_ADS1299(void const * argument)
{
/* USER CODE BEGIN StartTask_ADS1299 */
//EXTI_PIN_1_Init();
mprintf("StartTask_ADS1299 success start \n\r");
static uint32_t ads_task_cnt = 0; /* Infinite loop */
for(;;)
{ osDelay(200);
ads_task_cnt++; //if((ads_data_cnt%10) == 0)
{
mprintf("ads_task_cnt is:%d \n\r",ads_task_cnt);
} }
/* USER CODE END StartTask_ADS1299 */
}
三 总结
 
1 freertos系统其实非常简介,想要看配置的话,就参考文件:FreeRTOSConfig.h文件。
想要看一下系统的整个流程,也就是看一下queue.c task.c几个文件,如下图所示:

 
 

基于stm32H730的解决方案开发之freertos系统解析的更多相关文章

  1. 基于xmpp openfire smack开发之Android客户端开发[3]

    在上两篇文章中,我们依次介绍openfire部署以及smack常用API的使用,这一节中我们着力介绍如何基于asmack开发一个Android的客户端,本篇的重点在实践,讲解和原理环节,大家可以参考前 ...

  2. 基于xmpp openfire smack开发之openfire介绍和部署[1]

    前言 http://blog.csdn.net/shimiso/article/details/8816558 Java领域的即时通信的解决方案可以考虑openfire+spark+smack.当然也 ...

  3. 基于xmpp openfire smack开发之smack类库介绍和使用[2]

    http://blog.csdn.net/shimiso/article/details/8816540 关于Smack编程库,前面我们提到,它是面向Java端的api,主要在PC上使用,利用它我们可 ...

  4. iOS 开发之 KVC - setValuesForKeysWithDictionary 解析

    从字典映射到一个对象,这是KVC中的一个方法所提供的,这个方法就是 setValuesForKeysWithDictionary:,非常好用,不需要你来一一的给对象赋值而直接从字典初始化即可,但用的不 ...

  5. Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面

    现在开发中的功能需要直接跳转到拨号.联系人.短信界面等等,查找了很多资料,自己整理了一下. 1.跳转到拨号界面,代码如下: 1)直接拨打 Intent intentPhone = new Intent ...

  6. Android底层开发之Linux输入子系统要不要推断系统休眠状态上报键值

    Android底层开发之Linux输入子系统要不要推断系统休眠状态上报键值 题外话:一个问题研究到最后,那边记录文档的前半部分基本上都是没用的,甚至是错误的. 重点在最后,前边不过一些假想猜測. ht ...

  7. 基于msm8909高通平台Android驱动开发之hello程序

    本文转载自:http://www.itwendao.com/article/detail/227839.html Android驱动开发之Hello实例:   驱动部分 modified:   ker ...

  8. Cocos2d-x 3.x游戏开发之旅

    Cocos2d-x 3.x游戏开发之旅 钟迪龙 著   ISBN 978-7-121-24276-2 2014年10月出版 定价:79.00元 516页 16开 内容提要 <Cocos2d-x ...

  9. DarkStone - 跨平台移动应用开发之 Flex 的崛起

    我的好友Ds 发布一个flex的消息.我帮忙转发 DarkStone - 跨平台移动应用开发之 Flex 的崛起 (2013-08-20 22:28:32)     此文章由 周戈 (DarkSton ...

  10. iOS多线程开发之NSOperation - 快上车,没时间解释了!

    一.什么是NSOperation? NSOperation是苹果提供的一套多线程解决方案.实际上NSOperation是基于GCD更高一层的封装,但是比GCD更加的面向对象.代码可读性更高.可控性更强 ...

随机推荐

  1. 华为云DTSE助力车卫士架构升级,探索智能出行行业数字化新路径

    本文分享自华为云社区<华为云DTSE助力车卫士技术架构升级,探索智能出行行业数字化新路径>,作者:HuaweiCloudDeveloper. 毫无疑问,在双碳背景以及先进技术的加持下,智能 ...

  2. Matrix【未完成】

    Matrix The fitrst thing we do,let's kill all the language lawyers. -- Henry VI, Part II The "pr ...

  3. Python-pymysql如何向SQL语句中传参

    方法一:不传递参数 ## 方式一.不传递参数 id = "01" name = "语文" sql = "select * from course wh ...

  4. Python 爬虫方法总结

    实现爬虫的套路 准备URL 准备start_url url地址规律不明显,总数不确定 通过代码提取下一页的url 通过xpath提取 寻找url地址,部分参数在当前的响应中(比如当前页码数和总页码数在 ...

  5. NC23048 月月给华华出题

    题目链接 题目 题目描述 因为月月是个信息学高手,所以她也给华华出了一题,让他求: \(\sum_{i=1}^N\frac{i}{\gcd(i,N)}\) 但是因为这个式子实在太简单了,所以月月希望华 ...

  6. NC14419 线路规划

    题目链接 题目 题目描述 Q国的监察院是一个神秘的组织. 这个组织掌握了整个帝国的地下力量,监察着Q国的每一个人. 监察院一共有N个成员,每一个成员都有且仅有1个直接上司,而他只听从其上直接司的命令. ...

  7. STM32F401的外部中断EXTI

    stm32f401 EXTI EXTI就是External interrupt/event controller, 外部事件和中断控制器, 包含21条边沿检测线. 每条线可以独立设置触发事件(上升沿, ...

  8. 【Unity3D】UGUI之布局组件

    1 概述 ​ 布局组件主要有:水平布局(HorizontalLayoutGroup).垂直布局(VerticalLayoutGroup).网格布局(GridLayoutGroup),用于约束子控件的布 ...

  9. tmpwatch命令

    tmpwatch命令 tmpwatch递归删除给定时间内未访问的文件,通常用于清理用于临时存放空间的目录,并可以设置文件超期时间,默认单位以小时计算. 语法 tmpwatch [-u | -m | - ...

  10. uniapp实现点击加载更多

    使用场景 举个栗子:外卖app当订单商品数量比较多时,不方便一次性展示出来.通常会展示一部分,并在页面给出一个查看更多功能.点击后即可自定义展示剩余内容,比如可以每次点击多展示N个内容,或展示所有. ...