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; |