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:
parent
38f87f12c5
commit
8fbb809a5e
@ -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
|
||||
|
@ -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
28
kernel/start_kernel.c
Normal 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;
|
||||
}
|
Loading…
Reference in New Issue
Block a user