hal_platform_interface.c 865 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include "driver.h"
  2. #include <linux/types.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include "com_gpio.h"
  6. #include "hal_interface_api.h"
  7. #include "linux/fcntl.h"
  8. #include "time.h"
  9. #include <unistd.h>
  10. #define DEV_NAME "/dev/platform"
  11. int stm32_reset_mcu(void)
  12. {
  13. int fd;
  14. int ret;
  15. fd = open(DEV_NAME, O_RDWR);
  16. if(fd == -1)
  17. {
  18. printf("Open %s failed!\n", DEV_NAME);
  19. }
  20. ret = ioctl(fd, RESET_MCU, NULL);
  21. if(ret == -1)
  22. {
  23. printf("Reset MCU failed!\n");
  24. }
  25. close(fd);
  26. return ret;
  27. }
  28. uint32_t stm32_generate_random32bit(void)
  29. {
  30. int fd;
  31. int ret;
  32. platform_arg_t args;
  33. fd = open(DEV_NAME, O_RDWR);
  34. if(fd == -1)
  35. {
  36. printf("Open %s failed!\n", DEV_NAME);
  37. }
  38. ret = ioctl(fd, GET_32BIT_RANDOM, &args);
  39. if(ret == -1)
  40. {
  41. printf("Get random failed!\n");
  42. }
  43. close(fd);
  44. return args.random_32bit;
  45. }