X-Git-Url: https://robinkrens.nl/gitweb/?a=blobdiff_plain;f=main.c;h=e87131a88c52890aad6e8f0ac635954906bdee02;hb=47f52d56fac1acc9410a351dbf603c462bf3994c;hp=41049605fdd06a5259cc12c0869667aa6b75fb47;hpb=40ccfa73408769ca3fbc3b73ff6531db241d1d60;p=cortex-from-scratch diff --git a/main.c b/main.c index 4104960..e87131a 100644 --- a/main.c +++ b/main.c @@ -31,7 +31,40 @@ //#include #include -mem_pool_t kheap_pool; + +#include + +int test3(int i, int j) { + + volatile uint32_t * sp = get_msp(); + + /* asm volatile ( + "tst lr, #4" "\n\t" + "ite eq" "\n\t" + "mrseq %0, msp" "\n\t" + "mrsne r0, psp" : "=r" (sp) ); */ + + for (int i = 0; (sp + i) < 0x20010000; i++) { + printf("ADDRESS: %p, VALUE: %x\n", (sp + i), *(sp + i)); + } + + for(;;); + return 0xCC; + +} +int test2(int i, int j) { + + int x = i * j; + test3(0x3A, 0x3B); + + +} +int test(int i, int j) { + + test2(0x2A, 0x2B); + + return 0xAA; +} void main() { @@ -56,6 +89,10 @@ void main() /* Set up a very small libc library */ init_printf(NULL, putc); + /* Heap init */ + //kheap_init(); + //printf("%p\n", get_kheap()); + /* Display some basic info at startup */ sysinfo(); @@ -63,56 +100,13 @@ void main() led_init(); /* Real time clock */ - rtc_init(); - - extern uint32_t * _beginofheap; - //printf("%p", &_beginofheap); - kpool_init(&kheap_pool, 0x10, 10, (uint32_t *) &_beginofheap); + //rtc_init(); -// printf("%p\n", &kheap_pool); +// printf("press any key to start\n"); +// asm volatile ("wfi"); - char * string = (char *) kalloc(&kheap_pool); - char * string2 = (char *) kalloc(&kheap_pool); - char * string3 = (char *) kalloc(&kheap_pool); - - - memset(string, 0xFF, 0x10); - memset(string2, 0xEE, 0x10); - memset(string3, 0xDD, 0x10); - - printf("%p\n", string); - printf("%p\n", string2); - printf("%p\n", string3); - - kfree(&kheap_pool, string); - - char * string6 = (char *) kalloc(&kheap_pool); - - - memset(string6, 0xCC, 0x10); -// char * string7 = (char *) kalloc(&kheap_pool); - printf("%p\n", string6); -// printf("%p\n", string7); - - - kfree(&kheap_pool, string2); - - char * string7 = (char *) kalloc(&kheap_pool); - memset(string7, 0xBB, 0x10); - - - char * string8 = (char *) kalloc(&kheap_pool); - memset(string8, 0xAA, 0x10); - - char * string9 = (char *) kalloc(&kheap_pool); - memset(string9, 0x99, 0x10); - //free(string); - - kfree(&kheap_pool, string3); - - //char * string2 = (char *) alloc(); - - //string2 = "taalb"; + syscall_init(); + theos_test(0xA1, 0xA2); /* Eeprom Driver eeprom_at24c_init();