test_efuse.c 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <hal_cmd.h>
  5. #undef HEXDUMP_LINE_CHR_CNT
  6. #define HEXDUMP_LINE_CHR_CNT 16
  7. static int sunxi_hexdump(const unsigned char *buf, int bytes)
  8. {
  9. unsigned char line[HEXDUMP_LINE_CHR_CNT] = {0};
  10. int addr;
  11. for (addr = 0; addr < bytes; addr += HEXDUMP_LINE_CHR_CNT)
  12. {
  13. int len = ((bytes-addr)<HEXDUMP_LINE_CHR_CNT ? (bytes-addr) : HEXDUMP_LINE_CHR_CNT);
  14. int i;
  15. memcpy(line, buf + addr, len);
  16. memset(line + len, 0, HEXDUMP_LINE_CHR_CNT - len);
  17. /* print addr */
  18. printf("0x%.8X: ", addr);
  19. /* print hex */
  20. for (i = 0; i < HEXDUMP_LINE_CHR_CNT; i++)
  21. {
  22. if (i < len)
  23. {
  24. printf("%.2X ", line[i]);
  25. }
  26. else { printf(" "); }
  27. }
  28. /* print char */
  29. printf("|");
  30. for (i = 0; i < HEXDUMP_LINE_CHR_CNT; i++)
  31. {
  32. if (i < len)
  33. {
  34. if (line[i] >= 0x20 && line[i] <= 0x7E)
  35. {
  36. printf("%c", line[i]);
  37. }
  38. else
  39. {
  40. printf(".");
  41. }
  42. }
  43. else
  44. {
  45. printf(" ");
  46. }
  47. }
  48. printf("|\n");
  49. }
  50. return 0;
  51. }
  52. int hal_efuse_get_chipid(unsigned char *buffer);
  53. int cmd_test_efuse(int argc, char **argv)
  54. {
  55. char buffer[32] = {0};
  56. hal_efuse_get_chipid(buffer);
  57. sunxi_hexdump(buffer, sizeof(buffer));
  58. /* TODO: add more APIs to test */
  59. printf("===================================\n");
  60. printf("Test Finished.\n");
  61. return 0;
  62. }
  63. FINSH_FUNCTION_EXPORT_CMD(cmd_test_efuse, hal_efuse, efuse hal APIs tests)