here's the source of the testing module.

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/proc_fs.h>
#include <native/task.h>
#include <native/types.h>
#include <native/timer.h>
#include <rtdm/rtdm_driver.h>
#include <nucleus/pod.h>

MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Hello World Xenomai Application");

/************************* Global Variables ******************************/

RT_TASK thread;
RTIME timer_period_ns;
RTIME task_period_ns;
RTIME expected;
int timer_period_counts;
unsigned long overrun; // rt_task_wait_period() writes here overrun
count.0 if everything OK

/************************* Periodic realtime thread **********************/

void fun(int dummy) {
    int count = 0;
    while(1) {
        ++count;
        rt_task_wait_period(&overrun);
        if ((count%100)==0) {
            rtdm_printk("Periode %d ist abgelaufen\n",count);
        }
    }
}

/************************* Initialisation *******************************/

static int hello_init(void)
{
    //testing rt_task_create(...);
    int count = 0;
    printk("task create");
    rt_task_create(&thread,"fun_task",3000,1,0);
    printk("created..");
    printk("task start");
    rt_task_start(&thread,fun,0);
    printk("started........");



    //timer_period_ns = 10000000;/*10ms*/
    /*timer_period_counts = start_rt_timer(nano2count(timer_period_ns));*/

//timer_period_counts=rt_timer_set_mode(rt_timer_ns2tsc(timer_period_ns));
    /* Calculate the start time for the task. */
    /* We set this to "now plus 10 periods"   */
    //expected = xnpod_get_time()  + 10 * timer_period_counts;

    /* Task period initialization */
    //task_period_ns =50000000;/*5ms*/
    /*rt_task_make_periodic(&thread, expected,
nano2count(task_period_ns));*/
    //rt_task_set_periodic(&thread, expected,
rt_timer_ns2tsc(task_period_ns));
    return 0;
}

/************************* Cleanup *********************************/

static void hello_exit(void)
{
  /*stop_rt_timer();*/

  /* Now delete our task */
 // rt_task_delete(&thread);
}

module_init(hello_init);
module_exit(hello_exit);


Gilles Chanteperdrix wrote:
> Rodolfo wrote:
>   
>> Hi,
>> I am totally new to Xenomai and have no experience with RTAI. I'm trying
>> to load a kernel module that uses the native API for testing, but I get
>> the following segmentation fault. Can anyone help me out??
>>     
>
> Please post here the sources of your module.
>
>   



_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to