#include <stdio.h>
#include <signal.h>
#include <unistd.h>
#include <sys/mman.h>

#include <native/task.h>
#include <native/timer.h>

RT_TASK demo_task;

/* NOTE: error handling omitted. */

void demo(void *arg)
{
    RTIME now, previous;

/*
     * Arguments: &task (NULL=self),
     *            start time,
     *            period (here: 1 ms)
     */
    rt_task_set_periodic(NULL, TM_NOW, 1000000);
    previous = rt_timer_read();

while (1) {
        rt_task_wait_period(NULL);
        now = rt_timer_read();

/*
         * NOTE: printf may have unexpected impact on the timing of
         *       your program. It is used here in the critical loop
         *       only for demonstration purposes.
         */
        printf("Time since last turn: %ld.%06ld ms\n",
               (long)(now - previous) / 1000000,
               (long)(now - previous) % 1000000);
               previous = now;
    }
}

void catch_signal(int sig)
{
}

int main(int argc, char* argv[])
{
    signal(SIGTERM, catch_signal);
    signal(SIGINT, catch_signal);

/* Avoids memory swapping for this program */
    mlockall(MCL_CURRENT|MCL_FUTURE);

/*
     * Arguments: &task,
     *            name,
     *            stack size (0=default),
     *            priority,
     *            mode (FPU, start suspended, ...)
     */
    rt_task_create(&demo_task, "trivial", 0, 99, 0);

/*
     * Arguments: &task,
     *            task function,
     *            function argument
     */
    rt_task_start(&demo_task, &demo, NULL);

pause();

rt_task_delete(&demo_task);

return 0;
}

2 测试结果:

Time since last turn: 0.997940 ms                                               
Time since last turn: 1.001939 ms                                               
Time since last turn: 0.996909 ms                                               
Time since last turn: 1.000727 ms                                               
Time since last turn: 1.003576 ms                                               
Time since last turn: 1.000606 ms                                               
Time since last turn: 0.998909 ms                                               
Time since last turn: 0.998243 ms                                               
Time since last turn: 1.001333 ms                                               
Time since last turn: 0.997636 ms                                               
Time since last turn: 1.003152 ms                                               
Time since last turn: 0.996788 ms                                               
Time since last turn: 1.000060 ms                                               
Time since last turn: 0.998667 ms                                               
Time since last turn: 1.005030 ms                                               
Time since last turn: 0.995031 ms                                               
Time since last turn: 1.002545 ms                                               
Time since last turn: 1.002303 ms                                               
Time since last turn: 0.995515 ms                                               
Time since last turn: 1.002849 ms                                               
Time since last turn: 0.997878 ms                                               
Time since last turn: 1.002000 ms                                               
Time since last turn: 0.998546 ms                                               
Time since last turn: 0.999576 ms                                               
Time since last turn: 1.002363 ms                                               
Time since last turn: 0.998425 ms                                               
Time since last turn: 0.998969 ms                                               
Time since last turn: 1.000061 ms                                               
Time since last turn: 1.002788 ms                                               
Time since last turn: 0.996848 ms                                               
Time since last turn: 1.002182 ms                                               
Time since last turn: 0.999212 ms                                               
Time since last turn: 1.001455 ms                                               
Time since last turn: 0.997636 ms                                               
Time since last turn: 1.004546 ms                                               
Time since last turn: 0.995757 ms                                               
Time since last turn: 1.000788 ms                                               
Time since last turn: 0.998485 ms                                               
Time since last turn: 1.001333 ms                                               
Time since last turn: 0.998485 ms                                               
Time since last turn: 1.001152 ms                                               
Time since last turn: 0.999878 ms                                               
Time since last turn: 0.999334 ms                                               
Time since last turn: 1.002121 ms                                               
Time since last turn: 0.999697 ms                                               
Time since last turn: 1.000242 ms                                               
Time since last turn: 0.997697 ms                                               
Time since last turn: 1.000303 ms                                               
Time since last turn: 0.999879 ms                                               
Time since last turn: 1.000788 ms                                               
Time since last turn: 1.000061 ms                                               
Time since last turn: 0.999636 ms                                               
Time since last turn: 1.001454 ms                                               
Time since last turn: 0.997334 ms                                               
Time since last turn: 1.004666 ms                                               
Time since last turn: 0.996910 ms                                               
Time since last turn: 1.002545 ms                                               
Time since last turn: 0.996485 ms                                               
Time since last turn: 1.001273 ms                                               
Time since last turn: 0.998666 ms                                               
Time since last turn: 1.000788 ms                                               
Time since last turn: 0.999758 ms                                               
Time since last turn: 1.000242 ms                                               
Time since last turn: 0.999091 ms                                               
Time since last turn: 1.002909 ms                                               
Time since last turn: 1.000485 ms                                               
Time since last turn: 0.996424 ms                                               
Time since last turn: 1.001818 ms

