| 7,6 → 7,7 |
| #include <unistd.h> |
| #include <string.h> |
| #include "PtsModule.h" |
| #include <getopt.h> |
| |
| void Delay(double t){ |
| usleep(t*1e6); |
| 188,19 → 189,45 |
| |
| void help(char *argv){ |
| printf("Usage: %s -a <ptsaddr> -v <verbose> -c .... Pts_check_configure\n", argv); |
| printf("Usage: %s -a <ptsaddr> -v <verbose> -i <filename> -b mode ... Pts_configure_bit\n", argv); |
| printf("Usage: %s -a <ptsaddr> -v <verbose> -i <filename> -b mode (2) ... Pts_configure_bit\n", argv); |
| printf("Usage: %s -a <ptsaddr> -v <verbose> -e .... Pts_erase\n", argv); |
| printf("Usage: %s -a <ptsaddr> -v <verbose> -r .... Pts_reset\n", argv); |
| printf("Usage: %s -a <ptsaddr> -v <verbose> -w <value> .... Pts_write_csr\n", argv); |
| printf("Usage: %s -a <ptsaddr> -v <verbose> -x .... Pts_reset\n", argv); |
| printf("Usage: %s -a <ptsaddr> -v <verbose> -c .... Pts_check_configure\n", argv); |
| printf("Usage: %s -a <ptsaddr> -v <verbose> -r .... vme read\n", argv); |
| printf("Usage: %s -a <ptsaddr> -v <verbose> -w <value> .... vme write\n", argv); |
| printf("Usage: %s -a <ptsaddr> -v <verbose> -s <value> .... Pts_write_csr\n", argv); |
| printf("Example: %s --address 0x1000000 --verbose 1 --erase\n", argv); |
| printf("Example: %s --address 0x1000000 --verbose 1 --input pts_scaler.bit --load-bit 2\n", argv); |
| printf("Example: %s --address 0x1000004 --write-csr 0x7600\n", argv); |
| } |
| |
| |
| |
| static const char *optString = "v:rxea:cs:w:i:b:h"; |
| static const struct option longOpts[] = { |
| { "verbose", required_argument, NULL, 'v' }, |
| { "reset" , no_argument, NULL, 'x' }, |
| { "erase" , no_argument, NULL, 'e' }, |
| { "address", required_argument, NULL, 'a' }, |
| { "check-configure", no_argument, NULL, 'c' }, |
| { "write-csr", required_argument , NULL, 's' }, |
| { "input", required_argument , NULL, 'i' }, |
| { "load-bit", required_argument , NULL, 'b' }, |
| { "read", no_argument , NULL, 'r' }, |
| { "write",required_argument , NULL, 'w' }, |
| { "help", no_argument, NULL, 'h' }, |
| { NULL, no_argument, NULL, 0 } |
| }; |
| |
| int main (int argc, char ** argv){ |
| unsigned long value; |
| |
| uint32_t value; |
| |
| int verbose=0; |
| char filename[256]="file.bit"; |
| int c; |
| opterr = 0; |
| int longIndex = 0; |
| |
| if (argc<2) { |
| help(argv[0]); |
| 208,13 → 235,18 |
| } |
| |
| VME_START(NULL); |
| while ((c = getopt (argc, argv, "v:rea:cw:i:b:h")) != -1) |
| |
| c = getopt_long( argc, argv, optString, longOpts, &longIndex ); |
| while( c != -1 ) |
| |
| // while ((c = getopt (argc, argv, "v:xrea:csw:i:b:h")) != -1) |
| { |
| switch (c) |
| { |
| case 'v': |
| verbose = atoi(optarg); |
| break; |
| case 'r': |
| case 'x': |
| Pts_reset(verbose); |
| break; // reset |
| case 'e': |
| 228,6 → 260,14 |
| break; |
| case 'w': |
| value = strtoul (optarg,NULL,0); |
| Pts_write( 0 , value ); |
| break; |
| case 'r': |
| value = 0; |
| Pts_read( 0 , &value ); |
| break; |
| case 's': |
| value = strtoul (optarg,NULL,0); |
| Pts_write_csr( verbose, value ); |
| break; |
| case 'i': |
| 245,6 → 285,8 |
| default: |
| printf("Unknown command %c\n",c); |
| } |
| c = getopt_long( argc, argv, optString, longOpts, &longIndex ); |
| } |
| VME_STOP(); |
| } |
| |