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