4 #include <stm32.h> // <-- your own header file located located in ./include
7 void *memcpy(void *dest, void *src, size_t count)
9 const char *sp = (const char *)src;
10 char *dp = (char *)dest;
11 for(; count != 0; count--) *dp++ = *sp++;
15 /* fillout memory with 'val' (i.e. all zeroes)
17 void *memset(void *dest, unsigned char val, size_t count)
19 char *temp = (char *)dest;
20 for( ; count != 0; count--) *temp++ = val;
24 /* same as above but shorter */
25 unsigned short *memsetw(unsigned short *dest, unsigned short val, size_t count)
27 unsigned short *temp = (unsigned short *)dest;
28 for( ; count != 0; count--) *temp++ = val;
32 int strlen(const char *str)
35 for(retval = 0; *str != '\0'; str++) retval++;
39 unsigned char inportb (uint32_t _addr)
42 //__asm__ __volatile__ ("inb %1, %0" : "=a" (rv) : "dN" (_port));
47 void outportb (uint32_t _addr, unsigned char _data)
50 // __asm__ __volatile__ ("str %1, %0" : "=r" (_data) : "m" (_addr) );
52 // __asm__ __volatile__ ("outb %1, %0" : : "dN" (_port), "a" (_data));
58 uart_puts("LOADING SYSTEM...\n");