linux - native task api 测试的更多相关文章

  1. API 测试的具体实现

    目录 API 测试的具体实现 基于 Spring Boot 构建的 API 使用 cURL 命令行工具进行测试 使用图形界面工具 Postman 进行测试 如何应对复杂场景的 API 测试? 总结 A ...

  2. node-webkit学习(4)Native UI API 之window

    node-webkit学习(4)Native UI API 之window 文/玄魂 目录 node-webkit学习(4)Native UI API 之window 前言 4.1  window a ...

  3. Java JVM、JNI、Native Function Interface、Create New Process Native Function API Analysis

    目录 . JAVA JVM . Java JNI: Java Native Interface . Java Create New Process Native Function API Analys ...

  4. Linux Native Aio 异步AIO的研究

    Linux Native Aio 异步AIO的研究 http://rango.swoole.com/archives/282 首先声明一下epoll+nonblock从宏观角度可以叫做全异步,但从微观 ...

  5. node-webkit教程<>Native UI API 之Menu(菜单)

    node-webkit教程(6)Native UI API 之Menu(菜单)1 前言... 2 6.1  Menu 概述... 3 6.2  menu api6 6.2.1  new Menu([o ...

  6. API测试工具SoapUI & Postman对比分析

    本文由葡萄城技术团队于博客园原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 最近公司要引入API测试工具,经过调查和了解,最终决定在SoapUI ...

  7. NODE-WEBKIT教程(6)NATIVE UI API 之MENU(菜单)

    node-webkit教程(6)Native UI API 之Menu(菜单) 文/玄魂 目录 node-webkit教程(6)Native UI API 之Menu(菜单) 前言 6.1  Menu ...

  8. NODE-WEBKIT教程(5)NATIVE UI API 之FRAMELESS WINDOW

    node-webkit教程(5)Native UI API 之Frameless window 文/玄魂 原文链接:http://www.xuanhun521.com/Blog/2014/4/15/n ...

  9. 如何选择API测试工具

    没有最好,只有最合适. 如今,越来越多的公司正在向DevOps的方向左转,以实现持续集成和持续部署开发.这意味着我们的反馈需要比以往更快,以便确定我们的应用程序是否准备好交付.这就是API测试如此重要 ...

随机推荐

  1. Kubenertes资源分配之Request和Limit解析

    收录待用,修改转载已取得腾讯云授权 Kubernetes是一个容器集群管理平台,Kubernetes需要统计整体平台的资源使用情况,合理地将资源分配给容器使用,并且要保证容器生命周期内有足够的资源来保 ...

  2. (转)Apache的安装与配置

    转自:http://www.dreamdu.com/webbuild/apache/ 5.2. Apache的安装与配置 5.2.1. Apache安装与配置视频教程 下面将介绍如何在WinXP下安装 ...

  3. MongoDB 在 Mac OSX 平台安装

    1.检查电脑是否安装 Homebrew(brew) 工具.如果没有安装,在终端执行下面命令. ruby -e "$(curl -fsSL https://raw.githubusercont ...

  4. 算法笔记_043:最大连续子数组和(Java)

    目录 1 问题描述 2 解决方案 2.1 蛮力枚举法 2.2 动态规划法   1 问题描述 给定一个整数数组,数组里可能有正数.负数和零.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和 ...

  5. vue 1.x 总结

    1.Vuejs组件 vuejs构建组件使用 Vue.component('componentName',{ /*component*/ }): 这里注意一点,组件要先注册再使用,也就是说: Vue.c ...

  6. poj 2388 insert sorting

    /** \brief poj 2388 insert sorting 2015 6 12 * * \param * \param * \return * */ #include <iostrea ...

  7. GNU C中的零长度数组

    http://blog.csdn.net/ssdsafsdsd/article/details/8234736 在标准C和C++中,长度为0的数组是被禁止使用的.不过在GNU C中,存在一个非常奇怪的 ...

  8. CentOS 开机启动

    # vim /etc/rc.local 加入你想在开机后执行的脚本 source /etc/profile /usr/local/xx.sh 写第一句是想保证在执行脚本前系统环境变量有效,第二句才是真 ...

  9. MYSQL 什么时候用单列索引?什么使用用联合索引?(收集)

    我一个表 students 表,有3个字段 ,id,name,age 我要查询 通过 name 和age,在这两个字段 是创建 联合索引?还是分别在name和age上创建 单列索引呢? 多个字段查询什 ...

  10. 【jQuery+html】JS如何在html页面获取PHP输出的变量

    如题:JS如何获取php输出到模板HTML的变量呢? 废话不多说,自己看. aa.html <!-- 前提在HTML文件中--> <script type="text/ja ...