#include <stdbool.h>
|
|
#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;
|
|
}
|