+++ /dev/null
-compile for old Etrax-Board
- make distclean
- make ETRAX=1
- make ETRAX=1 install
-
-compile for Pexor Card
- make distclean
- make PEXOR=1
- make PEXOR=1 install
-
-compile for new TRB3
- make distclean
- make TRB3=1
- make TRB3=1 install
-
-In case ypu are not root you have to install the libtrbnet_perl libs manually by calling
-
-sudo make -C libtrbnet_perl PEXOR=1 install or
-sudo make -C libtrbnet_perl TRB3=1 install
-
-
-Recommendation to have the most essential commands available:
-
-cd ~/bin
-ln -s $HOME/trbsoft/trbnettools/trbnetd/trbdhcp
-ln -s $HOME/trbsoft/trbnettools/trbnetd/trbflash
-ln -s $HOME/trbsoft/trbnettools/trbnetd/trbcmd
-ln -s $HOME/trbsoft/trbnettools/trbnetd/server/trbnetd
void usage(const char *progName)
{
- printf("Usage: %s [-h] [-d] [-d level] [-V] <COMMAND>\n", progName);
+ printf("Usage: %s [-h] [-d] [-b numBytes] [-d level] [-V] <COMMAND>\n",
+ progName);
printf("Options:\n");
printf(" -h give this help\n");
printf(" -s SPI Mode\n");
+ printf(" -b number of bytes to be read 1..4\n");
printf(" -d turn on Debugging Information\n");
printf(" -V Version number\n");
printf("\nCommands:\n");
{
int i;
int spi_mode = 0;
+ unsigned int num_bytes = 0;
trb_debug = 0;
/* Parse Arguments */
- while ((i = getopt(argc, argv, "+hsd:V")) != -1) {
+ while ((i = getopt(argc, argv, "+hsb:d:V")) != -1) {
switch (i) {
case '?':
usage(basename(argv[0]));
spi_mode = 1;
trb_i2c_register = 0x8060;
break;
+ case 'b':
+ num_bytes = strtoul(optarg, NULL, 0);
+ if (num_bytes > 4) {
+ usage(basename(argv[0]));
+ exit(EXIT_FAILURE);
+ }
+ break;
case 'd':
trb_debug = strtoul(optarg, NULL, 0);
break;
}
/* Read Value */
- value = spi_mode == 0
- ? 0xff000000 | (i2c_chip << 16) | (i2c_register << 8)
- : 0xff000000 | (i2c_register << 8);
-
+ if (spi_mode == 0) {
+ value = num_bytes == 0
+ ? (0xff000000 | (i2c_chip << 16) | (i2c_register << 8))
+ : (0xc0000000 | (num_bytes << 24) |
+ (i2c_chip << 16) | (i2c_register << 8));
+ } else {
+ value = (0xff000000 | (i2c_register << 8));
+ }
+
if (trb_register_write(trb_address, trb_i2c_register, value) == -1) {
trb_error("Error reading value");
clearI2C(trb_address);