示例#1
0
文件: 5370.c 项目: jks-prv/5370_proc
void sim_main()
{
	u2_t i;
	
#ifdef BUS_TEST
	printf("TESTING...\n\n");
	void bus_test();
	bus_test();
#endif

	for (i = 0; i < DEV_SIZE; i++) {
		dev_io_t *devp = &dev_io[i];
		
		if ((i >= ADDR_ARM(0)) && (i <= ADDR_ARM(0xf))) {
			devp->dev_read = handler_dev_arm_read;
			devp->dev_write = handler_dev_arm_write;
		} else
		if ((i >= ADDR_DSP(0)) && (i <= ADDR_DSP(0x1f))) {
			devp->dev_read = handler_dev_display_read;
			devp->dev_write = handler_dev_display_write;
		} else
		if ((i >= ADDR_HPIB(0)) && (i <= ADDR_HPIB(3))) {
			devp->dev_read = handler_dev_hpib_read;
			devp->dev_write = handler_dev_hpib_write;
#ifdef DEBUG
		} else {
			devp->dev_read = handler_dev_read_bad;
			devp->dev_write = handler_dev_write_bad;
#endif
		}
	}
	
	sim_running = TRUE;
	sim_processor();
	sim_running = FALSE;
}
示例#2
0
void uart_test ()
{
    volatile int loop;
    int	looplim;
    int int_id;
    unsigned long* reg_ptr;
    int i, baud;

    /*11/01/00 */
    char info[] = {"Move Console Cable back to Connector J9 and hit <CR> to exit test"};
    int index;

    looplim = 400000;

    /* perform tests on both UARTs */
    for (uart_unit = 0; uart_unit < 2; uart_unit++)
    {

        if (uart_unit == 0)
            int_id = UART1_INT_ID;
        else
            int_id = UART2_INT_ID;

        if (!bus_test ())
            printf ("\nERROR:  bus_test for UART Unit %d failed\n", uart_unit);
        else
        {
            printf ("\nbus_test for UART Unit %d passed\n", uart_unit);

            uart_int = 0;

            isr_connect (int_id, uart_isr, 0);

            if (enable_external_interrupt(int_id) != OK)
                printf("ERROR enabling UART UINT %d interrupt!\n", uart_unit);

            init_uart ();

            loop = 0;

            while (!uart_int && (loop < looplim))
                loop++;
            if (!uart_int)
                printf ("UART Unit %d INTERRUPT test failed %X\n", uart_unit, loop) ;
            else
                printf ("UART Unit %d INTERRUPT test passed\n", uart_unit);

            serial_putc(' ');
        }

        /* disable UART interrupt */
        if (disable_external_interrupt(int_id)!= OK)
            printf("ERROR disabling UART UNIT %d interrupt!\n", uart_unit);

        /* disconnect test handler */
        isr_disconnect (int_id);

    }

    /* 11/01/00 */
    /* #if 0 */	 /* writing to port 2 doesnt work yet... */
#if 1 /* writing to port 2 doesnt work yet... */

    /*
    	printf ("\nMove the Console Cable to the 2nd Serial Port,\n");
    	printf ("Connector J10,\n");
        printf ("and Hit <CR> when the cable is connected.\n\n");
    	printf ("After alphabet prints, move Console Cable back to 1st Serial Port,\n");
    	printf ("Connector J9,\n");
    	printf ("and hit <CR> to exit test\n");
    */

    /* 10/30/00 */
    uart_unit = DFLTPORT;	/* test J10, the PCI-700 GDB port */

    printf ("\nMove the Console Cable to the 2nd Serial Port, Connector J10,\n");
    printf ("and Hit <CR> when the cable is connected.\n");
    printf ("The alphabet should print on the screen.\n\n");

    /* 11/01/00 */
    /*
    	printf ("After alphabet prints, move Console Cable back to 1st Serial Port,\n");
    	printf ("Connector J9,\n");
    	printf ("and hit <CR> to exit test\n");
    */
    baud = 115200;
    serial_init();
    serial_set(baud?baud:115200L);

    /*	while (serial_getc() == -1); */
    while (serial_getc() != 0x0d);	/* wait for a carriage return character to start test */

    /*
    	while (1)
    	{
    		for ( i = 65; i <= 90; i++ )
    			serial_putc(i);
    	}
    */
    for ( i = 65; i <= 90; i++ )	/* transmit the alphabet */
        serial_putc(i);

    serial_putc(10);	/* transmit a New Line */
    serial_putc(13);	/* transmit a Carriage Return */
    serial_putc(10);	/* transmit a New Line */

    for (index=0; info[index] != '\0'; index++)		/* transmit some instructions to the user */
    {
        serial_putc(info[index]);
    }


    /* point at default port before returning */
    /*	uart_unit = DFLTPORT; */

    (void)hexIn();

#endif

    printf ("\n\nUART tests done.\n");

    printf ("Press return to continue.\n");
    (void) hexIn();
}