diff options
Diffstat (limited to '02-usart/test_harness/fake_env.c')
-rw-r--r-- | 02-usart/test_harness/fake_env.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/02-usart/test_harness/fake_env.c b/02-usart/test_harness/fake_env.c new file mode 100644 index 0000000..45cb1e9 --- /dev/null +++ b/02-usart/test_harness/fake_env.c @@ -0,0 +1,25 @@ +#include "fake_env.h" + +#include <stdlib.h> +#include <assert.h> + +#define DEFINE_MEMORY_SEGMENT(name, start_addr, end_addr) \ + static void* fake_##name = NULL; \ + void* load_fake_##name##__ () \ + { \ + if (fake_##name == NULL) { \ + fake_##name = malloc((end_addr) - (start_addr)); \ + assert(fake_##name != NULL); \ + } \ + return fake_##name; \ + } + +/* Peripheral buses */ +DEFINE_MEMORY_SEGMENT(apb1, 0x40000000, 0x40010000) +DEFINE_MEMORY_SEGMENT(apb2, 0x40010000, 0x40020000) +DEFINE_MEMORY_SEGMENT(ahb1, 0x40020000, 0x40024400) +DEFINE_MEMORY_SEGMENT(ahb2, 0x48000000, 0x50060C00) + +/* SRAM */ +DEFINE_MEMORY_SEGMENT(sram1, 0x20000000, 0x2000C000) +DEFINE_MEMORY_SEGMENT(sram2, 0x2000C000, 0x20018000) |