Пример #1
0
#include <xdev.h>
#include <xdev/debug.h>
#include <xdev/ipc.h>
#include <xdev/mm.h>
#include <libc.h>

#if DEBUG
mutex_t mtx_kprintf = MTX_INIT(MTX_KIND_DEFAULT, NULL);


int
kprintf(int flags, const char *fmt, ...) {

	KASSERT(flags < 16);

	char buf[1024] = {0};
	va_list args;
	va_start(args, fmt);
	int out = vsprintf(buf, fmt, args);
	
	
	mutex_lock(&mtx_kprintf);

	int i;
	for(i = 0; i < out; i++)
		debug_send(buf[i], flags);

	mutex_unlock(&mtx_kprintf);


	
Пример #2
0
#include <xdev.h>
#include <xdev/mmio.h>
#include <xdev/ipc.h>
#include <xdev/debug.h>
#include <libc.h>
#include "arm.h"


mutex_t serial_lock = MTX_INIT(MTX_KIND_DEFAULT);


int serial_init() {

	mmio_w32(UART_CR(UART0), 0);
	mmio_w32(GPPUD, 0);
	delay(150);

	mmio_w32(GPPUDCLK0, (1 << 14) | (1 << 15));
	delay(150);

	mmio_w32(GPPUDCLK0, (0));
	mmio_w32(UART_ICR(UART0), 0x7FF);

	mmio_w32(UART_IBRD(UART0), 1);
	mmio_w32(UART_FBRD(UART0), 40);

	mmio_w32(UART_LCRH(UART0), (1 << 4) | (1 << 5) | (1 << 6));
	mmio_w32(UART_IMSC(UART0), (1 << 1) | (1 << 4) | (1 << 5) 	|
								(1 << 6) | (1 << 7) | (1 << 8)	|
								(1 << 9) | (1 << 10));
Пример #3
0
#include <xdev.h>
#include <xdev/ipc.h>
#include <xdev/debug.h>
#include <arch/i386/i386.h>

#if DEBUG
mutex_t mtx_debug = MTX_INIT(MTX_KIND_DEFAULT, NULL);


static char __cga_colors[] = {
	7,
	14,
	15,
	12,
	11
};

#define VGA_WIDTH			80
#define VGA_HEIGHT			25

void debug_send(char value, int flags) {

	mutex_lock(&mtx_debug);

	static int p = 0;
	static short* tm = (short*) 0xb8000;
	static int initialized = 0;

	if(!initialized) {
		initialized = 1;