如何在Qemu的i386系统中写入控制台或终端?

时间:2015-10-26 09:59:48

标签: c qemu uart i386 bare-metal

我试图在没有任何操作系统(baremetal)的Qemu i386仿真器系统上编写简单的hello world程序。目前,我可以通过写入连续循环中的地址来写入视频。

u16 *const video = (u16*) 0xB8000;

/* Display a character at x, y in fg foreground color and bg background color.*/

void putc(u8 x, u8 y, enum color fg, enum color bg, char c)
    {
        u16 z = (bg << 12) | (fg << 8) | c;
        video[y * COLS + x] = z;
    }

/* Display a string starting at x, y in fg foreground color and bg background
 * color. Characters in the string are not interpreted (e.g \n, \b, \t,etc.).
 */
void puts(u8 x, u8 y, enum color fg, enum color bg, const char *s)
    {
        for (; *s; s++, x++)
        putc(x, y, fg, bg, *s);
    }

我想在没有任何格式的情况下类似地写入控制台或终端(使用uart)。我可以找到基于Arm的系统的这些信息,但是很难找到如何为i386系统做这些。建议?

0 个答案:

没有答案