OpenCores
URL https://opencores.org/ocsvn/s6soc/s6soc/trunk

Subversion Repositories s6soc

[/] [s6soc/] [trunk/] [sw/] [dev/] [helloworld.c] - Diff between revs 45 and 53

Show entire file | Details | Blame | View Log

Rev 45 Rev 53
Line 44... Line 44...
//
//
//
//
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//
//
//
//
#include "asmstartup.h"
 
#include "board.h"
#include "board.h"
 
 
const char msg[] = "Hello, world!\r\n";
const char msg[] = "Hello, world!\r\n";
 
 
void entry(void) {
void entry(void) {
        volatile IOSPACE *const sys = (IOSPACE *)IOADDR;
        volatile IOSPACE *const sys = (IOSPACE *)IOADDR;
        int     ledset = 0;
        int     ledset = 0;
 
 
        sys->io_spio = 0x0f0;
        sys->io_pic  = 0x07fffffff; // Acknowledge and turn off all ints
 
 
 
// sys->io_watchdog = TM_ONE_SECOND * 2;
 
_scope->s_ctrl = 2 | WBSCOPE_NO_RESET;
 
 
 
        sys->io_spio = 0x0fc;
 
 
        /// Turn off timer B
        /// Turn off timer B
        sys->io_watchdog = 0;
        sys->io_watchdog = 0;
 
 
        while(1) {
        while(1) {
                const char      *ptr;
                const char      *ptr;
                sys->io_timer = TM_ONE_SECOND; // Ticks per second, 80M
                sys->io_timer = TM_ONE_SECOND; // Ticks per second, 80M
                sys->io_pic  = 0x07fffffff; // Acknowledge and turn off all ints
                sys->io_pic  = 0x07fffffff; // Acknowledge and turn off all ints
 
                sys->io_pic  = INT_ENABLEV(INT_BUTTON);
 
 
                ptr = msg;
                ptr = msg;
                while(*ptr) {
                while(*ptr) {
                        unsigned iv = *(unsigned char *)ptr++;
                        unsigned iv = *(unsigned char *)ptr++;
 
 
                        // Wait while our transmitter is busy
                        // Wait while our transmitter is busy
                        while((sys->io_pic & INT_UARTTX)==0)
                        while((sys->io_pic & INT_UARTTX)==0)
                                ;
                                ;
 
 
                        sys->io_uart = iv; // Transmit our character
                        sys->io_uart = iv; // Transmit our character
                        sys->io_pic  = INT_UARTTX; // Clear the int flag
                        sys->io_pic  = INT_UARTTX; // Clear the int flag
                }
                }
 
 
                // Now, wait for the top of the second
                // Now, wait for the top of the second
Line 91... Line 97...
                        sys->io_spio = ledset^0x0f;
                        sys->io_spio = ledset^0x0f;
                else if (btn&0x20)
                else if (btn&0x20)
                        sys->io_spio = ledset&0x0f5;
                        sys->io_spio = ledset&0x0f5;
                else
                else
                        sys->io_spio = ledset;
                        sys->io_spio = ledset;
 
sys->io_watchdog = 0;
        }
        }
}
}
 
 
 
 
 No newline at end of file
 No newline at end of file

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.