{ Joe and Kiwamu }
Today we made some efforts to get the binary outputs (BOs) working.
They still are not working but the situation is getting better.
So far the BO cards were not recognized by any realtime codes when we ran the codes on the new front end machine C1SUS.
We put some printk commands in an initialization code like Yoichi did (see this entry) to confirm if the initialization of the BOs properly happens or not.
Then we found that we had to put the BO modules also in an IOP model file which controls all the ADCs and the DACs.
We put the BO modules in the IOP file and then BOs started being recognized by the IOP, however they still are not fully recognized by the realtime control process.
We continue this work...
[Some notes]
[front end code]
First of all we looked at the front end c-code c1sus.c living under /cvs/cds/calech/cds/advLigoRTS/src/fe/c1sus/.
It was okay because there was a proper BO statement like
CDS_CARDS cards_used[] = { {CON_32DO,0}, {CON_32DO,2}};
[initialization code]
There is an initialization code called map.c living under /cvs/cds/calech/cds/advLigoRTS/src/fe.
This code is complied when we do the make commands as described on the wiki.
Eventually the initialization code is executed only when the IOP starts up. This happens when we type startc1x02 at /cvs/cds/rtcs/caltech/c1/script/.
[printk statments]
We made a backup file named map_20100830.c.back for map.c. Then we added to map.c some pintk statements in a while loop which looks for available BOs.
After running the make commands for the IOP file and startc1x02 , we basically can check the results of those printk statements by using dmesg .
We found that map.c was running correctly because map.c went in the while loop 4 times which is exactly the same number as the BOs we put in the model file.
However the code failed to install the BOs each time.
[BO modules in IOP file]
Joe pointed out the failure in map.c was caused by lack of the BO modules in the IOP file c1x02.mdl .
Indeed putting the BO modules in the IOP fixed the problem.
Another thing we found at this time is that there is a maximum number of BOs we can put in a model file.
The maximum number is 4, which is not enough for us because we need to put 5 of them including a 16bit BIO and four 32bit BOs.
Now Joe is asking to Alex about this issue.
Anyway now the IOP can recognize the BO cards, this fact can be found if you look at the log file /cvs/cds/rtcds/caltech/c1/target/c1x02/logs/log.txt .
The log file saids "3 Contec 32ch PCIe DO cards found", which is a good sign.
[BO modules in realtime code]
Although the IOP started seeing the BO cards, the realtime code c1sus still didn't fully recognize the BO cards.
If we look at the log file log.txt at /cvs/cds/rtcds/caltech/c1/target/c1sus/logs/, there is an evidence that the code found some cards.
The log file saids
Model 6 = 10
Model 7 = 4
Model 8 = 4
Model 9 = 4
Model 10 = 0.
It looks like these corresponds to the BO cards.
So the code found some cards, but doesn't know what they are.
We need few more debugging for the BOs...
|