Esempio n. 1
0
C_RESULT shutdown_com_server(void)
{
  com_close(&clt);
  com_close(&srv);

  com_shutdown();

  return C_OK;
}
Esempio n. 2
0
int com_open(int comport, long speed, int data_bit, unsigned char parity,
      unsigned char stop_bit)
{
  int x;

  disable();
  if (modem_open) com_close();
  modem_port=comport;

  switch(modem_port) {
    case 1:modem_base=0x3F8; modem_irq=4; modem_vect=0x0C; break;
    case 2:modem_base=0x2F8; modem_irq=3; modem_vect=0x0B; break;
    case 3:modem_base=0x3E8; modem_irq=4; modem_vect=0x0B; break;
    case 4:modem_base=0x2E8; modem_irq=3; modem_vect=0x0C; break;
    case 5:break;
    default:modem_base=0x3F8; modem_irq=4; modem_vect=0x0C; break;
  }

  outp(modem_base+1,0x00);
  if (inp(modem_base+1)!=0) {
    enable();
    return(0);
  }

  /* Set up the Interrupt Info */
  old_modem_ier=inp(modem_base+1);
  outp(modem_base+1,0x01);

  old_modem_isr=(void (INTERRUPT FAR *)(void))getvect(modem_vect);
  setvect(modem_vect,modem_isr);

  if (modem_rts_cts) {
    outp(modem_base+4,0x0B);
  } else {
    outp(modem_base+4,0x09);
  }

  old_modem_imr=inp(I8088_IMR);
  outp(I8088_IMR,old_modem_imr & ((1 << modem_irq) ^ 0x00FF));

  for (x=1; x<=5; x++) inp(modem_base+x);

  modem_open=1;

  modem_buffer_count=0;
  modem_buffer_head=0;
  modem_buffer_tail=0;

  com_speed(speed);
  com_data_bits((unsigned char)data_bit);
  com_parity(parity);
  com_stop_bits(stop_bit);
  enable();
  return(1);
}
Esempio n. 3
0
/*
	Abort after error
*/
void abort_test(void)
{
	int err;

	printf("\nAborting com port test\n");
	err = com_close();
	if (err!=OK) printf("Error on close\n");

	exit();

}
Esempio n. 4
0
STATUS_E download_images(const struct image *download_agent,
                         const struct image *download_agent_TCM,
                         const struct image *nor_flash_table,
                         const struct image *nand_flash_table,
                         const struct image *download_EPP,
                         const struct image *bootLoader,
                         const struct image *extBootLoader,
                         const struct image *dspBootLoader,
                         const struct image *rom,
                         const struct image *secondRom,
                         const struct image *dspRom,
                         const struct image *demand_paging_rom,
                         struct image *linux_images,
                         const struct ExternalMemorySetting *externalMemorySetting,
                         unsigned int num_linux_images,
                         unsigned int bmt_address,
                         int isUSB,
                         int isNFB)
{

    COM_HANDLE com_handle = INVALID_COM_HANDLE;
    STATUS_E status;

    if(isUSB){
        int retry = 0;

        while(1)
        {
            Sleep(100);
            //if (com_open(&com_handle, 19200) == COM_STATUS_DONE)
            if (com_open(&com_handle, 115200) == COM_STATUS_DONE)
            {
                log_output("handle (%d)\n", com_handle);
                log_feedback("SUCCESS:handle port (%d)\n",com_handle);
                break;
            }else{
                log_output("faile handle (%d)\n", com_handle);
                log_feedback("FAIL:handle port (%d)\n",com_handle);
                com_close(&com_handle);
                if (++retry > 10)
                    return S_COM_PORT_OPEN_FAIL;
            }
        }

    }else{
        if (com_open(&com_handle, 115200) != COM_STATUS_DONE)
        {
            log_output("Failed to open the communication port\n");
            return S_COM_PORT_OPEN_FAIL;
        }
    }


    status = bootrom_stage(com_handle, download_agent,download_agent_TCM, download_EPP, externalMemorySetting, isUSB, isNFB);

    if (status != S_DONE)
    {
            log_output("Download failed in BootROM stage: error=%u\n", status);
            //com_close(&com_handle);
            return status;
    }

    status = da_stage(com_handle, nor_flash_table, nand_flash_table,
        bootLoader,extBootLoader,dspBootLoader, rom, secondRom, dspRom, demand_paging_rom,
        linux_images,
        num_linux_images,
        isUSB,
        isNFB,
        bmt_address);

    if (status != S_DONE)
    {
        log_output("Download failed in DA stage: error=%u\n", status);
        //com_close(&com_handle);
        //Sleep(5000);
        return status;
    }
    
    log_feedback("FINISHED UPDATE");
    log_output("FINISHED UPDATAE!\n");

    if (com_close(&com_handle) != COM_STATUS_DONE)
    {
        log_output("Failed to close the communication port\n");
        //Sleep(5000);
    }
    //Sleep(5000);

    return S_DONE;
}
Esempio n. 5
0
int main(int argc,char* argv[])
{
  com_config_t cfg;
  vp_com_connection_t conn;

  printf("---------- Network Adapter Inquiry ----------\n");
  com_networkAdapterLookUp(COM_BLUETOOTH,adapterinquiry_df);
  printf("---------------------------------------------\n");

  cfg.connection        = COM_BLUETOOTH;
  cfg.localAdapterName  = DEVICENAME;
  cfg.localIpAddress    = LOCALHOST;
  cfg.localIpSubmask    = "255.255.255.0";

  printf("--------------- INITIALISATION --------------\n");
  if(FAILED(com_init(&cfg)))
  {
    printf("Failed to init\n");
    com_shutdown();
    return -1;
  }
/*
  printf("----------- Remote Device Inquiry -----------\n");
  com_inquire(deviceinquiry,60000);
  printf("---------------------------------------------\n");
*/
  
  printf("---------- Tentative de connection ----------\n");
  com_strToAddress(BTADDR_SERVER,&conn.address);
  com_passKey("1234");
  if(FAILED(com_connect(&conn,1)))
  {
    printf("Failed to connect\n");
    com_shutdown();
    return -1;
  }

  printf("Connected to BTT\n");

  printf("---------- BNEP Connection ----------\n");
  {// Test d'execution bnep
    com_socket_t socket;
    Read read;

    socket.socket     = VP_COM_CLIENT;
    socket.protocol   = COM_BNEP;
    socket.serverHost = SERVERHOST;
    socket.port       = BTADDR_PORT;
  
    if(SUCCEED(com_open(&socket,&read,0)))
    {
      char buffer[10];
      int r = 10;
      printf("Connection BNEP succeeded\n");
      if(SUCCEED(read((void*)&socket,buffer,&r)))
        printf("Read succeed\n");
  
      printf("socket closed\n");
      com_close(&socket);
    }
  }

  sleep(1);

  printf("---------- RFCOMM Connection ----------\n");
  {// Test d'execution rfcomm
    com_socket_t socket;
    Write write;

    socket.socket    = VP_COM_CLIENT;
    socket.protocol  = COM_RFCOMM;
    socket.scn       = BTADDR_SCN;
  
    if(SUCCEED(com_open(&socket,0,&write)))
    {
      char buffer[10];
      int r = 10;
      printf("Connection RFCOMM succeeded\n");
      if(SUCCEED(write((void*)&socket,buffer,&r)))
        printf("Write succeed\n");
  
      printf("socket closed\n");
      com_close(&socket);
    }
  }

  sleep(1);

  printf("Deconnection\n");
  com_disconnect();

  printf("End of program\n");
  com_shutdown();

  return 0;
}
Esempio n. 6
0
void main()
{
	int e_flag;	/* event flag */
	int rc;		/* function return code */
	char buffer[BUFLEN+2];	/* general buffer */
	char prompt[BUFLEN+2];	/* prompt buffer */
	int prlen;
	int length;
	long tstart;

	/* open com port */
	rc = com_open( (int*) &e_flag, 1200);
	if ( rc != 0) {
		printf("\nOPEN failed!\n");
 		printf("error code = %d\n",rc);
		abort_test();
	}


	/* setup prompt string */
	strcpy(prompt, "\r\nEnter string: ");
	prlen = strlen(prompt);

	/* prompt and read until "quit" is typed */
	buffer[0] = NULCH;
	while (strcmp(buffer,"quit\r\n") != 0) {

		/* display the prompt */
		e_flag = 0;
		rc = com_write((char*) prompt, (int*) &prlen);
		if (rc != 0) {
			printf("\nerror displaying prompt!\n");
			printf("error code = %d\n",rc);
			abort_test();
		}

		/* loop until output is done */
		tstart = time(NULL);
		while (e_flag == 0) {
			if ((time(NULL) - tstart) > WR_TIME_LIMIT) {
				printf("\ntimeout on prompt\n");
				printf("event flag not set\n");
				exit();
			}
		}

		/* read a string */
		length = BUFLEN-1;
		e_flag = 0;
		rc = com_read((char*) buffer, (int*) &length);
		if (rc != 0) {
			printf("\nerror reading string!\n");
			printf("error code = %d\n",rc);
			abort_test();
		}

		/* loop until input is done */
		tstart = time(NULL);
		while (e_flag == 0) {
			if ((time(NULL) - tstart) > RD_TIME_LIMIT) {
				printf("\ntimeout on input\n");
				printf("event flag not set\n");
				abort_test();
			}
		}


		/* display the input string */
		e_flag = 0;
                if (buffer[length-1] == '\n') {
                   buffer[length-1] = NULCH;
                   length--;
                }
                strcat(buffer,"\r\n");
                length = length + 2;

		printf("%s",buffer);

		rc = com_write((char*) buffer, (int*) &length);
		if (rc != 0) {
			printf("\nerror displaying string!\n");
			printf("error code = %d\n",rc);
			abort_test();
		}

		/* loop until output is done */
 		tstart = time(NULL);
		while (e_flag == 0) {
			if ((time(NULL) - tstart) > WR_TIME_LIMIT) {
				printf("\ntimeout on output\n");
				printf("event flag not set\n");
				abort_test();
			}
		}

	} /* end of while loop */

	/* print final message */
	e_flag = 0;
	length = 29;
	printf("\nEnd of Com Driver IO Test\n");
	rc = com_write((char*) "\r\nEnd of Com Driver IO Test\r\n",
				(int*) &length);
	if (rc != 0) {
		printf("\nWRITE error on final message!\n");
		printf("error code = %d\n",rc);
		abort_test();
	}

	/* loop until output is done */
 	tstart = time(NULL);
	while (e_flag == 0) {
		if ((time(NULL) - tstart) > WR_TIME_LIMIT) {
			printf("\ntimeout on final message\n");
			printf("event flag not set\n");
			abort_test();
		}
	}

	/* close the com port */
	rc = com_close();
	if ( rc != 0) {
		printf("\nCLOSE failed!\n");
 		printf("error code = %d\n",rc);
		exit();
	}

	printf("Test completed successfully!\n");

}
Esempio n. 7
0
void main(void)
{
	int e_flag;	/* event flag */
	int ix;		/* loop index */
	int rc;		/* function return code */
	char buffer[BUFLEN]; /* output buffer */
	int length;
	long tstart;

	/* open com port */
	rc = com_open( (int *) &e_flag, 1200);
	if ( rc != 0) {
		printf("\nOPEN failed!\n");
 		printf("error code = %d\n",rc);
		abort_test();
	}

	/* fill buffer with Xs */
	for (ix=0; ix<BUFLEN; ix++) buffer[ix] = 'X';

 	/* insert test string */
 	strcpy(buffer,"This is a test of com driver output  ");
	strcat(buffer,"abcdefghijklmnopqrstuvwxyz 0123456789\012\015");
	length = strlen(buffer);

	/* output test string the specified number of times */
	for (ix=1; ix<=REPEAT_COUNT; ix++) {
		e_flag = 0;
		rc = com_write((char *) buffer, (int *) &length);
		if (rc != 0) {
			printf("\nWRITE error!\n");
			printf("error code = %d\n",rc);
			abort_test();
		}

		/* loop until output is done */
		tstart = time(NULL);
		while (e_flag == 0) {
			if ((time(NULL) - tstart) > TIME_LIMIT) {
				printf("\nTIMEOUT: event flag not set\n");
				abort_test();
			}
		}
        }


	/* output final message */
	e_flag = 0;
	length = 31;
	rc = com_write((char *) "End of Com Driver Output Test\012\015",
				(int *) &length);
	if (rc != 0) {
		printf("\nWRITE error on final message!\n");
		printf("error code = %d\n",rc);
		abort_test();
	}

	/* loop until output is done */
	tstart = time(NULL);
	while (e_flag == 0) {
		if ((time(NULL) - tstart) > TIME_LIMIT) {
			printf("\nTIMEOUT: event flag not set\n");
			abort_test();
		}
	}

	/* close the com port */
	rc = com_close();
	if ( rc != 0) {
		printf("\nCLOSE failed!\n");
 		printf("error code = %d\n",rc);
		exit();
	}

	printf("Test completed successfully!\n");

}
Esempio n. 8
0
/**
 * Main, startup
 */
