examples/rtai/rtai_sample.c
changeset 509 87baea61d0c7
parent 449 3caf8ff4d8a2
child 512 24292123d174
equal deleted inserted replaced
508:11fb47492456 509:87baea61d0c7
    93         ecrt_domain_process(domain1);
    93         ecrt_domain_process(domain1);
    94 
    94 
    95         // process data
    95         // process data
    96         //k_pos = EC_READ_U32(r_ssi_input);
    96         //k_pos = EC_READ_U32(r_ssi_input);
    97 
    97 
       
    98         ecrt_domain_queue(domain1);
    98         ecrt_master_run(master);
    99         ecrt_master_run(master);
    99         ecrt_master_send(master);
   100         ecrt_master_send(master);
   100 
   101 
   101         rt_sem_signal(&master_sem);
   102         rt_sem_signal(&master_sem);
   102         rt_task_wait_period();
   103         rt_task_wait_period();
   136 
   137 
   137     if (!(master = ecrt_request_master(0))) {
   138     if (!(master = ecrt_request_master(0))) {
   138         printk(KERN_ERR "Requesting master 0 failed!\n");
   139         printk(KERN_ERR "Requesting master 0 failed!\n");
   139         goto out_return;
   140         goto out_return;
   140     }
   141     }
   141 
       
   142 
   142 
   143     ecrt_master_callbacks(master, request_lock, release_lock, NULL);
   143     ecrt_master_callbacks(master, request_lock, release_lock, NULL);
   144 
   144 
   145     printk(KERN_INFO "Registering domain...\n");
   145     printk(KERN_INFO "Registering domain...\n");
   146     if (!(domain1 = ecrt_master_create_domain(master))) {
   146     if (!(domain1 = ecrt_master_create_domain(master))) {
   157     printk(KERN_INFO "Activating master...\n");
   157     printk(KERN_INFO "Activating master...\n");
   158     if (ecrt_master_activate(master)) {
   158     if (ecrt_master_activate(master)) {
   159         printk(KERN_ERR "Failed to activate master!\n");
   159         printk(KERN_ERR "Failed to activate master!\n");
   160         goto out_release_master;
   160         goto out_release_master;
   161     }
   161     }
   162 
       
   163     ecrt_master_prepare(master);
       
   164 
   162 
   165     printk("Starting cyclic sample thread...\n");
   163     printk("Starting cyclic sample thread...\n");
   166     requested_ticks = nano2count(TIMERTICKS);
   164     requested_ticks = nano2count(TIMERTICKS);
   167     tick_period = start_rt_timer(requested_ticks);
   165     tick_period = start_rt_timer(requested_ticks);
   168     printk(KERN_INFO "RT timer started with %i/%i ticks.\n",
   166     printk(KERN_INFO "RT timer started with %i/%i ticks.\n",
   184 
   182 
   185  out_stop_task:
   183  out_stop_task:
   186     rt_task_delete(&task);
   184     rt_task_delete(&task);
   187  out_stop_timer:
   185  out_stop_timer:
   188     stop_rt_timer();
   186     stop_rt_timer();
   189     ecrt_master_deactivate(master);
       
   190  out_release_master:
   187  out_release_master:
   191     ecrt_release_master(master);
   188     ecrt_release_master(master);
   192  out_return:
   189  out_return:
   193     rt_sem_delete(&master_sem);
   190     rt_sem_delete(&master_sem);
   194     return -1;
   191     return -1;