Storage_Test.c 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. /*
  2. * Storage_Test.c
  3. *
  4. * Created on: 2020¦~4¤ë21¤é
  5. * Author: Wendell
  6. */
  7. #include "Storage_Test.h"
  8. #include <stdlib.h>
  9. #include <stdio.h>
  10. #include <unistd.h> //write, close, usleep, read
  11. #include <fcntl.h> //uart
  12. #include <string.h>
  13. void Mount_SD_Card_to_MMT(void)
  14. {
  15. system("mount /dev/mmcblk0p1 /mnt");
  16. }
  17. void Write_To_SD_Card(void)
  18. {
  19. system("echo sd card write test > /mnt/sd_test.txt");
  20. }
  21. void Unmount_SD_Card_From_MMT(void)
  22. {
  23. system("umount /mnt");
  24. }
  25. void Mount_SD_Card_to_UsbFlash(void)
  26. {
  27. system("mount /dev/mmcblk0p1 /UsbFlash");
  28. }
  29. int Is_SD_Card_Write_OK(void)
  30. {
  31. int result = 0;
  32. FILE *fp;
  33. char buf[512];
  34. fp = fopen("/UsbFlash/sd_test.txt", "r");
  35. if(fp == NULL)
  36. {
  37. return result;
  38. }
  39. else
  40. {
  41. while(fgets(buf, sizeof(buf), fp) != NULL)
  42. {
  43. if(strncmp(buf, "sd card write test", 18) == 0)
  44. {
  45. result = 1;
  46. }
  47. }
  48. }
  49. fclose(fp);
  50. return result;
  51. }
  52. void Remove_SD_Card_File_From_UsbFlash(void)
  53. {
  54. system("rm /UsbFlash/sd_test.txt -f");
  55. }
  56. void Unmount_SD_Card_From_UsbFlash(void)
  57. {
  58. system("umount /UsbFlash");
  59. }
  60. void Mount_USB_to_MMT(void)
  61. {
  62. system("mount /dev/sda1 /mnt");
  63. }
  64. void Write_To_USB(void)
  65. {
  66. system("echo usb write test > /mnt/usb_test.txt");
  67. }
  68. void Unmount_USB_From_MMT(void)
  69. {
  70. system("umount /mnt");
  71. }
  72. void Mount_USB_to_UsbFlash(void)
  73. {
  74. system("mount /dev/sda1 /UsbFlash");
  75. }
  76. int Is_USB_Write_OK(void)
  77. {
  78. int result = 0;
  79. FILE *fp;
  80. char buf[512];
  81. fp = fopen("/UsbFlash/usb_test.txt", "r");
  82. if(fp == NULL)
  83. {
  84. return result;
  85. }
  86. else
  87. {
  88. while(fgets(buf, sizeof(buf), fp) != NULL)
  89. {
  90. if(strncmp(buf, "usb write test", 14) == 0)
  91. {
  92. result = 1;
  93. }
  94. }
  95. }
  96. fclose(fp);
  97. return result;
  98. }
  99. void Remove_USB_File_From_UsbFlash(void)
  100. {
  101. system("rm /UsbFlash/usb_test.txt -f");
  102. }
  103. void Unmount_USB_From_UsbFlash(void)
  104. {
  105. system("umount /UsbFlash");
  106. }
  107. void DoStorageTest(void)
  108. {
  109. Mount_SD_Card_to_MMT();
  110. Write_To_SD_Card();
  111. Unmount_SD_Card_From_MMT();
  112. Mount_SD_Card_to_UsbFlash();
  113. if(Is_SD_Card_Write_OK() == 0)
  114. {
  115. printf("\r\nSD Card Write Test Fail");
  116. Remove_SD_Card_File_From_UsbFlash();
  117. Unmount_SD_Card_From_UsbFlash();
  118. return;
  119. }
  120. printf("\r\nSD Card Write Test OK");
  121. Remove_SD_Card_File_From_UsbFlash();
  122. Unmount_SD_Card_From_UsbFlash();
  123. Mount_USB_to_MMT();
  124. Write_To_USB();
  125. Unmount_USB_From_MMT();
  126. Mount_USB_to_UsbFlash();
  127. if(Is_USB_Write_OK() == 0)
  128. {
  129. printf("\r\nUSB Write Test Fail");
  130. Remove_USB_File_From_UsbFlash();
  131. Unmount_USB_From_UsbFlash();
  132. return;
  133. }
  134. printf("\r\nUSB Write Test OK");
  135. Remove_USB_File_From_UsbFlash();
  136. Unmount_USB_From_UsbFlash();
  137. printf("\r\nStorage Test Done!");
  138. printf("\r\nSuccess!\r\n");
  139. }