further ivt and isr implementation
[cortex-from-scratch] / sysinfo.c
1 #include <stdbool.h>
2 #include <stddef.h>
3 #include <stdint.h>
4 #include <stm32.h>
5 #include <mmap.h>
6
7
8 void sysinfo() {
9
10         uint32_t tmp = *MCU_ID;
11
12         uart_puts("CHECKING SYS INFO\n");
13         uart_puts("# DEVICE ID: ");
14
15         if (tmp & 0x414) {
16                 uart_puts("HIGH DENSITY\n");
17         }
18         else {
19                 uart_puts("UNKNOWN\n");
20         }
21
22         tmp = (tmp >> 16);
23         uart_puts("# REVISION: ");
24 //      addrtohex(tmp);
25         switch  (tmp) {
26                 case 0x1000:
27                       uart_puts("REVISION A\n");
28                       break;
29                 case 0x1001:
30                       uart_puts("REVISION Z\n");
31                       break;
32                 case 0x1003:
33                       uart_puts("REVISION 1/2/3/X/Y\n");
34                       break;
35                 default:
36                       uart_puts("UNKNOWN\n");
37         }
38
39 }
40