mirror of
https://github.com/danog/baremetal.git
synced 2024-11-30 04:29:21 +01:00
Cleanup
This commit is contained in:
parent
478cddd82e
commit
59025d1c7d
@ -1,11 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
void uart0_init(void);
|
void uart_init(void);
|
||||||
void uart0_send(char c);
|
void uart_send(char c);
|
||||||
char uart0_recv();
|
char uart_recv();
|
||||||
void uart0_send_string(const char *str);
|
void uart_send_string(const char *str);
|
||||||
|
|
||||||
void uart1_init(void);
|
|
||||||
void uart1_send(char c);
|
|
||||||
char uart1_recv();
|
|
||||||
void uart1_send_string(const char *str);
|
|
||||||
|
28
src/kernel.c
28
src/kernel.c
@ -5,38 +5,38 @@
|
|||||||
#define ARM_IDVAL 0x364D5241
|
#define ARM_IDVAL 0x364D5241
|
||||||
|
|
||||||
void uart_hex(int i) {
|
void uart_hex(int i) {
|
||||||
uart0_send_string("0x");
|
uart_send_string("0x");
|
||||||
for (int x = 0; x < 8; x++) {
|
for (int x = 0; x < 8; x++) {
|
||||||
int c = 48 + ((i & 0xF0000000) >> 28);
|
int c = 48 + ((i & 0xF0000000) >> 28);
|
||||||
if (c == 48+10) {
|
if (c == 48+10) {
|
||||||
uart0_send('A');
|
uart_send('A');
|
||||||
} else if (c == 48+11) {
|
} else if (c == 48+11) {
|
||||||
uart0_send('B');
|
uart_send('B');
|
||||||
} else if (c == 48+12) {
|
} else if (c == 48+12) {
|
||||||
uart0_send('C');
|
uart_send('C');
|
||||||
} else if (c == 48+13) {
|
} else if (c == 48+13) {
|
||||||
uart0_send('D');
|
uart_send('D');
|
||||||
} else if (c == 48+14) {
|
} else if (c == 48+14) {
|
||||||
uart0_send('E');
|
uart_send('E');
|
||||||
} else if (c == 48+15) {
|
} else if (c == 48+15) {
|
||||||
uart0_send('F');
|
uart_send('F');
|
||||||
} else {
|
} else {
|
||||||
uart0_send(c);
|
uart_send(c);
|
||||||
}
|
}
|
||||||
i <<= 4;
|
i <<= 4;
|
||||||
}
|
}
|
||||||
uart0_send_string("\r\n");
|
uart_send_string("\r\n");
|
||||||
}
|
}
|
||||||
void kernel_main(void)
|
void kernel_main(void)
|
||||||
{
|
{
|
||||||
/*while(get32(ARM_ID) != ARM_IDVAL);
|
while(get32(ARM_ID) != ARM_IDVAL);
|
||||||
delay(500);
|
delay(500);
|
||||||
|
|
||||||
uart0_init();
|
uart_init();
|
||||||
delay(1000);*/
|
delay(1000);
|
||||||
uart0_send_string("Hello, world!\r\n");
|
uart_send_string("Hello, world!\r\n");
|
||||||
|
|
||||||
/*while (1) {
|
/*while (1) {
|
||||||
uart0_send(uart0_recv());
|
uart_send(uart_recv());
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
#define CM_UARTCTL_FRAC_SET 0x00000200
|
#define CM_UARTCTL_FRAC_SET 0x00000200
|
||||||
#define CM_UARTCTL_ENAB_SET 0x00000010
|
#define CM_UARTCTL_ENAB_SET 0x00000010
|
||||||
|
|
||||||
void uart0_init(void)
|
void uart_init(void)
|
||||||
{
|
{
|
||||||
unsigned int selector;
|
unsigned int selector;
|
||||||
|
|
||||||
@ -56,20 +56,20 @@ void uart0_init(void)
|
|||||||
put32(UART_CR, 0x301);
|
put32(UART_CR, 0x301);
|
||||||
}
|
}
|
||||||
|
|
||||||
void uart0_send(char c)
|
void uart_send(char c)
|
||||||
{
|
{
|
||||||
while(get32(UART_FR) & (1<<5));
|
while(get32(UART_FR) & (1<<5));
|
||||||
put32(UART_DR, c);
|
put32(UART_DR, c);
|
||||||
}
|
}
|
||||||
char uart0_recv()
|
char uart_recv()
|
||||||
{
|
{
|
||||||
while(get32(UART_FR) & (1<<4));
|
while(get32(UART_FR) & (1<<4));
|
||||||
return put32(UART_DR) & 0xFF;
|
return put32(UART_DR) & 0xFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
void uart0_send_string(const char *str)
|
void uart_send_string(const char *str)
|
||||||
{
|
{
|
||||||
for (int i = 0; str[i] != '\0'; i++) {
|
for (int i = 0; str[i] != '\0'; i++) {
|
||||||
uart0_send(str[i]);
|
uart_send(str[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user