initial "working" version
This should print something on the UART. Signed-off-by: Sean Cross <sean@xobs.io>
This commit is contained in:
		
							
								
								
									
										36
									
								
								src/main.c
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								src/main.c
									
									
									
									
									
								
							@@ -1,9 +1,43 @@
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <printf.h>
 | 
			
		||||
#include <uart.h>
 | 
			
		||||
#include <irq.h>
 | 
			
		||||
 | 
			
		||||
void main(int argc, char **argv) {
 | 
			
		||||
#include <generated/csr.h>
 | 
			
		||||
 | 
			
		||||
void isr(void) {
 | 
			
		||||
	unsigned int irqs;
 | 
			
		||||
	
 | 
			
		||||
	irqs = irq_pending() & irq_getmask();
 | 
			
		||||
	
 | 
			
		||||
	if(irqs & (1 << UART_INTERRUPT))
 | 
			
		||||
		uart_isr();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void rv_putchar(void *ignored, char c) {
 | 
			
		||||
    (void)ignored;
 | 
			
		||||
    uart_write(c);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void init(void) {
 | 
			
		||||
    irq_setmask(0);
 | 
			
		||||
	irq_setie(1);
 | 
			
		||||
	uart_init();
 | 
			
		||||
    init_printf(NULL, rv_putchar);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int main(int argc, char **argv) {
 | 
			
		||||
    (void)argc;
 | 
			
		||||
    (void)argv;
 | 
			
		||||
 | 
			
		||||
    init();
 | 
			
		||||
 | 
			
		||||
    int i = 0;
 | 
			
		||||
    printf("Hello, world!\n");
 | 
			
		||||
    while (1) {
 | 
			
		||||
        printf("10 PRINT HELLO, WORLD\n");
 | 
			
		||||
        printf("20 GOTO 10\n");
 | 
			
		||||
        printf("i: %d\n", i++);
 | 
			
		||||
    }
 | 
			
		||||
    return 0;
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user