目录

  • 事件驱动型OSAL操作系统原理分析
  • OSAL消息收发过程
  • 向OSAL系统添加自定义任务

事件驱动型OSAL操作系统原理分析




任务就是一个函数,每一个任务都要有一个函数,形成函数列表(函数指针数组)

以上就是任务处理函数,都是任务调度之前做的事情。

那事件是怎么来的?



操作系统轮询,发现不为0的事件,怎么发现的?


osal_set_event设置这个事件,轮询的时候就会发现这个事件,发现这个事件就会去调用某个任务,任务处理完就会osal_clear_event清除这个事件,清除的本质就是取反操作


OSAL消息收发过程

以串口通信为例


进入osal_msg_send函数


进入osal_msg_receive函数



消息收发的本质:
往消息队列里面放了一块自己申请的空间,通过事件的机制osal_set_event把某个事件置位,让操作系统在轮询调度的过程中发现这个事件从而去调度相应的任务去处理这个消息。

向OSAL系统添加自定义任务



OSAL创建任务:

1、添加任务的本质就是创建一个自己的任务函数,返回值和参数要遵循函数指针数组里面的定义,发生了某件事(事件被置位)这个函数就被执行

2、还要定义任务初始化函数并保存相应的任务ID

任务个数通过计算任务数组得到

数组里面的函数指针形式如下所示:


以前面讲的串口为例:

第372行:


编译运行:

打印端口、长度、数据

OSAL操作系统分析(添加自定义任务)相关推荐

  1. linux操作系统分析实验—基于mykernel的时间片轮转多道程序实现与分析

    linux操作系统分析实验-基于mykernel的时间片轮转多道程序实现与分析 学号384 原创作业转载请注明出处+中国科学技术大学孟宁老师的Linux操作系统分析 https://github.co ...

  2. 【Linux操作系统分析】设备驱动处理流程

    1 驱动程序,操作系统,文件系统和应用程序之间的关系 字符设备和块设备映射到操作系统中的文件系统,由文件系统向上提供给应用程序统一的接口用以访问设备. Linux把设备视为文件,称为设备文件,通过对设 ...

  3. Linux操作系统分析 | 深入理解系统调用

    Linux操作系统分析 | 深入理解系统调用 实验要求 1.找一个系统调用,系统调用号为学号最后2位相同的系统调用 2.通过汇编指令触发该系统调用 3.通过gdb跟踪该系统调用的内核处理过程 4.重点 ...

  4. Unix/Linux操作系统分析实验二 内存分配与回收:Linux系统下利用链表实现动态内存分配

    Unix/Linux操作系统分析实验一 进程控制与进程互斥 Unix/Linux操作系统分析实验三 文件操作算法: 实现在/proc目录下添加文件 Unix/Linux操作系统分析实验四 设备驱动: ...

  5. Unix/Linux操作系统分析实验四 设备驱动: Linux系统下的字符设备驱动程序编程

    Unix/Linux操作系统分析实验一 进程控制与进程互斥 Unix/Linux操作系统分析实验二 内存分配与回收:Linux系统下利用链表实现动态内存分配 Unix/Linux操作系统分析实验三 文 ...

  6. linux网卡配子接口,Linux 操作系统分析 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) Autumn 2010....

    Linux 操作系统分析 中国科学技术大学计算机系 陈香兰( 0512 - ) Autumn 2010 11/23/09 Linux 操作系统分析 2/92 主要内容  进程描述符  进程切换  ...

  7. Linux操作系统分析——课程总结报告

    一.Linux系统的启动过程 1.POST开机自检 linux开机加电后,系统开始开机自检,该过程主要对计算机各种硬件设备进行检测,如CPU.内存.主板.硬盘.CMOS芯片等,如果出现致命故障则停机, ...

  8. Linux操作系统分析-课程总结报告

    一.结合虚拟化技术分析Linux系统的一般执行过程 a. 一个 Linux 系统在虚拟化技术中的一般执行过程: 用户登录:当用户登录到 Linux 系统时,系统会创建一个用户会话. 系统启动:Linu ...

  9. Linux操作系统分析------期末总结、感谢老师、祝我们越来越好

    王雪 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一.博客目录: 1.第一 ...

  10. MINIX3操作系统分析

    文章目录 何为微内核??? 对MINIX3操作系统整体印象 MINIX3操作系统分析 源代码组织 进程 系统初始化 MINIX3的中断处理 MINIX3的进程间通信 系统任务 时钟任务 输入输出系统 ...

最新文章

  1. Nat. Mach. Intell. | 基于神经网络的迁移学习用于单细胞RNA-seq分析中的聚类和细胞类型分类...
  2. maven打包war,导入本地jar包
  3. PHP 使用 Redis
  4. mySQL5.5服务配置_配置mysql5.5主从服务器(转)
  5. java正则题_牛客网java编程题整理(不定期更新)
  6. Boost:基于Boost的stream流服务器
  7. java容器遍历_高效遍历Java容器详解
  8. mysql创建数据表代码_MYSQL 简单的建库操作代码
  9. CAM350 简单使用
  10. 叹服,华为高工手写344页高性能Java架构核心原理实战架构手册
  11. 电容式触摸感应按键解决方案(转载)
  12. 词性标记:VA,VC,VE,VV等
  13. 机器学习——模型的评估方法速查手册(RMSE+RSE+MAE+RAE+R^2)
  14. Quartz配置上次任务没有执行完,下次任务推迟执行
  15. 另辟蹊径,独树一帜的写作方法
  16. html怎么做整个屏幕的遮罩,html遮罩实现
  17. 以Mesos和Docker为核心的云操作系统
  18. Oracle数据库视频教程 28讲高清视频
  19. intval()和(int)转换使用与区别
  20. java bitwise_java – Bitwise不对一串位操作

热门文章

  1. 基于H5的移动端APP开发框架
  2. 手机计算机隐藏图标,怎么隐藏图标-隐藏小米手机桌面图标文字,只需一小段代码...
  3. 智驾小车|如何给树莓派系统接入摄像头模块
  4. oppo 手机刷机和root,还有其他必备的刷机工具,需要请进!!!
  5. Linux基础命令Xmind图【百度网盘链接】
  6. 云龙51单片机视频教程+课件+程序代码+课后作业,零基础入门视频教程
  7. 谷歌安装FeHelper插件
  8. 【通信总线】CAN 总线简介及应用
  9. 学生管理系统IPO图_C语言学生信息管理系统演示和说明(文件版)
  10. 时间计算题100道_史上最全50道初中数学几何必刷题(上)