1
0
Fork 0

Move from 'hello.c' to 'start_kernel.c' to sound more professional...

...though at this point start_kernel.c just does a test of the video and
serial/printing capabilities and nothing else.
This commit is contained in:
Aaron Lindsay 2012-09-07 23:56:32 -04:00
parent 38f87f12c5
commit 8fbb809a5e
3 changed files with 31 additions and 24 deletions

View File

@ -1,3 +1,5 @@
KERNEL_PREFIX = kernel
KOBJS += $(KERNEL_PREFIX)/hello.o
KOBJS += $(KERNEL_PREFIX)/framebuffer.o
KOBJS += $(KERNEL_PREFIX)/print.o
KOBJS += $(KERNEL_PREFIX)/start_kernel.o

View File

@ -1,23 +0,0 @@
#define SERIAL_BASE 0x16000000
#define SERIAL_FLAG_REGISTER 0x18
#define SERIAL_BUFFER_FULL (1 << 5)
void putc (char c)
{
/* Wait until the serial buffer is empty */
while (*(volatile unsigned long*)(SERIAL_BASE + SERIAL_FLAG_REGISTER)
& (SERIAL_BUFFER_FULL));
/* Put our character, c, into the serial buffer */
*(volatile unsigned long*)SERIAL_BASE = c;
}
void puts (const char * str)
{
while (*str) putc (*str++);
}
int main (void)
{
puts ("hello, world!\n");
return 0;
}

28
kernel/start_kernel.c Normal file
View File

@ -0,0 +1,28 @@
#include <print.h>
#include <devices/pl011.h>
#include <devices/pl110.h>
#include <framebuffer.h>
struct fb myfb;
void video(void)
{
unsigned int x, y;
pl110_init(&myfb, 16);
x = 0, y = 0;
for (x=0; x<640; x++)
for (y=0; y<480; y++)
fb_write_pixel(&myfb, x, y, 0x1f, 0x1f, 0x0);
}
int main(void)
{
print_init(&pl011_putc); //initialize the serial console
video();
print("hello, world!\n");
return 0;
}