liteos任务(二)】的更多相关文章

目录 前言 笔录草稿 核心源码分析 osTaskSchedule函数源码分析 osPendSV函数源码分析 TaskSwitch函数源码分析 调度上层源码分析 osSchedule函数源码分析 LOS_Schedule函数源码分析 辅助参考代码 任务控制块 LOS_TASK_CB 源码参考 LiteOS中断向量表(二次命名版) 参考 链接 前言 20201012 LiteOS 2018 建议先瞄一眼 辅助参考代码 章节 笔录草稿 核心源码分析 这里主要分析系统调度的汇编部分,也是调度的底层核心部…
任务 1 基本概念 从系统的角度看,任务是竞争系统资源的最小运行单元.任务可以使用或等待CPU.使用内存空间等系统资源,并独立于其它任务运行. Huawei LiteOS的任务模块可以给用户提供多个任务,实现了任务之间的切换和通信,帮助用户管理业务程序流程.这样用户可以将更多的精力投入到业务功能的实现中. Huawei LiteOS是一个支持多任务的操作系统.在Huawei LiteOS中,一个任务表示一个线程. Huawei LiteOS中的任务是抢占式调度机制,同时支持时间片轮转调度方式.…
1. 概述 1.1 基本概念 双向链表是指含有往前和往后两个方向的链表,即每个结点中除存放下一个节点指针外,还增加一个指向其前一个节点的指针.其头指针head是唯一确定的. 从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点,这种数据结构形式使得双向链表在查找时更加方便,特别是大量数据的遍历.由于双向链表具有对称性,能方便地完成各种插入.删除等操作,但需要注意前后方向的操作. 2. 开发指导 2.1 功能 Huawei LiteOS系统中的双向链表模块为用户提供下面几个接口…
点击返回自学华为IoT物流网 自学华为IoT物联网_12 Huawei LiteOS基础架构 一.1个Huawei LiteOS Kernel 1.1 huawei LiteOS Kernel基本框架图 嵌入式开发单片机芯片: 单进程多线程 1.1.1  Kernel模块--任务 任务是竞争系统资源的最小运行单元.任务可以使用或等待CPU.使用内存空间等系统资源,并独立于其它任务运行. Huawei LiteOS的任务模块提供任务的创建.删除.延迟.挂起.恢复等功能,以及锁定和解锁任务调度.任务…
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/details/102543764 总览 本文基于STM32F103C8T6,详细讲述华为LiteOS的移植过程.开发工具是MDK5.LiteOS官方已经适配过cortex M系列内核的单片机,因此移植过程非常简单. LiteOS有两种移植方案:OS接管中断和非接管中断方式.接管中断的方式,是由LiteOS创…
总览 本文基于STM32F103C8T6,详细讲述华为LiteOS的移植过程.开发工具是MDK5.LiteOS官方已经适配过cortex M系列内核的单片机,因此移植过程非常简单. LiteOS有两种移植方案:OS接管中断和非接管中断方式.接管中断的方式,是由LiteOS创建很管理中断,需要修改stm32启动文件,移植比较复杂.STM32的中断管理做的很好,用不着由LiteOS管理中断,所以我们下边的移植方案,都是非接管中断的方式的.中断的使用,跟在裸机工程时是一样的. 在target_conf…
1. 概述 1.1 基本概念 互斥锁又称互斥型信号量,是一种特殊的二值性信号量,用于实现对共享资源的独占式处理. 任意时刻互斥锁的状态只有两种,开锁或闭锁.当有任务持有时,互斥锁处于闭锁状态,这个任务获得该互斥锁的所有权.当该任务释放它时,该互斥锁被开锁,任务失去该互斥锁的所有权.当一个任务持有互斥锁时,其他任务将不能再对该互斥锁进行开锁或持有. 多任务环境下往往存在多个任务竞争同一共享资源的应用场景,互斥锁可被用于对共 享资源的保护从而实现独占式访问.另外,互斥锁可以解决信号量存在的优先级翻转…
[摘要]Huawei LiteOS是华为面向IoT领域,构建的“统一物联网操作系统和中间件软件平台”,以轻量级(内核小于10k).低功耗(1节5号电池最多可以工作5年),快速启动,互联互通,安全等关键能力,为开发者提供“一站式”完整软件平台,有效降低开发门槛.缩短开发周期.下面对LiteOS基础内核的任务管理.内存管理.中断管理.信号量.互斥锁五大模块进行简单介绍. LiteOS内核的任务管理 基本概念和功能 任务是竞争系统资源的最小运行单元.任务可以使用或等待CPU.使用内存空间等系统资源,并…
摘要:鸿蒙和LiteOS的内核都是一样的名字,可它们究竟有什么不同呢?一起来对比一下文件吧! HarmonyOS系统 HarmonyOS是一款"面向未来".面向全场景(移动办公.运动健康.社交通信.媒体娱乐等)的分布式操作系统.在传统的单设备系统能力的基础上,HarmonyOS提出了基于同一套系统能力.适配多种终端形态的分布式理念,能够支持多种终端设备. 鸿蒙系统的特点(硬件互助,资源共享): 1)分布式软总线 分布式软总线是多种终端设备的统一基座,为设备之间的互联互通提供了统一的分布…
摘要:除了多核的自旋锁机制,本文会介绍下LiteOS 5.0引入的LockDep死锁检测特性. 2020年12月发布的LiteOS 5.0推出了全新的内核,支持SMP多核调度功能.想学习SMP多核调度功能,需要了解下SpinLock自旋锁.除了多核的自旋锁机制,本文还会介绍下LiteOS 5.0引入的LockDep死锁检测特性. 本文中所涉及的LiteOS源码,均可以在LiteOS开源站点https://gitee.com/LiteOS/LiteOS 获取. 自旋锁SpinLock源代码.开发文…
目录 前言 链接 参考 笔录草稿 部分源码分析 源码分析 LOS_TaskCreate函数 LOS_TaskCreateOnly函数 宏 OS_TCB_FROM_PENDLIST 和 宏 LOS_DL_LIST_FIRST 任务控制块 LOS_TASK_CB 前言 20201009 LiteOS 2018 需要会通用链表 链接 LiteOS源码链接 常见问题 华为开发者社区 华为LiteOS官方教程 我的源码 包含 裸机源码 LiteOS 工程模板 其它关于 LiteOS 的 demo 及 no…
摘要:多任务环境下会存在多个任务访问同一公共资源的场景,而有些公共资源是非共享的临界资源,只能被独占使用.LiteOS使用互斥锁来避免这种冲突,互斥锁是一种特殊的二值性信号量,用于实现对临界资源的独占式处理. 多任务环境下会存在多个任务访问同一公共资源的场景,而有些公共资源是非共享的临界资源,只能被独占使用.LiteOS使用互斥锁来避免这种冲突,互斥锁是一种特殊的二值性信号量,用于实现对临界资源的独占式处理.另外,互斥锁可以解决信号量存在的优先级翻转问题.用互斥锁处理临界资源的同步访问时,如果有…
HarmonyOS内核开发-信号量开发案例学习记录   一.LiteOS里面的任务管理介绍: 任务状态通常分为以下四种: 就绪(Ready):该任务在就绪列表中,只等待CPU. 运行(Running):该任务正在执行. 阻塞(Blocked):该任务不在就绪列表中.包含任务被挂起.任务被延时.任务正在等待信号量.读写队列或者等待读写事件等. 退出态(Dead):该任务运行结束,等待系统回收资源. 案例 :cmsis_os2的API任务接口 创建任务:osThreadNew(osThreadFun…
最近离职了, 突然记起来还一个小功能没做, 想想也挺简单,留下代码和思路给同事做个参考. 换工作心里挺忐忑, 对未来也充满了憧憬与担忧.(虽然已是老人, 换了N次工作了,但每次心里都和忐忑). 写写代码反而心里平静了很多. 入正题,上思路,其实很简单 一 场景 用户u1只能在A电脑登录,当在B电脑登录时,A电脑登录状态被取消 二 思路 1.创建一个session监听器去监听session属性的创建 2,用个map储存(如果用户量大可以用KV数据库,如redis之类),K 为用户名, V为sess…
一. 合理使用title, description, keywords二. 合理使用h1 - h6, h1标签的权重很高, 注意使用频率三. 列表代码使用ul, 重要文字使用strong标签四. 图片添加alt属性, title可选. img最好加上宽, 高利于加载五. 重要代码在前面, 通过css布局改变渲染顺序六. display: none是不会被爬虫抓取, js不被爬虫抓取, iframe少用七. 链接一定用a标签八. 重要目录节点最好不要太深九. 原创内容, 高质外链十.常备404 页…
[疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一>实现了一个简陋的JSON转Model的库,不过还存在很多问题.下面我会尝试一个个去解决. 2. 存在问题及解决思路 2.1 没有考虑JSON数据并不一定是NSDictionary类型 有时候JSON并不一定是NSDictionary类型,可能是一个字符串,也可能是NSData类型的数据.不过不管是哪种类型,统…
上一篇文章介绍了Dex文件的热更新流程,本文将会分析Tinker中对资源文件的热更新流程. 同Dex,资源文件的热更新同样包括三个部分:资源补丁生成,资源补丁合成及资源补丁加载. 本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源热更新 Android热更新开源项目Tinker源码解析系类之三:so热更新 转载请标明本文来源:http://www.cnblogs…
开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉到生僻的 CSS 属性,赶紧去补习一下吧. 不断更新,不断更新,不断更新,重要的事情说三遍. 谈谈一些有趣的CSS题目(一)-- 左边竖条的实现方法 谈谈一些有趣的CSS题目(二)-- 从条纹边框的实现谈盒子模型 谈谈一些有趣的CSS题目(三)-- 层叠顺序与堆栈上下文知多少 谈谈一些有趣…
在MIP推出后,我们收到了很多站长的疑问和顾虑.我们将所有疑问和顾虑归纳为以下二十个问题,希望对大家理解 MIP 有帮助. 1.MIP 化后对其他搜索引擎抓取收录以及 SEO 的影响如何? 答:在原页面 MIP 化,不会影响其它搜索引擎的抓取收录,也不会影响页面权重.新增 MIP 页可通过 robots.txt 文件禁用其它搜索引擎的抓取,从而保证原页面的权重. 2.MIP 可以加什么样子的广告? 答:MIP 既可以加入百度联盟广告,也可以加入第三方广告 3.MIP Cache 缓存更新时间是多…
阅读目录 前言 六边形架构 终于开始建项目了 DDD中的3个臭皮匠 CQRS(Command Query Responsibility Segregation) 结语 一.前言 上一篇我们讲了DDD的核心概念(附上链接),并且设计了我们的上下文映射图,那么接下来就准备开始立项了,本篇文章的部分知识点可能对一部分人来说比较基础,可以选择性的阅读. 在这之前我们平常用的最多的应该就是3层架构了,这里也不展开描述了,大家都是在3层的陪伴下一路走来的~ DDD所使用的传统分层架构是松散分层,也就是上层可…
前言 在 上篇文章 中讲了关于 Identity 需要了解的单词以及相对应的几个知识点,并且知道了Identity处在整个登入流程中的位置,本篇主要是在 .NET 整个认证系统中比较重要的一个环节,就是 认证(Authentication),因为想要把 Identity 讲清楚,是绕不过 Authentication 的. 在之前写过一篇关于 ASP.NET Core 中间件的文章,里面有一部分(怎么样自定义自己的中间件)是具体关于认证系统的一个具体使用,有兴趣的朋友可以看一下这篇文章. 其实…
MVVM模式解析和在WPF中的实现(二) 数据绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中的实现(三)命令绑定 MVVM模式解析和在WPF中的实现(四)事件绑定 MVVM模式解析和在WPF中的实现(五)View和ViewModel的通信 MVVM模式解析和在WPF中的实现(六)用依赖注入的方式配置ViewModel并注册消息 0x00 数据绑定要达到的效果 数据绑定要达到什么效果呢,就是…
一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有:Perl.PHP.Python.Ruby.C#.C/C++以及Lua等. 那么,我们作为.Net码农,自然是使用C#.既然Memcached客户端有.Net版,那我们就去下载一个来试试. 下载文件:http://pan.baidu.com/s/1w9Q8I memcached clientlib项目…
网络上已经有非常多的二维码编码和解码工具和代码,很多都是服务器端的,也就是说需要一台服务器才能提供二维码的生成.本着对服务器性能的考虑,这种小事情都让服务器去做,感觉对不住服务器,尤其是对于大流量的网站,虽然有服务器端缓存,毕竟需要大量的CPU运算时间,这或多或少也是很大的一块压力.所以就想,有没有一种不靠服务器,就只靠JS就生成二维码呢,毕竟二维码就是一堆黑白点而已.我也没有刻意去找网络上是否已经存在这样的解决方案,而且自己一直想深入分析二维码的生成细节,现有的项目也有这样的需求,于是我自己研…
一:数字 int int(整型): 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位系统上,整数的位数为64位,取值范围为-2**63-2**63-1,即-9223372036854775808-9223372036854775807 class int(object): """ int(x=0) -> int or long int(x, base=10) -> int or l…
为了压系统,昨天小组在测试环境模拟了一大批订单数据.今天上午查看记录的账单计息日志,发现了一大堆的MySqlException MySql.Data.MySqlClient.MySqlException (0x80004005): There is already an open DataReader associated with this Connection which must be closed first. 诸如: 2017-01-05 00:40:49.891 账单计息异常/{"B…
二维码扫描 前言: 最近的项目中使用到了二维码,二维码这个模块功能也完成:觉得还是有必要总结一下用来做记录.好长时间没有写二维码了都忘记在差不多了,重新拾起来还是挻快的. 二维码使用场景: 生活中有很多的地方都在使用,比如把它分享给朋友,通过扫描来关注平台.它的功能有生成二维码.扫描二维码.从相册中读取二维码.主要从这几个方面来讲二维码的使用,最后会封装一个方便快捷使用的库,供想快速集成的使用者. 1.生成二维码 效果图: 1. 创建二维码滤镜--CIFilter 1.1 恢复滤镜的默认属性 1…
有些功能部分手机不能使用,网站,通讯录,wifi基本上每个手机都可以使用. 在看之前你可以扫一扫下面几个二维码先看看效果: 1.二维码生成 网址 (URL) 包含网址的 二维码生成 是大家平时最常接触到的(例如:http://dnt.dkill.net),二维码识别软件能够通过 http://前缀 知道数据代表的是一个网址.使用{URLTO:www.baidu.com} 类似的语法格式也能让识别软件认出网址. 2.二维码生成 电子邮箱地址(E-mail Address) 互联网上大家联络时基本都…
[原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关注),写确认(写关注) 1 更新文档 1.1 更新 MongoDB提供下列方法用于更新一个集合 db.collection.updateOne() 更新使用指定过滤器匹配到的文档,即使过滤器匹配到多个文档,也只会更新一个文档. 3.2版本新增特性. db.collection.updateMany(…
本篇主要介绍HTML元素事件的注册.注销的方式. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三) 事件流.事件委托 4. HTML 事件(四) 模拟事件操作 目录 1. 注册事件:介绍通过元素的事件属性.addEventListener()以及attachEvent()方法进行事件的注册. 2. 注销事件:介绍通过removeEventListener().detachEvent()以及事件属性赋值为null来进行事…