int main(int argc, char *argv[]) {

    // Filename of the HEX File
    const char * hexfile = NULL;

    // 1 if verify, 2 if programm
    char verify = 0;

    // Serial device
    const char * device = "/dev/ttyS0";

    // Baudrate
    int baud = 4800;
    int baudid = -1;

    // if crc is supported (not supportet if 2)
    int crc_on;

    // The path to the binary (for finding devices.txt)
    readlink("/proc/self/exe", devices_file_p, 255); // symlink to this binary
    chp = strrchr (devices_file_p,'/');  // get the last path separator
    if (chp) strcpy (chp+1,DEVICES_FILE); // copy the device filename after the path separator


    // print header
    printf("\n");
    printf("=================================================\n");
    printf("|             BOOTLOADER, Target: V2.1          |\n");
    printf("=================================================\n");

    // Parsing / checking parameter
    int i;
    int type = 0;

    for(i = 1; i < argc; i++) {
        if(*argv[i] == '-') {
            type = argv[i][1];
        }
        else {
            switch(type) {
            case 'd':
                device = argv[i];
                break;
            case 'b':
                baud = atoi(argv[i]);
                break;
            case 'v':
                verify = 1;
                hexfile = argv[i];
                break;
            case 'p':
                verify = 2;
                hexfile = argv[i];
                break;
            default:
                printf("Wrong parameter!\n");
                usage();
            }
            type = 0;
        }
    }

    if(hexfile == NULL) {
        printf("No hexfile specified!\n");
        usage();
    }

    if(verify == 0) {
        printf("No Verify / Programm specified!\n");
        usage();
    }

    // Checking baudrate
    for(i = 0; i < BAUD_CNT; i++) {
        if (baud_value[i] == baud) {
            baudid = i;
            break;
        }
    }

    if(baudid == -1) {
        printf("Unknown baudrate (%i)!\n", baud);
        usage();
    }

    printf("Device   : %s\n", device);
    printf("Baudrate : %i\n", baud);
    printf("%s: %s\n", (verify == 1 ? "Verify   " : "Program  "), hexfile);
    printf("-------------------------------------------------\n");

    if(!com_open(device, baud_const[baudid])) {
        printf("Open com port failed!\n");
        exit(2);
    }

    connect_device();
    crc_on = check_crc();
    read_info();

    /*if(read_info()) {
    }
    else {
    	printf("Reading device information failed!\n");
    }*/

    if(crc_on != 2) {
        crc_on = check_crc();
        switch(crc_on) {
        case 2:
            printf("No CRC support.\n");
            break;
        case 0:
            printf("CRC enabled and OK.\n");
            break;
        case 3:
            printf("CRC check failed!\n");
            break;
        default:
            printf("Checking CRC Error (%i)!\n", crc_on);
            break;
        }
    }
    else {
        printf("No CRC support.\n");
    }

    flash(verify==1, hexfile);
    if( crc_on != 2 ) {
        if( check_crc() )
            printf( "CRC-Error !\n");
        else
            printf("CRC: o.k.\n");
    }

#ifdef SHOW_TIME_MS
    //time @ ms
    printf("Elapsed time: %d s\n", elapsed_msecs (&t_start));
#endif

#ifdef SHOW_TIME_S
    printf("Elapsed time: %.3f seconds\n", elapsed_secs (&t_start));
#endif

    printf("...starting application\n\n");
    sendcommand(START);//start application
    sendcommand(START);

    com_close();//close opened com port
    return 0;
}
Esempio n. 9
0
void Cleanup(){
	trm_close();
	com_close();
	DeleteAllQueues();
	DeleteAllTheThings();
}