test.c 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. /* include path: ..../A2F/root/usr/include */
  2. #include <stdio.h>
  3. #include <fcntl.h>
  4. #include <linux/types.h>
  5. //#include <linux/jiffies.h>
  6. #include <unistd.h>
  7. typedef unsigned char uint8_t;
  8. typedef unsigned long uint32_t;
  9. typedef struct {
  10. uint32_t address;
  11. uint8_t data;
  12. } cpld_t;
  13. typedef struct {
  14. uint32_t clockspeed;
  15. uint32_t ownAddr;
  16. uint8_t DevAddr;
  17. uint8_t buf[100];
  18. uint8_t Size;
  19. } i2c_arg_t;
  20. #define GENERATE_CMD(__MAGIC__, __MAJOR__, __CMD__) \
  21. ((0x3<<30) | (__MAJOR__<<16) | (__MAGIC__<<8) | __CMD__)
  22. #define SET_ADDR GENERATE_CMD('x', 101, 2)
  23. #define TRANSFER GENERATE_CMD('x', 101, 4)
  24. #define MASTER_RCV GENERATE_CMD('x', 101, 5)
  25. #define SLAVE_RCV GENERATE_CMD('x', 101, 6)
  26. int main()
  27. {
  28. /* //FMC test app
  29. cpld_t cpld_arg;
  30. printf("This is test app!\n");
  31. int fd;
  32. fd = open("/dev/fmc_cpld", O_RDWR);
  33. if(fd == NULL)
  34. printf("Open failed\n");
  35. cpld_arg.address = 0x64000000;
  36. cpld_arg.data = 0x55;
  37. ioctl(fd, 0, &cpld_arg);
  38. cpld_arg.data = 0;
  39. ioctl(fd, 1, &cpld_arg);
  40. printf("Read from cpld: %#x\n", cpld_arg.data);
  41. close(fd);
  42. */
  43. /* //gpio interrup test app
  44. int fd;
  45. uint8_t buf;
  46. int ret = 0;
  47. fd = open("/dev/test_module", O_RDWR);
  48. if(fd == NULL)
  49. printf("open failed\n");
  50. while(1)
  51. {
  52. ret = read(fd, &buf, 1);
  53. printf("test app read %#x\n", buf);
  54. }
  55. close(fd);*/
  56. int fd;
  57. int i;
  58. i2c_arg_t i2c_arg;
  59. fd = open("/dev/i2c1", O_RDWR);
  60. if(fd == NULL)
  61. printf("open failed\n");
  62. i2c_arg.ownAddr = 0;
  63. i2c_arg.DevAddr = 0x92;
  64. i2c_arg.buf[0] = 1;
  65. i2c_arg.buf[1] = 2;
  66. i2c_arg.buf[2] = 3;
  67. i2c_arg.Size = 0;
  68. while(1)
  69. {
  70. // ioctl(fd, 1, &i2c_arg); //get speed
  71. // printf("speed: %d\n", i2c_arg.clockspeed);
  72. // sleep(1);
  73. //
  74. // i2c_arg.clockspeed = 400000;
  75. // ioctl(fd, 0, &i2c_arg); //set speed
  76. // sleep(1);
  77. //
  78. // ioctl(fd, 3, &i2c_arg); //get addr
  79. // printf("addr: %#x\n", i2c_arg.ownAddr);
  80. // sleep(1);
  81. // i2c_arg.ownAddr = 0x42;
  82. // ioctl(fd, SET_ADDR, &i2c_arg); //set addr
  83. // sleep(1);
  84. // ioctl(fd, MASTER_RCV, &i2c_arg);
  85. // printf("Read: %#x, %#x\n", i2c_arg.buf[0], i2c_arg.buf[1]);
  86. // sleep(1);
  87. ioctl(fd, SLAVE_RCV, &i2c_arg);
  88. printf("\ni2c1 rec: ");
  89. for(i=0;i<i2c_arg.Size;i++)
  90. printf("%#x ", i2c_arg.buf[i]);
  91. printf("\n");
  92. }
  93. close(fd);
  94. return 0;
  95. }