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

  1. #include <stdbool.h>
  2. #include "hal.h"
  3. typedef struct {
  4. volatile uint32_t state[2];
  5. volatile uint32_t key[2];
  6. volatile uint32_t status;
  7. } My_Mem;
  8. #define MY_MEM ((My_Mem*)(0xF0030000))
  9. void writeState(uint32_t * state) {
  10. for(unsigned i = 0; i < 2; i++) {
  11. MY_MEM->state[i] = state[i];
  12. }
  13. }
  14. void readState(uint32_t * state) {
  15. for(unsigned i = 0; i < 2; i++) {
  16. state[i] = MY_MEM->state[i];
  17. }
  18. }
  19. void printState(uint32_t * state) {
  20. printf("State:\n");
  21. for(unsigned i = 0; i<2; i++) {
  22. printf("%i\n",state[i]);
  23. }
  24. }
  25. void writeKey(uint32_t * key) {
  26. for (unsigned i = 0; i < 2; i++) {
  27. MY_MEM->key[i] = key[i];
  28. }
  29. }
  30. int main(void) {
  31. printf("HELLO WORLD\n");
  32. uint32_t state[2] = {10000, 3000};
  33. uint32_t key[2] = {64, 4};
  34. while (1) {
  35. printState(state);
  36. writeState(state);
  37. writeKey(key);
  38. MY_MEM->status = 1;
  39. while (MY_MEM->status != 0);
  40. readState(state);
  41. printState(state);
  42. for(unsigned i = 0; i < 2; i++) {
  43. state[i] = state[i]+1;
  44. }
  45. }
  46. return 0;
  47. }