31 lines
675 B
C
31 lines
675 B
C
#include <stdint.h>
|
|
|
|
#include "lab_io.h"
|
|
|
|
#define H3_IO_BASE ( 0xC0000000UL )
|
|
#define H3_IO_PRINT_CHAR ( *( ( volatile uint32_t * ) ( H3_IO_BASE + 0x0UL ) ) )
|
|
#define H3_IO_PRINT_U32 ( *( ( volatile uint32_t * ) ( H3_IO_BASE + 0x4UL ) ) )
|
|
#define H3_IO_EXIT ( *( ( volatile uint32_t * ) ( H3_IO_BASE + 0x8UL ) ) )
|
|
|
|
void lab_puts( const char * text )
|
|
{
|
|
while( *text != '\0' )
|
|
{
|
|
H3_IO_PRINT_CHAR = ( uint32_t ) ( unsigned char ) *text;
|
|
++text;
|
|
}
|
|
}
|
|
void lab_put_u32( uint32_t value )
|
|
{
|
|
H3_IO_PRINT_U32 = value;
|
|
}
|
|
|
|
void lab_exit( uint32_t code )
|
|
{
|
|
H3_IO_EXIT = code;
|
|
for( ; ; )
|
|
{
|
|
__asm volatile ( "wfi" );
|
|
}
|
|
}
|