You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

60 lines
1.1 KiB

#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;
}