2a93216346
- New oscillator module - Bug fixes
101 lines
2.8 KiB
C
101 lines
2.8 KiB
C
/***************************************************************************
|
|
* Download program for the ECB system with the new P2701 CPU module.
|
|
*
|
|
* Filename: ecb_load.c
|
|
*
|
|
* Author: P.S. May 2004
|
|
*
|
|
*
|
|
****************************************************************************/
|
|
/*******************************************************************************
|
|
*& modificaions:
|
|
*&
|
|
*& V003.100 P.S. 2-May-2004
|
|
*& Creation.
|
|
*&
|
|
*&*****************************************************************************/
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include "ecb_load.h" /* The ecb driver interface. */
|
|
|
|
/*******************************************************************************
|
|
* Default path and name for the download file..
|
|
*******************************************************************************/
|
|
#define FILE_NAME "/scratch/users/tascomp/sans2m/tas/symfil/ecb_v501.hex"
|
|
|
|
/*******************************************************************************
|
|
* External variables defined in this file.
|
|
*******************************************************************************/
|
|
int x_tas_error = 0; /* Global error type */
|
|
char *x_error_text = '\0'; /* Error text line*/
|
|
int x_error_int = 0; /* Global error parameter */
|
|
|
|
|
|
|
|
/****************************************************************************
|
|
* If the program is started without arguments, the file ecb_v501.hex is
|
|
* downloaded. Another file name may be specified as an argument.
|
|
****************************************************************************/
|
|
extern int
|
|
main(int argc, char *argv[])
|
|
{
|
|
int ecb_type;
|
|
FILE *stream;
|
|
char file_name[F_BUFSIZ] = FILE_NAME;
|
|
|
|
if (argc == 2)
|
|
strcpy (file_name, argv[1]);
|
|
if (argc > 2)
|
|
exit(0); /* Error exit */
|
|
|
|
stream = fopen(file_name, "r"); /* Open in read-only mode */
|
|
if (stream == NULL)
|
|
{
|
|
printf("Error: unable to open file %s \n", file_name);
|
|
exit(0);
|
|
}
|
|
|
|
Gpib_init();
|
|
Ecb_init();
|
|
|
|
/* Check communication with the ECB system works and that we are in ROM mode */
|
|
ecb_type = Ecb_type (TYPE_OUT);
|
|
if (ecb_type != 0)
|
|
{
|
|
if (ecb_type == -1)
|
|
printf (" old ECB CPU (not P2701a)\n");
|
|
else
|
|
{
|
|
printf ("\nERROR:- the ECB system is in RAM mode\n");
|
|
printf (" and download of the ECB program is only possible in ROM mode.\n");
|
|
printf (" You must set the ECB system in ROM mode.\n\n");
|
|
}
|
|
return;
|
|
}
|
|
|
|
Ecb_down_load (stream);
|
|
|
|
}
|
|
|
|
|
|
/*******************************************************************************
|
|
* Main error routine.
|
|
*******************************************************************************/
|
|
|
|
|
|
extern void
|
|
Ecb_load_error()
|
|
{
|
|
|
|
printf("\nERROR:-");
|
|
|
|
if ((Ecb_error()) == FOUND) return;
|
|
if ((Gpib_error()) == FOUND) return;
|
|
|
|
|
|
exit(0);
|
|
|
|
}
|
|
|