rt/msr_module.c
changeset 80 8cd08d73b560
parent 73 9f4ea66d89a3
child 81 28b1defdcc88
equal deleted inserted replaced
79:319a97c1f0f9 80:8cd08d73b560
   116 
   116 
   117 int __init init_rt_module(void)
   117 int __init init_rt_module(void)
   118 {
   118 {
   119     struct ipipe_domain_attr attr; //ipipe
   119     struct ipipe_domain_attr attr; //ipipe
   120     const ec_field_init_t *field;
   120     const ec_field_init_t *field;
       
   121     uint32_t version;
   121 
   122 
   122     // Als allererstes die RT-lib initialisieren
   123     // Als allererstes die RT-lib initialisieren
   123     if (msr_rtlib_init(1, MSR_ABTASTFREQUENZ, 10, &msr_globals_register) < 0) {
   124     if (msr_rtlib_init(1, MSR_ABTASTFREQUENZ, 10, &msr_globals_register) < 0) {
   124         msr_print_warn("msr_modul: can't initialize rtlib!");
   125         msr_print_warn("msr_modul: can't initialize rtlib!");
   125         goto out_return;
   126         goto out_return;
   150                                               field->product,
   151                                               field->product,
   151                                               field->data,
   152                                               field->data,
   152                                               field->field_type,
   153                                               field->field_type,
   153                                               field->field_index,
   154                                               field->field_index,
   154                                               field->field_count)) {
   155                                               field->field_count)) {
   155             printk(KERN_ERR "EtherCAT: Could not register field!\n");
   156             printk(KERN_ERR "Could not register field!\n");
   156             goto out_release_master;
   157             goto out_release_master;
   157         }
   158         }
   158     }
   159     }
   159 
   160 
   160     printk(KERN_INFO "Activating master...\n");
   161     printk(KERN_INFO "Activating master...\n");
   161 
   162 
   162     if (EtherCAT_rt_master_activate(master)) {
   163     if (EtherCAT_rt_master_activate(master)) {
   163         printk(KERN_ERR "EtherCAT: Could not activate master!\n");
   164         printk(KERN_ERR "Could not activate master!\n");
   164         goto out_release_master;
   165         goto out_release_master;
   165     }
   166     }
   166 
   167 
   167 #if 0
   168     EtherCAT_rt_master_debug(master, 2);
   168     if (EtherCAT_rt_canopen_sdo_write(master, "0:4", 0x4067, 0, 1, 2)) {
   169     if (EtherCAT_rt_canopen_sdo_addr_read(master, "0:3", 0x100A, 1,
   169         printk(KERN_ERR "EtherCAT: Could not set SSI baud rate!\n");
   170                                           &version)) {
       
   171         printk(KERN_ERR "Could not read SSI version!\n");
   170         goto out_release_master;
   172         goto out_release_master;
   171     }
   173     }
   172 
   174     printk(KERN_INFO "Klemme 3 Software-version: %u\n", version);
   173     if (EtherCAT_rt_canopen_sdo_write(master, "0:4", 0x4061, 4, 1, 1)) {
   175     EtherCAT_rt_master_debug(master, 0);
   174         printk(KERN_ERR "EtherCAT: Could not set SSI feature bit!\n");
       
   175         goto out_release_master;
       
   176     }
       
   177 #endif
       
   178 
   176 
   179     ipipe_init_attr(&attr);
   177     ipipe_init_attr(&attr);
   180     attr.name = "IPIPE-MSR-MODULE";
   178     attr.name = "IPIPE-MSR-MODULE";
   181     attr.priority = IPIPE_ROOT_PRIO + 1;
   179     attr.priority = IPIPE_ROOT_PRIO + 1;
   182     attr.entry = &domain_entry;
   180     attr.entry = &domain_entry;