13.02.2012 11:18, Thomas Tsou пишет:
Each "usrp" has it's own find / make
calls that are registered into
the "device function registry container" before main(). That occurs
with the UHD_STATIC_BLOCK macro, which is basically a memberless,
constructor object. When called, the device::find and device::make
iterate through the registered find / make tuples. I think 'make' uses
the first discovered device if no arguments are passed in.
Thanks. It seems to "work" good enough (I mean it crashes in runtime over this
and
that not yet implemented :)
However there's one thing which still puzzles me:
host/lib/usrp/dboard/db_unknown.cpp contains following:
UHD_STATIC_BLOCK(reg_unknown_dboards) {
dboard_manager::register_dboard(0xfff0, &make_unknown_tx, "Unknown
TX");
dboard_manager::register_dboard(0xfff1, &make_unknown_rx, "Unknown
RX");
}
It's pretty obvious what this code does but where do those _magic_ numbers come from?
Should I burn something into particular address in dboard eeprom?
Should I override some function to return special values?
Not really. For the current Ettus devices, the
io_impl.cpp
implementations really are different, so it doesn't make any sense.
That was just example. For instance I do not want to umtrx_iface if I could use
usrp2_iface - because devices are rather close I think I can get away with this. Time
will tell though.
--
best regards,
Max,
http://fairwaves.ru