#include #include "hal.h" typedef struct { volatile uint32_t state[2]; volatile uint32_t key[2]; volatile uint32_t status; } My_Mem; #define MY_MEM ((My_Mem*)(0xF0030000)) void writeState(uint32_t * state) { for(unsigned i = 0; i < 2; i++) { MY_MEM->state[i] = state[i]; } } void readState(uint32_t * state) { for(unsigned i = 0; i < 2; i++) { state[i] = MY_MEM->state[i]; } } void printState(uint32_t * state) { printf("State:\n"); for(unsigned i = 0; i<2; i++) { printf("%i\n",state[i]); } } void writeKey(uint32_t * key) { for (unsigned i = 0; i < 2; i++) { MY_MEM->key[i] = key[i]; } } int main(void) { printf("HELLO WORLD\n"); uint32_t state[2] = {10000, 3000}; uint32_t key[2] = {64, 4}; while (1) { printState(state); writeState(state); writeKey(key); MY_MEM->status = 1; while (MY_MEM->status != 0); readState(state); printState(state); for(unsigned i = 0; i < 2; i++) { state[i] = state[i]+1; } } return 0; }